从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  。那就先这样啦。