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; //模组固件版本号 }