liusuyi
2025-12-19 e0a6ad18bb69cdba48064327a439efca5673dcf1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
syntax = "proto3";
option java_package = "com.ard.tianyu.netty.protobuf";
option java_outer_classname = "TelemetryDataPB";
 
//下行遥测
message TelemetryData{
  double lng = 1;//经度
  double lat = 2;//纬度
  float altitude = 3;//海拔高度(椭球高)(单位:米)[与遥控器显示值不同源,可能不一致。会受周围气压湿度等环境影响,数据差异及误差比较大]
  float ultrasonic = 4;//相对高度(单位:米)[飞行器距地面10米以下,此值为真实距地距离,大于10米时为距起飞点的相对高度]
  float pitch = 5;//俯仰角
  float roll = 6;//横滚角
  float yaw = 7;//偏航角
  float airspeed = 8;//空速(单位:米/秒)
  float velocity = 9;//地速(单位:米/秒)
  uint64 timestamp = 10;//时间戳
  float ptpitch = 11;//载荷俯仰角
  float ptroll = 12;//载荷横滚角
  float ptyaw = 13;//载荷航向角
  float zoomfactor = 14;//载荷当前倍数
  string boxSn = 15;//云盒子编号
  string batteryPower = 16;//电池电量,多个电池以下划线分割,如:80_60
  uint32 satelliteCount = 17;//卫星计数
  uint64 taskId = 18;//任务编号
  double rtkLng = 19;//rtk经度
  double rtkLat = 20;//rtk纬度
  float rtkHFSL = 21;//rtk海拔高度(平均海平面高度)(单位:米)
  uint32 rtkPositionInfo = 22;//rtk状态(值为50时[rtk数据fix固定解],rtk的经纬度及海拔高度值可用)
  uint32 airFlyTimes = 23;//当前架次飞行时长(单位:秒) [起飞->落地 视为一个架次]
  float airFlyDistance = 24;//当前架次飞行实际距离(单位:米)
  string uavSn = 25;//无人机编号
  string uavModel = 26;//无人机型号
  float homeRange = 27;//距降落点水平直线距离(单位:米)
  uint32 flightMode = 28;//飞行模式:1=手动控制模式,2=姿态模式,6=MODE_P_GPS,9=热点任务中,11=自动起飞中,12=降落中,14=航线中,15=返航中,17=虚拟摇杆控制中,33=强制降落中,41=解锁电机准备起飞中
  float targetDistance = 29;//距目标点实际距离(单位:米) [适用于打点飞行和航线飞行]
  uint32 predictFlyTime = 30;//预计剩余飞行时间[适用于打点飞行和航线飞行]
  float ultrasonicMax = 31;//本架次最大相对高度值
  float ultrasonicMin = 32;//本架次最小相对高度值
}
 
//飞行历史
message TelemetryList{
  repeated TelemetryData telemetryList = 1;
}
 
//信道质量
message SignalInfo{
  string mode = 1; //入网模式:NR5G-SA,NR5G-NSA,LTE
  string mcc = 2; //NR5G-SA,NR5G-NSA,LTE
  string mnc = 3; //NR5G-SA,NR5G-NSA,LTE
  string cellid = 4; //NR5G-SA,LTE
  string pcid = 5; //NR5G-SA,NR5G-NSA,LTE
  string tac = 6; //NR5G-SA,LTE
  string arfcn = 7; //NR5G-SA,NR5G-NSA
  string band = 8; //NR5G-SA,NR5G-NSA
  string nr_dl_bandwidth = 9; //NR5G-SA
  string rsrp = 10; //NR5G-SA,NR5G-NSA,LTE
  string rsrq = 11; //NR5G-SA,NR5G-NSA,LTE
  string sinr = 12; //NR5G-SA,NR5G-NSA,LTE
  string tx_power = 13; //NR5G-SA,LTE
  string srxlev = 14; //NR5G-SA,LTE
  string cqi = 15; //LTE
  string earfcn = 16; //LTE
  string freq_band_ind = 17; //LTE
  string ul_bandwidth = 18; //LTE
  string dl_bandwidth = 19; //LTE
  string is_tdd = 20; //LTE
  string rssi = 21; //LTE
  string duplex_mode = 22; //NR5G-SA
  double lng = 23;//经度
  double lat = 24;//纬度
  float height = 25;//高度(单位:米)
  uint32 timestamp = 26;//时间戳(单位:秒)
  uint32 boxstate = 27;//1=线缆故障,2=OSDK未激活,3=正常,4=云盒固件更新
  string isp = 28;//运营商
  uint32 tempMax = 29;//模组芯片温度(单位:摄氏度)
  string prx_rsrp = 30;//prx路径的rsrp值
  string drx_rsrp = 31;//drx路径的rsrp值
  string rx2_rsrp = 32;//rx2路径的rsrp值
  string rx3_rsrp = 33;//rx3路径的rsrp值
  string box_sn = 34;//云盒编号
}
 
