协议 - SaberGuo/thc-platform GitHub Wiki
基本需求
- 数据上传
- 获取配置文件
- 图片上传
- 设备信息更新
- 时间更新
基本格式与交互逻辑
采集数据上传格式
- 采集器发送
{
device_id: 'xxxxxx',
device_config_id: 'xxxxxx',
method: 'push_data',
package: {
'$ts': {
'$user_define_key_name': {
value: 'x'
},
'$user_define_key_name': {
value: 'x'
},
...
},
'$ts': {
'$user_define_key_name': {
value: 'x'
},
'$user_define_key_name': {
value: 'x'
},
...
},
...
}
}
- 服务器回复
{
device_id: 'xxxxxx',
method: 'data_uploaded'
ts: 1479798416
}
控制数据请求格式
- 采集器发送
{
device_id: 'xxxxxx',
method: 'pull_param'
}
- 服务器回复
{
"device_id": 35,
"device_config_id": 100,
"method":"push_param",
"image" [ //当port为image时,划归为image这个字段,当其他port为其他的时候划归为data
{
"port": "image",
"port_num": 0, //port_num start from 0
"sensor_type": "self_cam",
"keys":{"0":"image"} //keys' num start from 0
},
],
"data": [
{
"port": "serial",
"port_num": 0,
"sensor_type": "nh122",
"keys":{"0":"temperature","1":"humidity"}
},
{
"port": "ad",
"port_num": 0,
"sensor_type": "nhzd10",
"keys":{"0":"solar"}
},
],
"control":{
"data_upload_invl":"4,14,24,34,44,54 * * * *"
"data_capture_invl":"3,13,23,33,43,53 * * * *"
"img_capture_invl":"25 9,10,13,14 * * *"
}
}
- 采集器回复
{
device_id: 'xxxxxx',
method: 'param_updated'
}
图片数据上传格式
- 采集器发送
{
device_id: 'xxxxxx',
device_config_id: 'xxxxxx',
method: 'push_image',
key: 'image',
size: 2048,
ts: 1479798416
}
size代表字节数
- 服务器回复
{
device_id: 'xxxxxx',
method: 'push_image_ready'
ts: 1479798416
}
- 采集器发送图片内容,一包512字节,直到发送size==采集器通知的size,完毕后回复
{
device_id: 'xxxxxx',
method: 'image_uploaded',
ts: 1479798416
}
- 采集器发送完毕了,需要告诉服务器关闭链接
{
device_id: 'xxxxxx',
method: 'close_connection',
}
图片文件保存路径为device_id/acquisition_time.jpg
采集器发送失败服务器统一回复格式
- 服务器回复
{
method: 'failed',
ts: 1479798416
}
采集器发送设备信息更新
- 采集器发送位置信息
{
device_id: 'xxx',
method: 'update_device_info',
info: {
lat: 21.0,
lon: 112.0,
alt: 100
},
ts : 1479798416
}
- 服务器回复信息
{
device_id: 'xxx',
method: 'updated_device_info',
ts: 1479798416
}
采集器发送时间更新
- 采集器发送请求
{
method: 'update_time'
}
- 服务器回复信息
{
ts: 1479798416
}