最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

LabVIEW開發(fā)TCP網(wǎng)絡(luò)通訊程序4

2023-04-21 19:34 作者:bjcyck  | 我要投稿

LabVIEW開發(fā)TCP網(wǎng)絡(luò)通訊程序4

創(chuàng)建連接處理程序

現(xiàn)在終于準(zhǔn)備好實(shí)現(xiàn)管理這些消息的可重入命令處理程序了,關(guān)鍵點(diǎn)確保它是完全可重入的。這意味著,如果VI的主要子VI不是,那么VI本身可重入幾乎沒有好處。那么什么是“主要”子VI?需要考慮的兩件事是:

子VI多久執(zhí)行一次?如果子VI在初始化期間很少執(zhí)行或只運(yùn)行一次,則使其可重入可能不利。

執(zhí)行需要多長時(shí)間?同樣,實(shí)現(xiàn)簡單邏輯、快速執(zhí)行的子VI可能不會(huì)像可重入代碼那樣提供很多好處。

將處理程序的整體結(jié)構(gòu)定義為具有三個(gè)狀態(tài)的狀態(tài)機(jī),對應(yīng)于響應(yīng)交互的三個(gè)階段。所以需要做的第一件事(也是要執(zhí)行的第一個(gè)狀態(tài)),它的工作是從新的TCP連接讀取整個(gè)消息,測試它的有效性,如果有效,則將命令傳遞給狀態(tài)。

協(xié)議要求每條消息以2字節(jié)計(jì)數(shù)開頭,因此狀態(tài)首先從接口讀取兩個(gè)字節(jié),將生成的二進(jìn)制值轉(zhuǎn)換為U16數(shù)字,然后使用該數(shù)字讀取消息的其余部分。然后,為了驗(yàn)證消息,代碼對整個(gè)消息(包括末尾的CRC)執(zhí)行CRC計(jì)算。如果消息和CRC有效,則此計(jì)算的結(jié)果將始終為0。代碼會(huì)從字符串的末尾剝離CRC,并將字符串的剩余部分發(fā)送到子VI中,子VI將JSON對象轉(zhuǎn)換為LabVIEW對象。這里選擇了一種面向?qū)ο蟮姆椒?,因?yàn)樗鼘?shí)際上簡化了代碼,并且它提供了一個(gè)清晰的路線圖,說明如果用戶決定在未來添加更多接口命令,需要做什么。

狀態(tài)調(diào)用一個(gè)動(dòng)態(tài)調(diào)度方法,該方法負(fù)責(zé)通過定義的事件與應(yīng)用程序的其余部分進(jìn)行接口,并格式化要發(fā)送給調(diào)用方的響應(yīng)。這部分代碼的對象模型有5個(gè)子類(每個(gè)命令一個(gè)),當(dāng)JSON命令結(jié)構(gòu)不包含有效的命令對象時(shí),父類用作默認(rèn)值。

此處的作用是處理從遠(yuǎn)程訪問引擎返回的響應(yīng),以及讀取圖形數(shù)據(jù)的事件的邏輯。由于響應(yīng)通知程序中返回的變體可以是文本錯(cuò)誤消息,也可以是實(shí)際數(shù)據(jù)數(shù)組,因此代碼要做的第一件事是嘗試將變體轉(zhuǎn)換為字符串。如果此嘗試失敗并生成錯(cuò)誤,用戶知道響應(yīng)包含數(shù)據(jù),因此可以對其進(jìn)行格式化以返回到遠(yuǎn)程調(diào)用方。如果變體成功轉(zhuǎn)換為字符串,用戶知道命令失敗,并且可以將錯(cuò)誤傳遞回調(diào)用方。

此時(shí),已準(zhǔn)備好將響應(yīng)發(fā)送回調(diào)用方,因此狀態(tài)機(jī)將轉(zhuǎn)換為Send?Response?state。在這里,看到了格式化響應(yīng)并將其傳輸?shù)秸{(diào)用方的邏輯。

由于消息的核心是響應(yīng)Cluster的JSON表示形式,因此代碼首先將Cluster平展為JSON字符串。但是請注意,它生成的字符串不包含多余的空格,因此它看起來與之前展示的JSON示例不同。接下來,邏輯計(jì)算返回消息的長度和JSON的CRC。這兩個(gè)值分別添加到JSON字符串的開頭和結(jié)尾,結(jié)果將寫回TCP連接。

最后,狀態(tài)關(guān)閉TCP連接并停止?fàn)顟B(tài)機(jī)循環(huán),該循環(huán)也會(huì)停止并從內(nèi)存中刪除一直在運(yùn)行的可重入克隆。

最后,需要再次測試驗(yàn)證。

需要說明的是,上述的例程和文檔,都是可以下載的,雙擊即可打開,其中壓縮文件是可以采用粘貼復(fù)制的方式,拷貝到硬盤上。這不是圖片,各位小伙伴看到后嘗試一下,這個(gè)問題就不用加微信咨詢了。有關(guān)LabVIEW編程、LabVIEW開發(fā)等相關(guān)項(xiàng)目,可聯(lián)系們。附件中的資料這里無法上傳,可去公司網(wǎng)站搜索下載。


LabVIEW開發(fā)TCP網(wǎng)絡(luò)通訊程序4的評論 (共 條)

分享到微博請遵守國家法律
栖霞市| 新晃| 谢通门县| 嘉祥县| 江口县| 昌宁县| 安顺市| 交口县| 陕西省| 油尖旺区| 秭归县| 宝坻区| 景泰县| 永春县| 沽源县| 临沧市| 磴口县| 黄平县| 德庆县| 阿克陶县| 敦化市| 河源市| 昌图县| 合江县| 谷城县| 汉川市| 信宜市| 汝州市| 新乡市| 依兰县| 黄大仙区| 乌兰察布市| 巢湖市| 临夏市| 侯马市| 和平区| 沽源县| 通许县| 神木县| 赤水市| 交城县|