message SignalList{
  repeated SignalInfo signalInfo = 1;
}
 
//无人机状态对象
message UavState{
  FlightControllerState flightControllerState = 1;//飞控状态
  BatteryState batteryState = 2;//电池状态
  PtzState ptzState = 3;//云台状态
  CameraState cameraState = 4;//相机状态
  MissionState missionState = 5;//任务状态
  string boxSn = 6;//云盒编号
  AvoidanceData avoidanceData = 7;//避障数据
  repeated HmsAlarmData hmsAlarmData = 8;//Hms报警信息[飞机告警信息]
}
 
message FlightControllerState{
  uint32 satelliteCount = 1;//卫星计数
  uint32 gpsSignalLevel = 2;//GPS信号级别,0~5[4,5等级可以执行航线]
  uint32 flightMode = 3;//飞行模式:1=手动控制模式,2=姿态模式,6=MODE_P_GPS,9=热点任务中,11=自动起飞中,12=降落中,14=航线中,15=返航中,17=虚拟摇杆控制中,33=强制降落中,41=解锁电机准备起飞中
  uint32 flightStatus = 4;//飞行状态:0=电机未启动(地面),1=电机启动未起飞(地面),2=起飞在空中(空中)
  PointData startPoint = 5;//起飞点(只包含lat和lng信息)
  PointData homePoint = 6;//返航点(只包含lat和lng信息)
  int32 homeHeight = 7;//返航高度(单位:米)
  uint32 safeLine = 8;//打点飞行模式:0=节能模式【飞机直线飞到目标点,需飞机在空中并且有控制权】,1=安全模式【飞机飞行至目标点高度再平飞到目标点,飞机可以在地面】 默认为节能模式
  uint32 deviceStatus = 9;//控制权状态:0=遥控器,1=msdk,4=云盒[此控制权只针对虚拟摇杆控制权,起飞、降落、强制降落、航线操作、返航不需要此控制权,但是遥控器断连情况下,如果云盒没有控制权,飞机会执行遥控器的失联策略]
  uint32 uwbNodeCount = 10;//UWB星数(只有等于4时,才可以开启uwb精准降落模式)
  string rcMode = 11;//遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
  uint32 isEmergencyBrakeing = 12;//是否紧急制动中,0=否,1=是 【飞行器在地面限制起飞,飞行器在空中限制飞行.如果想操作飞行,请先解除紧急制动】
  uint32 outFlyAreaFlag = 13;//飞行器是否在所有自定义电子围栏外,0=电子围栏内 1=电子围栏外
  uint32 inNoFlyAreaFlag = 14;//飞行器是否在自定义禁飞区内,0=禁飞区外 1=禁飞区内
}
 
//电池状态
message BatteryState{
  uint32 batteryNum = 1;//电池数量
  string batteryPower = 2;//电池电量,多个电池以下划线分割,如:80_60
  string batteryVoltage = 3;//电池电压,多个电池以下划线分割,如:40_30(单位:V)[注意:如果2块电池电压差大于0.7V,飞机限制起飞]
  BatteryStateInfo firstBatteryInfo = 4;//第一块电池状态信息(安装在飞机左边电池槽)
  BatteryStateInfo secondBatteryInfo = 5;//第二块电池状态信息(安装在飞机右边电池槽)
}
 
