成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

初次嘗試!在 Spirit 1 實(shí)現(xiàn) DDC協(xié)議嗅探器

Reducto / 603人閱讀

摘要:看一下我最終的成果省略一萬(wàn)字我這里就簡(jiǎn)單實(shí)現(xiàn)了一下,頁(yè)面畫(huà)的有點(diǎn)磕磣,只能將就著用了。加了一個(gè)設(shè)備的選擇框,一個(gè)發(fā)送數(shù)據(jù)的編輯框,一個(gè)設(shè)備響應(yīng)的顯示框。

初次嘗試!在 Spirit 1 實(shí)現(xiàn) DDC 協(xié)議的嗅探器

之前入手了一個(gè)搭載了智能邊緣計(jì)算系統(tǒng)EdgerOS 的設(shè)備Spirit 1,通過(guò)該設(shè)備我們可以將應(yīng)用與設(shè)備連接起來(lái),通過(guò) javascript 應(yīng)用可以來(lái)控制連接的設(shè)備,之前就準(zhǔn)備弄一個(gè)基于 SDDC 協(xié)議的紅外溫度感應(yīng)的設(shè)備接到這個(gè)Spirit 1上,來(lái)檢測(cè)下我房間的溫度的,關(guān)于紅外溫度感應(yīng)設(shè)備的開(kāi)發(fā)可以參考這篇文章:基于ESP32S 的第一個(gè)應(yīng)用-紅外測(cè)溫槍。
通過(guò) SDDC 協(xié)議在愛(ài)智的設(shè)備應(yīng)用中掃描、發(fā)現(xiàn)、最后添加設(shè)備到 Spirit 1上后問(wèn)題來(lái)了(愛(ài)智上如何添加設(shè)備可以參考這篇文章:邊緣計(jì)算機(jī) Spirit 1 初體驗(yàn)),我突然意識(shí)到自己不知道 Spirit 1 收沒(méi)收到消息,然后進(jìn)官網(wǎng)摸索了一個(gè)多小時(shí),最終得出了一個(gè)結(jié)論,他們沒(méi)有提供可測(cè)試的入口 (ノ=Д=)ノ┻━┻。不過(guò)好在他們官網(wǎng)我倒是找到了幾個(gè)小demo,按照官網(wǎng)上的說(shuō)法,我應(yīng)該可以自己寫(xiě)一個(gè)應(yīng)用,然后部署到 Spirit 1,這樣就可以通過(guò)手機(jī)去控制設(shè)備,同樣設(shè)備發(fā)消息之后我也可以通過(guò)應(yīng)用去獲取對(duì)應(yīng)消息內(nèi)容。

立馬我就去官網(wǎng)掃了一下應(yīng)用開(kāi)發(fā)說(shuō)明,找到了一個(gè)實(shí)現(xiàn)這方面功能的模塊 device ,唯一不足的是這個(gè)模塊是 Spirit 1 里面的內(nèi)置模塊,不能在其他系統(tǒng)環(huán)境中使用,只支持ZDDCSDDC協(xié)議,不過(guò)我這個(gè)紅外溫度感應(yīng)的就是基于這個(gè)SDDC協(xié)議的,所以沒(méi)啥大問(wèn)題。最后我只能自己去實(shí)現(xiàn)一個(gè)可以調(diào)試的工具應(yīng)用了, 為此我還特地花費(fèi)了一晚上去看他們這個(gè)應(yīng)用開(kāi)發(fā),終于搞出了一個(gè)非常非常非常 low 的測(cè)試應(yīng)用,最終也部署上去了。

看一下我最終的成果(wohahaha…省略一萬(wàn)字):

我這里就簡(jiǎn)單實(shí)現(xiàn)了一下,頁(yè)面畫(huà)的有點(diǎn)磕磣,只能將就著用了。加了一個(gè)設(shè)備的選擇框,一個(gè)發(fā)送數(shù)據(jù)的編輯框,一個(gè)設(shè)備響應(yīng)的顯示框。

使用的話也比較簡(jiǎn)單,選中一個(gè)設(shè)備,然后構(gòu)建一下要發(fā)送的指令消息,然后點(diǎn)擊send,應(yīng)用后端會(huì)通過(guò) device 模塊將數(shù)據(jù)在 Spirit 1 中進(jìn)行處理,最后發(fā)送到我寫(xiě)的紅外測(cè)溫的設(shè)備中,設(shè)備收到消息后會(huì)回傳給 Spirit 1 當(dāng)前的環(huán)境溫度和目標(biāo)溫度,而我的應(yīng)用后端通過(guò) device 模塊也會(huì)監(jiān)聽(tīng)到設(shè)備發(fā)送的消息,并在前端將其打印出來(lái),這樣我以后開(kāi)發(fā)的時(shí)候就可以測(cè)試設(shè)備和 Spirit 1 之間的通信了,只能對(duì)自己說(shuō)一句:忒牛 ?( ?????ω????? )? 。


