LabVIEW Actor Framwork (1)________ 邊學邊做server&client
初始需求:
現在要做一個類似聊天的demo,一個server端,若干個client端;首先是server啟動,通過server可以打開若干個client端,然后每個client可以獨立給server發送數據。server收到數據打印出來帶有client id的信息。
必然想到,這里出現了2個Actor,一個server,一個client;
下面,我們來編寫和測試第一個actor——server
一、打開LabVIEW2016,新建一個proj:
并保存到硬盤文件夾。
二、右鍵項目中的My Computer新建Actor:
最后建立好的文件目錄如上圖,硬盤存儲文件夾的定義如下:
data——存放定義該Actor的私有數據類型;
mothods——方法;
overides——重寫的方法;
server test——用于自測試的vi;
note:當然,你也可以不這么存儲和放置,但最好這么做,清晰不會為后面產生混亂與沖突;
此時項目的如下:
三、定義私有數據:
一般將私有數據放到一個簇里面進行管理,這樣做是為了方便以后拓展;
如上圖:私有數據有分別為:
message:字串類型,用來存儲server收到的信息,注意,這個信息可以是外部發來的,也可以是自己發送給自己的;比如,我們在寫好了這個Acotor server后,可以行單元測試,此時就是自己給自己的actor發送一個消息,看看能否正常收到。
User event top:停止的用戶事件
User event message:發送信息的用戶事件
四、重寫方法:
一般就重寫的vi就是這三個:
初始化——core核心(也就是你要實現的功能在此處重寫)——stop停止機制
1.Pre Launch Init.vi
將對象進行初始化,采用Bundle By Name節點進行捆綁;
2. Stop Core.vi
在server out后面采用
來解捆綁,得到用戶事件句柄,然后此處產生一個停止事件,這樣,該類中所有有響應這個用戶事件的都能做出自己的處理。
目前這個例子中,此處的stop用戶事件是為了到時候停止Actor Core.vi 中的while循環;
(如果你此處還沒有理解, 不用著急,看到后面再回來就能恍然大悟。)
3. Actor Core.vi
這個便是咱們的actor要實現功能所在的地方。我們需求是要接收到一條消息,然后把它顯示記錄下來。那么我需要建立一個簡單的循環+事件結構,用來響應用戶事件,這里有兩個用戶時間,一個是message,一個是stop;
程序框圖如下:
注意的幾點:
2 用戶事件在使用之前請先行注冊,最后程序退出時銷毀事件。
2 所有的Actor對象的使用請連線在Actor Framework.lvlib:Actor.lvclass:Actor Core.vi
之前,因為父類的這個core也在一直運行,數據流驅動的LabVIEW編程決定這樣編寫;
2 用戶事件: User Event ,此處直接可以從事件結構元素message端得到內容的。
那么message是怎么發送的呢?接下來說明如何“創建方法的消息隊列”?
五、創建類的消息隊列:
首先在server 類的method虛擬文件夾下,創建動態方法,操作如下圖:
保存自動生成的vi到硬盤實際文件夾的mothods目錄:
接下來編輯此方法vi,如下:
保存,然后在project中對此方法點擊右鍵創建消息隊列;
創建好了以后,保存到硬盤。一般會在server類同級目錄:
然后在send message to server Msg.lvclass定義私有數據,此處就一個message,我們用一個string輸入控件即可;至此,創建send message的消息隊列完成。
send message to server Msg.lvclass->Send send message to server.vi便是我們用來給server 這個Actor發送消息的方法。
至此,整個server的actor開發完成。
接下來我們編寫一個測試vi,用來啟動server actor,停止,和發送一個消息測試是否正常?
測試vi取名test launch & send msg to server.vi存放在server類的下面:
注意,server作為root來啟動,所以采用:
分別測試上述3個功能,這樣便能每個Actor自行保證OK;
至此,Actor server測試完成,如果是多人協同開發的時候,此時就可以將自己編寫的這個actor發布給別人使用。
接下來,我們再來編寫client,這部分內容我們下節再講。
審核編輯:湯梓紅
-
LabVIEW
+關注
關注
1974文章
3656瀏覽量
324356 -
硬盤
+關注
關注
3文章
1313瀏覽量
57370 -
Server
+關注
關注
0文章
91瀏覽量
24054
發布評論請先 登錄
相關推薦
評論