//电池状态信息
message BatteryStateInfo{
  uint32 isBatteryEmbed = 1;//电池插入飞机状态(注意:如果未插入所有电池信息不可用):0=插入,1=未插入
  uint32 batteryCapacityPercent = 2;//电池电量百分比
  int32 currentVoltage = 3;//电池电压(单位:mV)
  int32 currentElectric = 4;//当前电池电流(单位:mA)
  uint32 fullCapacity = 5;//满电池容量(单位:mAh)
  uint32 remainedCapacity = 6;//剩余电池容量(单位:mAh)
  float batteryTemperature = 7;//电池温度(单位:摄氏度)
  uint32 cellCount = 8;//电池组数(电池硬件型号有关)
  uint32 batSOHState = 9;//电池循环健康状态:0=正常,1=警报,2=注意安全
  uint32 sop = 10;//相对功率百分比(Relative power percentage)
  uint32 heatState = 11;//电池加热状态:0=未加热,1=加热中,2=保持恒温
  uint32 socState = 12;//电池SOC荷电状态: 0=SOC正常,1=SOC_ABNORMAL_HIGH,2=SOC_JUMP_DOWN,3=SOC_JUMP_UP,4=SOC_INVALID
  uint32 selfCheckError = 13;//电池自检错误标志(注意:如果此值非0,就是电池损坏需要维修):0=正常,1=电池自检NTC异常,2=电池自检MOS异常,3=电池自检采样电阻异常,4=电池电芯损坏,5=电池未校准,6=电量计参数异常
}
 
//云台状态
message PtzState{
  float pitch = 1;//俯仰角 范围:-120° ~ 30°
  float roll = 2;//横滚角 范围:-90° ~ 60°
  float yaw = 3;//偏航角  范围:-180° ~ 180°
  uint32 gimbalMode = 4;//云台模式 1=自由模式,2=跟随模式,3=FPV模式
}
 
//相机状态
message CameraState{
  uint32 mode = 1;//相机模式:1=拍照模式,2=录像模式,0=未知
  uint32 isRecording = 2;//是否录制中:1=录制中,0=未录制
  uint32 recordDuration = 3;//录制时长(单位:秒)
  uint32 source = 4;//相机视源:0=可见,1=变焦,2=红外
  uint32 camera = 5;//相机: 0=FPV,1=相机(1),2=相机(2)
  float  zoomfactor = 6;//相机当前变焦倍数
  uint32 width = 7;//水平像素(例如:1920)
  uint32 height = 8;//垂直像素(例如:1080)
  uint32 frameRate = 9;//帧率(例如:30)
  uint32 bitstream = 10;//码率(单位:0.001)(例如:6兆设置值为6000)
  uint32 pointThermometrying = 11;//单点测温状态:0=非单点测温中,1=单点测温中
  uint32 areaThermometrying = 12;//区域测温状态:0=非区域测温中,1=区域测温中
  uint32 laserRanging = 13;//激光测距状态:0=非激光测距中,1=激光测距中
}
 
//任务状态
message MissionState{
  uint32 isPause = 1;//航线是否暂停中:0=未暂停,1=暂停中
  uint32 targetWaypointIndex = 2;//目标航点下标(说明:开始成功到第一个航点之间此值为0,到达第一个航点此值为1,到达第二个航点此值为2,以此类推,航线结束后此值不清空直到下一次开始航线)
  uint32 isWaypointFinished = 3;//是否航点完成:1完成、0未完成(此值废弃)
  uint32 pushVideo = 4;//云盒是否发送视频数据:0=不发送,1=发送
  uint32 lock4g = 5;//是否锁定4G:0=不锁定,1=锁定
  uint32 boxModel = 6;//是否开通图片自动回传功能:0=未开通,1=已开通
  uint32 mapPlay = 7;//自动拍照间隔:0未开始,3~255间隔时间
  uint32 loseAction = 8;//网络失联后动作:0=返回HOME点,1=继续航线
  uint32 isPointControl = 9;//是否打点飞行控制中:0=否,1=是
  uint32 isUwbLanding = 10;//是否UWB精准降落中:0=不是,1=是
  uint32 isPushVideoing = 11;//视频是否推流中:0=不是,1=是
  uint32 isDLanding = 12;//是否二维码精准降落中:0=不是,1=是
  uint32 perceptionFlag = 13;//二维码精准降落模式:0=载荷降落,1=下视降落
  uint32 isPositionControl = 14;//是否指定距离飞行控制中:0=否,1=是
}
 
