接上文
粘合劑
上篇文章 我們搭建了 泵站分區對象 的Para數據類型及Gedi組態,
現在我們要將數據與圖形關聯起來,關聯的方法有兩種
- 一種為組態(妥妥拽拽,點擊配置)
- Crtl腳本(其實組態的底層也是Ctrl)
我們主要使用Ctrl腳本,這樣便於對模板的管理
關聯步驟
1)新建數據點
在數據類型DeliveryArea 下新建數據點 community01
2)對Gedi里的控件起名
如圖示 紅色字為控件屬性名稱
3)對panel的initialize事件進行編碼
引用剛才數據點 編寫Ctrl腳本
詳細代碼如下
main() { //閥門關聯函數 dpConnect("setValvePos","System1:community01.Valve.switch"); //入口壓力流量關聯函數 dpConnect("setInPress","System1:community01.InPress.value"); dpConnect("setInTotal","System1:community01.InFlow.total"); dpConnect("setInNow","System1:community01.InFlow.now"); //出口 壓力流量關聯函數 dpConnect("setOutPress","System1:community01.OutPress.value"); dpConnect("setOutTotal","System1:community01.OutFlow.total"); dpConnect("setOutNow","System1:community01.OutFlow.now"); } //閥門數值變化調用函數 void setValvePos(string dp1, bool a) { if(a==FALSE){ setValue("switchLine","visible",TRUE); setValue("valve","color","STD_value_not_ok"); }else{ setValue("switchLine","visible",FALSE); setValue("valve","color","STD_man"); } } //入口壓力數值變化調用函數 void setInPress(string dp1,float a) { setValue("inPress","text",a); } //入口累計流量數值變化調用函數 void setInTotal(string dp1,float a) { setValue("inTotal","text",a); }void setInNow(string dp1,float a)
{
setValue("inNow","text",a);
}void setOutPress(string dp1,float a)
{
setValue("outPress","text",a);
}
void setOutTotal(string dp1,float a)
{
setValue("outTotal","text",a);
}void setOutNow(string dp1,float a)
{
setValue("outNow","text",a);
}
注: 暫時忽略泵轉速屬性....
4) 對組態按鈕事件編碼
main(mapping event)
{
int rc, x;
rc=dpGet("System1:community01.Valve.switch", x);
dpSet("System1:community01.Valve.switch", !x);
}