什么是网关?

负责将一个或多个设备连接至物联网平台的设备,是设备接入网络与互联网的转换器

什么是网关子设备?

无法直接与互联网/平台通信,需要借由网关实现与平台的数据连接的物联网设备

网关子设备与网关之间需要有固定的“一对一”或“一对多”拓扑关系 网关子设备与网关之间无固定绑定关系,而是由平台进行拓扑关系维护的情况,需借由第三方接入平台,使用云对云方式对接

LinkOS网关子设备处理模型

基础模型及术语定义

  • 子设备与网关之间使用各类接入协议通信,如modbus,lora私有协议,433射频私有协议等
  • 网关与linkos之间通信,使用包含但不限于2/3/4/5G/NB-IoT,LoRaWAN和以太网等方式
  • 子设备通信地址:子设备与网关之间通信时,用于对子设备进行寻址的编号,称之为“子设备通信地址”
  • 子设备数据:子设备实际需要上报的业务数据,称之为“子设备数据”
  • 网关设备编号:linkos向网关设备寻址时使用的编号

上行处理过程

  1. LinkOS实现网关与子设备物模型
  2. LinkOS注册网关和子设备,并建立网关与子设备之间的关联关系
  3. 网关采集到子设备的数据报文,应当包含“子设备通信地址”和“子设备数据”
  4. 网关将子设备数据报文,按照与linkos的通信方式,发送至linkos,应当包含“子设备通信地址”、“子设备数据”和“网关设备编号”
  5. 网关物模型将接收到的网关数据,解析出“子设备通信地址”和“子设备数据”,
  6. LinkOS根据网关与子设备的关联关系和“子设备通信地址”,寻找到对应的子设备物模型
  7. 子设备物模型进行数据解析

下行处理过程

  1. LinkOS实现网关与子设备物模型
  2. LinkOS注册网关和子设备,并建立网关与子设备之间的关联关系
  3. 子设备物模型接收到应用的下行服务请求,使用编码规则编码出设备可识别的业务数据,形成“子设备数据”
  4. LinkOS根据网关与子设备的关联关系,寻找到对应的网关物模型,并将“子设备通信地址”和“子设备数据”传递给对应的网关物模型进行编码处理
  5. 网关物模型根据网关与LinkOS之间的通信协议进行编码,并下发至对应网关,网关继而把数据发送至对应子设备

网关与网关子设备的数据解析

网关设备

数据输入结构:视接入渠道而定,网关设备的解析规则输入与终端设备相同 返回值要求:必须将输入数据解析并拆分为网关所管理的各子设备数据,返回值为对象数组

{
    "child_device_pkt": [
        {
            "child_device_comm_id": xxx, // 子设备1通信ID
            "child_device_data": xxx // 子设备1数据
        },
        {
            "child_device_comm_id": xxx, // 子设备2通信ID
            "child_device_data": xxx // 子设备2数据
        }
    ]
}

解析规则示例

function parsing(data){
    var obj = {};
    obj.child_device_pkt = [];
    child_device_pkt.push({'child_device_comm_id': 'xxxx1', 'child_device_data': 'xxxx1'}); // 子设备1数据
    child_device_pkt.push({'child_device_comm_id': 'xxxx2', 'child_device_data': 'xxxx2'}); // 子设备2数据
    return obj;
}

编码规则示例

输入字段包含2个默认字段:child_device_comm_id和child_device_data,分别对应要下发命令的网关子设备的通信ID和业务数据 返回值字段要求:视接入渠道而定,与终端设备相同

function cmd_downlink(data){
    var result = {};
    result.payload = data.child_device_comm_id + data.child_device_data;
    return result;
}

results matching ""

    No results matching ""