CoAP服务端
简介
- 物联网是在互联网的基础上延伸和扩展的一种网络,其用户端延伸和扩展到了任何物品之间,彼此进行信息交换和通信,目的是实现所有物品与网络的连接,从而方便识别、管理和控制。
- 无线物联网的特点包括:全面感知、实时准确传递物品信息、利用智能计算技术对海量数据进行分析和处理,以实现智能化控制。
- 由于无线物联网中的设备很多都是资源受限型的,这些设备只有少量的内存空间和有限的计算能力。为此,IETF(Intemet Engineering Task Force)的CoRE(Constrained RESTful Environment)工作组为受限节点制定相关的REST(Representational State Transfer)形式的应用层协议。这就是CoRE工作组正在制订的CoAP(Constrained Application Protocol)协议。
说明
该驱动为CoAP服务端,通过定义请求方式和请求地址(类似于HTTP协议的请求方式和路由),以及解析脚本,将CoAP客户端发送的数据解析为 设备数据点数据
配置说明
1. 选择驱动
在系统模型管理界面中选择要配置的模型,右侧选项卡选择设备配置,在设备驱动一栏选择CoAP服务端。若无该选项时,点击右侧的驱动市场按钮在线安装驱动。
###2. 驱动配置参数
(1)请求方式
请求方式分为GET,POST,PUT,DELETE,根据CoAP客户端实际的请求方式配置。
(2)请求地址
类似于HTTP中的URL,例如:CoAP实际的请求地址为(coap://192.168.xx.xx:5683/tag),则驱动配置的请求地址配置为/tag
(3)自定义脚本
自定义脚本用来将CoAP客户端发送的payload解析为各个数据点的实际值,脚本语言采用javaScript,一部分为固定格式:
/**
* 数据处理脚本,解析从客户端收到的数据并转换为平台规定的数据格式
*
* str参数为客户端向服务端发送的数据包中的payload消息
* 下面是解析脚本的示例,其中,接收的消息格式为:
* {
* "id": "coap1",
* "device": {
* "tags": [{
* "name": "COAPDATA1",
* "id": "COAPDATA1",
* "value": false
* }, {
* "name": "COAPDATA2",
* "id": "COAPDATA2",
* "value": 1
* }, {
* "name": "COAPDATA3",
* "id": "COAPDATA3",
* "value": 20.32
* }, {
* "name": "COAPDATA4",
* "id": "COAPDATA4",
* "value": 12.65464
* }]
* }
* }
* @param {string} str 数据包中的payload
* @return {Object} 返回数据,为对象类型,Points字段为数据点字段,Ack为应答字段
*/
function ParseHandle(str) {
payload = JSON.parse(str);
if (payload == null) {
return [];
}
if (payload.id == undefined) {
return [];
}
var nodeId = payload.id;
var points = [];
for (let i = 0; i < payload.device.tags.length; i++) {
points.push({nodeId:nodeId, tagId: payload.device.tags[i].id, value:payload.device.tags[i].value});
}
var ack = "设备"+nodeId+"接收到数据";
return {Points:points, Ack:ack};
}