//避障数据
message AvoidanceData{
  uint32 downHealth = 1;
  float down = 2;//距下障碍物的距离(单位:米),downHealth为1时值有效
  uint32 frontHealth = 3;
  float front = 4;//距前障碍物的距离(单位:米),frontHealth为1时值有效
  uint32 rightHealth = 5;
  float right = 6;//距右障碍物的距离(单位:米),rightHealth为1时值有效
  uint32 backHealth = 7;
  float back = 8;//距后障碍物的距离(单位:米),backHealth为1时值有效
  uint32 leftHealth = 9;
  float left = 10;//距左障碍物的距离(单位:米),leftHealth为1时值有效
  uint32 upHealth = 11;
  float up = 12;//距上障碍物的距离(单位:米),upHealth为1时值有效
  uint32 avoidanceEnableStatusDown = 13;//下视觉避障开关状态:0-关闭 1-打开
  uint32 avoidanceEnableStatusUp = 14;//上视觉避障开关状态:0-关闭 1-打开
  uint32 avoidanceEnableStatusHorizontal = 15;//水平视觉避障开关状态:0-关闭 1-打开
}
 
//Hms报警信息
message HmsAlarmData{
  uint32 alarmId = 1;//报警信息ID
  uint32 reportLevel = 2;//等级[1/2-警告 3/4/5-错误]
  string alarmMssInfo = 3;//报警信息描述(说明:支持中文和英文版本,默认中文,如需切换请联系技术支持)
}
 
//航线
message PlanLineData{
  uint32 finishedAction = 1;//结束航线后动作:1=返航,2=原地悬停,3=原地降落,4=原地绕飞[目前只osdk4.1版本支持,中心点为最后一个航点,飞机绕此点画圆飞行],5=返回至第一个航点并悬停[如果飞机到最后一个点时RC和飞机失联,飞机会在最后一个点悬停]
  float maxSpeed = 2;//最大飞行速度(单位:米/秒,范围0~15),默认15
  float autoSpeed = 3;//自动飞行速度(单位:米/秒,范围0~15),默认8
  repeated PointData points = 4;//坐标点数组
  uint32 loseAction = 5;//网络失联后动作:0=返回HOME点,1=继续航线,默认0
  uint32 homeHeight = 6;//返航高度:(单位:米,范围20~1500),说明:此值为相对起飞点高度,如果太高会有失去网络覆盖风险。不同飞行器返航逻辑不一样,若飞行器距HOME点距离过近,可能不会升高再返航。具体逻辑请咨询大疆DJI
  uint32 isSaveEnergyMode = 7;//是否开启节能模式:0=不是,1=是(说明:节能模式下,飞机沿最短直线距离由起飞点到航线第一个航点,非升高到第一个航点高度再飞往第一个航点)
  HangarPoint takePoint = 8;//起飞点机库信息
  HangarPoint landPoint = 9;//降落点机库信息
  repeated PointData interests = 10;//兴趣点数组(对象只包含经纬高)
  NormalModel normalModel = 11;//普通建模
  SurroundModel surroundModel = 12;//环绕建模
  PointData takeOffPoint = 13;//起飞点(对象只包含经纬高)
}
 
