概述

http转发功能,允许用户通过简单配置,将网关子设备数据转发至自己的云平台。转发服务中涉及到的相关参数(gatewayMac、serverId、deviceId、数据上报格式等)可参考相关参数获取数据格式说明

一. 转发配置

1.1 添加http转发

  1. 登录网关管理界面->服务->转发,类型选择HTTP->私有HTTP,配置完成后点击确定。<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/22567652/1639122279227-564253df-cff7-43e9-9918-8c341e6e4635.png#clientId=uf92fb60e-da3c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=756&id=u6adab2ea&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1512&originWidth=2870&originalType=binary&ratio=1&rotation=0&showTitle=false&size=214278&status=done&style=none&taskId=u3fc8b4cd-1013-4017-b87c-eecfbded92d&title=&width=1435)

1.2 基本配置

点击刚刚创建的http转发服务的编辑按钮,点击基本配置。添加相关参数。
其中 Username、Password、MD5加密、MD5盐均用于请求token时使用。如果不使能md5加密,请求token时Password将会以明文形式发送。启用MD5加密时,Password将配合MD5盐进行加密。
加密示例:
Password: test
加盐为空时,加密后的结果为:098f6bcd4621d373cade4e832627b4f6
加盐为”123123”时,加密后的结果为:3b4df34a31840b455ba7e8be9659030d
image.png

2.2 接口设置

点击接口配置,添加相关接口。接口配置为空时,将不会请求。例如:Token获取接口配置为空时,将不会请求token。

  • Token获取:网关使用”基本配置”中的用户名和密码向服务器请求token,后边所有请求都将会在http header里面添加该token。
  • 数据上报:将网关采集到的数据转发到该接口。
  • 下发获取:网关定时向服务器请求要下发的数据。该接口可以添加${gatewayMac}变量,网关在请求时,会使用网关唯一ID替换${gatewayMac}。
  • 下发结果上报:数据下发结果,会通过该接口发送至服务器。
  • 网关属性上报:网关SIM卡ID,信号强度、GPS信息(支持GPS的型号),通过该接口上报至服务器。
  • 设备属性上报:网关子设备的通信次数、丢包率、是否在线等参数,通过该接口上报至服务器。
  • 事件上报:网关子设备上线、下线事件,通过该接口上报至服务器。
  • 串口接收上报:发送到串口的数据,通过该接口,发送到http服务器。
  • 串口发送获取:网关定时向服务器请求要下发的数据。该接口可以添加${COM}变量,网关在请求时,会使用实际串口号替换${COM}。

注意:使用串口接收上报和串口发送获取功能时,需要先配置好本地资源-本地串口子设备。
image.png

3.3 高级设置

点击高级设置,修改默认参数。

  • 离线缓存:是否使能离线缓存功能。
  • 存储位置:SD卡或网关内部存储。
  • 存储大小:内部存储最大支持80M,SD卡最大支持32G(需要额外插入内存卡)。
  • 数据格式:参考私有MQTT接入附录3
  • 数据上报周期:数据上报接口请求频率。单位:秒。
  • 下发获取周期:下发获取接口请求频率。单位:秒。
  • 网关属性上报周期:网关属性上报接口请求频率。单位:秒。
  • 设备属性上报周期:设备属性上报接口请求频率。单位:秒。

image.png

二. 接口说明

网关所有请求的接口,服务器均需要返回code值,否则网关认为请求失败。
成功:{“code”: 0}
token验证失败:{“code”: -1}, 网关收到该参数,会重新请求token。

2.1 Token获取

  1. 请求方式:POST
  2. 请求参数(假设用户名为test,密码为test,未开启MD5加密):
    1. {
    2. "gatewayMac":"92320e7f173f",
    3. "password":"test",
    4. "username":"test"
    5. }
    参数含义
