3.5 云端配置
云端推送与云存储配置
3.5.1 云端推送
目前支持多种平台推送,其他协议如有需求,联系售后,可持续迭代添加,修改推送后,需要重启服务生效
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 .address = 'tcp://127.0.0.1:1883'
config.interval = 30
config.client_id = 'test'
config.topic = 'data/' .. global_config.gateway_id .. '/v1'
global_configreturn 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函数生成的字符串
--]]
(message)
log(cjson.encode(message), global_config.topic)
pushend
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手册