//航线点
message PointData{
  double lng = 1;//经度
  double lat = 2;//纬度
  float height = 3;//高度(单位:米,范围0~遥控器限高),说明:此值为相对起飞点高度,如果太高会有失去网络覆盖风险
  float speed = 4;//速度(单位:米/秒,范围0~15),默认8
  repeated PointAction actions = 5;//动作数组
  uint32 flightPathMode = 6;//航线飞行模式:1=直线飞行,2=协调转弯,3=曲线飞行(停),4=曲线飞行(不停)
  float dampingDistance = 7;//转弯半径(仅协调转弯模式下有效),取值范围1~655.35单位:米,两点间距离要小于此值,此值要根据实际情况计算,切勿随便设此值[可能导致航线开始失败],具体计算方法可以咨询售后支持或者大疆DJI
  uint32 safeGohomeFlag = 8;//是否为安全返航点 0=不是,1=是 (暂时未启用)
  uint32 headingMode = 9;//偏航模式 0=自动,1=锁定,2=遥控器控制,3=云台依照航点方向旋转,4=朝向兴趣点,5=飞机和云台的偏航同时旋转
  float heading = 10;//航点偏航 -180~180
  int32 interestIndex = 11;//兴趣点下标,默认-1
  uint32 groupIndex = 12;//组下标
}
 
//航线点动作
message PointAction{
  uint32 type = 1;//类型:1.变焦 2.拍照 3.录像 4.停录 5.控制飞机机头偏航 6.控制云台俯仰 7.控制云台偏航 8.控制云台横滚 9.悬停 10.等距间隔拍照 11.等时间隔拍照 12.结束间隔拍照 13.单条喊话 14.开始循环喊话 15.结束循环喊话 16.对焦
  float param = 2;//参数:[1.变焦]->变焦倍数(范围:2~200) 、 [5.控制飞机机头偏航(范围:-180~180)、6.控制云台俯仰(范围:-120~30)、7.控制云台偏航(范围:-180~180)、8.控制云台横滚(范围:-90~60)]->角度(按正北坐标系绝对值控制) 、[9.悬停]->时间(单位:秒,范围:1~25,如果想停留大于25秒时长,可以加多组悬停动作) [10.等距间隔拍照]->距离(单位:米,范围:1~100)  [11.等时间隔拍照]->时间(单位:秒,范围:1~30)  [13/14->喊话器俯仰角度,如果此值为0默认改成-90](范围:0~-90)
  int32 waitTime = 3;//动作触发后等待时长(单位:秒) [此值如果不需要可以不传,如需悬停可添加类型9悬停动作] [13/14->喊话器声音,如果此值不传默认50](范围:0~100)
  string speakInfo = 4;//喊话内容[type=13和type=14时生效]
}
 
//机库信息
message HangarPoint{
  string hangarId = 1;//机库ID
  double hangarLng = 2;//机库经度
  double hangarLat = 3;//机库纬度
  double alternateLng = 4;//备降点经度
  double alternateLat = 5;//备降点纬度
}
 
//普通建模
message NormalModel{
  repeated PointData area = 1;//作业区域
  uint32 serviceId = 2;//建模平台编号:1=瞰景,2=大势,默认1
  uint32 cameraId = 3;//相机编号
  uint32 isModeling = 4;//是否实时建模:0=不,1=是
  uint32 mode = 5;//作业模式:1=倾斜,2=正摄
  uint32 hOverlap = 6;//横向重叠率
  uint32 vOverlap = 7;//纵向重叠率
  uint32 mirror = 8;//方向正反
}
 
//环绕建模
message SurroundModel{
  repeated PointData area = 1;//作业区域
  uint32 serviceId = 2;//建模平台编号:1=瞰景
  uint32 cameraId = 3;//相机编号
  uint32 isModeling = 4;//是否实时建模:0=不,1=是
}
 
//无人机初始化详情
message UavInitInfo{
  string uavModel = 1;      //无人机型号
  string uavSn=2;           //无人机SN
  string uavVersion = 3;    //无人机固件版本号
  string ptModel = 4;       //挂载相机型号
  string ptVersion = 5;     //挂载相机固件版本号
  uint32 ptPosition = 6;    //挂载相机psdk日位置
  string moduleVersion = 7; //模组固件版本号
}