参数 含义
gatewayMac 网关唯一ID
username 用户名
password 密码
  1. 服务器返回:
    1. {
    2. "code":0,
    3. "token": "xxxxxxxxxxxxxxxxxxxxxxx",
    4. "validity":30
    5. }
    参数含义
参数 含义
code 0:成功;-1:代表验证失败
token 返回的token值,后边请求其它接口,都会在header里面添加该token
validity token有效期,单位:秒。需要大于20s。网关会在token到期前10秒重新获取token

2.2 数据上报

  1. 请求方式:POST
  2. 请求参数
    1. {
    2. "deviceId":"1122",
    3. "gatewayMac":"92320e7f173f",
    4. "serverId":"standard",
    5. "time":1639040484593,
    6. "params":
    7. {
    8. "wendu":7
    9. }
    10. }
    参数含义
参数 含义
gatewayMac 网关唯一ID
serverId 转发服务ID
deviceId 网关子设备标识
time UTC事件戳,单位:毫秒。
params 子设备数据点的值(数据格式可变,参考私有MQTT接入附录3)
params->wendu 点表配置中,数据点标识
  1. 服务器返回:
    1. {"code": 0}
    参数含义
参数 含义
code 0:表示成功;-1:token验证失败,需要重新请求token。其它:失败

2.3 下发获取

  1. 请求方式:GET
  2. 请求参数:该接口可以在URL里面配置网关唯一ID,例如网关唯一为92320e7f173a,接口信息配置为:

    http://192.168.0.6:8899/data/dataSet?gatewayMac=${gatewayMac}
    则实际请求接口为:
    http://192.168.0.6:8899/data/dataSet?gatewayMac=92320e7f173a

  3. 服务器返回

    1. {
    2. "code": 0,
    3. "id": 123,
    4. "gatewayMac":"92320e7f173a",
    5. "deviceId":"1122",
    6. "data":{
    7. "wendu":11
    8. }
    9. }
  4. 注意:如无待下发数据

    1. url里面含有${gatewayMac},则只需返回
      1. {"code": 0}
    1. url里面不含有${gatewayMac},则返回
      1. {"code": 0, "gatwayMac":"92320e7f173a"}
      参数含义
参数 含义
code 0:表示成功;-1:token验证失败,需要重新请求token。其它:失败
id 请求标识。数据下发结果上报时,会使用该参数
deviceId 子设备唯一ID
gatewayMac 网关唯一ID
data 待下发的数据
data->wendu 点表配置中,数据点标识

2.4 下发结果上报

  1. 请求方式:POST
  2. 请求参数
    1. {
    2. "gatewayMac": "92320e7f173f",
    3. "serverId": "standard",
    4. "params": {
    5. "deviceId": "1122",
    6. "id": 123,
    7. "result": {
    8. "wendu": {
    9. "success": true
    10. }
    11. }
    12. }
    13. }
    参数含义
参数 含义
gatewayMac 网关唯一ID
serverId 转发服务标识
params 下发结果相关参数
params->deviceId 子设备标识
params->id 2.3中数据下发参数的id
params->result 数据下发结果
params->result->wendu 点表配置中,数据点标识
params->result->wendu->success 执行结果。true:成功;false:失败
  1. 服务器返回:
    1. {"code": 0}
    参数含义
参数 含义
code 0:表示成功;-1:token验证失败,需要重新请求token。其它:失败

2.5 网关属性上报

  1. 请求方式:POST
  2. 请求参数
    1. {
    2. "gatewayMac":"92320e7f173f",
    3. "serverId":"standard",
    4. "params":{
    5. "csq":23,
    6. "iccid":"2334CA457ABCCCAD",
    7. "imei":"866569876387634"
    8. "operators":"LT",
    9. "simInsert":true
    10. }
    11. }
    参数含义
