3.5 云端配置

云端推送与云存储配置

3.5.1 云端推送

目前支持多种平台推送,其他协议如有需求,联系售后,可持续迭代添加,修改推送后,需要重启服务生效

3.5.1.1 协议文档

网关内置多种平台协议,内置MQTT为本公司定义的简易协议,文档参照内置MQTT协议

其他协议文档参考平台官网

3.5.1.2 自定义协议

简单的mqtt格式用户可以自己通过自定义MQTT协议适配

格式如下,完成方法定义即可

function init()
--[[
此函数在mqtt连接之前调用

global_config为全局变量,可以在任何函数内调用,读写

return 值为mqtt的连接配置

配置可以包括:
address 地址
username 用户名 可空
password 密码 可空
client_id ClientId 可空默认为网关ID
interval 保持在线的频率 可空 默认为10
will_msg 遗嘱消息 可空
will_topic 遗嘱消息topic 可空
will_qos 遗嘱消息 QoS 可空
--]]
    config = {}; -- config的配置
    config.address = 'tcp://127.0.0.1:1883'
    config.interval = 30
    config.client_id = 'test'
    global_config.topic = 'data/' .. global_config.gateway_id .. '/v1'
    return config
end

function gen_message(message)
--[[
此函数整理消息格式
出入参均为字符串

入参示例如下
[{"device_id": "Test", "ts": 1561994655032, "device_type": "fanuc", "values": [{"name": "cnc_products", "value": 20559}, {"name": "cnc_type", "value": "FANUC 0i MF"}, {"name": "device_state", "value": 0}, {"name": "cnc_mecpos", "value": [{"axis": "X", "value": -84.4}, {"axis": "Y", "value": 2.986}, {"axis": "Z", "value": -108.181}]}, {"name": "cnc_alarm", "value": [{"alarm_no": 1, "alarm_type": "T01", "alarm_msg": "待机中"}, {"alarm_no": 204, "alarm_type": "XXX", "alarm_msg": "急停"}]}]}]
--]]
    return message
end

function push_message(message)
--[[
此函数处理推送
入参为 gen_message函数生成的字符串
--]]
    log(message)
    push(cjson.encode(message), global_config.topic)
end

function init_push(devices)
--[[
此函数在第一次连接时调用
入参为所有设备
--]]


end
3.5.1.2.1 内置函数和变量
  • push(data,topic,qos=0) 推送函数
  • log(…) 打印日志
  • box.tsformat(ts, format) 时间格式化 format参照C语言时间格式
  • box.now() 当前时间
  • box.random(m,n) 随机数
  • box.gateway_id 设备id
  • box.fingerprint 设备指纹
  • box.request(url,method,data) 请求设备内置的http接口

3.5.1.3 反向控制

内置MQTT支持反向控制,具体控制方法参照API接口

3.5.2 云存储配置

目前支持多种云存储协议,包括Amazon S3、FTP、NFS、Windows文件共享,WebDav等,其他协议如有需求,联系售后,可持续迭代添加,修改推送后,需要重启服务生效

具体使用方法见 DNC手册