基于Virtools 和串口通信的界面交互性的設計與實現
4 Virtools 中行為模組的設計與實現
下位機通過串口傳輸的數據,經過上位機串口通信程序轉換成 Virtools 可以識別的消息,然后 交由Virtools 中的行為模組進行處理,從而達到利用外部采集數據控制界面顯示的目的。
4.1Virtools 消息發送行為模組
Virtools 消息發送行為模組對串口通信模塊處理得到的數據信息進行重新封裝,然后發送給消息 解釋執行行為模組。消息發送行為模組是使用Virtools 提供的開發工具包中相關類的方法實現對信 息的重新封裝。具體實現如下:
CKBeObject *beo = beh->GetTarget(); //獲取消息發送目標
if(!beo)
return CKBR_OWNERERROR;
int *tab = (int *)beh->GetLocalParameterReadDataPtr(0); //獲得本地變量操作句柄
CKMessageManager *mm = BehContext.MessageManager; //消息管理對象
int temp = GetMessage(BehContext) - '0'; //調用串口通信模塊讀取串口消息
mm->SendMessageSingle(tab[temp],beo); //調用消息發送函數發送已經封裝好的動作消息
activeOutput_0 = TRUE;
4.2 消息解釋執行行為模組
消息解釋執行行為模組首先從當前的消息列表中獲取消息類型,根據消息類型屬性中指定的特 定消息類型來判斷當前到達的消息是否為該特定消息,并根據判斷結果調用不同的處理模塊。具體 的處理流程如圖3 所示。
圖 3 消息解釋執行行為模組流程圖
利用 Virtools 中行為模組的回調機制,循環調用該行為模組。在界面切換時檢測一下消息,判 斷是否與屬性中設定的動作消息一致。如果一致,則向動作控制行為模組發送激活消息。
4.3 動作控制行為模組
動作控制行為模組主要使用Virtools 自帶的行為模組,像按鍵響應行為模組、腳本的控制行為模組等。另外為了控制外部媒體文件的播放,還利用了Virtools 中加載資源文件、播放資源文件的 行為模組。
動作控制行為模組接收到消息解釋執行行為模組發送的激活信息,就會調用相應的行為模組完 成界面的輸出。
5 結論
本文從工程應用的角度,給出了基于Virtools 和串口通信的界面交互性的設計方法,并給出關鍵部分的設計思路和方法。該設計方法具有一定的通用性,可應用于其它需要用戶界面交互設計的應用系統中。
本文作者創新點:串口通信下,采集下位機(單片機)傳遞的信息,運用 Virtools 的行為模組 進行實時處理,實現了人機界面的交互。這一設計也為其他人機界面交互性的實現提供了一種新的思路。
評論