设备属性
设备属性列表
pushMode:
- 0:设备推送定频数据,设备将以 0.5HZ 的频率定时上报 (Topic:thing/product/{device_sn}/osd)
- 1:设备推送状态数据,设备在状态变化时上报(Topic:thing/product/{device_sn}/state)
accessMode:
- r:属性只读
- rw:属性可读写 (Topic:thing/product/{gateway_sn}/property/set)
Column | Name | Type | constraint | Description | accessMode | pushMode |
---|---|---|---|---|---|---|
longitude | 经度 | double | {"max":"180","min":"-180","step":"0.01"} | 网关设备的经度 | r | 0 |
latitude | 纬度 | double | {"max":"90","min":"-90","step":"0.01"} | r | 0 | |
firmware_version | 固件版本 | text | {"length":"64"} | r | 1 | |
firmware_upgrade_status | 固件升级状态 | enum_int | {"0":"未升级","1":"升级中"} | r | 1 | |
mode_code | 机场状态 | enum_int | {"0":"空闲中","1":"现场调试","2":"远程调试","3":"固件升级中","4":"作业中","5":"待标定"} | r | 0 | |
flighttask_step_code | 机场任务状态 | enum_int | {"0":"作业准备中","1":"飞行作业中","2":"作业后状态恢复","3":"自定义飞行区更新中","4":"地形障碍物更新中","5":"任务空闲","255":"飞行器异常","256":"未知状态"} | r | 0 | |
sub_device | 子设备状态 | struct | r | 0 | ||
»device_sn | 子设备序列号(SN) | text | 0 | |||
»product_type | 子设备枚举值 | text | 格式为 {domain-type-subtype} | 0 | ||
»device_online_status | 机场停机坪上的飞行器开机状态 | enum_int | {"0":"关机","1":"开机"} | 0 | ||
»device_paired | 机场停机坪上的飞行器是否与机场对频 | enum_int | {"0":"未对频","1":"已对频"} | 0 | ||
cover_state | 舱盖状态 | enum_int | {"0":"关闭","1":"打开","2":"半开","3":"舱盖状态异常"} | r | 0 | |
supplement_light_state | 补光灯状态 | enum_int | {"0":"关闭","1":"打开"} | r | 0 | |
network_state | 网络状态 | struct | r | 0 | ||
»type | 网络类型 | enum_int | {"1":"4G","2":"以太网"} | 0 | ||
»quality | 网络质量 | enum_int | {"0":"无信号","1":"差","2":"较差","3":"一般","4":"较好","5":"好"} | 0 | ||
»rate | 网络速率 | float | {"unit_name":"千字节每秒 / KB/s"} | 0 | ||
drone_in_dock | 飞行器是否在舱 | enum_int | {"0":"舱外","1":"舱内"} | r | 0 | |
job_number | 机场累计作业次数 | int | {"unit_name":"次 / count"} | r | 0 | |
media_file_detail | 媒体文件上传细节 | struct | r | 0 | ||
»remain_upload | 待上传数量 | int | 0 | |||
wireless_link | 图传链路 | struct | r | 0 | ||
»dongle_number | 飞行器上 Dongle 数量 | int | 0 | |||
»4g_link_state | 4G 链路连接状态 | enum_int | {"0":"未连接","1":"已连接"} | 0 | ||
»sdr_link_state | SDR 链路连接状态 | enum_int | {"0":"未连接","1":"已连接"} | 0 | ||
»link_workmode | 机场的图传链路模式 | enum_int | {"0":"SDR 模式","1":"4G 融合模式"} | 0 | ||
»sdr_quality | SDR 信号质量 | int | {"max":"5","min":"0","step":"1"} | 0 | ||
»4g_quality | 总体 4G 信号质量 | int | {"max":"5","min":"0","step":"1"} | 0 | ||
»4g_uav_quality | 天端 4G 信号质量 | int | {"max":"5","min":"0","step":"1"} | 飞行器端与 4G 服务器之间的信号质量 | 0 | |
»4g_gnd_quality | 地端 4G 信号质量 | int | {"max":"5","min":"0","step":"1"} | 地面端(如遥控器、DJI Dock等)与 4G 服务器之间的信号质量 | 0 | |
»sdr_freq_band | SDR 频段 | float | 0 | |||
»4g_freq_band | 4G 频段 | float | 0 | |||
live_status | 网关当前整体直播状态推送 | array | {"size": -, "item_type": struct} | r | 1 | |
»video_id | 直播码流标识符 | text | 某路在推视频码流的标识符,格式为 {sn}/{camera_index}/{video_index}。其中 {sn} 为视频源设备序列号。{camera_index} 为相机索引,使用 {type-subtype-gimbalindex} 的格式。{video_index} 为该相机级别的视频源可以选择的码流索引。 | 0 | ||
»video_type | 视频类型 | text | {"length":"24"} | 表明视频镜头的类型,如normal/wide/zoom/infrared等 | 0 | |
»video_quality | 直播码流的质量 | enum_int | {"0":"自适应","1":"流畅","2":"标清","3":"高清","4":"超清"} | 0 | ||
»status | 直播状态 | enum_int | {"0":"未直播","1":"在直播"} | 0 | ||
»error_status | 错误码 | int | {"length":6} | 0 | ||
live_capacity | 网关设备直播能力 | struct | r | 1 | ||
»available_video_number | 可选择推流的码流数量 | int | 0 | |||
»coexist_video_number_max | 可同时推流的最大码流数量 | int | 0 | |||
»device_list | 可选择的视频设备源 | array | {"size": -, "item_type": struct} | 可选择的视频设备源(设备层,比如飞行器) | 0 | |
»»sn | 飞行器等视频源设备序列号(SN) | text | 0 | |||
»»available_video_number | 该序列号设备可以被选择推流的码流数 | int | 0 | |||
»»coexist_video_number_max | 该序列号设备可以同时被推流的码流数 | int | 0 | |||
»»camera_list | 该序列号设备上的相机列表 | array | {"size": -, "item_type": struct} | 0 | ||
»»»camera_index | 相机索引 | text | 使用 {type-subtype-gimbalindex} 的格式 | 0 | ||
»»»available_video_number | 该相机级别的视频源可以被选择推流的码流数 | int | 0 | |||
»»»coexist_video_number_max | 该相机级别的视频源可以同时被推流的码流数 | int | 0 | |||
»»»video_list | 该相机级别的视频源可以选择的码流列表 | array | {"size": -, "item_type": struct} | 0 | ||
»»»»video_index | 该相机级别的视频源可以选择的码流索引 | text | 0 | |||
»»»»video_type | 该相机级别的视频源可以选择的码流类型 | text | 0 | |||
»»»»switchable_video_types | 该视频流支持切换的视频镜头类型 | array | {"size": -, "item_type": text} | 0 | ||
rainfall | 降雨量 | enum_int | {"0":"无雨","1":"小雨","2":"中雨","3":"大雨"} | r | 0 | |
wind_speed | 风速 | float | {"unit_name":"米每秒 / m/s"} | r | 0 | |
environment_temperature | 环境温度 | float | {"unit_name":"摄氏度 / °C"} | r | 0 | |
temperature | 舱内温度 | float | {"unit_name":"摄氏度 / °C"} | r | 0 | |
humidity | 舱内湿度 | float | {"unit_name":"相对湿度 / %RH"} | r | 0 | |
electric_supply_voltage | 市电电压 | int | {"unit_name":"伏特 / V"} | r | 0 | |
working_voltage | 工作电压 | int | {"unit_name":"毫伏 / mV"} | r | 0 | |
working_current | 工作电流 | float | {"unit_name":"毫安 / mA"} | r | 0 | |
storage | 存储容量 | struct | r | 0 | ||
»total | 总容量 | int | {"unit_name":"千字节 / KB"} | 0 | ||
»used | 已使用容量 | int | {"unit_name":"千字节 / KB"} | 0 | ||
first_power_on | 首次上电时间 | int | {"unit_name":"毫秒 / ms"} | r | 0 | |
acc_time | 机场累计运行时长 | int | {"unit_name":"秒 / s"} | r | 1 | |
compatible_status | 固件一致性 | enum_int | {"0":"不需要一致性升级","1":"需要一致性升级"} | 一致性升级:指飞行器某些模块的固件版本与系统匹配版本不一致,需要进行升级。常见的情况例如:飞行器与遥控器已经升级至最新版本,但替换电池时发现电池未升级,此时一致性升级将被提示。普通升级:开发者将飞行器所有模块升级至指定固件版本。 | r | 1 |
alternate_land_point | 备降点 | struct | r | 0 | ||
»longitude | 经度 | float | {} | 0 | ||
»latitude | 纬度 | float | {} | 0 | ||
»safe_land_height | 安全高度(备降转移高) | float | {} | 0 | ||
»is_configured | 是否设置备降点 | enum_int | {"0":"未设置","1":"已设置"} | 0 | ||
»height | 椭球高度 | float | 0 | |||
height | 椭球高度 | double | {"unit_name":"米 / m"} | r | 0 | |
activation_time | 机场激活时间(unix 时间戳) | int | {"unit_name":"秒 / s"} | r | 0 | |
battery_store_mode | 电池运行模式 | enum_int | {"1":"计划模式","2":"待命模式"} | 计划模式适合规律作业场景,无任务时电池电量保持在55%~60%,电池寿命较长。待命模式适合应急作业场景,无任务时电池电量保持在90%~95%,电池寿命较短。 | r | 0 |
alarm_state | 机场声光报警状态 | enum_int | {"0":"关闭","1":"开启"} | r | 0 | |
backup_battery | 机场备用电池信息 | struct | r | 0 | ||
»switch | 备用电池开关 | enum_int | {"0":"关闭","1":"开启"} | 0 | ||
»voltage | 备用电池电压 | int | {"desc":"备用电池关闭时电压为0","max":"30000","min":"0","step":"1","unit_name":"毫伏 / mV"} | 0 | ||
»temperature | 备用电池温度 | float | {"step":"0.1","unit_name":"摄氏度 / °C"} | 保留小数点后一位 | 0 | |
drone_charge_state | 飞行器充电状态 | struct | 飞行器充电状态 | r | 0 | |
»capacity_percent | 电量百分比 | int | {"max":"100","min":"0"} | 0 | ||
»state | 充电状态 | enum_int | {"0":"空闲","1":"充电中"} | 0 | ||
emergency_stop_state | 紧急停止按钮状态 | enum_int | {"0":"关闭","1":"开启"} | r | 0 | |
position_state | 搜星状态 | struct | r | 0 | ||
»is_calibration | 是否标定 | enum_int | {"0":"未标定","1":"已标定"} | 0 | ||
»is_fixed | 是否收敛 | enum_int | {"0":"未开始","1":"收敛中","2":"收敛成功","3":"收敛失败"} | 0 | ||
»quality | 搜星档位 | enum_int | {"1":"1档","2":"2档","3":"3档","4":"4档","5":"5档","10":"RTK fixed"} | 0 | ||
»gps_number | GPS 搜星数量 | int | 0 | |||
»rtk_number | RTK 搜星数量 | int | 0 | |||
maintain_status | 保养信息 | struct | r | 0 | ||
»maintain_status_array | 保养信息数组 | array | {"size": -, "item_type": struct} | 0 | ||
»»state | 保养状态 | enum_int | {"0":"无保养","1":"有保养"} | 0 | ||
»»last_maintain_type | 上一次保养类型 | enum_int | {"0":"无保养","17":"机场常规保养","18":"机场深度保养"} | 0 | ||
»»last_maintain_time | 上一次保养时间 | date | {"unit_name":"秒 / s"} | 0 | ||
»»last_maintain_work_sorties | 上一次保养时作业架次 | int | {"max":"2147483647","min":"0","step":"1"} | 0 | ||
putter_state | 推杆状态 | enum_int | {"0":"关闭","1":"打开","2":"半开","3":"推杆状态异常"} | r | 0 | |
air_conditioner | 机场空调工作状态信息 | struct | r | 0 | ||
»air_conditioner_state | 机场空调状态 | enum_int | {"0":"空闲模式(无制冷、制热、除湿等)","1":"制冷模式","2":"制热模式","3":"除湿模式","4":"制冷退出模式","5":"制热退出模式","6":"除湿退出模式","7":"制冷准备模式","8":"制热准备模式","9":"除湿准备模式"10":"风冷准备中"11":"风冷中"12":"风冷退出中"13":"除雾准备中"14":"除雾中"15":"除雾退出中"} | 机场空调工作状态信息,空调仅存在一种工作模式 | 0 | |
»switch_time | 剩余等待可切换时间 | int | {"unit_name":"秒 / s"} | 模式切换顺序为准备模式、工作(制冷、制热、除湿)模式、退出模式、空闲模式。本属性将上报,可以切换下一个模式指令还需要等待的时间。例如当前机场空调在进入制冷模式后,必须制冷5分钟后才可以退出制冷模式,本属性将上报还需要多久退出制冷模式,为0表示随时可退出 | 0 | |
drone_battery_maintenance_info | 飞行器电池保养信息 | struct | 0 | |||
»maintenance_state | 保养状态 | enum_int | {"0":"无需保养","1":"待保养","2":"正在保养"} | 0 | ||
»maintenance_time_left | 电池保养剩余时间 | int | {"unit_name":"小时 / h"} | 0 | ||
»heat_state | 电池加热保温状态 | enum_int | {"0":"电池未开启加热或保温","1":"电池在加热中","2":"电池在保温中"} | 当飞行器舱内关机时由本物模型上报机场连接飞行器的电池加热保温信息 | 0 | |
»batteries | 电池详细信息 | array | {"size": -, "item_type": struct} | 当飞行器舱内关机时由本物模型上报机场连接飞行器的电池信息,基本数据与飞行器物模型中电池信息基本保持一致 | 0 | |
»»capacity_percent | 电池剩余电量 | int | {"max":100,"min":0} | 0 | ||
»»index | 电池序号 | enum_int | {"0":"左电池","1":"右电池"} | 0 | ||
»»voltage | 电压 | int | {"unit_name":"毫伏 / mV"} | 0 | ||
»»temperature | 温度 | float | {"unit_name":"摄氏度 / °C"} | 保留小数点后一位,正常范围-40-150°C,设备端获取不到数据的异常值为32767 | 0 | |
wpmz_version | 机场的航线解析库版本号 | text | r | 1 | ||
drc_state | DRC 链路的状态 | enum_int | {"0":"未连接","1":"连接中","2":"已连接"} | r | 0 | |
drone_authority_info | 飞行器控制权状态更新 | struct | 0 | |||
»control_source | 飞行控制权 | enum_string | {"":"未获取","A":"A控","B":"B控"} | 0 | ||
»locked | 飞行控制权是否锁定(负载控制权不支持锁定) | bool | 0 | |||
»payloads | 负载 | array | {"size": -, "item_type": struct} | 1 | ||
»»control_source | 负载控制权 | enum_string | {"":"未获取","A":"A控","B":"B控"} | 0 | ||
»»payload_index | 负载编号 | text | 负载编号,相机枚举值。非标准的 device_mode_key,格式为 {type-subtype-gimbalindex},可以参考产品支持 | 0 | ||
»»sn | 负载序列号(SN) | text | 0 | |||
user_experience_improvement | 用户体验改善计划 | enum_int | {"0":"初始状态","1":"拒绝加入用户体验改善计划","2":"同意加入用户体验改善计划"} | rw | 1 | |
silent_mode | 机场静音模式 | enum_int | {"0":"非静音模式","1":"静音模式"} | 开启静音模式,意味着:1. 风扇转速降低、空调制冷性能下降、炎热天气下作业间隔变长。2. 蜂鸣器声音将关闭,开关舱盖时请注意周围安全。3. 机场待机状态的白色指示灯关闭,其他运行状态的指示灯正常。 | rw | 1 |
设备属性推送
Topic: thing/product/{device_sn}/state 状态数据:设备在状态变化时上报
Topic: thing/product/{device_sn}/osd 定频数据:设备将以 0.5HZ 的频率定时上报
Direction: up
API 说明:
负载属性上报是指飞行器挂载的负载的属性上报,如相机的属性上报。一个负载由负载索引唯一确定(负载索引:产品类型-子类型-挂载位置 {type-subtype-gimbalIndex}),type、subtype。数值请参考:产品支持,gimbalindex的对应关系请查看 航线文件格式中的wpml:payloadPositionIndex。
当前会涉及负载属性上报的协议有 网关设备的设备属性推送
以及直播功能的直播能力更新
。 对于设备属性推送
,负载属性上报的内容为相机本身的信息,如 云台俯仰、偏航、横滚的角度等。对于直播能力更新
,负载属性上报的内容更多为相机在直播时的能力,如最大可同时推流的码流数量。负载属性具体结构体请参考下文的example。需要注意遥控器的设备属性在一条消息体中上报,而机场的设备属性推送是分多条推送的。
Data:
Column | Name | Type | constraint | Description |
---|---|---|---|---|
data | 消息内容 | text | {} | 内容可参考设备的设备属性 |
»camera_index | type-subtype-gimbalIndex | text | {} | gimbalIndex为相机位置,type、sub_type。参考:产品支持 |
Example:
Topic: thing/product/{dock_sn}/state
Topic: thing/product/{dock_sn}/osd
{
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1667220873846,
"data": {
"job_number": 492,
"acc_time": 1859010,
"activation_time": 0,
"maintain_status": {
"maintain_status_array": [
{
"state": 0,
"last_maintain_type": 17,
"last_maintain_time": 0,
"last_maintain_work_sorties": 0
}
]
},
"electric_supply_voltage": 231,
"working_voltage": 25440,
"working_current": 1120,
"backup_battery": {
"voltage": 26631,
"temperature": 27.9,
"switch": 1
},
"drone_battery_maintenance_info": {
"maintenance_state": 0,
"maintenance_time_left": 0
}
},
"gateway": "dock_sn"
}
{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"flighttask_step_code": 255,
"media_file_detail": {
"remain_upload": 0
},
"wireless_link": {
"4g_freq_band": 2.4,
"4g_gnd_quality": 0,
"4g_link_state": 0,
"4g_quality": 0,
"4g_uav_quality": 0,
"dongle_number": 0,
"link_workmode": 0,
"sdr_freq_band": 2.4,
"sdr_link_state": 0,
"sdr_quality": 0
}
},
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1667220881576,
"gateway": "dock_sn"
}
{
"tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp": 1667220916697,
"data": {
"network_state": {
"type": 2,
"quality": 0,
"rate": 5.0970001220703125
},
"drone_charge_state": {
"state": 0,
"capacity_percent": 100
},
"drone_in_dock": 1,
"rainfall": 0,
"wind_speed": 0,
"environment_temperature": 24,
"temperature": 24.9,
"humidity": 62,
"latitude": 22.907809968,
"longitude": 113.703482143,
"height": 34.174125671386719,
"alternate_land_point": {
"latitude": 22.907898319908661,
"longitude": 113.70347329676635,
"safe_land_height": 0,
"is_configured": 1
},
"first_power_on": 1631945855969,
"position_state": {
"is_calibration": 1,
"is_fixed": 2,
"quality": 5,
"gps_number": 6,
"rtk_number": 25
},
"storage": {
"total": 82045336,
"used": 51772
},
"mode_code": 1,
"cover_state": 0,
"supplement_light_state": 0,
"emergency_stop_state": 0,
"air_conditioner_mode": 0,
"battery_store_mode": 1,
"alarm_state": 0,
"putter_state": 0,
"sub_device": {
"device_sn": "1581F5BKD225D00BP891",
"device_model_key": "0-67-0",
"device_online_status": 0,
"device_paired": 1
}
},
"gateway": "dock_sn"
}
Topic: thing/product/{aircraft_sn}/state
Topic: thing/product/{aircraft_sn}/osd
{
"bid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data": {
"52-0-0": {
"measure_target_altitude": 0,
"measure_target_distance": 591.70001220703125,
"measure_target_error_state": 1,
"measure_target_latitude": 0,
"measure_target_longitude": 0,
"payload_index": "52-0-0",
"version": 1
},
"activation_time": 1667935211,
"attitude_head": 41.7,
"attitude_pitch": 2.7,
"attitude_roll": 0,
"battery": {
"batteries": [
{
"capacity_percent": 95,
"firmware_version": "02.00.20.44",
"high_voltage_storage_days": 16,
"index": 0,
"loop_times": 137,
"sn": "4BUPJ99DAD009W",
"sub_type": 0,
"temperature": 33.3,
"type": 0,
"voltage": 24303
},
{
"capacity_percent": 85,
"firmware_version": "02.00.20.44",
"high_voltage_storage_days": 5,
"index": 1,
"loop_times": 82,
"sn": "4BUPJ9EDAD01CE",
"sub_type": 0,
"temperature": 32,
"type": 0,
"voltage": 24311
}
],
"capacity_percent": 90,
"landing_power": 0,
"remain_flight_time": 0,
"return_home_power": 0
},
"distance_limit_status": {
"distance_limit": 5000,
"state": 0
},
"elevation": 0,
"firmware_version": "05.01.0214",
"gear": 1,
"height": 38.417465209960938,
"height_limit": 120,
"home_distance": 0,
"horizontal_speed": 0,
"latitude": 0,
"longitude": 0,
"maintain_status": {
"maintain_status_array": [
{
"last_maintain_flight_time": 0,
"last_maintain_time": 0,
"last_maintain_type": 1,
"state": 0
},
{
"last_maintain_flight_time": 0,
"last_maintain_time": 0,
"last_maintain_type": 2,
"state": 0
},
{
"last_maintain_flight_time": 0,
"last_maintain_time": 0,
"last_maintain_type": 3,
"state": 0
}
]
},
"mode_code": 0,
"night_lights_state": 0,
"obstacle_avoidance": {
"downside": 1,
"horizon": 1,
"upside": 1
},
"position_state": {
"gps_number": 0,
"is_fixed": 0,
"quality": 0,
"rtk_number": 0
},
"storage": {
"total": 0,
"used": 0
},
"total_flight_distance": 0,
"total_flight_sorties": 0,
"total_flight_time": 0,
"track_id": "",
"vertical_speed": 0,
"wind_direction": 0,
"wind_speed": 0
},
"tid": "2d2040eb-23b0-43dc-b7ac-64838276c4ac",
"timestamp": 1670422793916,
"gateway": "dock_sn"
}
设备属性设置
Topic: thing/product/{gateway_sn}/property/set
Direction: down
Data:
Column | Name | Type | constraint | Description |
---|---|---|---|---|
data | 消息内容 | text | {} | 内容可参考设备的设备属性 |
Example:
{
"bid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data":{
"distance_limit_status": {"state": 1}
},
"tid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp":1643268212187
}
Topic: thing/product/{gateway_sn}/property/set_reply
Direction: up
Data:
Column | Name | Type | constraint | Description |
---|---|---|---|---|
data | 消息内容 | text | {} | 内容可参考设备的设备属性 |
Example:
{
"bid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"data":{
"distance_limit_status": {
"state": {
"result": 0 // 0: 成功,1:失败,2:超时,0x123456 具体的错误原因码
}
}
},
"tid":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx",
"timestamp":1643268212187
}