A FEW MOMENT LATER …

下面正經(jīng)的和大家講一下實(shí)現(xiàn)的技術(shù)難點(diǎn)(我胡扯的,(?ω?) hiahiahia),其實(shí)實(shí)現(xiàn)上面的功能非常的 So Easy,我只用到了官網(wǎng)提供的一個(gè)內(nèi)置模塊 device 就完成了,不過(guò)我在根據(jù)官網(wǎng)說(shuō)明文檔進(jìn)行開(kāi)發(fā)的時(shí)候,發(fā)現(xiàn)這個(gè) jsre 和 node.js 很相似,很多功能貌似是直接移植過(guò)去的,習(xí)慣用 node.js 開(kāi)發(fā)的應(yīng)該比較容易上手。前端貌似沒(méi)啥要求,我直接用官網(wǎng)推薦的 vue 進(jìn)行開(kāi)發(fā)了,還是比較方便的,直接拷貝代碼就好了 (?ω?)hiahiahia。

不過(guò)這么一個(gè)單頁(yè)面的應(yīng)用,還是整整消耗了我一天的時(shí)間,可能是第一次開(kāi)發(fā),整個(gè)過(guò)程中也出現(xiàn)了各種各樣的問(wèn)題,好在最后還是達(dá)到預(yù)期效果了,我這也算是全棧開(kāi)發(fā)了吧 (? ̄▽ ̄)?。

給大家擺上幾行代碼長(zhǎng)長(zhǎng)見(jiàn)識(shí)!? つ: ?? ? ?? : ?-︻╦???????══╤─

const Device = require("device");const deviceMap = new Map(); // 設(shè)備列表集合// 獲取設(shè)備列表Device.list(true, (error, list) => {  if (error) {    console.error("Device.list error!" + error);  } else {    list.forEach((item) => {      Device.info(item.devid, (error, info) => {        if (error) {          console.error("Device.info error!" + error);        } else {          deviceMap.set(item.devid, {            devid: item.devid,            ...info,          });        }      });    });  }});// 監(jiān)聽(tīng)設(shè)備加入Device.on("join", function (devid, info) {  deviceMap.set(devid, { devid, ...info });  io.emit("list", [...deviceMap.values()]); // 通過(guò)socket.io推送數(shù)據(jù)到前端});// 監(jiān)聽(tīng)設(shè)備丟失Device.on("lost", function (devid) {  deviceMap.delete(devid);  io.emit("list", [...deviceMap.values()]); // 通過(guò)socket.io推送數(shù)據(jù)到前端});

發(fā)送消息和監(jiān)聽(tīng)設(shè)備消息也比較簡(jiǎn)單:

...const dev = new Device();...// 發(fā)送消息dev.send({unit: "Centigrade"}, (err) => {  ...}, 3)// 監(jiān)聽(tīng)接收設(shè)備發(fā)送的消息device.on("message", function (msg) {   ...   console.log("message: ", msg) // 可以通過(guò)telnet 192.168.128.1 81端口進(jìn)行查看日志打印   io.emit("message", msg);   ...});

實(shí)現(xiàn)主要的關(guān)鍵代碼也就上面這些了,一開(kāi)始我也有點(diǎn)驚訝【淡━━( ̄ー ̄*|||━━定】,這一點(diǎn)代碼就實(shí)現(xiàn)了應(yīng)用與設(shè)備之間的通信?不過(guò)我后面也替大家測(cè)試過(guò)了,的確在應(yīng)用與設(shè)備之間打通了數(shù)據(jù)連接。大家感興趣的可以到我的 Gitee 倉(cāng)庫(kù)里面去看完整的通信工具測(cè)試代碼,好了好了,不寫(xiě)了,我要去擼貓了,

本文僅個(gè)人學(xué)習(xí)使用,如有錯(cuò)誤,歡迎指正, ( ? ˙?˙ )?謝謝老板!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/118974.html

相關(guān)文章

  • Elasticsearch Java Low Level REST Client(探器

    摘要:嗅探器允許從正在運(yùn)行的集群中自動(dòng)發(fā)現(xiàn)節(jié)點(diǎn)并將它們?cè)O(shè)置到現(xiàn)有的實(shí)例的最小的庫(kù),它默認(rèn)使用節(jié)點(diǎn)信息檢索屬于集群的節(jié)點(diǎn),并使用解析獲得的響應(yīng)。可以在找到客戶端嗅探器的。 嗅探器 允許從正在運(yùn)行的Elasticsearch集群中自動(dòng)發(fā)現(xiàn)節(jié)點(diǎn)并將它們?cè)O(shè)置到現(xiàn)有的RestClient實(shí)例的最小的庫(kù),它默認(rèn)使用節(jié)點(diǎn)信息api檢索屬于集群的節(jié)點(diǎn),并使用jackson解析獲得的json響應(yīng)。 與Elas...

    hiYoHoo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<