参数 含义
gatewayMac 网关唯一ID
serverId 转发服务标识
params 网关属性相关参数
params->simInsert SIM卡是否已插入。true:插入;false:未插入
params->iccid SIM卡唯一ID,SIM卡欠费后,用户可通过该ID进行充值
params->operators SIM卡运营商。”LT”:中国联通;”YD”:中国移动;”DX”:中国电信
params->csq 4G信号强度。范围0-31。31时信号强度为100%
params->imei 4G模组唯一ID。
  1. 服务器返回:
    1. {"code": 0}
    参数含义
参数 含义
code 0:表示成功;-1:token验证失败,需要重新请求token。其它:失败

2.6 设备属性上报

  1. 请求方式:POST
  2. 请求参数
    1. {
    2. "gatewayMac":"92320e7f173f",
    3. "serverId":"standard",
    4. "params":{
    5. "siemens001":{
    6. "CommFailCnt":2410,
    7. "CommTotalCnt":4275,
    8. "code":0,
    9. "isOnline":true,
    10. "lastCommRTC":"2021-12-09 16:56:48",
    11. "lossRate":0.3605086,
    12. "msg":""
    13. }
    14. }
    15. }
    参数含义
参数 含义
gatewayMac 网关唯一ID
serverId 转发服务标识
params 设备属性相关参数
params->siemens001 子设备标识
params->siemens001->CommFailCnt 网关与子设备siemens001通信失败次数
params->siemens001->CommTotalCnt 网关与子设备siemens001通信总次数
params->siemens001->code 网关与子设备siemens001通信错误码。0:无错误;其它:通信错误,原因见msg字段
params->siemens001->isOnline 子设备siemens001是否在线。true:在线;false:离线
params->siemens001->lastCommRTC 网关与子设备siemens001最后一次通信的时间
params->siemens001->lossRate 网关与子设备siemens001通信丢包率(通信失败次数/总通信次数 * 100%)
params->siemens001->msg 通信错误原因。无错误时为空
  1. 服务器返回:
    1. {"code": 0}
    参数含义
参数 含义
code 0:表示成功;-1:token验证失败,需要重新请求token。其它:失败

2.7 设备事件上报

  1. 请求方式:POST
  2. 请求参数
    1. {
    2. "gatewayMac": "92320e7f173f",
    3. "serverId": "1231231",
    4. "params": {
    5. "connect": true,
    6. "device": "modbus"
    7. }
    8. }
    参数含义
参数 含义
gatewayMac 网关唯一ID
serverId 转发服务标识
params 设备事件参数
params->siemens001 子设备标识
params->connect true:子设备上线;false:子设备离线
params->device 设备标识
  1. 服务器返回:
    1. {"code": 0}
    参数含义
参数 含义
code 0:表示成功;-1:token验证失败,需要重新请求token。其它:失败

2.8 串口透传数据上报

  1. 请求方式:POST
  2. 请求参数: 该接口可以在URL里面配置网关唯一ID和COM口,例如网关唯一ID为92320e7f173a,COM口为COM1。接口信息配置为:

http://127.0.0.1:8899/data/serial/send?gatewayMac=${gatewayMac}&com=${COM}
实际请求地址为:
http://127.0.0.1:8899/data/serial/send?gatewayMac=92320e7f173a&com=COM1
串口参数,可以为任意参数。参数放在http请求的body里面。

  1. 服务器返回:

    1. {"code": 0}

    2.9 串口透传数据下发

  2. 请求方式:GET

  3. 请求参数:该接口可以在URL里面配置网关唯一ID,例如网关唯一为92320e7f173a,接口信息配置为:

http://127.0.0.1:8899/data/serial/receive?gatewayMac=${gatewayMac}
则实际请求接口为:
http://127.0.0.1:8899/data/serial/receive?gatewayMac=92320e7f173a

  1. 服务器返回(该接口的body里面存储串口发送的数据,可能不是json。因此需要在http header里面返回code和COM,如:header[“code”] = “0”; header[“COM”] = “COM1”,当code不配置时,不进行错误检查。COM不配置时,默认将数据发送的网关的所有串口。)。将需要发送到串口的数据放到body里面,