Device Profile - EdgeX Foundry Documentation
Device Profile Reference - EdgeX Foundry Documentation
设备配置文件描述了EdgeX系统中的一种设备类型。由设备服务管理的每个设备都与设备配置文件关联,设备配置文件根据其支持的操作定义设备类型。
有关设备配置文件字段及其所要求的值的完整列表,请参阅设备配置文件参考。
有关设备配置文件模型及其所有属性的详细信息,请参阅元数据设备配置文件数据模型。
Identification(标识)
配置文件包含各种标识字段。Name(名称)字段是必需填写的,并且在EdgeX部署中必须是唯一的。其他字段是可选的-设备服务不使用这些字段,但可以出于信息目的填充这些字段:(下面4个字段只是起到一个信息的作用)
- Description
- Manufacturer
- Model
- Labels
DeviceResources(设备资源)字段
deviceResource是指设备内的传感器值,该值可以单独读取或写入,也可以作为deviceCommand的一部分读取或写入。它有一个用于标识的名称和一个用于信息目的的描述。
设备服务允许通过其设备RESTfull接口访问deviceResources。
deviceResource中的Attributes(特性)字段是访问特定值所需的设备服务特定参数。每个设备服务实现都有自己的一组命名值,此处需要这些命名值,例如,BACnet设备服务可能需要对象标识符和属性标识符,而蓝牙设备服务可以使用UUID来标识值。
deviceResource的Properties(属性)描述该值,并可选地请求对其执行一些简单的处理。以下字段可用:
- valueType—必填,值的数据类型。支持的类型有Bool、Int8-Int64、Uint8-Uint64、Float32、Float64、String、Binary、Object和基本类型(int、floats、Bool)的数组。数组用Float32Array、BoolArray等表示。
- readWrite—R、RW或W,指示值是可读的还是可写的。
- units—单位-表示数值的单位,如安培、摄氏度等。
- minimum—最小值-允许使用SET命令的最小值,超出范围将导致错误。
- maximum—最大值-允许设置命令的最大值,超出范围将导致错误。
- defaultValue—用于未指定值的SET命令的值。
- assertion—断言-一个字符串值,读取(处理后)与之进行比较。如果读数与断言值不同,则设备的操作状态将设置为禁用。这对于健康检查很有用。
- base—返回前,将其提升到原始读数的基础值。
- scale—比例-在返回读数之前乘以读数的系数。
- offset—偏移量—返回读数之前要添加到读数中的值。
- mask—掩码-将应用于整数读取的二进制掩码。
- shift—移位-整数读数右移的位数。
按该顺序应用由“base”、“scale”、“offset,”、“mask”和“shift”定义的处理。这是在SDK中完成的。SDK对集合操作上的传入数据应用反向转换(集合上的NB掩码转换为NYI)
来自于onvif的camera.yaml
。。。
deviceResources:
# Network Configuration
- name: "Hostname"
isHidden: false
description: "Camera Hostname"
attributes:
service: "Device"
getFunction: "GetHostname"
setFunction: "SetHostname"
properties:
valueType: "Object"
readWrite: "RW"
- name: "DNS"
isHidden: false
description: "Camera DNS"
attributes:
service: "Device"
getFunction: "GetDNS"
setFunction: "SetDNS"
properties:
valueType: "Object"
readWrite: "RW"
。。。
DeviceCommands
DeviceCommand定义了对设备多个资源的同时(批量的)读写访问。每个命名的deviceCommand应该包含许多resourceOperations。
当读数在逻辑上相关时,DeviceCommands可能很有用,例如,对于三轴加速计,将所有轴一起读取很有帮助。
resourceOperation由以下属性组成:
- deviceResource - 要访问的deviceResource的名称。
- defaultValue - 缺省值,可选,如果SET命令未指定值,则将使用该值。
- mappings - 映射,可选,允许重新映射字符串类型的读数。
设备服务允许通过与访问deviceResources相同的设备REST接口访问DeviceCommand。
deviceCommands:
-
name: "NetworkConfiguration"
readWrite: "RW"
isHidden: false
resourceOperations:
- { deviceResource: "Hostname" }
- { deviceResource: "DNS" }
- { deviceResource: "NetworkInterfaces" }
- { deviceResource: "NetworkProtocols" }
- { deviceResource: "NetworkDefaultGateway" }
[{"apiVersion": "v2","device": {"name" :"Modbus-TCP-Temperature-Sensor","description":"This device is a product for monitoring the temperature via the ethernet","labels":[ "Temperature","Modbus TCP"],"serviceName": "device-modbus","profileName": "Ethernet-Temperature-Sensor","protocols":{"modbus-tcp":{"Address" : "172.17.0.1","Port" : "502","UnitID" : "1","Timeout" : "5","IdleTimeout" : "5"}},"autoEvents":[ { "Interval":"30s","onChange":false,"SourceName":"Temperature"}],"adminState":"UNLOCKED","operatingState":"UP"}}]
对于EdgeX 2.0(爱尔兰)版本,删除了coreCommands一节,默认情况下,deviceResources和deviceCommands都可以通过Core Command Service使用。在deviceResource或deviceCommand下,将isHidden字段设置为true,以禁用外向API。