對(duì)于一些位于偏遠(yuǎn)環(huán)境的設(shè)備,可以遠(yuǎn)程配置或控制設(shè)備顯得尤為重要。ZWS云從設(shè)計(jì)之初就充分考慮了這一需求,支持云端遠(yuǎn)程下發(fā)命令給設(shè)備。
?介紹
ZWS云平臺(tái)是致遠(yuǎn)電子研發(fā)的通用物聯(lián)網(wǎng)云平臺(tái),提供多種不同物聯(lián)網(wǎng)云服務(wù),為設(shè)備廠商提供上云服務(wù),支持對(duì)廠商不同種類設(shè)備的數(shù)據(jù)采集和分析。
物聯(lián)網(wǎng)的設(shè)備有千萬(wàn)種,不同的設(shè)備有著不同的控制命令,比如“開關(guān)燈”,“時(shí)間同步”,“文件召回”等。ZWS云針對(duì)這些不同命令做了歸并分類,可以分為三種:
- 通用命令:所有接入ZWS云都需要支持的命令,例如文件召回,固件升級(jí)等。
- 透?jìng)髅睿?/strong>命令下發(fā)過程不經(jīng)平臺(tái)校驗(yàn),只做透?jìng)鞯拿睢?/li>
- 差異化命令:設(shè)備類型自己跟其他設(shè)備類型不同的命令。
對(duì)于這三種命令,雖然他們分類不一樣,但他們下發(fā)的流程是差不多的,都是先在云端定義好命令的格式,然后再下發(fā)給設(shè)備,設(shè)備收到命令后進(jìn)行命令的響應(yīng)操作。具體流程如下圖所示:
?定義命令
定義命令是設(shè)備建模的一部分,可在功能塊中定義命令字段。對(duì)于通用命令和透?jìng)髅睿琙WS云平臺(tái)已經(jīng)在common_fn功能塊進(jìn)行了定義,用戶可以直接使用,不需要重復(fù)定義。這兩種命令定義如下所示:
對(duì)于第三種差異化命令,這個(gè)是由用戶自定義的,用戶可以在自定義設(shè)備類型的功能塊下添加自己差異化的命令,如下圖:
說明:自定義命令如果需要設(shè)備響應(yīng)必須配置以下兩個(gè)字段:
cmdid: 命令id,用于關(guān)聯(lián)響應(yīng)結(jié)果;
mtype: 消息類型,命令類型的消息此字段值固定是2。
差異化命令,用戶除了可以在功能塊里面添加自己的命令實(shí)現(xiàn)命令下發(fā)的需求,還可以復(fù)用通用功能塊的set_config命令配置。用戶只需要把自己的命令參數(shù)放到set_config命令的cfg_info字段里進(jìn)行下發(fā),設(shè)備收到該命令后進(jìn)行響應(yīng)即可。
set_config命令不僅可以給用戶自定義命令復(fù)用,而且,可以通過set_config命令配置設(shè)備的狀態(tài)值。
?設(shè)備接收命令
設(shè)備固件開發(fā)需要集成“ZWS_SDK”,SDK里面提供了設(shè)備連接云服務(wù)關(guān)于網(wǎng)絡(luò)層的封裝同時(shí)也提供了一些demo,其中device_example這個(gè)demo演示設(shè)備怎么連接云,然后設(shè)備接收處理云端命令。用戶可以直接通過make指令編譯SDK里的device_expl.c,編譯成功后,把設(shè)備的三元組傳給運(yùn)行程序,把demo跑起來。
linux系統(tǒng),在SDK所在目錄執(zhí)行以下命令:
./bin/device_example demo_dev_typed123123123123
代碼說明:
1. demo中關(guān)于命令的回調(diào)是在device_expl.c文件中的on_message函數(shù)。
2. demo中只實(shí)現(xiàn)部分通用命令的響應(yīng)處理,自定義命令需要用戶自己實(shí)現(xiàn)。
?下發(fā)命令
在設(shè)備管理的高階功能界面,通過set_config命令下發(fā)給設(shè)備,設(shè)備接收命令,響應(yīng)成功后返回給ZWS云平臺(tái),如下:
設(shè)備收到命令的處理日志:
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2909文章
44557瀏覽量
372760 -
設(shè)備
+關(guān)注
關(guān)注
2文章
4502瀏覽量
70598
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論