服务名称:设备服务
模块名称:device-service
设备服务,是Fox-Edge中的系统级服务,它作用是负责将对南向设备的通讯报文,提供了一个通讯报文的编码/解码的框架。
开发者使用 Java 或者 Javascript 为南向 智能设备 进行 解码器 的代码开发后,可被该服务引擎加载并管理起来。
那么,该服务在运行期间,将对来自 上层服务 对南向设备的操作请求,自动选择相应型号的解码器代码,进行设备通讯报文的 自动编码 , 并经过 Redis 消息队列的 Topic 发送给对应的 通道服务,发送给南向的智能设备。
同时,南向设备经过通道服务返回的数据报文,也会通过经过 Redis 消息队列的 Topic 发送给设备服务。 设备服务,根据 设备-通道 绑定关系,自动选择对应的解码器进行通讯报文的 自动解码 ,得到可用的 设备数据 , 并分发给对应的上层服务。
它主要是提供了一个完整的 设备驱动引擎 ,减少了开发者们对接南向智能设备时的心智负担。让开发者们,只需要专注的为智能设备编写通讯协议解码器, 即可实现通过Fox-Edge对南向智能设备的自动化管理。
它是一个关键性的基础服务,被定义为 系统 级别。
在组件仓库中,选择device-service组件进行下载和安装,同时下载安装必要的 静态解码器 、 动态解码器 、动态模板
静态解码器,是JAVA开发的JAR解码器,它在开发完成之后,被开发者上传到云端仓库,供大家下载安装使用。
注意:这些静态代码的特性,下载安装或者更新之后,必须重启设备服务。
动态解码器,是JavaScript开发的JS解码器,它在开发完成之后,被开发者上传到云端仓库,供大家下载安装使用。
它具有动态的特性,不需要重启设备服务。
动态模板,是Json格式的文档配置,它在开发完成之后,被开发者上传到云端仓库,供大家下载安装使用。
它主要是配合某些支持模板化配置的设备解码器,例如,ModBus、DLT645、S7这些设备
它具有动态的特性,不需要重启设备服务。
在Fox-Edge之中安装设备服务之后,会自动生成 服务名称:device-service 和配置名称:serverConfig 的默认系统参数,作为该服务的工作参数。
该参数主要是指明,是否需要对某个设备进行后台日志的报文打印,帮助开发者和工程人员,了解设备服务是否发送/接收到该设备的报文。 方便在现场进行快速的问题定位。
{
"logger": true,
"deviceName": "范例(ModBus):正泰三相电表DT-SU666"
}
配置说明:记录某个设备的通信日志
{
"logger": true, -----------------------------------是否记录后台日志
"deviceName": "范例:TCL柜式空调(KPRd)"------------指定的设备名称
}
在Fox-Edge之中安装设备服务之后,会自动生成 服务名称:device-service 和配置名称:decoderConfig 的默认系统参数,作为该服务的工作参数。
该参数主要是指明,是否哪些JAR解码器需要被设备服务启动加载。
{
"list": [
{
"fileName": "fox-edge-server-protocol-haiwu-air-v100.jar",
"load": true,
"createTime": 1717496884837,
"updateTime": 1717496884837
},
{
"fileName": "fox-edge-server-protocol-haiwu-air-v200.jar",
"load": true,
"createTime": 1717496672063,
"updateTime": 1717496672063
}
]
}
{
"list": [
{
"fileName": "fox-edge-server-protocol-haiwu-air-v100.jar",-------解码器JAR包的文件名称
"load": true,----------------------------------------------------是否启用该解码器
"createTime": 1717496884837,-------------------------------------配置项的创建时间,
"updateTime": 1717496884837--------------------------------------配置项的修改时间,
},
{
"fileName": "fox-edge-server-protocol-haiwu-air-v200.jar",
"load": true,
"createTime": 1717496672063,
"updateTime": 1717496672063
}
]
}
在安装通道服务和设备解码器之后,设备服务会提取解码器的 设备厂商 和 设备型号 信息,并通告给管理服务。 此时,设备管理页面,就会出现该解码器提供的设备信息,允许用户添加设备到Fox-Edge中,进行自动化的管理。
其中,设备的配置参数,采用的是 JSON格式 ,具体的JSON格式,是由解码器所指定的,此时你需要去了解自己选择的解码器的参数格式要求。
Fox-Edge对设备进行通讯操作的时候,会根据这些配置信息,选择对应的解码器和JSON配置参数进行编码/解码,并将报文发送给对应的通道服务。
MODBUS的设备解码器,它指明了必须填写devAddr/modelName/modbusMode参数,那么按该解码器的要求,填入指定的参数
{
"devAddr": 50,
"modelName": "正泰集团股份有限公司|三相电表(DT-SU666)|寄存器定义表",
"modbusMode": "RTU"
}
如果安装了 控制器服务 和 持久化服务 ,那么设备编码/解码后得到的设备数据,可用在 设备数值 页面,设备记录 页面中查看到
修改完成 JAR加载配置 后,重启设备服务才能生效
JAR加载配置 已经提供了另一个管理界面,进行可视化管理,不需要在系统参数中进行修改
3、解码器安装和升级后,需要进行重启设备服务,才能生效