從Device-Simple聊下EdgeX2.0的變化

語言: CN / TW / HK

前言

之前我們簡單聊過EdgeX1.3Hanoi版本,使用Github上提供的device virtual例子新建設 備,傳送指令等等。7月初的時候EdgeX2.0 Ireland版本已經發布,那我們就從device-simple 的例子來看一下有啥新的變化吧。by the way,強烈建議先看一看官網的例子

 

檔案結構

  • 首先建立一個EdgeXFoundry資料夾,在像官網那樣先將device-sdk-go資料夾拉下來,然後再新建一個device-simple資料夾用來寫本次的例子。我們來看一下divice-simple裡面有啥。有資料夾cmd/ config/ driver/ 還有資料夾根目錄下的一些配置檔案。

  • 文中有一處需要執行Make build。我這邊使用的機器是執行Ubuntu20.04的版本,在使用Make build的時候會出現這種問題No package 'libczmq' found。這可能是缺少libczmq環境導致的,於是我們可以執行下面兩句指令來解決問題。之後再執行Make build就可以了。

 

/CMD

configuration.toml

configuration.toml檔案大概是最總的配置檔案了——裡面詳細配置還得看官網文件。裡面最需要改的就是Service裡面的Host,應該改成執行EdgeX機器的ip地址。

 

/device

cmd裡面的res資料夾裡有devices和profile兩個資料夾,devices裡的simple-device裡寫的是DeviceList。跟以前(1.3)不一樣的是之前會將裝置都寫在外面的configuration.toml檔案中。分開來寫看起來更加清晰明瞭。DeviceList裡面是這樣寫的:

這裡說得很明確,定義了裝置名稱、DeviceProfile(DeviceProfile在EdgeX中名字要求是唯一的)、裝置描述、標籤等等。在[DeviceList.AutoEvents]這裡可以定義自動時間的時間間隔[Interval],Onchange的選項以及裝置的屬性名稱。在這裡多說一嘴,SourceName對應的就是裝置的DeviceProfile中定義的DeviceResource

/profile

/profile資料夾裡面的檔案就是DeviceProfile了,DeviceProfile定義了一類裝置擁有的屬性,以及屬性的數字型別。以下面RandNum-Device-01的DeviceProfile為例,我們可以看到下面的能配置名稱,製造商、Model、描述、deviceResource;還能配置deviceCommand。在EdgeX2.0版本中已經不需要再寫coreCommand了。

我們可以再說一個DeviceProfile跟實際使用Command向裝置傳送指令的例子。在啟動了Device-Simple之後有一個自定義裝置。下面是這個裝置的DeviceProfile,以及通過REST的方式查詢到這個裝置的Switch指令。這裡通過/api/v2/device/name/{devicename}/{deviceCommand} 查詢到裝置的Switch指令。而這個Switch指令在DeviceProfile中也已經定義好了。例如說Switch的指令設定了可讀可寫,對應的deviceResource。

 

 

寫在最後:

因為文章篇幅的原因(我忘了截圖),那這次我們就先說下EdgeX2.0中Device Service SDK中配置的東西。下一篇筆記說下當裝置主動傳送資訊給EdgeX和EdgeX下發指令給裝置時執行的流程是怎樣的,都運行了檔案。如果你覺得這篇筆記能幫到你,或者你覺得寫得還可以,可以去關注一下公眾號 ProgrammerHe  。那就先這樣啦。