M4T/M4N Device Properties
Device Attribute List
-
pushMode:
- 0: Device sends periodic data at a frequency of 0.5Hz (Topic: thing/product/{device_sn}/osd)
- 1: Device sends state data upon state changes (Topic: thing/product/{device_sn}/state)
-
accessMode:
- r: Read-only attribute
- rw: Read and write attribute (Topic: thing/product/{gateway_sn}/property/set)
Column | Name | Type | constraint | Description | accessMode | pushMode |
---|---|---|---|---|---|---|
payloads | Payload Status | array | {"size": -, "item_type": struct} | r | 1 | |
»payload_index | Payload Index | text | Payload index, format is {type-subtype-gimbalindex} | r | 1 | |
»sn | Payload Serial Number (SN) | text | r | 1 | ||
mode_code | Drone status | enum_int | {"0":"Standby","1":"Takeoff preparation","2":"Ready for takeoff","3":"Manual flight","4":"Automatic takeoff","5":"Waypoint flight","6":"Panorama photo","7":"Smart follow","8":"ADS-B avoidance", "9":"Automatic return","10":"Automatic landing","11":"Forced landing","12":"Three propeller landing","13":"Upgrading","14":"Not connected","15":"APAS","16":"Virtual joystick mode", "17":"Rectangle","18":"Polygon","19":"Tilt photography","20":"Reserved","21":"Precision shooting","22":"Time-lapse photography","23":"Orbit","25":"Spiral","26":"Ultra HD", "27":"Intelligent transmission marking mode","28":"Infrared tracking","29":"Intelligent mission waypoint flight","30":"Intelligent mission polygon terrain following","31":"Intelligent mission single orbit","32":"Panorama smart detection","33":"Security smart detection", "34":"GPS escape mode","35":"Abnormal mode state (when planner process crashes)","36":"Swarm formation mode","37":"Quick task","38":"Modeling ring mode","39":"KML waypoint mode"} | r | 0 | |
distance_limit_status | Drone distance limit status | struct | rw | 0 | ||
»state | Distance limit enabled | enum_int | {"0":"Not set","1":"Set"} | 0 | ||
»distance_limit | Distance limit | int | {"max":"8000","min":"15","step":"1","unit_name":"meters / m"} | 0 | ||
»is_near_distance_limit | Approaching the set distance limit | enum_int | {"0":"Not reached","1":"Approaching limit"} | r | 0 | |
cameras | Drone camera information | array | {"size": -, "item_type": struct} | r | 0 | |
»[array_item] | Elements in array | struct | ||||
»»payload_index | Payload index | text | 68-0-0 | Payload index, camera enumeration value. Non-standard device_mode_key, format is {type-subtype-gimbalindex}, refer to the product support page | r | 0 |
»»camera_mode | Camera mode | enum_int | {"0":"Photo","1":"Video"} | Camera mode | r | 0 |
»»zoom_factor | Zoom factor | float | {"max":160,"min":1} | r | 0 | |
»»ir_zoom_factor | Infrared zoom factor | float | {"max":16,"min":1} | r | ||
»»photoStorageSettings | Photo storage capabilities | String in array | {"zoom": Zoom, "wide": Wide-angle, "ir": Infrared, "NightVision": Night vision } | |||
»»videoStorageSettings | Video storage capabilities | String in array | {"zoom": Zoom, "wide": Wide-angle, "ir": Infrared, "NightVision": Night vision } | |||
horizontal_speed | Horizontal speed | float | {"unit_name":"meters per second / m/s"} | r | 0 | |
vertical_speed | Vertical speed | float | {"unit_name":"meters per second / m/s"} | r | 0 | |
longitude | Current longitude | float | r | 0 | ||
latitude | Current latitude | float | r | 0 | ||
height | Absolute height | float | Height relative to Earth's ellipsoid, calculated as: height relative to the takeoff point + ellipsoid height of the takeoff point | r | 0 | |
elevation | Height relative to the takeoff point | float | r | 0 | ||
attitude_pitch | Pitch axis angle | float | r | 0 | ||
attitude_roll | Roll axis angle | float | r | 0 | ||
attitude_head | Yaw axis angle | int | Yaw axis angle relative to true north (meridian), with 0 to 6 o'clock being positive and 6 to 12 o'clock being negative | r | 0 | |
home_distance | Distance to home point | float | r | 0 | ||
battery | Drone battery information | struct | r | 0 | ||
»capacity_percent | Remaining battery percentage | int | {"max":100,"min":0} | r | 0 | |
»remain_flight_time | Remaining flight time | int | Unit: seconds | r | 0 | |
position_state | Satellite search state | struct | r | 0 | ||
»coordinate_sys | RTK coordinate system | Int | {0: WGS84, 1: RTK mobile station} | r | 0 | |
»fix_sta | Fix status | Int | {0: Not fixed, 1: Fixed} | |||
»is_fixed | Is converged | enum_int | {"0":"Not started","1":"Converging","2":"Converged successfully","3":"Convergence failed"} | r | 0 | |
»quality | Satellite quality level | enum_int | {"1":"Level 1","2":"Level 2","3":"Level 3","4":"Level 4","5":"Level 5"} | r | 0 | |
»rtk_inpos | Is RTK module in position | int | {0: Not in position, 1: In position} | r | 0 | |
»rtk_used | Is RTK positioning used | Int | {0: Not used, 1: Used} | r | 0 | |
»rtk_hgt | RTK height | Double | r | 0 | ||
»rtk_lat | RTK latitude | Double | r | 0 | ||
»rtk_lon | RTK longitude | Double | r | 0 | ||
»gps_number | Number of GPS satellites | int | r | 0 | ||
»rtk_number | Number of RTK satellites | int | r | 0 | ||
{type-subtype-gimbalindex} | Payload index | struct | {{type-subtype-gimbalindex}_cBGPzxWKRQ} | r | 0 | |
»gimbal_pitch | Gimbal pitch axis angle | double | {"max":"180","min":"-180","step":0.1,"unit_name":"degrees / °"} | r | 0 | |
»gimbal_roll | Gimbal roll axis angle | double | {"max":"180","min":"-180","step":0.1,"unit_name":"degrees / °"} | r | 0 | |
»gimbal_yaw | Gimbal yaw axis angle | double | {"max":"180","min":"-180","step":0.1,"unit_name":"degrees / °"} | r | 0 | |
»payload_index | Payload index, format: {type-subtype-gimbalindex} | text | r | 1 | ||
»zoom_factor | Zoom factor | double | r | 0 | ||
activation_time | Drone activation time (unix timestamp) | int | {"unit_name":"seconds / s"} | r | 0 | |
night_lights_state | Drone night light status | enum_int | {"0":"Off","1":"On"} | rw | 0 | |
height_limit | Drone altitude limit | int | {"max":"1500","min":"20","step":"1","unit_name":"meters / m"} | rw | 0 | |
is_near_height_limit | Approaching the set altitude limit | enum_int | {"0":"Not reached","1":"Approaching limit"} | r | 0 | |
is_near_area_limit | Approaching no-fly zone | enum_int | {"0":"Not reached","1":"Approaching limit"} | r | 0 | |
obstacle_avoidance | Drone obstacle avoidance status | struct | rw | 0 | ||
»horizon | Horizontal obstacle avoidance status | enum_int | {"0":"Off","1":"On"} | Note: Drone currently does not differentiate between obstacle types | 0 | |
»upside | Upside obstacle avoidance status | enum_int | {"0":"Off","1":"On"} | Note: Drone currently does not differentiate between obstacle types | 0 | |
»downside | Downside obstacle avoidance status | enum_int | {"0":"Off","1":"On"} | Note: Drone currently does not differentiate between obstacle types | 0 | |
total_flight_time | Cumulative flight time | Int | Unit: seconds | r | 0 | |
total_armed_time | Cumulative time for armed flights | Int | Unit: seconds | r | 0 | |
alarm_status | Alarm status | Int | {0: No alarm, 1: Alarm} | 0 | ||
pos_type | RTK status | Int | {0: No solution, 1: Position set by FIX POSITION command, 2: Not supported, 8: Doppler information exported, 16: Single point positioning, 17: Pseudorange differential solution, 18: SBAS positioning, 32: L1 float solution, 33: Ionosphere-free float solution, 34: Narrow lane float solution, 48: L1 fixed solution, 49: Wide lane fixed solution, 50: Narrow lane fixed solution, 52: Pure INS positioning solution, 53: Combined INS and single point solution, 54: Combined INS and pseudorange differential positioning, 55: Combined INS and carrier phase differential float solution, 56: Combined INS and carrier phase differential fixed solution} | 0 | ||
wireless_link | Link status | struct | r | 0 | ||
»fourth_generation_uavQuality | 4G signal strength | Int | r | 0 | ||
payload_Index | Gimbal payload | struct | r | 0 | ||
»gimbal_pitch | Gimbal pitch angle | double | 0 | |||
»gimbal_roll | Gimbal roll angle | double | 0 | |||
»gimbal_yaw | Gimbal yaw angle | double | 0 | |||
»payload_index | Payload ID | text | 0 | |||
»zoom_factor | Zoom factor | Int | 0 | |||
lte_card_is_detected | Is SIM card inserted | int | {0: No card, 1: Card inserted} | {0: No card, 1: Card inserted} | ||
lte_signal | 44G signal | int | {0,100} | |||
lte_status | 4G card status | int | {0: Does not support LTE module, 1: Off, 2: Not connected, 3: Connected but network unreachable, 4: Connected} | {0: Does not support LTE module, 1: Off, 2: Not connected, 3: Connected but network unreachable, 4: Connected} | ||
remote_id_status | Remote ID operational status | int | {0: Off, 1: On, 2: Self-check abnormal} | |||
control_source | Current control source | text | ||||
commander_mode_lost_action | Flight point failure action | enum_int | {"0":"Continue waypoint flight task","1":"Exit waypoint flight task, perform normal failure action"} |
Payload Report
Topic: thing/product/{device_sn}/state
Direction: up
Direction: up (Device -> Cloud)
Data:
Column | Name | Type | Remarks |
---|---|---|---|
payload_list | Payload List | array | |
»payload_id | Payload ID | int | |
»payload_type | Payload Type | int | |
»is_online | Online Status | int | |
»last_active_time | Last Active Time | Long | |
»payload_position | Payload Position | int | |
»psdklib_version | PSDK Version | String | |
»payload_version | Payload Version | String |
Example:
{
"bid": "6b3665e1-be0f-4c7c-86ee-e387edd668e7",
"data": {
"payloads": [{
"last_active_time": 315535819380,
"payload_id": 10001,
"payload_index": "10306-0-0",
"payload_position": 2,
"payload_version": "",
"psdklib_version": "",
"is_online": 1
}]
},
"gateway": "TH7923350808",
"tid": "c441054b-88f7-4d88-ae66-2732f803310c",
"timestamp": 1724054078099
}