前言
在上一個文章中,我們介紹了一下LabVIEW中AF的基本概念,本講將以上一次的例子來講解LabVIEW中的實現
正文
范例說明
假定兩個人,一個作為老師,一個作為學生。學生每天早上給老師發送一封郵件,而老師給其一個反饋
這里將有這樣一些溝通的要點:
1. 學生通過郵件溝通,並且一旦發送郵件,會話即開始,無法停止
2. 老師收到郵件后即進行對應的動作
3. 老師收到郵件后必然會反饋一封郵件
4. 學生可以在任何時候接收返回的郵件
5. 學生將不再存在一直阻塞等待的問題
通過這個例子,我們理解Actor Model在解決消息發送中的流程
LabVIEW實現-Actor建立
在這個例子中,我們需要建立兩個Actor,分別稱之為Student與Wise Teacher
通過上一個文章的操作,我們已經建立了Student的Actor
為此需要再次建立Wise Teacher的Actor作為消息的接收方
完成建立后的Wise Teacher Actor如下圖所示
為Teacher建立靜態的Quote Response 的方法,這里選擇 VI From Static Dispatch Template,
由於Teacher發送消息的時候需要指定接收Student的地址,所以需要提供Student的Message
為這個
Quote Response
創建一個消息
LabVIEW實現-Message溝通機制
由於Actor都必須要啟動和停止,所以我們在LaunchVI中設計Actor的啟動停止機制
這樣子我們就配置好了Actor的工作環境,接下來設計交流通訊的方式
由於Student需要給Wise Teacher發送消息,所以Student需要知道Teacher的Message地址,這里也即我們的Message的隊列
當需要外部訪問Student的數據時,需要設計Member Access的接口
這里創建Teacher Message的訪問,對外界提供只可以寫入的方法
這里創建完成后可以看到Write Teacher Message.vi,可以用來寫入Message數據
我們在啟動Student的時候,將Teacher的Message寫入到Student中去
在執行Request Quote的時候,可以設置發送Teacher的消息
實際運行即彈出了窗口,證明老師成功收到了郵件
這里設計該VI彈窗,代表通訊結束
在Teacher接收到消息后,我們將彈窗修改為Student的Send Receive Teacher Back Message











