里講一個很高大上的概念,但是也是一個很簡單,使用非常頻繁的功能:接口冪等,然后講兩個實現方式。
一、接口冪等性簡介
1.1接口冪等定義:
冪等性原來是數學上的概念,在編程領域可以理解為:多次請求某一個資源或執行某一個操作時應該具有唯一性同樣等結果,也就是說,其任意多次執行對資源本身所產生等影響的結果或函數執行的結果,都與第一次執行的結果相同。
1.2在LabVIEW里的主要解決的問題:
1.2.1、在結果沒有完成時的重復點擊。
1.2.2、無意間的雙擊導致重復發送命令。
1.2.3、按鍵防抖。
1.2.4、在生成消費者中,生產數量大于消費數量,且可以忽略多與生成者的情況下。
1.2.5、在操作者架構Actor Framework使用其功能可以避免消息隊列堆積。
1.3、接口冪等的使用條件
要實現接口冪等最好是對命令和操作進行解耦,例如以下軟件架構:生產消費者,JKI,AMC,DQMH等。
1.4、這里提供兩種解決方法
1、控件禁用方式實現。
2、使用唯一ID實現。
二、接口冪等的解決辦法1-控件禁用
我們直接用狀態機章節中的異步狀態機的例子改造下,利用控件禁用實現接口冪等操作。
1、我們要實現的功能就是點擊運行后禁用運行按鈕,當運行結束或點擊復位時使能運行按鈕,如下圖所示。
2、在Run事件中添加禁用運行按鈕代碼,在洗滌結束流程中添加使能Run代碼。
3、在停止和復位事件中天健Run使能代碼
4、下邊時運行效果
可以看到在設備運行時禁用了運行控件,當運行結束后可以再次點擊運行。
三、接口冪等的解決辦法2-唯一ID
3.1、接口冪等的執行流程
3.1.1先要創建一個全局的ID
3.1.2、發送命令時讀取全局ID并和命定打包
3.1.3、執行單元接收到打包的命令后與將打包的ID和全局ID進行比較
3.1.4、ID相等執行命令后將ID++
3.1.5、ID不同時忽略該命令
3.2、先設計個FGV來保存和ID便于操作
Set
Get
Unlokc
3.3、修改JKI傳遞的數據類型將原來的字符串改成簇,其中包含ID和命令字符串。
3.4、在處理事件時增加冪等處理,如果ID不等則忽略命令,將退出命令提升到最高優先級
3.5、下邊是最后運行效果
四、需要安裝的軟件或工具包
1.LabVIEW2015中文版
審核編輯:黃飛
-
LabVIEW
+關注
關注
1977文章
3657瀏覽量
325628 -
狀態機
+關注
關注
2文章
492瀏覽量
27647
原文標題:LabVIEW的編程之道-接口冪等
文章出處:【微信號:LabVIEW的編程之道,微信公眾號:LabVIEW的編程之道】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論