liusuyi
2025-02-20 35f1a08b31531d971169403978cddf3328accb26
ard-work/src/main/java/com/ard/tianyu/netty/protobuf/TelemetryDataPB.java
@@ -1,5 +1,5 @@
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: TelemetryDataBuf-new.proto
// source: TelemetryDataBuf.proto
package com.ard.tianyu.netty.protobuf;
@@ -23,8 +23,7 @@
     *经度
     * </pre>
     *
     * <code>double lng = 1;</code>
     * @return The lng.
     * <code>optional double lng = 1;</code>
     */
    double getLng();
@@ -33,8 +32,7 @@
     *纬度
     * </pre>
     *
     * <code>double lat = 2;</code>
     * @return The lat.
     * <code>optional double lat = 2;</code>
     */
    double getLat();
@@ -43,8 +41,7 @@
     *海拔高度(椭球高)(单位:米)[与遥控器显示值不同源,可能不一致。会受周围气压湿度等环境影响,数据差异及误差比较大]
     * </pre>
     *
     * <code>float altitude = 3;</code>
     * @return The altitude.
     * <code>optional float altitude = 3;</code>
     */
    float getAltitude();
@@ -53,8 +50,7 @@
     *相对高度(单位:米)[飞行器距地面10米以下,此值为真实距地距离,大于10米时为距起飞点的相对高度]
     * </pre>
     *
     * <code>float ultrasonic = 4;</code>
     * @return The ultrasonic.
     * <code>optional float ultrasonic = 4;</code>
     */
    float getUltrasonic();
@@ -63,8 +59,7 @@
     *俯仰角
     * </pre>
     *
     * <code>float pitch = 5;</code>
     * @return The pitch.
     * <code>optional float pitch = 5;</code>
     */
    float getPitch();
@@ -73,8 +68,7 @@
     *横滚角
     * </pre>
     *
     * <code>float roll = 6;</code>
     * @return The roll.
     * <code>optional float roll = 6;</code>
     */
    float getRoll();
@@ -83,8 +77,7 @@
     *偏航角
     * </pre>
     *
     * <code>float yaw = 7;</code>
     * @return The yaw.
     * <code>optional float yaw = 7;</code>
     */
    float getYaw();
@@ -93,8 +86,7 @@
     *空速(单位:米/秒)
     * </pre>
     *
     * <code>float airspeed = 8;</code>
     * @return The airspeed.
     * <code>optional float airspeed = 8;</code>
     */
    float getAirspeed();
@@ -103,8 +95,7 @@
     *地速(单位:米/秒)
     * </pre>
     *
     * <code>float velocity = 9;</code>
     * @return The velocity.
     * <code>optional float velocity = 9;</code>
     */
    float getVelocity();
@@ -113,8 +104,7 @@
     *时间戳
     * </pre>
     *
     * <code>uint64 timestamp = 10;</code>
     * @return The timestamp.
     * <code>optional uint64 timestamp = 10;</code>
     */
    long getTimestamp();
@@ -123,8 +113,7 @@
     *载荷俯仰角
     * </pre>
     *
     * <code>float ptpitch = 11;</code>
     * @return The ptpitch.
     * <code>optional float ptpitch = 11;</code>
     */
    float getPtpitch();
@@ -133,8 +122,7 @@
     *载荷横滚角
     * </pre>
     *
     * <code>float ptroll = 12;</code>
     * @return The ptroll.
     * <code>optional float ptroll = 12;</code>
     */
    float getPtroll();
@@ -143,8 +131,7 @@
     *载荷航向角
     * </pre>
     *
     * <code>float ptyaw = 13;</code>
     * @return The ptyaw.
     * <code>optional float ptyaw = 13;</code>
     */
    float getPtyaw();
@@ -153,8 +140,7 @@
     *载荷当前倍数
     * </pre>
     *
     * <code>float zoomfactor = 14;</code>
     * @return The zoomfactor.
     * <code>optional float zoomfactor = 14;</code>
     */
    float getZoomfactor();
@@ -163,17 +149,15 @@
     *云盒子编号
     * </pre>
     *
     * <code>string boxSn = 15;</code>
     * @return The boxSn.
     * <code>optional string boxSn = 15;</code>
     */
    String getBoxSn();
    java.lang.String getBoxSn();
    /**
     * <pre>
     *云盒子编号
     * </pre>
     *
     * <code>string boxSn = 15;</code>
     * @return The bytes for boxSn.
     * <code>optional string boxSn = 15;</code>
     */
    com.google.protobuf.ByteString
        getBoxSnBytes();
@@ -183,17 +167,15 @@
     *电池电量,多个电池以下划线分割,如:80_60
     * </pre>
     *
     * <code>string batteryPower = 16;</code>
     * @return The batteryPower.
     * <code>optional string batteryPower = 16;</code>
     */
    String getBatteryPower();
    java.lang.String getBatteryPower();
    /**
     * <pre>
     *电池电量,多个电池以下划线分割,如:80_60
     * </pre>
     *
     * <code>string batteryPower = 16;</code>
     * @return The bytes for batteryPower.
     * <code>optional string batteryPower = 16;</code>
     */
    com.google.protobuf.ByteString
        getBatteryPowerBytes();
@@ -203,8 +185,7 @@
     *卫星计数
     * </pre>
     *
     * <code>uint32 satelliteCount = 17;</code>
     * @return The satelliteCount.
     * <code>optional uint32 satelliteCount = 17;</code>
     */
    int getSatelliteCount();
@@ -213,8 +194,7 @@
     *任务编号
     * </pre>
     *
     * <code>uint64 taskId = 18;</code>
     * @return The taskId.
     * <code>optional uint64 taskId = 18;</code>
     */
    long getTaskId();
@@ -223,8 +203,7 @@
     *rtk经度
     * </pre>
     *
     * <code>double rtkLng = 19;</code>
     * @return The rtkLng.
     * <code>optional double rtkLng = 19;</code>
     */
    double getRtkLng();
@@ -233,18 +212,16 @@
     *rtk纬度
     * </pre>
     *
     * <code>double rtkLat = 20;</code>
     * @return The rtkLat.
     * <code>optional double rtkLat = 20;</code>
     */
    double getRtkLat();
    /**
     * <pre>
     *rtk海拔高度(平均海平面高度)(单位:米)
     *rtk海拔高度(平均海平面高度)(单位:米)
     * </pre>
     *
     * <code>float rtkHFSL = 21;</code>
     * @return The rtkHFSL.
     * <code>optional float rtkHFSL = 21;</code>
     */
    float getRtkHFSL();
@@ -253,8 +230,7 @@
     *rtk状态(值为50时[rtk数据fix固定解],rtk的经纬度及海拔高度值可用)
     * </pre>
     *
     * <code>uint32 rtkPositionInfo = 22;</code>
     * @return The rtkPositionInfo.
     * <code>optional uint32 rtkPositionInfo = 22;</code>
     */
    int getRtkPositionInfo();
@@ -263,8 +239,7 @@
     *当前架次飞行时长(单位:秒) [起飞-&gt;落地 视为一个架次]
     * </pre>
     *
     * <code>uint32 airFlyTimes = 23;</code>
     * @return The airFlyTimes.
     * <code>optional uint32 airFlyTimes = 23;</code>
     */
    int getAirFlyTimes();
@@ -273,8 +248,7 @@
     *当前架次飞行实际距离(单位:米)
     * </pre>
     *
     * <code>float airFlyDistance = 24;</code>
     * @return The airFlyDistance.
     * <code>optional float airFlyDistance = 24;</code>
     */
    float getAirFlyDistance();
@@ -283,17 +257,15 @@
     *无人机编号
     * </pre>
     *
     * <code>string uavSn = 25;</code>
     * @return The uavSn.
     * <code>optional string uavSn = 25;</code>
     */
    String getUavSn();
    java.lang.String getUavSn();
    /**
     * <pre>
     *无人机编号
     * </pre>
     *
     * <code>string uavSn = 25;</code>
     * @return The bytes for uavSn.
     * <code>optional string uavSn = 25;</code>
     */
    com.google.protobuf.ByteString
        getUavSnBytes();
@@ -303,17 +275,15 @@
     *无人机型号
     * </pre>
     *
     * <code>string uavModel = 26;</code>
     * @return The uavModel.
     * <code>optional string uavModel = 26;</code>
     */
    String getUavModel();
    java.lang.String getUavModel();
    /**
     * <pre>
     *无人机型号
     * </pre>
     *
     * <code>string uavModel = 26;</code>
     * @return The bytes for uavModel.
     * <code>optional string uavModel = 26;</code>
     */
    com.google.protobuf.ByteString
        getUavModelBytes();
@@ -323,8 +293,7 @@
     *距降落点水平直线距离(单位:米)
     * </pre>
     *
     * <code>float homeRange = 27;</code>
     * @return The homeRange.
     * <code>optional float homeRange = 27;</code>
     */
    float getHomeRange();
@@ -333,8 +302,7 @@
     *飞行模式:1=手动控制模式,2=姿态模式,6=MODE_P_GPS,9=热点任务中,11=自动起飞中,12=降落中,14=航线中,15=返航中,17=虚拟摇杆控制中,33=强制降落中,41=解锁电机准备起飞中
     * </pre>
     *
     * <code>uint32 flightMode = 28;</code>
     * @return The flightMode.
     * <code>optional uint32 flightMode = 28;</code>
     */
    int getFlightMode();
@@ -343,8 +311,7 @@
     *距目标点实际距离(单位:米) [适用于打点飞行和航线飞行]
     * </pre>
     *
     * <code>float targetDistance = 29;</code>
     * @return The targetDistance.
     * <code>optional float targetDistance = 29;</code>
     */
    float getTargetDistance();
@@ -353,8 +320,7 @@
     *预计剩余飞行时间[适用于打点飞行和航线飞行]
     * </pre>
     *
     * <code>uint32 predictFlyTime = 30;</code>
     * @return The predictFlyTime.
     * <code>optional uint32 predictFlyTime = 30;</code>
     */
    int getPredictFlyTime();
@@ -363,18 +329,16 @@
     *本架次最大相对高度值
     * </pre>
     *
     * <code>float ultrasonicMax = 31;</code>
     * @return The ultrasonicMax.
     * <code>optional float ultrasonicMax = 31;</code>
     */
    float getUltrasonicMax();
    /**
     * <pre>
     *本架次最小相对高度值
     *本架次最小相对高度值
     * </pre>
     *
     * <code>float ultrasonicMin = 32;</code>
     * @return The ultrasonicMin.
     * <code>optional float ultrasonicMin = 32;</code>
     */
    float getUltrasonicMin();
  }
@@ -385,44 +349,60 @@
   *
   * Protobuf type {@code TelemetryData}
   */
  public static final class TelemetryData extends
  public  static final class TelemetryData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:TelemetryData)
      TelemetryDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TelemetryData.newBuilder() to construct.
    private TelemetryData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private TelemetryData() {
      lng_ = 0D;
      lat_ = 0D;
      altitude_ = 0F;
      ultrasonic_ = 0F;
      pitch_ = 0F;
      roll_ = 0F;
      yaw_ = 0F;
      airspeed_ = 0F;
      velocity_ = 0F;
      timestamp_ = 0L;
      ptpitch_ = 0F;
      ptroll_ = 0F;
      ptyaw_ = 0F;
      zoomfactor_ = 0F;
      boxSn_ = "";
      batteryPower_ = "";
      satelliteCount_ = 0;
      taskId_ = 0L;
      rtkLng_ = 0D;
      rtkLat_ = 0D;
      rtkHFSL_ = 0F;
      rtkPositionInfo_ = 0;
      airFlyTimes_ = 0;
      airFlyDistance_ = 0F;
      uavSn_ = "";
      uavModel_ = "";
      homeRange_ = 0F;
      flightMode_ = 0;
      targetDistance_ = 0F;
      predictFlyTime_ = 0;
      ultrasonicMax_ = 0F;
      ultrasonicMin_ = 0F;
    }
    @Override
    @SuppressWarnings({"unused"})
    protected Object newInstance(
        UnusedPrivateParameter unused) {
      return new TelemetryData();
    }
    @Override
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private TelemetryData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
@@ -431,6 +411,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 9: {
              lng_ = input.readDouble();
@@ -502,13 +488,13 @@
              break;
            }
            case 122: {
              String s = input.readStringRequireUtf8();
              java.lang.String s = input.readStringRequireUtf8();
              boxSn_ = s;
              break;
            }
            case 130: {
              String s = input.readStringRequireUtf8();
              java.lang.String s = input.readStringRequireUtf8();
              batteryPower_ = s;
              break;
@@ -554,13 +540,13 @@
              break;
            }
            case 202: {
              String s = input.readStringRequireUtf8();
              java.lang.String s = input.readStringRequireUtf8();
              uavSn_ = s;
              break;
            }
            case 210: {
              String s = input.readStringRequireUtf8();
              java.lang.String s = input.readStringRequireUtf8();
              uavModel_ = s;
              break;
@@ -595,24 +581,14 @@
              ultrasonicMin_ = input.readFloat();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -621,8 +597,7 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_TelemetryData_descriptor;
    }
    @Override
    protected FieldAccessorTable
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_TelemetryData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
@@ -636,10 +611,8 @@
     *经度
     * </pre>
     *
     * <code>double lng = 1;</code>
     * @return The lng.
     * <code>optional double lng = 1;</code>
     */
    @Override
    public double getLng() {
      return lng_;
    }
@@ -651,10 +624,8 @@
     *纬度
     * </pre>
     *
     * <code>double lat = 2;</code>
     * @return The lat.
     * <code>optional double lat = 2;</code>
     */
    @Override
    public double getLat() {
      return lat_;
    }
@@ -666,10 +637,8 @@
     *海拔高度(椭球高)(单位:米)[与遥控器显示值不同源,可能不一致。会受周围气压湿度等环境影响,数据差异及误差比较大]
     * </pre>
     *
     * <code>float altitude = 3;</code>
     * @return The altitude.
     * <code>optional float altitude = 3;</code>
     */
    @Override
    public float getAltitude() {
      return altitude_;
    }
@@ -681,10 +650,8 @@
     *相对高度(单位:米)[飞行器距地面10米以下,此值为真实距地距离,大于10米时为距起飞点的相对高度]
     * </pre>
     *
     * <code>float ultrasonic = 4;</code>
     * @return The ultrasonic.
     * <code>optional float ultrasonic = 4;</code>
     */
    @Override
    public float getUltrasonic() {
      return ultrasonic_;
    }
@@ -696,10 +663,8 @@
     *俯仰角
     * </pre>
     *
     * <code>float pitch = 5;</code>
     * @return The pitch.
     * <code>optional float pitch = 5;</code>
     */
    @Override
    public float getPitch() {
      return pitch_;
    }
@@ -711,10 +676,8 @@
     *横滚角
     * </pre>
     *
     * <code>float roll = 6;</code>
     * @return The roll.
     * <code>optional float roll = 6;</code>
     */
    @Override
    public float getRoll() {
      return roll_;
    }
@@ -726,10 +689,8 @@
     *偏航角
     * </pre>
     *
     * <code>float yaw = 7;</code>
     * @return The yaw.
     * <code>optional float yaw = 7;</code>
     */
    @Override
    public float getYaw() {
      return yaw_;
    }
@@ -741,10 +702,8 @@
     *空速(单位:米/秒)
     * </pre>
     *
     * <code>float airspeed = 8;</code>
     * @return The airspeed.
     * <code>optional float airspeed = 8;</code>
     */
    @Override
    public float getAirspeed() {
      return airspeed_;
    }
@@ -756,10 +715,8 @@
     *地速(单位:米/秒)
     * </pre>
     *
     * <code>float velocity = 9;</code>
     * @return The velocity.
     * <code>optional float velocity = 9;</code>
     */
    @Override
    public float getVelocity() {
      return velocity_;
    }
@@ -771,10 +728,8 @@
     *时间戳
     * </pre>
     *
     * <code>uint64 timestamp = 10;</code>
     * @return The timestamp.
     * <code>optional uint64 timestamp = 10;</code>
     */
    @Override
    public long getTimestamp() {
      return timestamp_;
    }
@@ -786,10 +741,8 @@
     *载荷俯仰角
     * </pre>
     *
     * <code>float ptpitch = 11;</code>
     * @return The ptpitch.
     * <code>optional float ptpitch = 11;</code>
     */
    @Override
    public float getPtpitch() {
      return ptpitch_;
    }
@@ -801,10 +754,8 @@
     *载荷横滚角
     * </pre>
     *
     * <code>float ptroll = 12;</code>
     * @return The ptroll.
     * <code>optional float ptroll = 12;</code>
     */
    @Override
    public float getPtroll() {
      return ptroll_;
    }
@@ -816,10 +767,8 @@
     *载荷航向角
     * </pre>
     *
     * <code>float ptyaw = 13;</code>
     * @return The ptyaw.
     * <code>optional float ptyaw = 13;</code>
     */
    @Override
    public float getPtyaw() {
      return ptyaw_;
    }
@@ -831,33 +780,29 @@
     *载荷当前倍数
     * </pre>
     *
     * <code>float zoomfactor = 14;</code>
     * @return The zoomfactor.
     * <code>optional float zoomfactor = 14;</code>
     */
    @Override
    public float getZoomfactor() {
      return zoomfactor_;
    }
    public static final int BOXSN_FIELD_NUMBER = 15;
    private volatile Object boxSn_;
    private volatile java.lang.Object boxSn_;
    /**
     * <pre>
     *云盒子编号
     * </pre>
     *
     * <code>string boxSn = 15;</code>
     * @return The boxSn.
     * <code>optional string boxSn = 15;</code>
     */
    @Override
    public String getBoxSn() {
      Object ref = boxSn_;
      if (ref instanceof String) {
        return (String) ref;
    public java.lang.String getBoxSn() {
      java.lang.Object ref = boxSn_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        java.lang.String s = bs.toStringUtf8();
        boxSn_ = s;
        return s;
      }
@@ -867,17 +812,15 @@
     *云盒子编号
     * </pre>
     *
     * <code>string boxSn = 15;</code>
     * @return The bytes for boxSn.
     * <code>optional string boxSn = 15;</code>
     */
    @Override
    public com.google.protobuf.ByteString
        getBoxSnBytes() {
      Object ref = boxSn_;
      if (ref instanceof String) {
      java.lang.Object ref = boxSn_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
                (java.lang.String) ref);
        boxSn_ = b;
        return b;
      } else {
@@ -886,24 +829,22 @@
    }
    public static final int BATTERYPOWER_FIELD_NUMBER = 16;
    private volatile Object batteryPower_;
    private volatile java.lang.Object batteryPower_;
    /**
     * <pre>
     *电池电量,多个电池以下划线分割,如:80_60
     * </pre>
     *
     * <code>string batteryPower = 16;</code>
     * @return The batteryPower.
     * <code>optional string batteryPower = 16;</code>
     */
    @Override
    public String getBatteryPower() {
      Object ref = batteryPower_;
      if (ref instanceof String) {
        return (String) ref;
    public java.lang.String getBatteryPower() {
      java.lang.Object ref = batteryPower_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        java.lang.String s = bs.toStringUtf8();
        batteryPower_ = s;
        return s;
      }
@@ -913,17 +854,15 @@
     *电池电量,多个电池以下划线分割,如:80_60
     * </pre>
     *
     * <code>string batteryPower = 16;</code>
     * @return The bytes for batteryPower.
     * <code>optional string batteryPower = 16;</code>
     */
    @Override
    public com.google.protobuf.ByteString
        getBatteryPowerBytes() {
      Object ref = batteryPower_;
      if (ref instanceof String) {
      java.lang.Object ref = batteryPower_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
                (java.lang.String) ref);
        batteryPower_ = b;
        return b;
      } else {
@@ -938,10 +877,8 @@
     *卫星计数
     * </pre>
     *
     * <code>uint32 satelliteCount = 17;</code>
     * @return The satelliteCount.
     * <code>optional uint32 satelliteCount = 17;</code>
     */
    @Override
    public int getSatelliteCount() {
      return satelliteCount_;
    }
@@ -953,10 +890,8 @@
     *任务编号
     * </pre>
     *
     * <code>uint64 taskId = 18;</code>
     * @return The taskId.
     * <code>optional uint64 taskId = 18;</code>
     */
    @Override
    public long getTaskId() {
      return taskId_;
    }
@@ -968,10 +903,8 @@
     *rtk经度
     * </pre>
     *
     * <code>double rtkLng = 19;</code>
     * @return The rtkLng.
     * <code>optional double rtkLng = 19;</code>
     */
    @Override
    public double getRtkLng() {
      return rtkLng_;
    }
@@ -983,10 +916,8 @@
     *rtk纬度
     * </pre>
     *
     * <code>double rtkLat = 20;</code>
     * @return The rtkLat.
     * <code>optional double rtkLat = 20;</code>
     */
    @Override
    public double getRtkLat() {
      return rtkLat_;
    }
@@ -995,13 +926,11 @@
    private float rtkHFSL_;
    /**
     * <pre>
     *rtk海拔高度(平均海平面高度)(单位:米)
     *rtk海拔高度(平均海平面高度)(单位:米)
     * </pre>
     *
     * <code>float rtkHFSL = 21;</code>
     * @return The rtkHFSL.
     * <code>optional float rtkHFSL = 21;</code>
     */
    @Override
    public float getRtkHFSL() {
      return rtkHFSL_;
    }
@@ -1013,10 +942,8 @@
     *rtk状态(值为50时[rtk数据fix固定解],rtk的经纬度及海拔高度值可用)
     * </pre>
     *
     * <code>uint32 rtkPositionInfo = 22;</code>
     * @return The rtkPositionInfo.
     * <code>optional uint32 rtkPositionInfo = 22;</code>
     */
    @Override
    public int getRtkPositionInfo() {
      return rtkPositionInfo_;
    }
@@ -1028,10 +955,8 @@
     *当前架次飞行时长(单位:秒) [起飞-&gt;落地 视为一个架次]
     * </pre>
     *
     * <code>uint32 airFlyTimes = 23;</code>
     * @return The airFlyTimes.
     * <code>optional uint32 airFlyTimes = 23;</code>
     */
    @Override
    public int getAirFlyTimes() {
      return airFlyTimes_;
    }
@@ -1043,33 +968,29 @@
     *当前架次飞行实际距离(单位:米)
     * </pre>
     *
     * <code>float airFlyDistance = 24;</code>
     * @return The airFlyDistance.
     * <code>optional float airFlyDistance = 24;</code>
     */
    @Override
    public float getAirFlyDistance() {
      return airFlyDistance_;
    }
    public static final int UAVSN_FIELD_NUMBER = 25;
    private volatile Object uavSn_;
    private volatile java.lang.Object uavSn_;
    /**
     * <pre>
     *无人机编号
     * </pre>
     *
     * <code>string uavSn = 25;</code>
     * @return The uavSn.
     * <code>optional string uavSn = 25;</code>
     */
    @Override
    public String getUavSn() {
      Object ref = uavSn_;
      if (ref instanceof String) {
        return (String) ref;
    public java.lang.String getUavSn() {
      java.lang.Object ref = uavSn_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        java.lang.String s = bs.toStringUtf8();
        uavSn_ = s;
        return s;
      }
@@ -1079,17 +1000,15 @@
     *无人机编号
     * </pre>
     *
     * <code>string uavSn = 25;</code>
     * @return The bytes for uavSn.
     * <code>optional string uavSn = 25;</code>
     */
    @Override
    public com.google.protobuf.ByteString
        getUavSnBytes() {
      Object ref = uavSn_;
      if (ref instanceof String) {
      java.lang.Object ref = uavSn_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
                (java.lang.String) ref);
        uavSn_ = b;
        return b;
      } else {
@@ -1098,24 +1017,22 @@
    }
    public static final int UAVMODEL_FIELD_NUMBER = 26;
    private volatile Object uavModel_;
    private volatile java.lang.Object uavModel_;
    /**
     * <pre>
     *无人机型号
     * </pre>
     *
     * <code>string uavModel = 26;</code>
     * @return The uavModel.
     * <code>optional string uavModel = 26;</code>
     */
    @Override
    public String getUavModel() {
      Object ref = uavModel_;
      if (ref instanceof String) {
        return (String) ref;
    public java.lang.String getUavModel() {
      java.lang.Object ref = uavModel_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        String s = bs.toStringUtf8();
        java.lang.String s = bs.toStringUtf8();
        uavModel_ = s;
        return s;
      }
@@ -1125,17 +1042,15 @@
     *无人机型号
     * </pre>
     *
     * <code>string uavModel = 26;</code>
     * @return The bytes for uavModel.
     * <code>optional string uavModel = 26;</code>
     */
    @Override
    public com.google.protobuf.ByteString
        getUavModelBytes() {
      Object ref = uavModel_;
      if (ref instanceof String) {
      java.lang.Object ref = uavModel_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (String) ref);
                (java.lang.String) ref);
        uavModel_ = b;
        return b;
      } else {
@@ -1150,10 +1065,8 @@
     *距降落点水平直线距离(单位:米)
     * </pre>
     *
     * <code>float homeRange = 27;</code>
     * @return The homeRange.
     * <code>optional float homeRange = 27;</code>
     */
    @Override
    public float getHomeRange() {
      return homeRange_;
    }
@@ -1165,10 +1078,8 @@
     *飞行模式:1=手动控制模式,2=姿态模式,6=MODE_P_GPS,9=热点任务中,11=自动起飞中,12=降落中,14=航线中,15=返航中,17=虚拟摇杆控制中,33=强制降落中,41=解锁电机准备起飞中
     * </pre>
     *
     * <code>uint32 flightMode = 28;</code>
     * @return The flightMode.
     * <code>optional uint32 flightMode = 28;</code>
     */
    @Override
    public int getFlightMode() {
      return flightMode_;
    }
@@ -1180,10 +1091,8 @@
     *距目标点实际距离(单位:米) [适用于打点飞行和航线飞行]
     * </pre>
     *
     * <code>float targetDistance = 29;</code>
     * @return The targetDistance.
     * <code>optional float targetDistance = 29;</code>
     */
    @Override
    public float getTargetDistance() {
      return targetDistance_;
    }
@@ -1195,10 +1104,8 @@
     *预计剩余飞行时间[适用于打点飞行和航线飞行]
     * </pre>
     *
     * <code>uint32 predictFlyTime = 30;</code>
     * @return The predictFlyTime.
     * <code>optional uint32 predictFlyTime = 30;</code>
     */
    @Override
    public int getPredictFlyTime() {
      return predictFlyTime_;
    }
@@ -1210,10 +1117,8 @@
     *本架次最大相对高度值
     * </pre>
     *
     * <code>float ultrasonicMax = 31;</code>
     * @return The ultrasonicMax.
     * <code>optional float ultrasonicMax = 31;</code>
     */
    @Override
    public float getUltrasonicMax() {
      return ultrasonicMax_;
    }
@@ -1222,19 +1127,16 @@
    private float ultrasonicMin_;
    /**
     * <pre>
     *本架次最小相对高度值
     *本架次最小相对高度值
     * </pre>
     *
     * <code>float ultrasonicMin = 32;</code>
     * @return The ultrasonicMin.
     * <code>optional float ultrasonicMin = 32;</code>
     */
    @Override
    public float getUltrasonicMin() {
      return ultrasonicMin_;
    }
    private byte memoizedIsInitialized = -1;
    @Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -1244,55 +1146,54 @@
      return true;
    }
    @Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (Double.doubleToRawLongBits(lng_) != 0) {
      if (lng_ != 0D) {
        output.writeDouble(1, lng_);
      }
      if (Double.doubleToRawLongBits(lat_) != 0) {
      if (lat_ != 0D) {
        output.writeDouble(2, lat_);
      }
      if (Float.floatToRawIntBits(altitude_) != 0) {
      if (altitude_ != 0F) {
        output.writeFloat(3, altitude_);
      }
      if (Float.floatToRawIntBits(ultrasonic_) != 0) {
      if (ultrasonic_ != 0F) {
        output.writeFloat(4, ultrasonic_);
      }
      if (Float.floatToRawIntBits(pitch_) != 0) {
      if (pitch_ != 0F) {
        output.writeFloat(5, pitch_);
      }
      if (Float.floatToRawIntBits(roll_) != 0) {
      if (roll_ != 0F) {
        output.writeFloat(6, roll_);
      }
      if (Float.floatToRawIntBits(yaw_) != 0) {
      if (yaw_ != 0F) {
        output.writeFloat(7, yaw_);
      }
      if (Float.floatToRawIntBits(airspeed_) != 0) {
      if (airspeed_ != 0F) {
        output.writeFloat(8, airspeed_);
      }
      if (Float.floatToRawIntBits(velocity_) != 0) {
      if (velocity_ != 0F) {
        output.writeFloat(9, velocity_);
      }
      if (timestamp_ != 0L) {
        output.writeUInt64(10, timestamp_);
      }
      if (Float.floatToRawIntBits(ptpitch_) != 0) {
      if (ptpitch_ != 0F) {
        output.writeFloat(11, ptpitch_);
      }
      if (Float.floatToRawIntBits(ptroll_) != 0) {
      if (ptroll_ != 0F) {
        output.writeFloat(12, ptroll_);
      }
      if (Float.floatToRawIntBits(ptyaw_) != 0) {
      if (ptyaw_ != 0F) {
        output.writeFloat(13, ptyaw_);
      }
      if (Float.floatToRawIntBits(zoomfactor_) != 0) {
      if (zoomfactor_ != 0F) {
        output.writeFloat(14, zoomfactor_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(boxSn_)) {
      if (!getBoxSnBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 15, boxSn_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(batteryPower_)) {
      if (!getBatteryPowerBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 16, batteryPower_);
      }
      if (satelliteCount_ != 0) {
@@ -1301,13 +1202,13 @@
      if (taskId_ != 0L) {
        output.writeUInt64(18, taskId_);
      }
      if (java.lang.Double.doubleToRawLongBits(rtkLng_) != 0) {
      if (rtkLng_ != 0D) {
        output.writeDouble(19, rtkLng_);
      }
      if (java.lang.Double.doubleToRawLongBits(rtkLat_) != 0) {
      if (rtkLat_ != 0D) {
        output.writeDouble(20, rtkLat_);
      }
      if (java.lang.Float.floatToRawIntBits(rtkHFSL_) != 0) {
      if (rtkHFSL_ != 0F) {
        output.writeFloat(21, rtkHFSL_);
      }
      if (rtkPositionInfo_ != 0) {
@@ -1316,75 +1217,73 @@
      if (airFlyTimes_ != 0) {
        output.writeUInt32(23, airFlyTimes_);
      }
      if (java.lang.Float.floatToRawIntBits(airFlyDistance_) != 0) {
      if (airFlyDistance_ != 0F) {
        output.writeFloat(24, airFlyDistance_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uavSn_)) {
      if (!getUavSnBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 25, uavSn_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uavModel_)) {
      if (!getUavModelBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 26, uavModel_);
      }
      if (java.lang.Float.floatToRawIntBits(homeRange_) != 0) {
      if (homeRange_ != 0F) {
        output.writeFloat(27, homeRange_);
      }
      if (flightMode_ != 0) {
        output.writeUInt32(28, flightMode_);
      }
      if (java.lang.Float.floatToRawIntBits(targetDistance_) != 0) {
      if (targetDistance_ != 0F) {
        output.writeFloat(29, targetDistance_);
      }
      if (predictFlyTime_ != 0) {
        output.writeUInt32(30, predictFlyTime_);
      }
      if (java.lang.Float.floatToRawIntBits(ultrasonicMax_) != 0) {
      if (ultrasonicMax_ != 0F) {
        output.writeFloat(31, ultrasonicMax_);
      }
      if (java.lang.Float.floatToRawIntBits(ultrasonicMin_) != 0) {
      if (ultrasonicMin_ != 0F) {
        output.writeFloat(32, ultrasonicMin_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (java.lang.Double.doubleToRawLongBits(lng_) != 0) {
      if (lng_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, lng_);
      }
      if (java.lang.Double.doubleToRawLongBits(lat_) != 0) {
      if (lat_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, lat_);
      }
      if (java.lang.Float.floatToRawIntBits(altitude_) != 0) {
      if (altitude_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, altitude_);
      }
      if (java.lang.Float.floatToRawIntBits(ultrasonic_) != 0) {
      if (ultrasonic_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, ultrasonic_);
      }
      if (java.lang.Float.floatToRawIntBits(pitch_) != 0) {
      if (pitch_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(5, pitch_);
      }
      if (java.lang.Float.floatToRawIntBits(roll_) != 0) {
      if (roll_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(6, roll_);
      }
      if (java.lang.Float.floatToRawIntBits(yaw_) != 0) {
      if (yaw_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(7, yaw_);
      }
      if (java.lang.Float.floatToRawIntBits(airspeed_) != 0) {
      if (airspeed_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(8, airspeed_);
      }
      if (java.lang.Float.floatToRawIntBits(velocity_) != 0) {
      if (velocity_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(9, velocity_);
      }
@@ -1392,26 +1291,26 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(10, timestamp_);
      }
      if (java.lang.Float.floatToRawIntBits(ptpitch_) != 0) {
      if (ptpitch_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(11, ptpitch_);
      }
      if (java.lang.Float.floatToRawIntBits(ptroll_) != 0) {
      if (ptroll_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(12, ptroll_);
      }
      if (java.lang.Float.floatToRawIntBits(ptyaw_) != 0) {
      if (ptyaw_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(13, ptyaw_);
      }
      if (java.lang.Float.floatToRawIntBits(zoomfactor_) != 0) {
      if (zoomfactor_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(14, zoomfactor_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(boxSn_)) {
      if (!getBoxSnBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, boxSn_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(batteryPower_)) {
      if (!getBatteryPowerBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, batteryPower_);
      }
      if (satelliteCount_ != 0) {
@@ -1422,15 +1321,15 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(18, taskId_);
      }
      if (java.lang.Double.doubleToRawLongBits(rtkLng_) != 0) {
      if (rtkLng_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(19, rtkLng_);
      }
      if (java.lang.Double.doubleToRawLongBits(rtkLat_) != 0) {
      if (rtkLat_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(20, rtkLat_);
      }
      if (java.lang.Float.floatToRawIntBits(rtkHFSL_) != 0) {
      if (rtkHFSL_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(21, rtkHFSL_);
      }
@@ -1442,17 +1341,17 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(23, airFlyTimes_);
      }
      if (java.lang.Float.floatToRawIntBits(airFlyDistance_) != 0) {
      if (airFlyDistance_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(24, airFlyDistance_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uavSn_)) {
      if (!getUavSnBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(25, uavSn_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uavModel_)) {
      if (!getUavModelBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(26, uavModel_);
      }
      if (java.lang.Float.floatToRawIntBits(homeRange_) != 0) {
      if (homeRange_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(27, homeRange_);
      }
@@ -1460,7 +1359,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(28, flightMode_);
      }
      if (java.lang.Float.floatToRawIntBits(targetDistance_) != 0) {
      if (targetDistance_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(29, targetDistance_);
      }
@@ -1468,19 +1367,19 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(30, predictFlyTime_);
      }
      if (java.lang.Float.floatToRawIntBits(ultrasonicMax_) != 0) {
      if (ultrasonicMax_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(31, ultrasonicMax_);
      }
      if (java.lang.Float.floatToRawIntBits(ultrasonicMin_) != 0) {
      if (ultrasonicMin_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(32, ultrasonicMin_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -1491,93 +1390,114 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData) obj;
      if (java.lang.Double.doubleToLongBits(getLng())
          != java.lang.Double.doubleToLongBits(
              other.getLng())) return false;
      if (java.lang.Double.doubleToLongBits(getLat())
          != java.lang.Double.doubleToLongBits(
              other.getLat())) return false;
      if (java.lang.Float.floatToIntBits(getAltitude())
          != java.lang.Float.floatToIntBits(
              other.getAltitude())) return false;
      if (java.lang.Float.floatToIntBits(getUltrasonic())
          != java.lang.Float.floatToIntBits(
              other.getUltrasonic())) return false;
      if (java.lang.Float.floatToIntBits(getPitch())
          != java.lang.Float.floatToIntBits(
              other.getPitch())) return false;
      if (java.lang.Float.floatToIntBits(getRoll())
          != java.lang.Float.floatToIntBits(
              other.getRoll())) return false;
      if (java.lang.Float.floatToIntBits(getYaw())
          != java.lang.Float.floatToIntBits(
              other.getYaw())) return false;
      if (java.lang.Float.floatToIntBits(getAirspeed())
          != java.lang.Float.floatToIntBits(
              other.getAirspeed())) return false;
      if (java.lang.Float.floatToIntBits(getVelocity())
          != java.lang.Float.floatToIntBits(
              other.getVelocity())) return false;
      if (getTimestamp()
          != other.getTimestamp()) return false;
      if (java.lang.Float.floatToIntBits(getPtpitch())
          != java.lang.Float.floatToIntBits(
              other.getPtpitch())) return false;
      if (java.lang.Float.floatToIntBits(getPtroll())
          != java.lang.Float.floatToIntBits(
              other.getPtroll())) return false;
      if (java.lang.Float.floatToIntBits(getPtyaw())
          != java.lang.Float.floatToIntBits(
              other.getPtyaw())) return false;
      if (java.lang.Float.floatToIntBits(getZoomfactor())
          != java.lang.Float.floatToIntBits(
              other.getZoomfactor())) return false;
      if (!getBoxSn()
          .equals(other.getBoxSn())) return false;
      if (!getBatteryPower()
          .equals(other.getBatteryPower())) return false;
      if (getSatelliteCount()
          != other.getSatelliteCount()) return false;
      if (getTaskId()
          != other.getTaskId()) return false;
      if (java.lang.Double.doubleToLongBits(getRtkLng())
          != java.lang.Double.doubleToLongBits(
              other.getRtkLng())) return false;
      if (java.lang.Double.doubleToLongBits(getRtkLat())
          != java.lang.Double.doubleToLongBits(
              other.getRtkLat())) return false;
      if (java.lang.Float.floatToIntBits(getRtkHFSL())
          != java.lang.Float.floatToIntBits(
              other.getRtkHFSL())) return false;
      if (getRtkPositionInfo()
          != other.getRtkPositionInfo()) return false;
      if (getAirFlyTimes()
          != other.getAirFlyTimes()) return false;
      if (java.lang.Float.floatToIntBits(getAirFlyDistance())
          != java.lang.Float.floatToIntBits(
              other.getAirFlyDistance())) return false;
      if (!getUavSn()
          .equals(other.getUavSn())) return false;
      if (!getUavModel()
          .equals(other.getUavModel())) return false;
      if (java.lang.Float.floatToIntBits(getHomeRange())
          != java.lang.Float.floatToIntBits(
              other.getHomeRange())) return false;
      if (getFlightMode()
          != other.getFlightMode()) return false;
      if (java.lang.Float.floatToIntBits(getTargetDistance())
          != java.lang.Float.floatToIntBits(
              other.getTargetDistance())) return false;
      if (getPredictFlyTime()
          != other.getPredictFlyTime()) return false;
      if (java.lang.Float.floatToIntBits(getUltrasonicMax())
          != java.lang.Float.floatToIntBits(
              other.getUltrasonicMax())) return false;
      if (java.lang.Float.floatToIntBits(getUltrasonicMin())
          != java.lang.Float.floatToIntBits(
              other.getUltrasonicMin())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && (
          java.lang.Double.doubleToLongBits(getLng())
          == java.lang.Double.doubleToLongBits(
              other.getLng()));
      result = result && (
          java.lang.Double.doubleToLongBits(getLat())
          == java.lang.Double.doubleToLongBits(
              other.getLat()));
      result = result && (
          java.lang.Float.floatToIntBits(getAltitude())
          == java.lang.Float.floatToIntBits(
              other.getAltitude()));
      result = result && (
          java.lang.Float.floatToIntBits(getUltrasonic())
          == java.lang.Float.floatToIntBits(
              other.getUltrasonic()));
      result = result && (
          java.lang.Float.floatToIntBits(getPitch())
          == java.lang.Float.floatToIntBits(
              other.getPitch()));
      result = result && (
          java.lang.Float.floatToIntBits(getRoll())
          == java.lang.Float.floatToIntBits(
              other.getRoll()));
      result = result && (
          java.lang.Float.floatToIntBits(getYaw())
          == java.lang.Float.floatToIntBits(
              other.getYaw()));
      result = result && (
          java.lang.Float.floatToIntBits(getAirspeed())
          == java.lang.Float.floatToIntBits(
              other.getAirspeed()));
      result = result && (
          java.lang.Float.floatToIntBits(getVelocity())
          == java.lang.Float.floatToIntBits(
              other.getVelocity()));
      result = result && (getTimestamp()
          == other.getTimestamp());
      result = result && (
          java.lang.Float.floatToIntBits(getPtpitch())
          == java.lang.Float.floatToIntBits(
              other.getPtpitch()));
      result = result && (
          java.lang.Float.floatToIntBits(getPtroll())
          == java.lang.Float.floatToIntBits(
              other.getPtroll()));
      result = result && (
          java.lang.Float.floatToIntBits(getPtyaw())
          == java.lang.Float.floatToIntBits(
              other.getPtyaw()));
      result = result && (
          java.lang.Float.floatToIntBits(getZoomfactor())
          == java.lang.Float.floatToIntBits(
              other.getZoomfactor()));
      result = result && getBoxSn()
          .equals(other.getBoxSn());
      result = result && getBatteryPower()
          .equals(other.getBatteryPower());
      result = result && (getSatelliteCount()
          == other.getSatelliteCount());
      result = result && (getTaskId()
          == other.getTaskId());
      result = result && (
          java.lang.Double.doubleToLongBits(getRtkLng())
          == java.lang.Double.doubleToLongBits(
              other.getRtkLng()));
      result = result && (
          java.lang.Double.doubleToLongBits(getRtkLat())
          == java.lang.Double.doubleToLongBits(
              other.getRtkLat()));
      result = result && (
          java.lang.Float.floatToIntBits(getRtkHFSL())
          == java.lang.Float.floatToIntBits(
              other.getRtkHFSL()));
      result = result && (getRtkPositionInfo()
          == other.getRtkPositionInfo());
      result = result && (getAirFlyTimes()
          == other.getAirFlyTimes());
      result = result && (
          java.lang.Float.floatToIntBits(getAirFlyDistance())
          == java.lang.Float.floatToIntBits(
              other.getAirFlyDistance()));
      result = result && getUavSn()
          .equals(other.getUavSn());
      result = result && getUavModel()
          .equals(other.getUavModel());
      result = result && (
          java.lang.Float.floatToIntBits(getHomeRange())
          == java.lang.Float.floatToIntBits(
              other.getHomeRange()));
      result = result && (getFlightMode()
          == other.getFlightMode());
      result = result && (
          java.lang.Float.floatToIntBits(getTargetDistance())
          == java.lang.Float.floatToIntBits(
              other.getTargetDistance()));
      result = result && (getPredictFlyTime()
          == other.getPredictFlyTime());
      result = result && (
          java.lang.Float.floatToIntBits(getUltrasonicMax())
          == java.lang.Float.floatToIntBits(
              other.getUltrasonicMax()));
      result = result && (
          java.lang.Float.floatToIntBits(getUltrasonicMin())
          == java.lang.Float.floatToIntBits(
              other.getUltrasonicMin()));
      return result;
    }
    @java.lang.Override
@@ -1586,7 +1506,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + LNG_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getLng()));
@@ -1680,17 +1600,6 @@
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
@@ -1749,7 +1658,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -1757,7 +1665,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -1785,7 +1692,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_TelemetryData_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_TelemetryData_fieldAccessorTable
@@ -1808,7 +1714,6 @@
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        lng_ = 0D;
@@ -1878,18 +1783,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_TelemetryData_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData result = buildPartial();
        if (!result.isInitialized()) {
@@ -1898,7 +1800,6 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData(this);
        result.lng_ = lng_;
@@ -1937,39 +1838,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData)other);
@@ -2081,17 +1975,14 @@
        if (other.getUltrasonicMin() != 0F) {
          setUltrasonicMin(other.getUltrasonicMin());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -2116,10 +2007,8 @@
       *经度
       * </pre>
       *
       * <code>double lng = 1;</code>
       * @return The lng.
       * <code>optional double lng = 1;</code>
       */
      @java.lang.Override
      public double getLng() {
        return lng_;
      }
@@ -2128,9 +2017,7 @@
       *经度
       * </pre>
       *
       * <code>double lng = 1;</code>
       * @param value The lng to set.
       * @return This builder for chaining.
       * <code>optional double lng = 1;</code>
       */
      public Builder setLng(double value) {
        
@@ -2143,8 +2030,7 @@
       *经度
       * </pre>
       *
       * <code>double lng = 1;</code>
       * @return This builder for chaining.
       * <code>optional double lng = 1;</code>
       */
      public Builder clearLng() {
        
@@ -2159,10 +2045,8 @@
       *纬度
       * </pre>
       *
       * <code>double lat = 2;</code>
       * @return The lat.
       * <code>optional double lat = 2;</code>
       */
      @java.lang.Override
      public double getLat() {
        return lat_;
      }
@@ -2171,9 +2055,7 @@
       *纬度
       * </pre>
       *
       * <code>double lat = 2;</code>
       * @param value The lat to set.
       * @return This builder for chaining.
       * <code>optional double lat = 2;</code>
       */
      public Builder setLat(double value) {
        
@@ -2186,8 +2068,7 @@
       *纬度
       * </pre>
       *
       * <code>double lat = 2;</code>
       * @return This builder for chaining.
       * <code>optional double lat = 2;</code>
       */
      public Builder clearLat() {
        
@@ -2202,10 +2083,8 @@
       *海拔高度(椭球高)(单位:米)[与遥控器显示值不同源,可能不一致。会受周围气压湿度等环境影响,数据差异及误差比较大]
       * </pre>
       *
       * <code>float altitude = 3;</code>
       * @return The altitude.
       * <code>optional float altitude = 3;</code>
       */
      @java.lang.Override
      public float getAltitude() {
        return altitude_;
      }
@@ -2214,9 +2093,7 @@
       *海拔高度(椭球高)(单位:米)[与遥控器显示值不同源,可能不一致。会受周围气压湿度等环境影响,数据差异及误差比较大]
       * </pre>
       *
       * <code>float altitude = 3;</code>
       * @param value The altitude to set.
       * @return This builder for chaining.
       * <code>optional float altitude = 3;</code>
       */
      public Builder setAltitude(float value) {
        
@@ -2229,8 +2106,7 @@
       *海拔高度(椭球高)(单位:米)[与遥控器显示值不同源,可能不一致。会受周围气压湿度等环境影响,数据差异及误差比较大]
       * </pre>
       *
       * <code>float altitude = 3;</code>
       * @return This builder for chaining.
       * <code>optional float altitude = 3;</code>
       */
      public Builder clearAltitude() {
        
@@ -2245,10 +2121,8 @@
       *相对高度(单位:米)[飞行器距地面10米以下,此值为真实距地距离,大于10米时为距起飞点的相对高度]
       * </pre>
       *
       * <code>float ultrasonic = 4;</code>
       * @return The ultrasonic.
       * <code>optional float ultrasonic = 4;</code>
       */
      @java.lang.Override
      public float getUltrasonic() {
        return ultrasonic_;
      }
@@ -2257,9 +2131,7 @@
       *相对高度(单位:米)[飞行器距地面10米以下,此值为真实距地距离,大于10米时为距起飞点的相对高度]
       * </pre>
       *
       * <code>float ultrasonic = 4;</code>
       * @param value The ultrasonic to set.
       * @return This builder for chaining.
       * <code>optional float ultrasonic = 4;</code>
       */
      public Builder setUltrasonic(float value) {
        
@@ -2272,8 +2144,7 @@
       *相对高度(单位:米)[飞行器距地面10米以下,此值为真实距地距离,大于10米时为距起飞点的相对高度]
       * </pre>
       *
       * <code>float ultrasonic = 4;</code>
       * @return This builder for chaining.
       * <code>optional float ultrasonic = 4;</code>
       */
      public Builder clearUltrasonic() {
        
@@ -2288,10 +2159,8 @@
       *俯仰角
       * </pre>
       *
       * <code>float pitch = 5;</code>
       * @return The pitch.
       * <code>optional float pitch = 5;</code>
       */
      @java.lang.Override
      public float getPitch() {
        return pitch_;
      }
@@ -2300,9 +2169,7 @@
       *俯仰角
       * </pre>
       *
       * <code>float pitch = 5;</code>
       * @param value The pitch to set.
       * @return This builder for chaining.
       * <code>optional float pitch = 5;</code>
       */
      public Builder setPitch(float value) {
        
@@ -2315,8 +2182,7 @@
       *俯仰角
       * </pre>
       *
       * <code>float pitch = 5;</code>
       * @return This builder for chaining.
       * <code>optional float pitch = 5;</code>
       */
      public Builder clearPitch() {
        
@@ -2331,10 +2197,8 @@
       *横滚角
       * </pre>
       *
       * <code>float roll = 6;</code>
       * @return The roll.
       * <code>optional float roll = 6;</code>
       */
      @java.lang.Override
      public float getRoll() {
        return roll_;
      }
@@ -2343,9 +2207,7 @@
       *横滚角
       * </pre>
       *
       * <code>float roll = 6;</code>
       * @param value The roll to set.
       * @return This builder for chaining.
       * <code>optional float roll = 6;</code>
       */
      public Builder setRoll(float value) {
        
@@ -2358,8 +2220,7 @@
       *横滚角
       * </pre>
       *
       * <code>float roll = 6;</code>
       * @return This builder for chaining.
       * <code>optional float roll = 6;</code>
       */
      public Builder clearRoll() {
        
@@ -2374,10 +2235,8 @@
       *偏航角
       * </pre>
       *
       * <code>float yaw = 7;</code>
       * @return The yaw.
       * <code>optional float yaw = 7;</code>
       */
      @java.lang.Override
      public float getYaw() {
        return yaw_;
      }
@@ -2386,9 +2245,7 @@
       *偏航角
       * </pre>
       *
       * <code>float yaw = 7;</code>
       * @param value The yaw to set.
       * @return This builder for chaining.
       * <code>optional float yaw = 7;</code>
       */
      public Builder setYaw(float value) {
        
@@ -2401,8 +2258,7 @@
       *偏航角
       * </pre>
       *
       * <code>float yaw = 7;</code>
       * @return This builder for chaining.
       * <code>optional float yaw = 7;</code>
       */
      public Builder clearYaw() {
        
@@ -2417,10 +2273,8 @@
       *空速(单位:米/秒)
       * </pre>
       *
       * <code>float airspeed = 8;</code>
       * @return The airspeed.
       * <code>optional float airspeed = 8;</code>
       */
      @java.lang.Override
      public float getAirspeed() {
        return airspeed_;
      }
@@ -2429,9 +2283,7 @@
       *空速(单位:米/秒)
       * </pre>
       *
       * <code>float airspeed = 8;</code>
       * @param value The airspeed to set.
       * @return This builder for chaining.
       * <code>optional float airspeed = 8;</code>
       */
      public Builder setAirspeed(float value) {
        
@@ -2444,8 +2296,7 @@
       *空速(单位:米/秒)
       * </pre>
       *
       * <code>float airspeed = 8;</code>
       * @return This builder for chaining.
       * <code>optional float airspeed = 8;</code>
       */
      public Builder clearAirspeed() {
        
@@ -2460,10 +2311,8 @@
       *地速(单位:米/秒)
       * </pre>
       *
       * <code>float velocity = 9;</code>
       * @return The velocity.
       * <code>optional float velocity = 9;</code>
       */
      @java.lang.Override
      public float getVelocity() {
        return velocity_;
      }
@@ -2472,9 +2321,7 @@
       *地速(单位:米/秒)
       * </pre>
       *
       * <code>float velocity = 9;</code>
       * @param value The velocity to set.
       * @return This builder for chaining.
       * <code>optional float velocity = 9;</code>
       */
      public Builder setVelocity(float value) {
        
@@ -2487,8 +2334,7 @@
       *地速(单位:米/秒)
       * </pre>
       *
       * <code>float velocity = 9;</code>
       * @return This builder for chaining.
       * <code>optional float velocity = 9;</code>
       */
      public Builder clearVelocity() {
        
@@ -2503,10 +2349,8 @@
       *时间戳
       * </pre>
       *
       * <code>uint64 timestamp = 10;</code>
       * @return The timestamp.
       * <code>optional uint64 timestamp = 10;</code>
       */
      @java.lang.Override
      public long getTimestamp() {
        return timestamp_;
      }
@@ -2515,9 +2359,7 @@
       *时间戳
       * </pre>
       *
       * <code>uint64 timestamp = 10;</code>
       * @param value The timestamp to set.
       * @return This builder for chaining.
       * <code>optional uint64 timestamp = 10;</code>
       */
      public Builder setTimestamp(long value) {
        
@@ -2530,8 +2372,7 @@
       *时间戳
       * </pre>
       *
       * <code>uint64 timestamp = 10;</code>
       * @return This builder for chaining.
       * <code>optional uint64 timestamp = 10;</code>
       */
      public Builder clearTimestamp() {
        
@@ -2546,10 +2387,8 @@
       *载荷俯仰角
       * </pre>
       *
       * <code>float ptpitch = 11;</code>
       * @return The ptpitch.
       * <code>optional float ptpitch = 11;</code>
       */
      @java.lang.Override
      public float getPtpitch() {
        return ptpitch_;
      }
@@ -2558,9 +2397,7 @@
       *载荷俯仰角
       * </pre>
       *
       * <code>float ptpitch = 11;</code>
       * @param value The ptpitch to set.
       * @return This builder for chaining.
       * <code>optional float ptpitch = 11;</code>
       */
      public Builder setPtpitch(float value) {
        
@@ -2573,8 +2410,7 @@
       *载荷俯仰角
       * </pre>
       *
       * <code>float ptpitch = 11;</code>
       * @return This builder for chaining.
       * <code>optional float ptpitch = 11;</code>
       */
      public Builder clearPtpitch() {
        
@@ -2589,10 +2425,8 @@
       *载荷横滚角
       * </pre>
       *
       * <code>float ptroll = 12;</code>
       * @return The ptroll.
       * <code>optional float ptroll = 12;</code>
       */
      @java.lang.Override
      public float getPtroll() {
        return ptroll_;
      }
@@ -2601,9 +2435,7 @@
       *载荷横滚角
       * </pre>
       *
       * <code>float ptroll = 12;</code>
       * @param value The ptroll to set.
       * @return This builder for chaining.
       * <code>optional float ptroll = 12;</code>
       */
      public Builder setPtroll(float value) {
        
@@ -2616,8 +2448,7 @@
       *载荷横滚角
       * </pre>
       *
       * <code>float ptroll = 12;</code>
       * @return This builder for chaining.
       * <code>optional float ptroll = 12;</code>
       */
      public Builder clearPtroll() {
        
@@ -2632,10 +2463,8 @@
       *载荷航向角
       * </pre>
       *
       * <code>float ptyaw = 13;</code>
       * @return The ptyaw.
       * <code>optional float ptyaw = 13;</code>
       */
      @java.lang.Override
      public float getPtyaw() {
        return ptyaw_;
      }
@@ -2644,9 +2473,7 @@
       *载荷航向角
       * </pre>
       *
       * <code>float ptyaw = 13;</code>
       * @param value The ptyaw to set.
       * @return This builder for chaining.
       * <code>optional float ptyaw = 13;</code>
       */
      public Builder setPtyaw(float value) {
        
@@ -2659,8 +2486,7 @@
       *载荷航向角
       * </pre>
       *
       * <code>float ptyaw = 13;</code>
       * @return This builder for chaining.
       * <code>optional float ptyaw = 13;</code>
       */
      public Builder clearPtyaw() {
        
@@ -2675,10 +2501,8 @@
       *载荷当前倍数
       * </pre>
       *
       * <code>float zoomfactor = 14;</code>
       * @return The zoomfactor.
       * <code>optional float zoomfactor = 14;</code>
       */
      @java.lang.Override
      public float getZoomfactor() {
        return zoomfactor_;
      }
@@ -2687,9 +2511,7 @@
       *载荷当前倍数
       * </pre>
       *
       * <code>float zoomfactor = 14;</code>
       * @param value The zoomfactor to set.
       * @return This builder for chaining.
       * <code>optional float zoomfactor = 14;</code>
       */
      public Builder setZoomfactor(float value) {
        
@@ -2702,8 +2524,7 @@
       *载荷当前倍数
       * </pre>
       *
       * <code>float zoomfactor = 14;</code>
       * @return This builder for chaining.
       * <code>optional float zoomfactor = 14;</code>
       */
      public Builder clearZoomfactor() {
        
@@ -2718,8 +2539,7 @@
       *云盒子编号
       * </pre>
       *
       * <code>string boxSn = 15;</code>
       * @return The boxSn.
       * <code>optional string boxSn = 15;</code>
       */
      public java.lang.String getBoxSn() {
        java.lang.Object ref = boxSn_;
@@ -2738,8 +2558,7 @@
       *云盒子编号
       * </pre>
       *
       * <code>string boxSn = 15;</code>
       * @return The bytes for boxSn.
       * <code>optional string boxSn = 15;</code>
       */
      public com.google.protobuf.ByteString
          getBoxSnBytes() {
@@ -2759,9 +2578,7 @@
       *云盒子编号
       * </pre>
       *
       * <code>string boxSn = 15;</code>
       * @param value The boxSn to set.
       * @return This builder for chaining.
       * <code>optional string boxSn = 15;</code>
       */
      public Builder setBoxSn(
          java.lang.String value) {
@@ -2778,8 +2595,7 @@
       *云盒子编号
       * </pre>
       *
       * <code>string boxSn = 15;</code>
       * @return This builder for chaining.
       * <code>optional string boxSn = 15;</code>
       */
      public Builder clearBoxSn() {
        
@@ -2792,9 +2608,7 @@
       *云盒子编号
       * </pre>
       *
       * <code>string boxSn = 15;</code>
       * @param value The bytes for boxSn to set.
       * @return This builder for chaining.
       * <code>optional string boxSn = 15;</code>
       */
      public Builder setBoxSnBytes(
          com.google.protobuf.ByteString value) {
@@ -2814,8 +2628,7 @@
       *电池电量,多个电池以下划线分割,如:80_60
       * </pre>
       *
       * <code>string batteryPower = 16;</code>
       * @return The batteryPower.
       * <code>optional string batteryPower = 16;</code>
       */
      public java.lang.String getBatteryPower() {
        java.lang.Object ref = batteryPower_;
@@ -2834,8 +2647,7 @@
       *电池电量,多个电池以下划线分割,如:80_60
       * </pre>
       *
       * <code>string batteryPower = 16;</code>
       * @return The bytes for batteryPower.
       * <code>optional string batteryPower = 16;</code>
       */
      public com.google.protobuf.ByteString
          getBatteryPowerBytes() {
@@ -2855,9 +2667,7 @@
       *电池电量,多个电池以下划线分割,如:80_60
       * </pre>
       *
       * <code>string batteryPower = 16;</code>
       * @param value The batteryPower to set.
       * @return This builder for chaining.
       * <code>optional string batteryPower = 16;</code>
       */
      public Builder setBatteryPower(
          java.lang.String value) {
@@ -2874,8 +2684,7 @@
       *电池电量,多个电池以下划线分割,如:80_60
       * </pre>
       *
       * <code>string batteryPower = 16;</code>
       * @return This builder for chaining.
       * <code>optional string batteryPower = 16;</code>
       */
      public Builder clearBatteryPower() {
        
@@ -2888,9 +2697,7 @@
       *电池电量,多个电池以下划线分割,如:80_60
       * </pre>
       *
       * <code>string batteryPower = 16;</code>
       * @param value The bytes for batteryPower to set.
       * @return This builder for chaining.
       * <code>optional string batteryPower = 16;</code>
       */
      public Builder setBatteryPowerBytes(
          com.google.protobuf.ByteString value) {
@@ -2910,10 +2717,8 @@
       *卫星计数
       * </pre>
       *
       * <code>uint32 satelliteCount = 17;</code>
       * @return The satelliteCount.
       * <code>optional uint32 satelliteCount = 17;</code>
       */
      @java.lang.Override
      public int getSatelliteCount() {
        return satelliteCount_;
      }
@@ -2922,9 +2727,7 @@
       *卫星计数
       * </pre>
       *
       * <code>uint32 satelliteCount = 17;</code>
       * @param value The satelliteCount to set.
       * @return This builder for chaining.
       * <code>optional uint32 satelliteCount = 17;</code>
       */
      public Builder setSatelliteCount(int value) {
        
@@ -2937,8 +2740,7 @@
       *卫星计数
       * </pre>
       *
       * <code>uint32 satelliteCount = 17;</code>
       * @return This builder for chaining.
       * <code>optional uint32 satelliteCount = 17;</code>
       */
      public Builder clearSatelliteCount() {
        
@@ -2953,10 +2755,8 @@
       *任务编号
       * </pre>
       *
       * <code>uint64 taskId = 18;</code>
       * @return The taskId.
       * <code>optional uint64 taskId = 18;</code>
       */
      @java.lang.Override
      public long getTaskId() {
        return taskId_;
      }
@@ -2965,9 +2765,7 @@
       *任务编号
       * </pre>
       *
       * <code>uint64 taskId = 18;</code>
       * @param value The taskId to set.
       * @return This builder for chaining.
       * <code>optional uint64 taskId = 18;</code>
       */
      public Builder setTaskId(long value) {
        
@@ -2980,8 +2778,7 @@
       *任务编号
       * </pre>
       *
       * <code>uint64 taskId = 18;</code>
       * @return This builder for chaining.
       * <code>optional uint64 taskId = 18;</code>
       */
      public Builder clearTaskId() {
        
@@ -2996,10 +2793,8 @@
       *rtk经度
       * </pre>
       *
       * <code>double rtkLng = 19;</code>
       * @return The rtkLng.
       * <code>optional double rtkLng = 19;</code>
       */
      @java.lang.Override
      public double getRtkLng() {
        return rtkLng_;
      }
@@ -3008,9 +2803,7 @@
       *rtk经度
       * </pre>
       *
       * <code>double rtkLng = 19;</code>
       * @param value The rtkLng to set.
       * @return This builder for chaining.
       * <code>optional double rtkLng = 19;</code>
       */
      public Builder setRtkLng(double value) {
        
@@ -3023,8 +2816,7 @@
       *rtk经度
       * </pre>
       *
       * <code>double rtkLng = 19;</code>
       * @return This builder for chaining.
       * <code>optional double rtkLng = 19;</code>
       */
      public Builder clearRtkLng() {
        
@@ -3039,10 +2831,8 @@
       *rtk纬度
       * </pre>
       *
       * <code>double rtkLat = 20;</code>
       * @return The rtkLat.
       * <code>optional double rtkLat = 20;</code>
       */
      @java.lang.Override
      public double getRtkLat() {
        return rtkLat_;
      }
@@ -3051,9 +2841,7 @@
       *rtk纬度
       * </pre>
       *
       * <code>double rtkLat = 20;</code>
       * @param value The rtkLat to set.
       * @return This builder for chaining.
       * <code>optional double rtkLat = 20;</code>
       */
      public Builder setRtkLat(double value) {
        
@@ -3066,8 +2854,7 @@
       *rtk纬度
       * </pre>
       *
       * <code>double rtkLat = 20;</code>
       * @return This builder for chaining.
       * <code>optional double rtkLat = 20;</code>
       */
      public Builder clearRtkLat() {
        
@@ -3079,24 +2866,20 @@
      private float rtkHFSL_ ;
      /**
       * <pre>
       *rtk海拔高度(平均海平面高度)(单位:米)
       *rtk海拔高度(平均海平面高度)(单位:米)
       * </pre>
       *
       * <code>float rtkHFSL = 21;</code>
       * @return The rtkHFSL.
       * <code>optional float rtkHFSL = 21;</code>
       */
      @java.lang.Override
      public float getRtkHFSL() {
        return rtkHFSL_;
      }
      /**
       * <pre>
       *rtk海拔高度(平均海平面高度)(单位:米)
       *rtk海拔高度(平均海平面高度)(单位:米)
       * </pre>
       *
       * <code>float rtkHFSL = 21;</code>
       * @param value The rtkHFSL to set.
       * @return This builder for chaining.
       * <code>optional float rtkHFSL = 21;</code>
       */
      public Builder setRtkHFSL(float value) {
        
@@ -3106,11 +2889,10 @@
      }
      /**
       * <pre>
       *rtk海拔高度(平均海平面高度)(单位:米)
       *rtk海拔高度(平均海平面高度)(单位:米)
       * </pre>
       *
       * <code>float rtkHFSL = 21;</code>
       * @return This builder for chaining.
       * <code>optional float rtkHFSL = 21;</code>
       */
      public Builder clearRtkHFSL() {
        
@@ -3125,10 +2907,8 @@
       *rtk状态(值为50时[rtk数据fix固定解],rtk的经纬度及海拔高度值可用)
       * </pre>
       *
       * <code>uint32 rtkPositionInfo = 22;</code>
       * @return The rtkPositionInfo.
       * <code>optional uint32 rtkPositionInfo = 22;</code>
       */
      @java.lang.Override
      public int getRtkPositionInfo() {
        return rtkPositionInfo_;
      }
@@ -3137,9 +2917,7 @@
       *rtk状态(值为50时[rtk数据fix固定解],rtk的经纬度及海拔高度值可用)
       * </pre>
       *
       * <code>uint32 rtkPositionInfo = 22;</code>
       * @param value The rtkPositionInfo to set.
       * @return This builder for chaining.
       * <code>optional uint32 rtkPositionInfo = 22;</code>
       */
      public Builder setRtkPositionInfo(int value) {
        
@@ -3152,8 +2930,7 @@
       *rtk状态(值为50时[rtk数据fix固定解],rtk的经纬度及海拔高度值可用)
       * </pre>
       *
       * <code>uint32 rtkPositionInfo = 22;</code>
       * @return This builder for chaining.
       * <code>optional uint32 rtkPositionInfo = 22;</code>
       */
      public Builder clearRtkPositionInfo() {
        
@@ -3168,10 +2945,8 @@
       *当前架次飞行时长(单位:秒) [起飞-&gt;落地 视为一个架次]
       * </pre>
       *
       * <code>uint32 airFlyTimes = 23;</code>
       * @return The airFlyTimes.
       * <code>optional uint32 airFlyTimes = 23;</code>
       */
      @java.lang.Override
      public int getAirFlyTimes() {
        return airFlyTimes_;
      }
@@ -3180,9 +2955,7 @@
       *当前架次飞行时长(单位:秒) [起飞-&gt;落地 视为一个架次]
       * </pre>
       *
       * <code>uint32 airFlyTimes = 23;</code>
       * @param value The airFlyTimes to set.
       * @return This builder for chaining.
       * <code>optional uint32 airFlyTimes = 23;</code>
       */
      public Builder setAirFlyTimes(int value) {
        
@@ -3195,8 +2968,7 @@
       *当前架次飞行时长(单位:秒) [起飞-&gt;落地 视为一个架次]
       * </pre>
       *
       * <code>uint32 airFlyTimes = 23;</code>
       * @return This builder for chaining.
       * <code>optional uint32 airFlyTimes = 23;</code>
       */
      public Builder clearAirFlyTimes() {
        
@@ -3211,10 +2983,8 @@
       *当前架次飞行实际距离(单位:米)
       * </pre>
       *
       * <code>float airFlyDistance = 24;</code>
       * @return The airFlyDistance.
       * <code>optional float airFlyDistance = 24;</code>
       */
      @java.lang.Override
      public float getAirFlyDistance() {
        return airFlyDistance_;
      }
@@ -3223,9 +2993,7 @@
       *当前架次飞行实际距离(单位:米)
       * </pre>
       *
       * <code>float airFlyDistance = 24;</code>
       * @param value The airFlyDistance to set.
       * @return This builder for chaining.
       * <code>optional float airFlyDistance = 24;</code>
       */
      public Builder setAirFlyDistance(float value) {
        
@@ -3238,8 +3006,7 @@
       *当前架次飞行实际距离(单位:米)
       * </pre>
       *
       * <code>float airFlyDistance = 24;</code>
       * @return This builder for chaining.
       * <code>optional float airFlyDistance = 24;</code>
       */
      public Builder clearAirFlyDistance() {
        
@@ -3254,8 +3021,7 @@
       *无人机编号
       * </pre>
       *
       * <code>string uavSn = 25;</code>
       * @return The uavSn.
       * <code>optional string uavSn = 25;</code>
       */
      public java.lang.String getUavSn() {
        java.lang.Object ref = uavSn_;
@@ -3274,8 +3040,7 @@
       *无人机编号
       * </pre>
       *
       * <code>string uavSn = 25;</code>
       * @return The bytes for uavSn.
       * <code>optional string uavSn = 25;</code>
       */
      public com.google.protobuf.ByteString
          getUavSnBytes() {
@@ -3295,9 +3060,7 @@
       *无人机编号
       * </pre>
       *
       * <code>string uavSn = 25;</code>
       * @param value The uavSn to set.
       * @return This builder for chaining.
       * <code>optional string uavSn = 25;</code>
       */
      public Builder setUavSn(
          java.lang.String value) {
@@ -3314,8 +3077,7 @@
       *无人机编号
       * </pre>
       *
       * <code>string uavSn = 25;</code>
       * @return This builder for chaining.
       * <code>optional string uavSn = 25;</code>
       */
      public Builder clearUavSn() {
        
@@ -3328,9 +3090,7 @@
       *无人机编号
       * </pre>
       *
       * <code>string uavSn = 25;</code>
       * @param value The bytes for uavSn to set.
       * @return This builder for chaining.
       * <code>optional string uavSn = 25;</code>
       */
      public Builder setUavSnBytes(
          com.google.protobuf.ByteString value) {
@@ -3350,8 +3110,7 @@
       *无人机型号
       * </pre>
       *
       * <code>string uavModel = 26;</code>
       * @return The uavModel.
       * <code>optional string uavModel = 26;</code>
       */
      public java.lang.String getUavModel() {
        java.lang.Object ref = uavModel_;
@@ -3370,8 +3129,7 @@
       *无人机型号
       * </pre>
       *
       * <code>string uavModel = 26;</code>
       * @return The bytes for uavModel.
       * <code>optional string uavModel = 26;</code>
       */
      public com.google.protobuf.ByteString
          getUavModelBytes() {
@@ -3391,9 +3149,7 @@
       *无人机型号
       * </pre>
       *
       * <code>string uavModel = 26;</code>
       * @param value The uavModel to set.
       * @return This builder for chaining.
       * <code>optional string uavModel = 26;</code>
       */
      public Builder setUavModel(
          java.lang.String value) {
@@ -3410,8 +3166,7 @@
       *无人机型号
       * </pre>
       *
       * <code>string uavModel = 26;</code>
       * @return This builder for chaining.
       * <code>optional string uavModel = 26;</code>
       */
      public Builder clearUavModel() {
        
@@ -3424,9 +3179,7 @@
       *无人机型号
       * </pre>
       *
       * <code>string uavModel = 26;</code>
       * @param value The bytes for uavModel to set.
       * @return This builder for chaining.
       * <code>optional string uavModel = 26;</code>
       */
      public Builder setUavModelBytes(
          com.google.protobuf.ByteString value) {
@@ -3446,10 +3199,8 @@
       *距降落点水平直线距离(单位:米)
       * </pre>
       *
       * <code>float homeRange = 27;</code>
       * @return The homeRange.
       * <code>optional float homeRange = 27;</code>
       */
      @java.lang.Override
      public float getHomeRange() {
        return homeRange_;
      }
@@ -3458,9 +3209,7 @@
       *距降落点水平直线距离(单位:米)
       * </pre>
       *
       * <code>float homeRange = 27;</code>
       * @param value The homeRange to set.
       * @return This builder for chaining.
       * <code>optional float homeRange = 27;</code>
       */
      public Builder setHomeRange(float value) {
        
@@ -3473,8 +3222,7 @@
       *距降落点水平直线距离(单位:米)
       * </pre>
       *
       * <code>float homeRange = 27;</code>
       * @return This builder for chaining.
       * <code>optional float homeRange = 27;</code>
       */
      public Builder clearHomeRange() {
        
@@ -3489,10 +3237,8 @@
       *飞行模式:1=手动控制模式,2=姿态模式,6=MODE_P_GPS,9=热点任务中,11=自动起飞中,12=降落中,14=航线中,15=返航中,17=虚拟摇杆控制中,33=强制降落中,41=解锁电机准备起飞中
       * </pre>
       *
       * <code>uint32 flightMode = 28;</code>
       * @return The flightMode.
       * <code>optional uint32 flightMode = 28;</code>
       */
      @java.lang.Override
      public int getFlightMode() {
        return flightMode_;
      }
@@ -3501,9 +3247,7 @@
       *飞行模式:1=手动控制模式,2=姿态模式,6=MODE_P_GPS,9=热点任务中,11=自动起飞中,12=降落中,14=航线中,15=返航中,17=虚拟摇杆控制中,33=强制降落中,41=解锁电机准备起飞中
       * </pre>
       *
       * <code>uint32 flightMode = 28;</code>
       * @param value The flightMode to set.
       * @return This builder for chaining.
       * <code>optional uint32 flightMode = 28;</code>
       */
      public Builder setFlightMode(int value) {
        
@@ -3516,8 +3260,7 @@
       *飞行模式:1=手动控制模式,2=姿态模式,6=MODE_P_GPS,9=热点任务中,11=自动起飞中,12=降落中,14=航线中,15=返航中,17=虚拟摇杆控制中,33=强制降落中,41=解锁电机准备起飞中
       * </pre>
       *
       * <code>uint32 flightMode = 28;</code>
       * @return This builder for chaining.
       * <code>optional uint32 flightMode = 28;</code>
       */
      public Builder clearFlightMode() {
        
@@ -3532,10 +3275,8 @@
       *距目标点实际距离(单位:米) [适用于打点飞行和航线飞行]
       * </pre>
       *
       * <code>float targetDistance = 29;</code>
       * @return The targetDistance.
       * <code>optional float targetDistance = 29;</code>
       */
      @java.lang.Override
      public float getTargetDistance() {
        return targetDistance_;
      }
@@ -3544,9 +3285,7 @@
       *距目标点实际距离(单位:米) [适用于打点飞行和航线飞行]
       * </pre>
       *
       * <code>float targetDistance = 29;</code>
       * @param value The targetDistance to set.
       * @return This builder for chaining.
       * <code>optional float targetDistance = 29;</code>
       */
      public Builder setTargetDistance(float value) {
        
@@ -3559,8 +3298,7 @@
       *距目标点实际距离(单位:米) [适用于打点飞行和航线飞行]
       * </pre>
       *
       * <code>float targetDistance = 29;</code>
       * @return This builder for chaining.
       * <code>optional float targetDistance = 29;</code>
       */
      public Builder clearTargetDistance() {
        
@@ -3575,10 +3313,8 @@
       *预计剩余飞行时间[适用于打点飞行和航线飞行]
       * </pre>
       *
       * <code>uint32 predictFlyTime = 30;</code>
       * @return The predictFlyTime.
       * <code>optional uint32 predictFlyTime = 30;</code>
       */
      @java.lang.Override
      public int getPredictFlyTime() {
        return predictFlyTime_;
      }
@@ -3587,9 +3323,7 @@
       *预计剩余飞行时间[适用于打点飞行和航线飞行]
       * </pre>
       *
       * <code>uint32 predictFlyTime = 30;</code>
       * @param value The predictFlyTime to set.
       * @return This builder for chaining.
       * <code>optional uint32 predictFlyTime = 30;</code>
       */
      public Builder setPredictFlyTime(int value) {
        
@@ -3602,8 +3336,7 @@
       *预计剩余飞行时间[适用于打点飞行和航线飞行]
       * </pre>
       *
       * <code>uint32 predictFlyTime = 30;</code>
       * @return This builder for chaining.
       * <code>optional uint32 predictFlyTime = 30;</code>
       */
      public Builder clearPredictFlyTime() {
        
@@ -3618,10 +3351,8 @@
       *本架次最大相对高度值
       * </pre>
       *
       * <code>float ultrasonicMax = 31;</code>
       * @return The ultrasonicMax.
       * <code>optional float ultrasonicMax = 31;</code>
       */
      @java.lang.Override
      public float getUltrasonicMax() {
        return ultrasonicMax_;
      }
@@ -3630,9 +3361,7 @@
       *本架次最大相对高度值
       * </pre>
       *
       * <code>float ultrasonicMax = 31;</code>
       * @param value The ultrasonicMax to set.
       * @return This builder for chaining.
       * <code>optional float ultrasonicMax = 31;</code>
       */
      public Builder setUltrasonicMax(float value) {
        
@@ -3645,8 +3374,7 @@
       *本架次最大相对高度值
       * </pre>
       *
       * <code>float ultrasonicMax = 31;</code>
       * @return This builder for chaining.
       * <code>optional float ultrasonicMax = 31;</code>
       */
      public Builder clearUltrasonicMax() {
        
@@ -3658,24 +3386,20 @@
      private float ultrasonicMin_ ;
      /**
       * <pre>
       *本架次最小相对高度值
       *本架次最小相对高度值
       * </pre>
       *
       * <code>float ultrasonicMin = 32;</code>
       * @return The ultrasonicMin.
       * <code>optional float ultrasonicMin = 32;</code>
       */
      @java.lang.Override
      public float getUltrasonicMin() {
        return ultrasonicMin_;
      }
      /**
       * <pre>
       *本架次最小相对高度值
       *本架次最小相对高度值
       * </pre>
       *
       * <code>float ultrasonicMin = 32;</code>
       * @param value The ultrasonicMin to set.
       * @return This builder for chaining.
       * <code>optional float ultrasonicMin = 32;</code>
       */
      public Builder setUltrasonicMin(float value) {
        
@@ -3685,11 +3409,10 @@
      }
      /**
       * <pre>
       *本架次最小相对高度值
       *本架次最小相对高度值
       * </pre>
       *
       * <code>float ultrasonicMin = 32;</code>
       * @return This builder for chaining.
       * <code>optional float ultrasonicMin = 32;</code>
       */
      public Builder clearUltrasonicMin() {
        
@@ -3697,16 +3420,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -3725,12 +3446,11 @@
    private static final com.google.protobuf.Parser<TelemetryData>
        PARSER = new com.google.protobuf.AbstractParser<TelemetryData>() {
      @java.lang.Override
      public TelemetryData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new TelemetryData(input, extensionRegistry);
          return new TelemetryData(input, extensionRegistry);
      }
    };
@@ -3743,7 +3463,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -3785,11 +3504,10 @@
   *
   * Protobuf type {@code TelemetryList}
   */
  public static final class TelemetryList extends
  public  static final class TelemetryList extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:TelemetryList)
      TelemetryListOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use TelemetryList.newBuilder() to construct.
    private TelemetryList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
@@ -3799,28 +3517,16 @@
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new TelemetryList();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private TelemetryList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
@@ -3829,8 +3535,14 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                telemetryList_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData>();
                mutable_bitField0_ |= 0x00000001;
              }
@@ -3838,27 +3550,17 @@
                  input.readMessage(com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          telemetryList_ = java.util.Collections.unmodifiableList(telemetryList_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -3867,7 +3569,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_TelemetryList_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_TelemetryList_fieldAccessorTable
@@ -3880,14 +3581,12 @@
    /**
     * <code>repeated .TelemetryData telemetryList = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData> getTelemetryListList() {
      return telemetryList_;
    }
    /**
     * <code>repeated .TelemetryData telemetryList = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryDataOrBuilder> 
        getTelemetryListOrBuilderList() {
      return telemetryList_;
@@ -3895,28 +3594,24 @@
    /**
     * <code>repeated .TelemetryData telemetryList = 1;</code>
     */
    @java.lang.Override
    public int getTelemetryListCount() {
      return telemetryList_.size();
    }
    /**
     * <code>repeated .TelemetryData telemetryList = 1;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData getTelemetryList(int index) {
      return telemetryList_.get(index);
    }
    /**
     * <code>repeated .TelemetryData telemetryList = 1;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryDataOrBuilder getTelemetryListOrBuilder(
        int index) {
      return telemetryList_.get(index);
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -3926,16 +3621,13 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < telemetryList_.size(); i++) {
        output.writeMessage(1, telemetryList_.get(i));
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -3945,11 +3637,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, telemetryList_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -3960,10 +3652,10 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList) obj;
      if (!getTelemetryListList()
          .equals(other.getTelemetryListList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && getTelemetryListList()
          .equals(other.getTelemetryListList());
      return result;
    }
    @java.lang.Override
@@ -3972,7 +3664,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (getTelemetryListCount() > 0) {
        hash = (37 * hash) + TELEMETRYLIST_FIELD_NUMBER;
        hash = (53 * hash) + getTelemetryListList().hashCode();
@@ -3982,17 +3674,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -4052,7 +3733,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -4060,7 +3740,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -4088,7 +3767,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_TelemetryList_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_TelemetryList_fieldAccessorTable
@@ -4112,7 +3790,6 @@
          getTelemetryListFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (telemetryListBuilder_ == null) {
@@ -4124,18 +3801,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_TelemetryList_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList result = buildPartial();
        if (!result.isInitialized()) {
@@ -4144,12 +3818,11 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList(this);
        int from_bitField0_ = bitField0_;
        if (telemetryListBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            telemetryList_ = java.util.Collections.unmodifiableList(telemetryList_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
@@ -4161,39 +3834,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList)other);
@@ -4231,17 +3897,14 @@
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -4264,7 +3927,7 @@
      private java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData> telemetryList_ =
        java.util.Collections.emptyList();
      private void ensureTelemetryListIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          telemetryList_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData>(telemetryList_);
          bitField0_ |= 0x00000001;
         }
@@ -4493,23 +4156,21 @@
          telemetryListBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryDataOrBuilder>(
                  telemetryList_,
                  ((bitField0_ & 0x00000001) != 0),
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          telemetryList_ = null;
        }
        return telemetryListBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -4528,12 +4189,11 @@
    private static final com.google.protobuf.Parser<TelemetryList>
        PARSER = new com.google.protobuf.AbstractParser<TelemetryList>() {
      @java.lang.Override
      public TelemetryList parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new TelemetryList(input, extensionRegistry);
          return new TelemetryList(input, extensionRegistry);
      }
    };
@@ -4546,7 +4206,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.TelemetryList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -4562,8 +4221,7 @@
     *入网模式:NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string mode = 1;</code>
     * @return The mode.
     * <code>optional string mode = 1;</code>
     */
    java.lang.String getMode();
    /**
@@ -4571,8 +4229,7 @@
     *入网模式:NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string mode = 1;</code>
     * @return The bytes for mode.
     * <code>optional string mode = 1;</code>
     */
    com.google.protobuf.ByteString
        getModeBytes();
@@ -4582,8 +4239,7 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string mcc = 2;</code>
     * @return The mcc.
     * <code>optional string mcc = 2;</code>
     */
    java.lang.String getMcc();
    /**
@@ -4591,8 +4247,7 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string mcc = 2;</code>
     * @return The bytes for mcc.
     * <code>optional string mcc = 2;</code>
     */
    com.google.protobuf.ByteString
        getMccBytes();
@@ -4602,8 +4257,7 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string mnc = 3;</code>
     * @return The mnc.
     * <code>optional string mnc = 3;</code>
     */
    java.lang.String getMnc();
    /**
@@ -4611,8 +4265,7 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string mnc = 3;</code>
     * @return The bytes for mnc.
     * <code>optional string mnc = 3;</code>
     */
    com.google.protobuf.ByteString
        getMncBytes();
@@ -4622,8 +4275,7 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string cellid = 4;</code>
     * @return The cellid.
     * <code>optional string cellid = 4;</code>
     */
    java.lang.String getCellid();
    /**
@@ -4631,8 +4283,7 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string cellid = 4;</code>
     * @return The bytes for cellid.
     * <code>optional string cellid = 4;</code>
     */
    com.google.protobuf.ByteString
        getCellidBytes();
@@ -4642,8 +4293,7 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string pcid = 5;</code>
     * @return The pcid.
     * <code>optional string pcid = 5;</code>
     */
    java.lang.String getPcid();
    /**
@@ -4651,8 +4301,7 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string pcid = 5;</code>
     * @return The bytes for pcid.
     * <code>optional string pcid = 5;</code>
     */
    com.google.protobuf.ByteString
        getPcidBytes();
@@ -4662,8 +4311,7 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string tac = 6;</code>
     * @return The tac.
     * <code>optional string tac = 6;</code>
     */
    java.lang.String getTac();
    /**
@@ -4671,8 +4319,7 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string tac = 6;</code>
     * @return The bytes for tac.
     * <code>optional string tac = 6;</code>
     */
    com.google.protobuf.ByteString
        getTacBytes();
@@ -4682,8 +4329,7 @@
     *NR5G-SA,NR5G-NSA
     * </pre>
     *
     * <code>string arfcn = 7;</code>
     * @return The arfcn.
     * <code>optional string arfcn = 7;</code>
     */
    java.lang.String getArfcn();
    /**
@@ -4691,8 +4337,7 @@
     *NR5G-SA,NR5G-NSA
     * </pre>
     *
     * <code>string arfcn = 7;</code>
     * @return The bytes for arfcn.
     * <code>optional string arfcn = 7;</code>
     */
    com.google.protobuf.ByteString
        getArfcnBytes();
@@ -4702,8 +4347,7 @@
     *NR5G-SA,NR5G-NSA
     * </pre>
     *
     * <code>string band = 8;</code>
     * @return The band.
     * <code>optional string band = 8;</code>
     */
    java.lang.String getBand();
    /**
@@ -4711,8 +4355,7 @@
     *NR5G-SA,NR5G-NSA
     * </pre>
     *
     * <code>string band = 8;</code>
     * @return The bytes for band.
     * <code>optional string band = 8;</code>
     */
    com.google.protobuf.ByteString
        getBandBytes();
@@ -4722,8 +4365,7 @@
     *NR5G-SA
     * </pre>
     *
     * <code>string nr_dl_bandwidth = 9;</code>
     * @return The nrDlBandwidth.
     * <code>optional string nr_dl_bandwidth = 9;</code>
     */
    java.lang.String getNrDlBandwidth();
    /**
@@ -4731,8 +4373,7 @@
     *NR5G-SA
     * </pre>
     *
     * <code>string nr_dl_bandwidth = 9;</code>
     * @return The bytes for nrDlBandwidth.
     * <code>optional string nr_dl_bandwidth = 9;</code>
     */
    com.google.protobuf.ByteString
        getNrDlBandwidthBytes();
@@ -4742,8 +4383,7 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string rsrp = 10;</code>
     * @return The rsrp.
     * <code>optional string rsrp = 10;</code>
     */
    java.lang.String getRsrp();
    /**
@@ -4751,8 +4391,7 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string rsrp = 10;</code>
     * @return The bytes for rsrp.
     * <code>optional string rsrp = 10;</code>
     */
    com.google.protobuf.ByteString
        getRsrpBytes();
@@ -4762,8 +4401,7 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string rsrq = 11;</code>
     * @return The rsrq.
     * <code>optional string rsrq = 11;</code>
     */
    java.lang.String getRsrq();
    /**
@@ -4771,8 +4409,7 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string rsrq = 11;</code>
     * @return The bytes for rsrq.
     * <code>optional string rsrq = 11;</code>
     */
    com.google.protobuf.ByteString
        getRsrqBytes();
@@ -4782,8 +4419,7 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string sinr = 12;</code>
     * @return The sinr.
     * <code>optional string sinr = 12;</code>
     */
    java.lang.String getSinr();
    /**
@@ -4791,8 +4427,7 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string sinr = 12;</code>
     * @return The bytes for sinr.
     * <code>optional string sinr = 12;</code>
     */
    com.google.protobuf.ByteString
        getSinrBytes();
@@ -4802,8 +4437,7 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string tx_power = 13;</code>
     * @return The txPower.
     * <code>optional string tx_power = 13;</code>
     */
    java.lang.String getTxPower();
    /**
@@ -4811,8 +4445,7 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string tx_power = 13;</code>
     * @return The bytes for txPower.
     * <code>optional string tx_power = 13;</code>
     */
    com.google.protobuf.ByteString
        getTxPowerBytes();
@@ -4822,8 +4455,7 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string srxlev = 14;</code>
     * @return The srxlev.
     * <code>optional string srxlev = 14;</code>
     */
    java.lang.String getSrxlev();
    /**
@@ -4831,8 +4463,7 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string srxlev = 14;</code>
     * @return The bytes for srxlev.
     * <code>optional string srxlev = 14;</code>
     */
    com.google.protobuf.ByteString
        getSrxlevBytes();
@@ -4842,8 +4473,7 @@
     *LTE
     * </pre>
     *
     * <code>string cqi = 15;</code>
     * @return The cqi.
     * <code>optional string cqi = 15;</code>
     */
    java.lang.String getCqi();
    /**
@@ -4851,8 +4481,7 @@
     *LTE
     * </pre>
     *
     * <code>string cqi = 15;</code>
     * @return The bytes for cqi.
     * <code>optional string cqi = 15;</code>
     */
    com.google.protobuf.ByteString
        getCqiBytes();
@@ -4862,8 +4491,7 @@
     *LTE
     * </pre>
     *
     * <code>string earfcn = 16;</code>
     * @return The earfcn.
     * <code>optional string earfcn = 16;</code>
     */
    java.lang.String getEarfcn();
    /**
@@ -4871,8 +4499,7 @@
     *LTE
     * </pre>
     *
     * <code>string earfcn = 16;</code>
     * @return The bytes for earfcn.
     * <code>optional string earfcn = 16;</code>
     */
    com.google.protobuf.ByteString
        getEarfcnBytes();
@@ -4882,8 +4509,7 @@
     *LTE
     * </pre>
     *
     * <code>string freq_band_ind = 17;</code>
     * @return The freqBandInd.
     * <code>optional string freq_band_ind = 17;</code>
     */
    java.lang.String getFreqBandInd();
    /**
@@ -4891,8 +4517,7 @@
     *LTE
     * </pre>
     *
     * <code>string freq_band_ind = 17;</code>
     * @return The bytes for freqBandInd.
     * <code>optional string freq_band_ind = 17;</code>
     */
    com.google.protobuf.ByteString
        getFreqBandIndBytes();
@@ -4902,8 +4527,7 @@
     *LTE
     * </pre>
     *
     * <code>string ul_bandwidth = 18;</code>
     * @return The ulBandwidth.
     * <code>optional string ul_bandwidth = 18;</code>
     */
    java.lang.String getUlBandwidth();
    /**
@@ -4911,8 +4535,7 @@
     *LTE
     * </pre>
     *
     * <code>string ul_bandwidth = 18;</code>
     * @return The bytes for ulBandwidth.
     * <code>optional string ul_bandwidth = 18;</code>
     */
    com.google.protobuf.ByteString
        getUlBandwidthBytes();
@@ -4922,8 +4545,7 @@
     *LTE
     * </pre>
     *
     * <code>string dl_bandwidth = 19;</code>
     * @return The dlBandwidth.
     * <code>optional string dl_bandwidth = 19;</code>
     */
    java.lang.String getDlBandwidth();
    /**
@@ -4931,8 +4553,7 @@
     *LTE
     * </pre>
     *
     * <code>string dl_bandwidth = 19;</code>
     * @return The bytes for dlBandwidth.
     * <code>optional string dl_bandwidth = 19;</code>
     */
    com.google.protobuf.ByteString
        getDlBandwidthBytes();
@@ -4942,8 +4563,7 @@
     *LTE
     * </pre>
     *
     * <code>string is_tdd = 20;</code>
     * @return The isTdd.
     * <code>optional string is_tdd = 20;</code>
     */
    java.lang.String getIsTdd();
    /**
@@ -4951,8 +4571,7 @@
     *LTE
     * </pre>
     *
     * <code>string is_tdd = 20;</code>
     * @return The bytes for isTdd.
     * <code>optional string is_tdd = 20;</code>
     */
    com.google.protobuf.ByteString
        getIsTddBytes();
@@ -4962,8 +4581,7 @@
     *LTE
     * </pre>
     *
     * <code>string rssi = 21;</code>
     * @return The rssi.
     * <code>optional string rssi = 21;</code>
     */
    java.lang.String getRssi();
    /**
@@ -4971,8 +4589,7 @@
     *LTE
     * </pre>
     *
     * <code>string rssi = 21;</code>
     * @return The bytes for rssi.
     * <code>optional string rssi = 21;</code>
     */
    com.google.protobuf.ByteString
        getRssiBytes();
@@ -4982,8 +4599,7 @@
     *NR5G-SA
     * </pre>
     *
     * <code>string duplex_mode = 22;</code>
     * @return The duplexMode.
     * <code>optional string duplex_mode = 22;</code>
     */
    java.lang.String getDuplexMode();
    /**
@@ -4991,8 +4607,7 @@
     *NR5G-SA
     * </pre>
     *
     * <code>string duplex_mode = 22;</code>
     * @return The bytes for duplexMode.
     * <code>optional string duplex_mode = 22;</code>
     */
    com.google.protobuf.ByteString
        getDuplexModeBytes();
@@ -5002,8 +4617,7 @@
     *经度
     * </pre>
     *
     * <code>double lng = 23;</code>
     * @return The lng.
     * <code>optional double lng = 23;</code>
     */
    double getLng();
@@ -5012,8 +4626,7 @@
     *纬度
     * </pre>
     *
     * <code>double lat = 24;</code>
     * @return The lat.
     * <code>optional double lat = 24;</code>
     */
    double getLat();
@@ -5022,8 +4635,7 @@
     *高度(单位:米)
     * </pre>
     *
     * <code>float height = 25;</code>
     * @return The height.
     * <code>optional float height = 25;</code>
     */
    float getHeight();
@@ -5032,8 +4644,7 @@
     *时间戳(单位:秒)
     * </pre>
     *
     * <code>uint32 timestamp = 26;</code>
     * @return The timestamp.
     * <code>optional uint32 timestamp = 26;</code>
     */
    int getTimestamp();
@@ -5042,8 +4653,7 @@
     *1=线缆故障,2=OSDK未激活,3=正常,4=云盒固件更新
     * </pre>
     *
     * <code>uint32 boxstate = 27;</code>
     * @return The boxstate.
     * <code>optional uint32 boxstate = 27;</code>
     */
    int getBoxstate();
@@ -5052,8 +4662,7 @@
     *运营商
     * </pre>
     *
     * <code>string isp = 28;</code>
     * @return The isp.
     * <code>optional string isp = 28;</code>
     */
    java.lang.String getIsp();
    /**
@@ -5061,8 +4670,7 @@
     *运营商
     * </pre>
     *
     * <code>string isp = 28;</code>
     * @return The bytes for isp.
     * <code>optional string isp = 28;</code>
     */
    com.google.protobuf.ByteString
        getIspBytes();
@@ -5072,8 +4680,7 @@
     *模组芯片温度(单位:摄氏度)
     * </pre>
     *
     * <code>uint32 tempMax = 29;</code>
     * @return The tempMax.
     * <code>optional uint32 tempMax = 29;</code>
     */
    int getTempMax();
@@ -5082,8 +4689,7 @@
     *prx路径的rsrp值
     * </pre>
     *
     * <code>string prx_rsrp = 30;</code>
     * @return The prxRsrp.
     * <code>optional string prx_rsrp = 30;</code>
     */
    java.lang.String getPrxRsrp();
    /**
@@ -5091,8 +4697,7 @@
     *prx路径的rsrp值
     * </pre>
     *
     * <code>string prx_rsrp = 30;</code>
     * @return The bytes for prxRsrp.
     * <code>optional string prx_rsrp = 30;</code>
     */
    com.google.protobuf.ByteString
        getPrxRsrpBytes();
@@ -5102,8 +4707,7 @@
     *drx路径的rsrp值
     * </pre>
     *
     * <code>string drx_rsrp = 31;</code>
     * @return The drxRsrp.
     * <code>optional string drx_rsrp = 31;</code>
     */
    java.lang.String getDrxRsrp();
    /**
@@ -5111,8 +4715,7 @@
     *drx路径的rsrp值
     * </pre>
     *
     * <code>string drx_rsrp = 31;</code>
     * @return The bytes for drxRsrp.
     * <code>optional string drx_rsrp = 31;</code>
     */
    com.google.protobuf.ByteString
        getDrxRsrpBytes();
@@ -5122,8 +4725,7 @@
     *rx2路径的rsrp值
     * </pre>
     *
     * <code>string rx2_rsrp = 32;</code>
     * @return The rx2Rsrp.
     * <code>optional string rx2_rsrp = 32;</code>
     */
    java.lang.String getRx2Rsrp();
    /**
@@ -5131,8 +4733,7 @@
     *rx2路径的rsrp值
     * </pre>
     *
     * <code>string rx2_rsrp = 32;</code>
     * @return The bytes for rx2Rsrp.
     * <code>optional string rx2_rsrp = 32;</code>
     */
    com.google.protobuf.ByteString
        getRx2RsrpBytes();
@@ -5142,8 +4743,7 @@
     *rx3路径的rsrp值
     * </pre>
     *
     * <code>string rx3_rsrp = 33;</code>
     * @return The rx3Rsrp.
     * <code>optional string rx3_rsrp = 33;</code>
     */
    java.lang.String getRx3Rsrp();
    /**
@@ -5151,8 +4751,7 @@
     *rx3路径的rsrp值
     * </pre>
     *
     * <code>string rx3_rsrp = 33;</code>
     * @return The bytes for rx3Rsrp.
     * <code>optional string rx3_rsrp = 33;</code>
     */
    com.google.protobuf.ByteString
        getRx3RsrpBytes();
@@ -5162,8 +4761,7 @@
     *云盒编号
     * </pre>
     *
     * <code>string box_sn = 34;</code>
     * @return The boxSn.
     * <code>optional string box_sn = 34;</code>
     */
    java.lang.String getBoxSn();
    /**
@@ -5171,8 +4769,7 @@
     *云盒编号
     * </pre>
     *
     * <code>string box_sn = 34;</code>
     * @return The bytes for boxSn.
     * <code>optional string box_sn = 34;</code>
     */
    com.google.protobuf.ByteString
        getBoxSnBytes();
@@ -5184,11 +4781,10 @@
   *
   * Protobuf type {@code SignalInfo}
   */
  public static final class SignalInfo extends
  public  static final class SignalInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SignalInfo)
      SignalInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SignalInfo.newBuilder() to construct.
    private SignalInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
@@ -5216,7 +4812,13 @@
      isTdd_ = "";
      rssi_ = "";
      duplexMode_ = "";
      lng_ = 0D;
      lat_ = 0D;
      height_ = 0F;
      timestamp_ = 0;
      boxstate_ = 0;
      isp_ = "";
      tempMax_ = 0;
      prxRsrp_ = "";
      drxRsrp_ = "";
      rx2Rsrp_ = "";
@@ -5225,27 +4827,17 @@
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SignalInfo();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private SignalInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      int mutable_bitField0_ = 0;
      int mutable_bitField1_ = 0;
      try {
        boolean done = false;
        while (!done) {
@@ -5254,6 +4846,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();
@@ -5452,24 +5050,14 @@
              boxSn_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -5478,7 +5066,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SignalInfo_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SignalInfo_fieldAccessorTable
@@ -5493,10 +5080,8 @@
     *入网模式:NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string mode = 1;</code>
     * @return The mode.
     * <code>optional string mode = 1;</code>
     */
    @java.lang.Override
    public java.lang.String getMode() {
      java.lang.Object ref = mode_;
      if (ref instanceof java.lang.String) {
@@ -5514,10 +5099,8 @@
     *入网模式:NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string mode = 1;</code>
     * @return The bytes for mode.
     * <code>optional string mode = 1;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getModeBytes() {
      java.lang.Object ref = mode_;
@@ -5539,10 +5122,8 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string mcc = 2;</code>
     * @return The mcc.
     * <code>optional string mcc = 2;</code>
     */
    @java.lang.Override
    public java.lang.String getMcc() {
      java.lang.Object ref = mcc_;
      if (ref instanceof java.lang.String) {
@@ -5560,10 +5141,8 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string mcc = 2;</code>
     * @return The bytes for mcc.
     * <code>optional string mcc = 2;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMccBytes() {
      java.lang.Object ref = mcc_;
@@ -5585,10 +5164,8 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string mnc = 3;</code>
     * @return The mnc.
     * <code>optional string mnc = 3;</code>
     */
    @java.lang.Override
    public java.lang.String getMnc() {
      java.lang.Object ref = mnc_;
      if (ref instanceof java.lang.String) {
@@ -5606,10 +5183,8 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string mnc = 3;</code>
     * @return The bytes for mnc.
     * <code>optional string mnc = 3;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getMncBytes() {
      java.lang.Object ref = mnc_;
@@ -5631,10 +5206,8 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string cellid = 4;</code>
     * @return The cellid.
     * <code>optional string cellid = 4;</code>
     */
    @java.lang.Override
    public java.lang.String getCellid() {
      java.lang.Object ref = cellid_;
      if (ref instanceof java.lang.String) {
@@ -5652,10 +5225,8 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string cellid = 4;</code>
     * @return The bytes for cellid.
     * <code>optional string cellid = 4;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCellidBytes() {
      java.lang.Object ref = cellid_;
@@ -5677,10 +5248,8 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string pcid = 5;</code>
     * @return The pcid.
     * <code>optional string pcid = 5;</code>
     */
    @java.lang.Override
    public java.lang.String getPcid() {
      java.lang.Object ref = pcid_;
      if (ref instanceof java.lang.String) {
@@ -5698,10 +5267,8 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string pcid = 5;</code>
     * @return The bytes for pcid.
     * <code>optional string pcid = 5;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPcidBytes() {
      java.lang.Object ref = pcid_;
@@ -5723,10 +5290,8 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string tac = 6;</code>
     * @return The tac.
     * <code>optional string tac = 6;</code>
     */
    @java.lang.Override
    public java.lang.String getTac() {
      java.lang.Object ref = tac_;
      if (ref instanceof java.lang.String) {
@@ -5744,10 +5309,8 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string tac = 6;</code>
     * @return The bytes for tac.
     * <code>optional string tac = 6;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTacBytes() {
      java.lang.Object ref = tac_;
@@ -5769,10 +5332,8 @@
     *NR5G-SA,NR5G-NSA
     * </pre>
     *
     * <code>string arfcn = 7;</code>
     * @return The arfcn.
     * <code>optional string arfcn = 7;</code>
     */
    @java.lang.Override
    public java.lang.String getArfcn() {
      java.lang.Object ref = arfcn_;
      if (ref instanceof java.lang.String) {
@@ -5790,10 +5351,8 @@
     *NR5G-SA,NR5G-NSA
     * </pre>
     *
     * <code>string arfcn = 7;</code>
     * @return The bytes for arfcn.
     * <code>optional string arfcn = 7;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getArfcnBytes() {
      java.lang.Object ref = arfcn_;
@@ -5815,10 +5374,8 @@
     *NR5G-SA,NR5G-NSA
     * </pre>
     *
     * <code>string band = 8;</code>
     * @return The band.
     * <code>optional string band = 8;</code>
     */
    @java.lang.Override
    public java.lang.String getBand() {
      java.lang.Object ref = band_;
      if (ref instanceof java.lang.String) {
@@ -5836,10 +5393,8 @@
     *NR5G-SA,NR5G-NSA
     * </pre>
     *
     * <code>string band = 8;</code>
     * @return The bytes for band.
     * <code>optional string band = 8;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBandBytes() {
      java.lang.Object ref = band_;
@@ -5861,10 +5416,8 @@
     *NR5G-SA
     * </pre>
     *
     * <code>string nr_dl_bandwidth = 9;</code>
     * @return The nrDlBandwidth.
     * <code>optional string nr_dl_bandwidth = 9;</code>
     */
    @java.lang.Override
    public java.lang.String getNrDlBandwidth() {
      java.lang.Object ref = nrDlBandwidth_;
      if (ref instanceof java.lang.String) {
@@ -5882,10 +5435,8 @@
     *NR5G-SA
     * </pre>
     *
     * <code>string nr_dl_bandwidth = 9;</code>
     * @return The bytes for nrDlBandwidth.
     * <code>optional string nr_dl_bandwidth = 9;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNrDlBandwidthBytes() {
      java.lang.Object ref = nrDlBandwidth_;
@@ -5907,10 +5458,8 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string rsrp = 10;</code>
     * @return The rsrp.
     * <code>optional string rsrp = 10;</code>
     */
    @java.lang.Override
    public java.lang.String getRsrp() {
      java.lang.Object ref = rsrp_;
      if (ref instanceof java.lang.String) {
@@ -5928,10 +5477,8 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string rsrp = 10;</code>
     * @return The bytes for rsrp.
     * <code>optional string rsrp = 10;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRsrpBytes() {
      java.lang.Object ref = rsrp_;
@@ -5953,10 +5500,8 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string rsrq = 11;</code>
     * @return The rsrq.
     * <code>optional string rsrq = 11;</code>
     */
    @java.lang.Override
    public java.lang.String getRsrq() {
      java.lang.Object ref = rsrq_;
      if (ref instanceof java.lang.String) {
@@ -5974,10 +5519,8 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string rsrq = 11;</code>
     * @return The bytes for rsrq.
     * <code>optional string rsrq = 11;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRsrqBytes() {
      java.lang.Object ref = rsrq_;
@@ -5999,10 +5542,8 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string sinr = 12;</code>
     * @return The sinr.
     * <code>optional string sinr = 12;</code>
     */
    @java.lang.Override
    public java.lang.String getSinr() {
      java.lang.Object ref = sinr_;
      if (ref instanceof java.lang.String) {
@@ -6020,10 +5561,8 @@
     *NR5G-SA,NR5G-NSA,LTE
     * </pre>
     *
     * <code>string sinr = 12;</code>
     * @return The bytes for sinr.
     * <code>optional string sinr = 12;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSinrBytes() {
      java.lang.Object ref = sinr_;
@@ -6045,10 +5584,8 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string tx_power = 13;</code>
     * @return The txPower.
     * <code>optional string tx_power = 13;</code>
     */
    @java.lang.Override
    public java.lang.String getTxPower() {
      java.lang.Object ref = txPower_;
      if (ref instanceof java.lang.String) {
@@ -6066,10 +5603,8 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string tx_power = 13;</code>
     * @return The bytes for txPower.
     * <code>optional string tx_power = 13;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTxPowerBytes() {
      java.lang.Object ref = txPower_;
@@ -6091,10 +5626,8 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string srxlev = 14;</code>
     * @return The srxlev.
     * <code>optional string srxlev = 14;</code>
     */
    @java.lang.Override
    public java.lang.String getSrxlev() {
      java.lang.Object ref = srxlev_;
      if (ref instanceof java.lang.String) {
@@ -6112,10 +5645,8 @@
     *NR5G-SA,LTE
     * </pre>
     *
     * <code>string srxlev = 14;</code>
     * @return The bytes for srxlev.
     * <code>optional string srxlev = 14;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSrxlevBytes() {
      java.lang.Object ref = srxlev_;
@@ -6137,10 +5668,8 @@
     *LTE
     * </pre>
     *
     * <code>string cqi = 15;</code>
     * @return The cqi.
     * <code>optional string cqi = 15;</code>
     */
    @java.lang.Override
    public java.lang.String getCqi() {
      java.lang.Object ref = cqi_;
      if (ref instanceof java.lang.String) {
@@ -6158,10 +5687,8 @@
     *LTE
     * </pre>
     *
     * <code>string cqi = 15;</code>
     * @return The bytes for cqi.
     * <code>optional string cqi = 15;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getCqiBytes() {
      java.lang.Object ref = cqi_;
@@ -6183,10 +5710,8 @@
     *LTE
     * </pre>
     *
     * <code>string earfcn = 16;</code>
     * @return The earfcn.
     * <code>optional string earfcn = 16;</code>
     */
    @java.lang.Override
    public java.lang.String getEarfcn() {
      java.lang.Object ref = earfcn_;
      if (ref instanceof java.lang.String) {
@@ -6204,10 +5729,8 @@
     *LTE
     * </pre>
     *
     * <code>string earfcn = 16;</code>
     * @return The bytes for earfcn.
     * <code>optional string earfcn = 16;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEarfcnBytes() {
      java.lang.Object ref = earfcn_;
@@ -6229,10 +5752,8 @@
     *LTE
     * </pre>
     *
     * <code>string freq_band_ind = 17;</code>
     * @return The freqBandInd.
     * <code>optional string freq_band_ind = 17;</code>
     */
    @java.lang.Override
    public java.lang.String getFreqBandInd() {
      java.lang.Object ref = freqBandInd_;
      if (ref instanceof java.lang.String) {
@@ -6250,10 +5771,8 @@
     *LTE
     * </pre>
     *
     * <code>string freq_band_ind = 17;</code>
     * @return The bytes for freqBandInd.
     * <code>optional string freq_band_ind = 17;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getFreqBandIndBytes() {
      java.lang.Object ref = freqBandInd_;
@@ -6275,10 +5794,8 @@
     *LTE
     * </pre>
     *
     * <code>string ul_bandwidth = 18;</code>
     * @return The ulBandwidth.
     * <code>optional string ul_bandwidth = 18;</code>
     */
    @java.lang.Override
    public java.lang.String getUlBandwidth() {
      java.lang.Object ref = ulBandwidth_;
      if (ref instanceof java.lang.String) {
@@ -6296,10 +5813,8 @@
     *LTE
     * </pre>
     *
     * <code>string ul_bandwidth = 18;</code>
     * @return The bytes for ulBandwidth.
     * <code>optional string ul_bandwidth = 18;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getUlBandwidthBytes() {
      java.lang.Object ref = ulBandwidth_;
@@ -6321,10 +5836,8 @@
     *LTE
     * </pre>
     *
     * <code>string dl_bandwidth = 19;</code>
     * @return The dlBandwidth.
     * <code>optional string dl_bandwidth = 19;</code>
     */
    @java.lang.Override
    public java.lang.String getDlBandwidth() {
      java.lang.Object ref = dlBandwidth_;
      if (ref instanceof java.lang.String) {
@@ -6342,10 +5855,8 @@
     *LTE
     * </pre>
     *
     * <code>string dl_bandwidth = 19;</code>
     * @return The bytes for dlBandwidth.
     * <code>optional string dl_bandwidth = 19;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDlBandwidthBytes() {
      java.lang.Object ref = dlBandwidth_;
@@ -6367,10 +5878,8 @@
     *LTE
     * </pre>
     *
     * <code>string is_tdd = 20;</code>
     * @return The isTdd.
     * <code>optional string is_tdd = 20;</code>
     */
    @java.lang.Override
    public java.lang.String getIsTdd() {
      java.lang.Object ref = isTdd_;
      if (ref instanceof java.lang.String) {
@@ -6388,10 +5897,8 @@
     *LTE
     * </pre>
     *
     * <code>string is_tdd = 20;</code>
     * @return The bytes for isTdd.
     * <code>optional string is_tdd = 20;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIsTddBytes() {
      java.lang.Object ref = isTdd_;
@@ -6413,10 +5920,8 @@
     *LTE
     * </pre>
     *
     * <code>string rssi = 21;</code>
     * @return The rssi.
     * <code>optional string rssi = 21;</code>
     */
    @java.lang.Override
    public java.lang.String getRssi() {
      java.lang.Object ref = rssi_;
      if (ref instanceof java.lang.String) {
@@ -6434,10 +5939,8 @@
     *LTE
     * </pre>
     *
     * <code>string rssi = 21;</code>
     * @return The bytes for rssi.
     * <code>optional string rssi = 21;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRssiBytes() {
      java.lang.Object ref = rssi_;
@@ -6459,10 +5962,8 @@
     *NR5G-SA
     * </pre>
     *
     * <code>string duplex_mode = 22;</code>
     * @return The duplexMode.
     * <code>optional string duplex_mode = 22;</code>
     */
    @java.lang.Override
    public java.lang.String getDuplexMode() {
      java.lang.Object ref = duplexMode_;
      if (ref instanceof java.lang.String) {
@@ -6480,10 +5981,8 @@
     *NR5G-SA
     * </pre>
     *
     * <code>string duplex_mode = 22;</code>
     * @return The bytes for duplexMode.
     * <code>optional string duplex_mode = 22;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDuplexModeBytes() {
      java.lang.Object ref = duplexMode_;
@@ -6505,10 +6004,8 @@
     *经度
     * </pre>
     *
     * <code>double lng = 23;</code>
     * @return The lng.
     * <code>optional double lng = 23;</code>
     */
    @java.lang.Override
    public double getLng() {
      return lng_;
    }
@@ -6520,10 +6017,8 @@
     *纬度
     * </pre>
     *
     * <code>double lat = 24;</code>
     * @return The lat.
     * <code>optional double lat = 24;</code>
     */
    @java.lang.Override
    public double getLat() {
      return lat_;
    }
@@ -6535,10 +6030,8 @@
     *高度(单位:米)
     * </pre>
     *
     * <code>float height = 25;</code>
     * @return The height.
     * <code>optional float height = 25;</code>
     */
    @java.lang.Override
    public float getHeight() {
      return height_;
    }
@@ -6550,10 +6043,8 @@
     *时间戳(单位:秒)
     * </pre>
     *
     * <code>uint32 timestamp = 26;</code>
     * @return The timestamp.
     * <code>optional uint32 timestamp = 26;</code>
     */
    @java.lang.Override
    public int getTimestamp() {
      return timestamp_;
    }
@@ -6565,10 +6056,8 @@
     *1=线缆故障,2=OSDK未激活,3=正常,4=云盒固件更新
     * </pre>
     *
     * <code>uint32 boxstate = 27;</code>
     * @return The boxstate.
     * <code>optional uint32 boxstate = 27;</code>
     */
    @java.lang.Override
    public int getBoxstate() {
      return boxstate_;
    }
@@ -6580,10 +6069,8 @@
     *运营商
     * </pre>
     *
     * <code>string isp = 28;</code>
     * @return The isp.
     * <code>optional string isp = 28;</code>
     */
    @java.lang.Override
    public java.lang.String getIsp() {
      java.lang.Object ref = isp_;
      if (ref instanceof java.lang.String) {
@@ -6601,10 +6088,8 @@
     *运营商
     * </pre>
     *
     * <code>string isp = 28;</code>
     * @return The bytes for isp.
     * <code>optional string isp = 28;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getIspBytes() {
      java.lang.Object ref = isp_;
@@ -6626,10 +6111,8 @@
     *模组芯片温度(单位:摄氏度)
     * </pre>
     *
     * <code>uint32 tempMax = 29;</code>
     * @return The tempMax.
     * <code>optional uint32 tempMax = 29;</code>
     */
    @java.lang.Override
    public int getTempMax() {
      return tempMax_;
    }
@@ -6641,10 +6124,8 @@
     *prx路径的rsrp值
     * </pre>
     *
     * <code>string prx_rsrp = 30;</code>
     * @return The prxRsrp.
     * <code>optional string prx_rsrp = 30;</code>
     */
    @java.lang.Override
    public java.lang.String getPrxRsrp() {
      java.lang.Object ref = prxRsrp_;
      if (ref instanceof java.lang.String) {
@@ -6662,10 +6143,8 @@
     *prx路径的rsrp值
     * </pre>
     *
     * <code>string prx_rsrp = 30;</code>
     * @return The bytes for prxRsrp.
     * <code>optional string prx_rsrp = 30;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPrxRsrpBytes() {
      java.lang.Object ref = prxRsrp_;
@@ -6687,10 +6166,8 @@
     *drx路径的rsrp值
     * </pre>
     *
     * <code>string drx_rsrp = 31;</code>
     * @return The drxRsrp.
     * <code>optional string drx_rsrp = 31;</code>
     */
    @java.lang.Override
    public java.lang.String getDrxRsrp() {
      java.lang.Object ref = drxRsrp_;
      if (ref instanceof java.lang.String) {
@@ -6708,10 +6185,8 @@
     *drx路径的rsrp值
     * </pre>
     *
     * <code>string drx_rsrp = 31;</code>
     * @return The bytes for drxRsrp.
     * <code>optional string drx_rsrp = 31;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDrxRsrpBytes() {
      java.lang.Object ref = drxRsrp_;
@@ -6733,10 +6208,8 @@
     *rx2路径的rsrp值
     * </pre>
     *
     * <code>string rx2_rsrp = 32;</code>
     * @return The rx2Rsrp.
     * <code>optional string rx2_rsrp = 32;</code>
     */
    @java.lang.Override
    public java.lang.String getRx2Rsrp() {
      java.lang.Object ref = rx2Rsrp_;
      if (ref instanceof java.lang.String) {
@@ -6754,10 +6227,8 @@
     *rx2路径的rsrp值
     * </pre>
     *
     * <code>string rx2_rsrp = 32;</code>
     * @return The bytes for rx2Rsrp.
     * <code>optional string rx2_rsrp = 32;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRx2RsrpBytes() {
      java.lang.Object ref = rx2Rsrp_;
@@ -6779,10 +6250,8 @@
     *rx3路径的rsrp值
     * </pre>
     *
     * <code>string rx3_rsrp = 33;</code>
     * @return The rx3Rsrp.
     * <code>optional string rx3_rsrp = 33;</code>
     */
    @java.lang.Override
    public java.lang.String getRx3Rsrp() {
      java.lang.Object ref = rx3Rsrp_;
      if (ref instanceof java.lang.String) {
@@ -6800,10 +6269,8 @@
     *rx3路径的rsrp值
     * </pre>
     *
     * <code>string rx3_rsrp = 33;</code>
     * @return The bytes for rx3Rsrp.
     * <code>optional string rx3_rsrp = 33;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRx3RsrpBytes() {
      java.lang.Object ref = rx3Rsrp_;
@@ -6825,10 +6292,8 @@
     *云盒编号
     * </pre>
     *
     * <code>string box_sn = 34;</code>
     * @return The boxSn.
     * <code>optional string box_sn = 34;</code>
     */
    @java.lang.Override
    public java.lang.String getBoxSn() {
      java.lang.Object ref = boxSn_;
      if (ref instanceof java.lang.String) {
@@ -6846,10 +6311,8 @@
     *云盒编号
     * </pre>
     *
     * <code>string box_sn = 34;</code>
     * @return The bytes for boxSn.
     * <code>optional string box_sn = 34;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBoxSnBytes() {
      java.lang.Object ref = boxSn_;
@@ -6865,7 +6328,6 @@
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -6875,82 +6337,81 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mode_)) {
      if (!getModeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, mode_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mcc_)) {
      if (!getMccBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, mcc_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mnc_)) {
      if (!getMncBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, mnc_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cellid_)) {
      if (!getCellidBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, cellid_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pcid_)) {
      if (!getPcidBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, pcid_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tac_)) {
      if (!getTacBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, tac_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(arfcn_)) {
      if (!getArfcnBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, arfcn_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(band_)) {
      if (!getBandBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, band_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nrDlBandwidth_)) {
      if (!getNrDlBandwidthBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, nrDlBandwidth_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rsrp_)) {
      if (!getRsrpBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, rsrp_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rsrq_)) {
      if (!getRsrqBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, rsrq_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sinr_)) {
      if (!getSinrBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, sinr_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(txPower_)) {
      if (!getTxPowerBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, txPower_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srxlev_)) {
      if (!getSrxlevBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 14, srxlev_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cqi_)) {
      if (!getCqiBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 15, cqi_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(earfcn_)) {
      if (!getEarfcnBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 16, earfcn_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(freqBandInd_)) {
      if (!getFreqBandIndBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 17, freqBandInd_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ulBandwidth_)) {
      if (!getUlBandwidthBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 18, ulBandwidth_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dlBandwidth_)) {
      if (!getDlBandwidthBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 19, dlBandwidth_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(isTdd_)) {
      if (!getIsTddBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 20, isTdd_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rssi_)) {
      if (!getRssiBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 21, rssi_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(duplexMode_)) {
      if (!getDuplexModeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 22, duplexMode_);
      }
      if (java.lang.Double.doubleToRawLongBits(lng_) != 0) {
      if (lng_ != 0D) {
        output.writeDouble(23, lng_);
      }
      if (java.lang.Double.doubleToRawLongBits(lat_) != 0) {
      if (lat_ != 0D) {
        output.writeDouble(24, lat_);
      }
      if (java.lang.Float.floatToRawIntBits(height_) != 0) {
      if (height_ != 0F) {
        output.writeFloat(25, height_);
      }
      if (timestamp_ != 0) {
@@ -6959,111 +6420,109 @@
      if (boxstate_ != 0) {
        output.writeUInt32(27, boxstate_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(isp_)) {
      if (!getIspBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 28, isp_);
      }
      if (tempMax_ != 0) {
        output.writeUInt32(29, tempMax_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(prxRsrp_)) {
      if (!getPrxRsrpBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 30, prxRsrp_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(drxRsrp_)) {
      if (!getDrxRsrpBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 31, drxRsrp_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rx2Rsrp_)) {
      if (!getRx2RsrpBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 32, rx2Rsrp_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rx3Rsrp_)) {
      if (!getRx3RsrpBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 33, rx3Rsrp_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(boxSn_)) {
      if (!getBoxSnBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 34, boxSn_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mode_)) {
      if (!getModeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, mode_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mcc_)) {
      if (!getMccBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, mcc_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mnc_)) {
      if (!getMncBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, mnc_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cellid_)) {
      if (!getCellidBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, cellid_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pcid_)) {
      if (!getPcidBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, pcid_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tac_)) {
      if (!getTacBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, tac_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(arfcn_)) {
      if (!getArfcnBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, arfcn_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(band_)) {
      if (!getBandBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, band_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nrDlBandwidth_)) {
      if (!getNrDlBandwidthBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, nrDlBandwidth_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rsrp_)) {
      if (!getRsrpBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, rsrp_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rsrq_)) {
      if (!getRsrqBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, rsrq_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sinr_)) {
      if (!getSinrBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, sinr_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(txPower_)) {
      if (!getTxPowerBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(13, txPower_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srxlev_)) {
      if (!getSrxlevBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, srxlev_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cqi_)) {
      if (!getCqiBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, cqi_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(earfcn_)) {
      if (!getEarfcnBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, earfcn_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(freqBandInd_)) {
      if (!getFreqBandIndBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, freqBandInd_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ulBandwidth_)) {
      if (!getUlBandwidthBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, ulBandwidth_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dlBandwidth_)) {
      if (!getDlBandwidthBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, dlBandwidth_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(isTdd_)) {
      if (!getIsTddBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(20, isTdd_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rssi_)) {
      if (!getRssiBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(21, rssi_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(duplexMode_)) {
      if (!getDuplexModeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(22, duplexMode_);
      }
      if (java.lang.Double.doubleToRawLongBits(lng_) != 0) {
      if (lng_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(23, lng_);
      }
      if (java.lang.Double.doubleToRawLongBits(lat_) != 0) {
      if (lat_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(24, lat_);
      }
      if (java.lang.Float.floatToRawIntBits(height_) != 0) {
      if (height_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(25, height_);
      }
@@ -7075,33 +6534,33 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(27, boxstate_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(isp_)) {
      if (!getIspBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(28, isp_);
      }
      if (tempMax_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(29, tempMax_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(prxRsrp_)) {
      if (!getPrxRsrpBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(30, prxRsrp_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(drxRsrp_)) {
      if (!getDrxRsrpBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(31, drxRsrp_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rx2Rsrp_)) {
      if (!getRx2RsrpBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(32, rx2Rsrp_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rx3Rsrp_)) {
      if (!getRx3RsrpBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(33, rx3Rsrp_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(boxSn_)) {
      if (!getBoxSnBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(34, boxSn_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -7112,79 +6571,82 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo) obj;
      if (!getMode()
          .equals(other.getMode())) return false;
      if (!getMcc()
          .equals(other.getMcc())) return false;
      if (!getMnc()
          .equals(other.getMnc())) return false;
      if (!getCellid()
          .equals(other.getCellid())) return false;
      if (!getPcid()
          .equals(other.getPcid())) return false;
      if (!getTac()
          .equals(other.getTac())) return false;
      if (!getArfcn()
          .equals(other.getArfcn())) return false;
      if (!getBand()
          .equals(other.getBand())) return false;
      if (!getNrDlBandwidth()
          .equals(other.getNrDlBandwidth())) return false;
      if (!getRsrp()
          .equals(other.getRsrp())) return false;
      if (!getRsrq()
          .equals(other.getRsrq())) return false;
      if (!getSinr()
          .equals(other.getSinr())) return false;
      if (!getTxPower()
          .equals(other.getTxPower())) return false;
      if (!getSrxlev()
          .equals(other.getSrxlev())) return false;
      if (!getCqi()
          .equals(other.getCqi())) return false;
      if (!getEarfcn()
          .equals(other.getEarfcn())) return false;
      if (!getFreqBandInd()
          .equals(other.getFreqBandInd())) return false;
      if (!getUlBandwidth()
          .equals(other.getUlBandwidth())) return false;
      if (!getDlBandwidth()
          .equals(other.getDlBandwidth())) return false;
      if (!getIsTdd()
          .equals(other.getIsTdd())) return false;
      if (!getRssi()
          .equals(other.getRssi())) return false;
      if (!getDuplexMode()
          .equals(other.getDuplexMode())) return false;
      if (java.lang.Double.doubleToLongBits(getLng())
          != java.lang.Double.doubleToLongBits(
              other.getLng())) return false;
      if (java.lang.Double.doubleToLongBits(getLat())
          != java.lang.Double.doubleToLongBits(
              other.getLat())) return false;
      if (java.lang.Float.floatToIntBits(getHeight())
          != java.lang.Float.floatToIntBits(
              other.getHeight())) return false;
      if (getTimestamp()
          != other.getTimestamp()) return false;
      if (getBoxstate()
          != other.getBoxstate()) return false;
      if (!getIsp()
          .equals(other.getIsp())) return false;
      if (getTempMax()
          != other.getTempMax()) return false;
      if (!getPrxRsrp()
          .equals(other.getPrxRsrp())) return false;
      if (!getDrxRsrp()
          .equals(other.getDrxRsrp())) return false;
      if (!getRx2Rsrp()
          .equals(other.getRx2Rsrp())) return false;
      if (!getRx3Rsrp()
          .equals(other.getRx3Rsrp())) return false;
      if (!getBoxSn()
          .equals(other.getBoxSn())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && getMode()
          .equals(other.getMode());
      result = result && getMcc()
          .equals(other.getMcc());
      result = result && getMnc()
          .equals(other.getMnc());
      result = result && getCellid()
          .equals(other.getCellid());
      result = result && getPcid()
          .equals(other.getPcid());
      result = result && getTac()
          .equals(other.getTac());
      result = result && getArfcn()
          .equals(other.getArfcn());
      result = result && getBand()
          .equals(other.getBand());
      result = result && getNrDlBandwidth()
          .equals(other.getNrDlBandwidth());
      result = result && getRsrp()
          .equals(other.getRsrp());
      result = result && getRsrq()
          .equals(other.getRsrq());
      result = result && getSinr()
          .equals(other.getSinr());
      result = result && getTxPower()
          .equals(other.getTxPower());
      result = result && getSrxlev()
          .equals(other.getSrxlev());
      result = result && getCqi()
          .equals(other.getCqi());
      result = result && getEarfcn()
          .equals(other.getEarfcn());
      result = result && getFreqBandInd()
          .equals(other.getFreqBandInd());
      result = result && getUlBandwidth()
          .equals(other.getUlBandwidth());
      result = result && getDlBandwidth()
          .equals(other.getDlBandwidth());
      result = result && getIsTdd()
          .equals(other.getIsTdd());
      result = result && getRssi()
          .equals(other.getRssi());
      result = result && getDuplexMode()
          .equals(other.getDuplexMode());
      result = result && (
          java.lang.Double.doubleToLongBits(getLng())
          == java.lang.Double.doubleToLongBits(
              other.getLng()));
      result = result && (
          java.lang.Double.doubleToLongBits(getLat())
          == java.lang.Double.doubleToLongBits(
              other.getLat()));
      result = result && (
          java.lang.Float.floatToIntBits(getHeight())
          == java.lang.Float.floatToIntBits(
              other.getHeight()));
      result = result && (getTimestamp()
          == other.getTimestamp());
      result = result && (getBoxstate()
          == other.getBoxstate());
      result = result && getIsp()
          .equals(other.getIsp());
      result = result && (getTempMax()
          == other.getTempMax());
      result = result && getPrxRsrp()
          .equals(other.getPrxRsrp());
      result = result && getDrxRsrp()
          .equals(other.getDrxRsrp());
      result = result && getRx2Rsrp()
          .equals(other.getRx2Rsrp());
      result = result && getRx3Rsrp()
          .equals(other.getRx3Rsrp());
      result = result && getBoxSn()
          .equals(other.getBoxSn());
      return result;
    }
    @java.lang.Override
@@ -7193,7 +6655,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + MODE_FIELD_NUMBER;
      hash = (53 * hash) + getMode().hashCode();
      hash = (37 * hash) + MCC_FIELD_NUMBER;
@@ -7271,17 +6733,6 @@
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
@@ -7340,7 +6791,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -7348,7 +6798,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -7376,7 +6825,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SignalInfo_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SignalInfo_fieldAccessorTable
@@ -7399,7 +6847,6 @@
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        mode_ = "";
@@ -7473,18 +6920,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SignalInfo_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo result = buildPartial();
        if (!result.isInitialized()) {
@@ -7493,7 +6937,6 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo(this);
        result.mode_ = mode_;
@@ -7534,39 +6977,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo)other);
@@ -7708,17 +7144,14 @@
          boxSn_ = other.boxSn_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -7743,8 +7176,7 @@
       *入网模式:NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mode = 1;</code>
       * @return The mode.
       * <code>optional string mode = 1;</code>
       */
      public java.lang.String getMode() {
        java.lang.Object ref = mode_;
@@ -7763,8 +7195,7 @@
       *入网模式:NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mode = 1;</code>
       * @return The bytes for mode.
       * <code>optional string mode = 1;</code>
       */
      public com.google.protobuf.ByteString
          getModeBytes() {
@@ -7784,9 +7215,7 @@
       *入网模式:NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mode = 1;</code>
       * @param value The mode to set.
       * @return This builder for chaining.
       * <code>optional string mode = 1;</code>
       */
      public Builder setMode(
          java.lang.String value) {
@@ -7803,8 +7232,7 @@
       *入网模式:NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mode = 1;</code>
       * @return This builder for chaining.
       * <code>optional string mode = 1;</code>
       */
      public Builder clearMode() {
        
@@ -7817,9 +7245,7 @@
       *入网模式:NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mode = 1;</code>
       * @param value The bytes for mode to set.
       * @return This builder for chaining.
       * <code>optional string mode = 1;</code>
       */
      public Builder setModeBytes(
          com.google.protobuf.ByteString value) {
@@ -7839,8 +7265,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mcc = 2;</code>
       * @return The mcc.
       * <code>optional string mcc = 2;</code>
       */
      public java.lang.String getMcc() {
        java.lang.Object ref = mcc_;
@@ -7859,8 +7284,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mcc = 2;</code>
       * @return The bytes for mcc.
       * <code>optional string mcc = 2;</code>
       */
      public com.google.protobuf.ByteString
          getMccBytes() {
@@ -7880,9 +7304,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mcc = 2;</code>
       * @param value The mcc to set.
       * @return This builder for chaining.
       * <code>optional string mcc = 2;</code>
       */
      public Builder setMcc(
          java.lang.String value) {
@@ -7899,8 +7321,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mcc = 2;</code>
       * @return This builder for chaining.
       * <code>optional string mcc = 2;</code>
       */
      public Builder clearMcc() {
        
@@ -7913,9 +7334,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mcc = 2;</code>
       * @param value The bytes for mcc to set.
       * @return This builder for chaining.
       * <code>optional string mcc = 2;</code>
       */
      public Builder setMccBytes(
          com.google.protobuf.ByteString value) {
@@ -7935,8 +7354,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mnc = 3;</code>
       * @return The mnc.
       * <code>optional string mnc = 3;</code>
       */
      public java.lang.String getMnc() {
        java.lang.Object ref = mnc_;
@@ -7955,8 +7373,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mnc = 3;</code>
       * @return The bytes for mnc.
       * <code>optional string mnc = 3;</code>
       */
      public com.google.protobuf.ByteString
          getMncBytes() {
@@ -7976,9 +7393,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mnc = 3;</code>
       * @param value The mnc to set.
       * @return This builder for chaining.
       * <code>optional string mnc = 3;</code>
       */
      public Builder setMnc(
          java.lang.String value) {
@@ -7995,8 +7410,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mnc = 3;</code>
       * @return This builder for chaining.
       * <code>optional string mnc = 3;</code>
       */
      public Builder clearMnc() {
        
@@ -8009,9 +7423,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string mnc = 3;</code>
       * @param value The bytes for mnc to set.
       * @return This builder for chaining.
       * <code>optional string mnc = 3;</code>
       */
      public Builder setMncBytes(
          com.google.protobuf.ByteString value) {
@@ -8031,8 +7443,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string cellid = 4;</code>
       * @return The cellid.
       * <code>optional string cellid = 4;</code>
       */
      public java.lang.String getCellid() {
        java.lang.Object ref = cellid_;
@@ -8051,8 +7462,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string cellid = 4;</code>
       * @return The bytes for cellid.
       * <code>optional string cellid = 4;</code>
       */
      public com.google.protobuf.ByteString
          getCellidBytes() {
@@ -8072,9 +7482,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string cellid = 4;</code>
       * @param value The cellid to set.
       * @return This builder for chaining.
       * <code>optional string cellid = 4;</code>
       */
      public Builder setCellid(
          java.lang.String value) {
@@ -8091,8 +7499,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string cellid = 4;</code>
       * @return This builder for chaining.
       * <code>optional string cellid = 4;</code>
       */
      public Builder clearCellid() {
        
@@ -8105,9 +7512,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string cellid = 4;</code>
       * @param value The bytes for cellid to set.
       * @return This builder for chaining.
       * <code>optional string cellid = 4;</code>
       */
      public Builder setCellidBytes(
          com.google.protobuf.ByteString value) {
@@ -8127,8 +7532,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string pcid = 5;</code>
       * @return The pcid.
       * <code>optional string pcid = 5;</code>
       */
      public java.lang.String getPcid() {
        java.lang.Object ref = pcid_;
@@ -8147,8 +7551,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string pcid = 5;</code>
       * @return The bytes for pcid.
       * <code>optional string pcid = 5;</code>
       */
      public com.google.protobuf.ByteString
          getPcidBytes() {
@@ -8168,9 +7571,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string pcid = 5;</code>
       * @param value The pcid to set.
       * @return This builder for chaining.
       * <code>optional string pcid = 5;</code>
       */
      public Builder setPcid(
          java.lang.String value) {
@@ -8187,8 +7588,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string pcid = 5;</code>
       * @return This builder for chaining.
       * <code>optional string pcid = 5;</code>
       */
      public Builder clearPcid() {
        
@@ -8201,9 +7601,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string pcid = 5;</code>
       * @param value The bytes for pcid to set.
       * @return This builder for chaining.
       * <code>optional string pcid = 5;</code>
       */
      public Builder setPcidBytes(
          com.google.protobuf.ByteString value) {
@@ -8223,8 +7621,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string tac = 6;</code>
       * @return The tac.
       * <code>optional string tac = 6;</code>
       */
      public java.lang.String getTac() {
        java.lang.Object ref = tac_;
@@ -8243,8 +7640,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string tac = 6;</code>
       * @return The bytes for tac.
       * <code>optional string tac = 6;</code>
       */
      public com.google.protobuf.ByteString
          getTacBytes() {
@@ -8264,9 +7660,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string tac = 6;</code>
       * @param value The tac to set.
       * @return This builder for chaining.
       * <code>optional string tac = 6;</code>
       */
      public Builder setTac(
          java.lang.String value) {
@@ -8283,8 +7677,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string tac = 6;</code>
       * @return This builder for chaining.
       * <code>optional string tac = 6;</code>
       */
      public Builder clearTac() {
        
@@ -8297,9 +7690,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string tac = 6;</code>
       * @param value The bytes for tac to set.
       * @return This builder for chaining.
       * <code>optional string tac = 6;</code>
       */
      public Builder setTacBytes(
          com.google.protobuf.ByteString value) {
@@ -8319,8 +7710,7 @@
       *NR5G-SA,NR5G-NSA
       * </pre>
       *
       * <code>string arfcn = 7;</code>
       * @return The arfcn.
       * <code>optional string arfcn = 7;</code>
       */
      public java.lang.String getArfcn() {
        java.lang.Object ref = arfcn_;
@@ -8339,8 +7729,7 @@
       *NR5G-SA,NR5G-NSA
       * </pre>
       *
       * <code>string arfcn = 7;</code>
       * @return The bytes for arfcn.
       * <code>optional string arfcn = 7;</code>
       */
      public com.google.protobuf.ByteString
          getArfcnBytes() {
@@ -8360,9 +7749,7 @@
       *NR5G-SA,NR5G-NSA
       * </pre>
       *
       * <code>string arfcn = 7;</code>
       * @param value The arfcn to set.
       * @return This builder for chaining.
       * <code>optional string arfcn = 7;</code>
       */
      public Builder setArfcn(
          java.lang.String value) {
@@ -8379,8 +7766,7 @@
       *NR5G-SA,NR5G-NSA
       * </pre>
       *
       * <code>string arfcn = 7;</code>
       * @return This builder for chaining.
       * <code>optional string arfcn = 7;</code>
       */
      public Builder clearArfcn() {
        
@@ -8393,9 +7779,7 @@
       *NR5G-SA,NR5G-NSA
       * </pre>
       *
       * <code>string arfcn = 7;</code>
       * @param value The bytes for arfcn to set.
       * @return This builder for chaining.
       * <code>optional string arfcn = 7;</code>
       */
      public Builder setArfcnBytes(
          com.google.protobuf.ByteString value) {
@@ -8415,8 +7799,7 @@
       *NR5G-SA,NR5G-NSA
       * </pre>
       *
       * <code>string band = 8;</code>
       * @return The band.
       * <code>optional string band = 8;</code>
       */
      public java.lang.String getBand() {
        java.lang.Object ref = band_;
@@ -8435,8 +7818,7 @@
       *NR5G-SA,NR5G-NSA
       * </pre>
       *
       * <code>string band = 8;</code>
       * @return The bytes for band.
       * <code>optional string band = 8;</code>
       */
      public com.google.protobuf.ByteString
          getBandBytes() {
@@ -8456,9 +7838,7 @@
       *NR5G-SA,NR5G-NSA
       * </pre>
       *
       * <code>string band = 8;</code>
       * @param value The band to set.
       * @return This builder for chaining.
       * <code>optional string band = 8;</code>
       */
      public Builder setBand(
          java.lang.String value) {
@@ -8475,8 +7855,7 @@
       *NR5G-SA,NR5G-NSA
       * </pre>
       *
       * <code>string band = 8;</code>
       * @return This builder for chaining.
       * <code>optional string band = 8;</code>
       */
      public Builder clearBand() {
        
@@ -8489,9 +7868,7 @@
       *NR5G-SA,NR5G-NSA
       * </pre>
       *
       * <code>string band = 8;</code>
       * @param value The bytes for band to set.
       * @return This builder for chaining.
       * <code>optional string band = 8;</code>
       */
      public Builder setBandBytes(
          com.google.protobuf.ByteString value) {
@@ -8511,8 +7888,7 @@
       *NR5G-SA
       * </pre>
       *
       * <code>string nr_dl_bandwidth = 9;</code>
       * @return The nrDlBandwidth.
       * <code>optional string nr_dl_bandwidth = 9;</code>
       */
      public java.lang.String getNrDlBandwidth() {
        java.lang.Object ref = nrDlBandwidth_;
@@ -8531,8 +7907,7 @@
       *NR5G-SA
       * </pre>
       *
       * <code>string nr_dl_bandwidth = 9;</code>
       * @return The bytes for nrDlBandwidth.
       * <code>optional string nr_dl_bandwidth = 9;</code>
       */
      public com.google.protobuf.ByteString
          getNrDlBandwidthBytes() {
@@ -8552,9 +7927,7 @@
       *NR5G-SA
       * </pre>
       *
       * <code>string nr_dl_bandwidth = 9;</code>
       * @param value The nrDlBandwidth to set.
       * @return This builder for chaining.
       * <code>optional string nr_dl_bandwidth = 9;</code>
       */
      public Builder setNrDlBandwidth(
          java.lang.String value) {
@@ -8571,8 +7944,7 @@
       *NR5G-SA
       * </pre>
       *
       * <code>string nr_dl_bandwidth = 9;</code>
       * @return This builder for chaining.
       * <code>optional string nr_dl_bandwidth = 9;</code>
       */
      public Builder clearNrDlBandwidth() {
        
@@ -8585,9 +7957,7 @@
       *NR5G-SA
       * </pre>
       *
       * <code>string nr_dl_bandwidth = 9;</code>
       * @param value The bytes for nrDlBandwidth to set.
       * @return This builder for chaining.
       * <code>optional string nr_dl_bandwidth = 9;</code>
       */
      public Builder setNrDlBandwidthBytes(
          com.google.protobuf.ByteString value) {
@@ -8607,8 +7977,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string rsrp = 10;</code>
       * @return The rsrp.
       * <code>optional string rsrp = 10;</code>
       */
      public java.lang.String getRsrp() {
        java.lang.Object ref = rsrp_;
@@ -8627,8 +7996,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string rsrp = 10;</code>
       * @return The bytes for rsrp.
       * <code>optional string rsrp = 10;</code>
       */
      public com.google.protobuf.ByteString
          getRsrpBytes() {
@@ -8648,9 +8016,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string rsrp = 10;</code>
       * @param value The rsrp to set.
       * @return This builder for chaining.
       * <code>optional string rsrp = 10;</code>
       */
      public Builder setRsrp(
          java.lang.String value) {
@@ -8667,8 +8033,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string rsrp = 10;</code>
       * @return This builder for chaining.
       * <code>optional string rsrp = 10;</code>
       */
      public Builder clearRsrp() {
        
@@ -8681,9 +8046,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string rsrp = 10;</code>
       * @param value The bytes for rsrp to set.
       * @return This builder for chaining.
       * <code>optional string rsrp = 10;</code>
       */
      public Builder setRsrpBytes(
          com.google.protobuf.ByteString value) {
@@ -8703,8 +8066,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string rsrq = 11;</code>
       * @return The rsrq.
       * <code>optional string rsrq = 11;</code>
       */
      public java.lang.String getRsrq() {
        java.lang.Object ref = rsrq_;
@@ -8723,8 +8085,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string rsrq = 11;</code>
       * @return The bytes for rsrq.
       * <code>optional string rsrq = 11;</code>
       */
      public com.google.protobuf.ByteString
          getRsrqBytes() {
@@ -8744,9 +8105,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string rsrq = 11;</code>
       * @param value The rsrq to set.
       * @return This builder for chaining.
       * <code>optional string rsrq = 11;</code>
       */
      public Builder setRsrq(
          java.lang.String value) {
@@ -8763,8 +8122,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string rsrq = 11;</code>
       * @return This builder for chaining.
       * <code>optional string rsrq = 11;</code>
       */
      public Builder clearRsrq() {
        
@@ -8777,9 +8135,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string rsrq = 11;</code>
       * @param value The bytes for rsrq to set.
       * @return This builder for chaining.
       * <code>optional string rsrq = 11;</code>
       */
      public Builder setRsrqBytes(
          com.google.protobuf.ByteString value) {
@@ -8799,8 +8155,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string sinr = 12;</code>
       * @return The sinr.
       * <code>optional string sinr = 12;</code>
       */
      public java.lang.String getSinr() {
        java.lang.Object ref = sinr_;
@@ -8819,8 +8174,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string sinr = 12;</code>
       * @return The bytes for sinr.
       * <code>optional string sinr = 12;</code>
       */
      public com.google.protobuf.ByteString
          getSinrBytes() {
@@ -8840,9 +8194,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string sinr = 12;</code>
       * @param value The sinr to set.
       * @return This builder for chaining.
       * <code>optional string sinr = 12;</code>
       */
      public Builder setSinr(
          java.lang.String value) {
@@ -8859,8 +8211,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string sinr = 12;</code>
       * @return This builder for chaining.
       * <code>optional string sinr = 12;</code>
       */
      public Builder clearSinr() {
        
@@ -8873,9 +8224,7 @@
       *NR5G-SA,NR5G-NSA,LTE
       * </pre>
       *
       * <code>string sinr = 12;</code>
       * @param value The bytes for sinr to set.
       * @return This builder for chaining.
       * <code>optional string sinr = 12;</code>
       */
      public Builder setSinrBytes(
          com.google.protobuf.ByteString value) {
@@ -8895,8 +8244,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string tx_power = 13;</code>
       * @return The txPower.
       * <code>optional string tx_power = 13;</code>
       */
      public java.lang.String getTxPower() {
        java.lang.Object ref = txPower_;
@@ -8915,8 +8263,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string tx_power = 13;</code>
       * @return The bytes for txPower.
       * <code>optional string tx_power = 13;</code>
       */
      public com.google.protobuf.ByteString
          getTxPowerBytes() {
@@ -8936,9 +8283,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string tx_power = 13;</code>
       * @param value The txPower to set.
       * @return This builder for chaining.
       * <code>optional string tx_power = 13;</code>
       */
      public Builder setTxPower(
          java.lang.String value) {
@@ -8955,8 +8300,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string tx_power = 13;</code>
       * @return This builder for chaining.
       * <code>optional string tx_power = 13;</code>
       */
      public Builder clearTxPower() {
        
@@ -8969,9 +8313,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string tx_power = 13;</code>
       * @param value The bytes for txPower to set.
       * @return This builder for chaining.
       * <code>optional string tx_power = 13;</code>
       */
      public Builder setTxPowerBytes(
          com.google.protobuf.ByteString value) {
@@ -8991,8 +8333,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string srxlev = 14;</code>
       * @return The srxlev.
       * <code>optional string srxlev = 14;</code>
       */
      public java.lang.String getSrxlev() {
        java.lang.Object ref = srxlev_;
@@ -9011,8 +8352,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string srxlev = 14;</code>
       * @return The bytes for srxlev.
       * <code>optional string srxlev = 14;</code>
       */
      public com.google.protobuf.ByteString
          getSrxlevBytes() {
@@ -9032,9 +8372,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string srxlev = 14;</code>
       * @param value The srxlev to set.
       * @return This builder for chaining.
       * <code>optional string srxlev = 14;</code>
       */
      public Builder setSrxlev(
          java.lang.String value) {
@@ -9051,8 +8389,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string srxlev = 14;</code>
       * @return This builder for chaining.
       * <code>optional string srxlev = 14;</code>
       */
      public Builder clearSrxlev() {
        
@@ -9065,9 +8402,7 @@
       *NR5G-SA,LTE
       * </pre>
       *
       * <code>string srxlev = 14;</code>
       * @param value The bytes for srxlev to set.
       * @return This builder for chaining.
       * <code>optional string srxlev = 14;</code>
       */
      public Builder setSrxlevBytes(
          com.google.protobuf.ByteString value) {
@@ -9087,8 +8422,7 @@
       *LTE
       * </pre>
       *
       * <code>string cqi = 15;</code>
       * @return The cqi.
       * <code>optional string cqi = 15;</code>
       */
      public java.lang.String getCqi() {
        java.lang.Object ref = cqi_;
@@ -9107,8 +8441,7 @@
       *LTE
       * </pre>
       *
       * <code>string cqi = 15;</code>
       * @return The bytes for cqi.
       * <code>optional string cqi = 15;</code>
       */
      public com.google.protobuf.ByteString
          getCqiBytes() {
@@ -9128,9 +8461,7 @@
       *LTE
       * </pre>
       *
       * <code>string cqi = 15;</code>
       * @param value The cqi to set.
       * @return This builder for chaining.
       * <code>optional string cqi = 15;</code>
       */
      public Builder setCqi(
          java.lang.String value) {
@@ -9147,8 +8478,7 @@
       *LTE
       * </pre>
       *
       * <code>string cqi = 15;</code>
       * @return This builder for chaining.
       * <code>optional string cqi = 15;</code>
       */
      public Builder clearCqi() {
        
@@ -9161,9 +8491,7 @@
       *LTE
       * </pre>
       *
       * <code>string cqi = 15;</code>
       * @param value The bytes for cqi to set.
       * @return This builder for chaining.
       * <code>optional string cqi = 15;</code>
       */
      public Builder setCqiBytes(
          com.google.protobuf.ByteString value) {
@@ -9183,8 +8511,7 @@
       *LTE
       * </pre>
       *
       * <code>string earfcn = 16;</code>
       * @return The earfcn.
       * <code>optional string earfcn = 16;</code>
       */
      public java.lang.String getEarfcn() {
        java.lang.Object ref = earfcn_;
@@ -9203,8 +8530,7 @@
       *LTE
       * </pre>
       *
       * <code>string earfcn = 16;</code>
       * @return The bytes for earfcn.
       * <code>optional string earfcn = 16;</code>
       */
      public com.google.protobuf.ByteString
          getEarfcnBytes() {
@@ -9224,9 +8550,7 @@
       *LTE
       * </pre>
       *
       * <code>string earfcn = 16;</code>
       * @param value The earfcn to set.
       * @return This builder for chaining.
       * <code>optional string earfcn = 16;</code>
       */
      public Builder setEarfcn(
          java.lang.String value) {
@@ -9243,8 +8567,7 @@
       *LTE
       * </pre>
       *
       * <code>string earfcn = 16;</code>
       * @return This builder for chaining.
       * <code>optional string earfcn = 16;</code>
       */
      public Builder clearEarfcn() {
        
@@ -9257,9 +8580,7 @@
       *LTE
       * </pre>
       *
       * <code>string earfcn = 16;</code>
       * @param value The bytes for earfcn to set.
       * @return This builder for chaining.
       * <code>optional string earfcn = 16;</code>
       */
      public Builder setEarfcnBytes(
          com.google.protobuf.ByteString value) {
@@ -9279,8 +8600,7 @@
       *LTE
       * </pre>
       *
       * <code>string freq_band_ind = 17;</code>
       * @return The freqBandInd.
       * <code>optional string freq_band_ind = 17;</code>
       */
      public java.lang.String getFreqBandInd() {
        java.lang.Object ref = freqBandInd_;
@@ -9299,8 +8619,7 @@
       *LTE
       * </pre>
       *
       * <code>string freq_band_ind = 17;</code>
       * @return The bytes for freqBandInd.
       * <code>optional string freq_band_ind = 17;</code>
       */
      public com.google.protobuf.ByteString
          getFreqBandIndBytes() {
@@ -9320,9 +8639,7 @@
       *LTE
       * </pre>
       *
       * <code>string freq_band_ind = 17;</code>
       * @param value The freqBandInd to set.
       * @return This builder for chaining.
       * <code>optional string freq_band_ind = 17;</code>
       */
      public Builder setFreqBandInd(
          java.lang.String value) {
@@ -9339,8 +8656,7 @@
       *LTE
       * </pre>
       *
       * <code>string freq_band_ind = 17;</code>
       * @return This builder for chaining.
       * <code>optional string freq_band_ind = 17;</code>
       */
      public Builder clearFreqBandInd() {
        
@@ -9353,9 +8669,7 @@
       *LTE
       * </pre>
       *
       * <code>string freq_band_ind = 17;</code>
       * @param value The bytes for freqBandInd to set.
       * @return This builder for chaining.
       * <code>optional string freq_band_ind = 17;</code>
       */
      public Builder setFreqBandIndBytes(
          com.google.protobuf.ByteString value) {
@@ -9375,8 +8689,7 @@
       *LTE
       * </pre>
       *
       * <code>string ul_bandwidth = 18;</code>
       * @return The ulBandwidth.
       * <code>optional string ul_bandwidth = 18;</code>
       */
      public java.lang.String getUlBandwidth() {
        java.lang.Object ref = ulBandwidth_;
@@ -9395,8 +8708,7 @@
       *LTE
       * </pre>
       *
       * <code>string ul_bandwidth = 18;</code>
       * @return The bytes for ulBandwidth.
       * <code>optional string ul_bandwidth = 18;</code>
       */
      public com.google.protobuf.ByteString
          getUlBandwidthBytes() {
@@ -9416,9 +8728,7 @@
       *LTE
       * </pre>
       *
       * <code>string ul_bandwidth = 18;</code>
       * @param value The ulBandwidth to set.
       * @return This builder for chaining.
       * <code>optional string ul_bandwidth = 18;</code>
       */
      public Builder setUlBandwidth(
          java.lang.String value) {
@@ -9435,8 +8745,7 @@
       *LTE
       * </pre>
       *
       * <code>string ul_bandwidth = 18;</code>
       * @return This builder for chaining.
       * <code>optional string ul_bandwidth = 18;</code>
       */
      public Builder clearUlBandwidth() {
        
@@ -9449,9 +8758,7 @@
       *LTE
       * </pre>
       *
       * <code>string ul_bandwidth = 18;</code>
       * @param value The bytes for ulBandwidth to set.
       * @return This builder for chaining.
       * <code>optional string ul_bandwidth = 18;</code>
       */
      public Builder setUlBandwidthBytes(
          com.google.protobuf.ByteString value) {
@@ -9471,8 +8778,7 @@
       *LTE
       * </pre>
       *
       * <code>string dl_bandwidth = 19;</code>
       * @return The dlBandwidth.
       * <code>optional string dl_bandwidth = 19;</code>
       */
      public java.lang.String getDlBandwidth() {
        java.lang.Object ref = dlBandwidth_;
@@ -9491,8 +8797,7 @@
       *LTE
       * </pre>
       *
       * <code>string dl_bandwidth = 19;</code>
       * @return The bytes for dlBandwidth.
       * <code>optional string dl_bandwidth = 19;</code>
       */
      public com.google.protobuf.ByteString
          getDlBandwidthBytes() {
@@ -9512,9 +8817,7 @@
       *LTE
       * </pre>
       *
       * <code>string dl_bandwidth = 19;</code>
       * @param value The dlBandwidth to set.
       * @return This builder for chaining.
       * <code>optional string dl_bandwidth = 19;</code>
       */
      public Builder setDlBandwidth(
          java.lang.String value) {
@@ -9531,8 +8834,7 @@
       *LTE
       * </pre>
       *
       * <code>string dl_bandwidth = 19;</code>
       * @return This builder for chaining.
       * <code>optional string dl_bandwidth = 19;</code>
       */
      public Builder clearDlBandwidth() {
        
@@ -9545,9 +8847,7 @@
       *LTE
       * </pre>
       *
       * <code>string dl_bandwidth = 19;</code>
       * @param value The bytes for dlBandwidth to set.
       * @return This builder for chaining.
       * <code>optional string dl_bandwidth = 19;</code>
       */
      public Builder setDlBandwidthBytes(
          com.google.protobuf.ByteString value) {
@@ -9567,8 +8867,7 @@
       *LTE
       * </pre>
       *
       * <code>string is_tdd = 20;</code>
       * @return The isTdd.
       * <code>optional string is_tdd = 20;</code>
       */
      public java.lang.String getIsTdd() {
        java.lang.Object ref = isTdd_;
@@ -9587,8 +8886,7 @@
       *LTE
       * </pre>
       *
       * <code>string is_tdd = 20;</code>
       * @return The bytes for isTdd.
       * <code>optional string is_tdd = 20;</code>
       */
      public com.google.protobuf.ByteString
          getIsTddBytes() {
@@ -9608,9 +8906,7 @@
       *LTE
       * </pre>
       *
       * <code>string is_tdd = 20;</code>
       * @param value The isTdd to set.
       * @return This builder for chaining.
       * <code>optional string is_tdd = 20;</code>
       */
      public Builder setIsTdd(
          java.lang.String value) {
@@ -9627,8 +8923,7 @@
       *LTE
       * </pre>
       *
       * <code>string is_tdd = 20;</code>
       * @return This builder for chaining.
       * <code>optional string is_tdd = 20;</code>
       */
      public Builder clearIsTdd() {
        
@@ -9641,9 +8936,7 @@
       *LTE
       * </pre>
       *
       * <code>string is_tdd = 20;</code>
       * @param value The bytes for isTdd to set.
       * @return This builder for chaining.
       * <code>optional string is_tdd = 20;</code>
       */
      public Builder setIsTddBytes(
          com.google.protobuf.ByteString value) {
@@ -9663,8 +8956,7 @@
       *LTE
       * </pre>
       *
       * <code>string rssi = 21;</code>
       * @return The rssi.
       * <code>optional string rssi = 21;</code>
       */
      public java.lang.String getRssi() {
        java.lang.Object ref = rssi_;
@@ -9683,8 +8975,7 @@
       *LTE
       * </pre>
       *
       * <code>string rssi = 21;</code>
       * @return The bytes for rssi.
       * <code>optional string rssi = 21;</code>
       */
      public com.google.protobuf.ByteString
          getRssiBytes() {
@@ -9704,9 +8995,7 @@
       *LTE
       * </pre>
       *
       * <code>string rssi = 21;</code>
       * @param value The rssi to set.
       * @return This builder for chaining.
       * <code>optional string rssi = 21;</code>
       */
      public Builder setRssi(
          java.lang.String value) {
@@ -9723,8 +9012,7 @@
       *LTE
       * </pre>
       *
       * <code>string rssi = 21;</code>
       * @return This builder for chaining.
       * <code>optional string rssi = 21;</code>
       */
      public Builder clearRssi() {
        
@@ -9737,9 +9025,7 @@
       *LTE
       * </pre>
       *
       * <code>string rssi = 21;</code>
       * @param value The bytes for rssi to set.
       * @return This builder for chaining.
       * <code>optional string rssi = 21;</code>
       */
      public Builder setRssiBytes(
          com.google.protobuf.ByteString value) {
@@ -9759,8 +9045,7 @@
       *NR5G-SA
       * </pre>
       *
       * <code>string duplex_mode = 22;</code>
       * @return The duplexMode.
       * <code>optional string duplex_mode = 22;</code>
       */
      public java.lang.String getDuplexMode() {
        java.lang.Object ref = duplexMode_;
@@ -9779,8 +9064,7 @@
       *NR5G-SA
       * </pre>
       *
       * <code>string duplex_mode = 22;</code>
       * @return The bytes for duplexMode.
       * <code>optional string duplex_mode = 22;</code>
       */
      public com.google.protobuf.ByteString
          getDuplexModeBytes() {
@@ -9800,9 +9084,7 @@
       *NR5G-SA
       * </pre>
       *
       * <code>string duplex_mode = 22;</code>
       * @param value The duplexMode to set.
       * @return This builder for chaining.
       * <code>optional string duplex_mode = 22;</code>
       */
      public Builder setDuplexMode(
          java.lang.String value) {
@@ -9819,8 +9101,7 @@
       *NR5G-SA
       * </pre>
       *
       * <code>string duplex_mode = 22;</code>
       * @return This builder for chaining.
       * <code>optional string duplex_mode = 22;</code>
       */
      public Builder clearDuplexMode() {
        
@@ -9833,9 +9114,7 @@
       *NR5G-SA
       * </pre>
       *
       * <code>string duplex_mode = 22;</code>
       * @param value The bytes for duplexMode to set.
       * @return This builder for chaining.
       * <code>optional string duplex_mode = 22;</code>
       */
      public Builder setDuplexModeBytes(
          com.google.protobuf.ByteString value) {
@@ -9855,10 +9134,8 @@
       *经度
       * </pre>
       *
       * <code>double lng = 23;</code>
       * @return The lng.
       * <code>optional double lng = 23;</code>
       */
      @java.lang.Override
      public double getLng() {
        return lng_;
      }
@@ -9867,9 +9144,7 @@
       *经度
       * </pre>
       *
       * <code>double lng = 23;</code>
       * @param value The lng to set.
       * @return This builder for chaining.
       * <code>optional double lng = 23;</code>
       */
      public Builder setLng(double value) {
        
@@ -9882,8 +9157,7 @@
       *经度
       * </pre>
       *
       * <code>double lng = 23;</code>
       * @return This builder for chaining.
       * <code>optional double lng = 23;</code>
       */
      public Builder clearLng() {
        
@@ -9898,10 +9172,8 @@
       *纬度
       * </pre>
       *
       * <code>double lat = 24;</code>
       * @return The lat.
       * <code>optional double lat = 24;</code>
       */
      @java.lang.Override
      public double getLat() {
        return lat_;
      }
@@ -9910,9 +9182,7 @@
       *纬度
       * </pre>
       *
       * <code>double lat = 24;</code>
       * @param value The lat to set.
       * @return This builder for chaining.
       * <code>optional double lat = 24;</code>
       */
      public Builder setLat(double value) {
        
@@ -9925,8 +9195,7 @@
       *纬度
       * </pre>
       *
       * <code>double lat = 24;</code>
       * @return This builder for chaining.
       * <code>optional double lat = 24;</code>
       */
      public Builder clearLat() {
        
@@ -9941,10 +9210,8 @@
       *高度(单位:米)
       * </pre>
       *
       * <code>float height = 25;</code>
       * @return The height.
       * <code>optional float height = 25;</code>
       */
      @java.lang.Override
      public float getHeight() {
        return height_;
      }
@@ -9953,9 +9220,7 @@
       *高度(单位:米)
       * </pre>
       *
       * <code>float height = 25;</code>
       * @param value The height to set.
       * @return This builder for chaining.
       * <code>optional float height = 25;</code>
       */
      public Builder setHeight(float value) {
        
@@ -9968,8 +9233,7 @@
       *高度(单位:米)
       * </pre>
       *
       * <code>float height = 25;</code>
       * @return This builder for chaining.
       * <code>optional float height = 25;</code>
       */
      public Builder clearHeight() {
        
@@ -9984,10 +9248,8 @@
       *时间戳(单位:秒)
       * </pre>
       *
       * <code>uint32 timestamp = 26;</code>
       * @return The timestamp.
       * <code>optional uint32 timestamp = 26;</code>
       */
      @java.lang.Override
      public int getTimestamp() {
        return timestamp_;
      }
@@ -9996,9 +9258,7 @@
       *时间戳(单位:秒)
       * </pre>
       *
       * <code>uint32 timestamp = 26;</code>
       * @param value The timestamp to set.
       * @return This builder for chaining.
       * <code>optional uint32 timestamp = 26;</code>
       */
      public Builder setTimestamp(int value) {
        
@@ -10011,8 +9271,7 @@
       *时间戳(单位:秒)
       * </pre>
       *
       * <code>uint32 timestamp = 26;</code>
       * @return This builder for chaining.
       * <code>optional uint32 timestamp = 26;</code>
       */
      public Builder clearTimestamp() {
        
@@ -10027,10 +9286,8 @@
       *1=线缆故障,2=OSDK未激活,3=正常,4=云盒固件更新
       * </pre>
       *
       * <code>uint32 boxstate = 27;</code>
       * @return The boxstate.
       * <code>optional uint32 boxstate = 27;</code>
       */
      @java.lang.Override
      public int getBoxstate() {
        return boxstate_;
      }
@@ -10039,9 +9296,7 @@
       *1=线缆故障,2=OSDK未激活,3=正常,4=云盒固件更新
       * </pre>
       *
       * <code>uint32 boxstate = 27;</code>
       * @param value The boxstate to set.
       * @return This builder for chaining.
       * <code>optional uint32 boxstate = 27;</code>
       */
      public Builder setBoxstate(int value) {
        
@@ -10054,8 +9309,7 @@
       *1=线缆故障,2=OSDK未激活,3=正常,4=云盒固件更新
       * </pre>
       *
       * <code>uint32 boxstate = 27;</code>
       * @return This builder for chaining.
       * <code>optional uint32 boxstate = 27;</code>
       */
      public Builder clearBoxstate() {
        
@@ -10070,8 +9324,7 @@
       *运营商
       * </pre>
       *
       * <code>string isp = 28;</code>
       * @return The isp.
       * <code>optional string isp = 28;</code>
       */
      public java.lang.String getIsp() {
        java.lang.Object ref = isp_;
@@ -10090,8 +9343,7 @@
       *运营商
       * </pre>
       *
       * <code>string isp = 28;</code>
       * @return The bytes for isp.
       * <code>optional string isp = 28;</code>
       */
      public com.google.protobuf.ByteString
          getIspBytes() {
@@ -10111,9 +9363,7 @@
       *运营商
       * </pre>
       *
       * <code>string isp = 28;</code>
       * @param value The isp to set.
       * @return This builder for chaining.
       * <code>optional string isp = 28;</code>
       */
      public Builder setIsp(
          java.lang.String value) {
@@ -10130,8 +9380,7 @@
       *运营商
       * </pre>
       *
       * <code>string isp = 28;</code>
       * @return This builder for chaining.
       * <code>optional string isp = 28;</code>
       */
      public Builder clearIsp() {
        
@@ -10144,9 +9393,7 @@
       *运营商
       * </pre>
       *
       * <code>string isp = 28;</code>
       * @param value The bytes for isp to set.
       * @return This builder for chaining.
       * <code>optional string isp = 28;</code>
       */
      public Builder setIspBytes(
          com.google.protobuf.ByteString value) {
@@ -10166,10 +9413,8 @@
       *模组芯片温度(单位:摄氏度)
       * </pre>
       *
       * <code>uint32 tempMax = 29;</code>
       * @return The tempMax.
       * <code>optional uint32 tempMax = 29;</code>
       */
      @java.lang.Override
      public int getTempMax() {
        return tempMax_;
      }
@@ -10178,9 +9423,7 @@
       *模组芯片温度(单位:摄氏度)
       * </pre>
       *
       * <code>uint32 tempMax = 29;</code>
       * @param value The tempMax to set.
       * @return This builder for chaining.
       * <code>optional uint32 tempMax = 29;</code>
       */
      public Builder setTempMax(int value) {
        
@@ -10193,8 +9436,7 @@
       *模组芯片温度(单位:摄氏度)
       * </pre>
       *
       * <code>uint32 tempMax = 29;</code>
       * @return This builder for chaining.
       * <code>optional uint32 tempMax = 29;</code>
       */
      public Builder clearTempMax() {
        
@@ -10209,8 +9451,7 @@
       *prx路径的rsrp值
       * </pre>
       *
       * <code>string prx_rsrp = 30;</code>
       * @return The prxRsrp.
       * <code>optional string prx_rsrp = 30;</code>
       */
      public java.lang.String getPrxRsrp() {
        java.lang.Object ref = prxRsrp_;
@@ -10229,8 +9470,7 @@
       *prx路径的rsrp值
       * </pre>
       *
       * <code>string prx_rsrp = 30;</code>
       * @return The bytes for prxRsrp.
       * <code>optional string prx_rsrp = 30;</code>
       */
      public com.google.protobuf.ByteString
          getPrxRsrpBytes() {
@@ -10250,9 +9490,7 @@
       *prx路径的rsrp值
       * </pre>
       *
       * <code>string prx_rsrp = 30;</code>
       * @param value The prxRsrp to set.
       * @return This builder for chaining.
       * <code>optional string prx_rsrp = 30;</code>
       */
      public Builder setPrxRsrp(
          java.lang.String value) {
@@ -10269,8 +9507,7 @@
       *prx路径的rsrp值
       * </pre>
       *
       * <code>string prx_rsrp = 30;</code>
       * @return This builder for chaining.
       * <code>optional string prx_rsrp = 30;</code>
       */
      public Builder clearPrxRsrp() {
        
@@ -10283,9 +9520,7 @@
       *prx路径的rsrp值
       * </pre>
       *
       * <code>string prx_rsrp = 30;</code>
       * @param value The bytes for prxRsrp to set.
       * @return This builder for chaining.
       * <code>optional string prx_rsrp = 30;</code>
       */
      public Builder setPrxRsrpBytes(
          com.google.protobuf.ByteString value) {
@@ -10305,8 +9540,7 @@
       *drx路径的rsrp值
       * </pre>
       *
       * <code>string drx_rsrp = 31;</code>
       * @return The drxRsrp.
       * <code>optional string drx_rsrp = 31;</code>
       */
      public java.lang.String getDrxRsrp() {
        java.lang.Object ref = drxRsrp_;
@@ -10325,8 +9559,7 @@
       *drx路径的rsrp值
       * </pre>
       *
       * <code>string drx_rsrp = 31;</code>
       * @return The bytes for drxRsrp.
       * <code>optional string drx_rsrp = 31;</code>
       */
      public com.google.protobuf.ByteString
          getDrxRsrpBytes() {
@@ -10346,9 +9579,7 @@
       *drx路径的rsrp值
       * </pre>
       *
       * <code>string drx_rsrp = 31;</code>
       * @param value The drxRsrp to set.
       * @return This builder for chaining.
       * <code>optional string drx_rsrp = 31;</code>
       */
      public Builder setDrxRsrp(
          java.lang.String value) {
@@ -10365,8 +9596,7 @@
       *drx路径的rsrp值
       * </pre>
       *
       * <code>string drx_rsrp = 31;</code>
       * @return This builder for chaining.
       * <code>optional string drx_rsrp = 31;</code>
       */
      public Builder clearDrxRsrp() {
        
@@ -10379,9 +9609,7 @@
       *drx路径的rsrp值
       * </pre>
       *
       * <code>string drx_rsrp = 31;</code>
       * @param value The bytes for drxRsrp to set.
       * @return This builder for chaining.
       * <code>optional string drx_rsrp = 31;</code>
       */
      public Builder setDrxRsrpBytes(
          com.google.protobuf.ByteString value) {
@@ -10401,8 +9629,7 @@
       *rx2路径的rsrp值
       * </pre>
       *
       * <code>string rx2_rsrp = 32;</code>
       * @return The rx2Rsrp.
       * <code>optional string rx2_rsrp = 32;</code>
       */
      public java.lang.String getRx2Rsrp() {
        java.lang.Object ref = rx2Rsrp_;
@@ -10421,8 +9648,7 @@
       *rx2路径的rsrp值
       * </pre>
       *
       * <code>string rx2_rsrp = 32;</code>
       * @return The bytes for rx2Rsrp.
       * <code>optional string rx2_rsrp = 32;</code>
       */
      public com.google.protobuf.ByteString
          getRx2RsrpBytes() {
@@ -10442,9 +9668,7 @@
       *rx2路径的rsrp值
       * </pre>
       *
       * <code>string rx2_rsrp = 32;</code>
       * @param value The rx2Rsrp to set.
       * @return This builder for chaining.
       * <code>optional string rx2_rsrp = 32;</code>
       */
      public Builder setRx2Rsrp(
          java.lang.String value) {
@@ -10461,8 +9685,7 @@
       *rx2路径的rsrp值
       * </pre>
       *
       * <code>string rx2_rsrp = 32;</code>
       * @return This builder for chaining.
       * <code>optional string rx2_rsrp = 32;</code>
       */
      public Builder clearRx2Rsrp() {
        
@@ -10475,9 +9698,7 @@
       *rx2路径的rsrp值
       * </pre>
       *
       * <code>string rx2_rsrp = 32;</code>
       * @param value The bytes for rx2Rsrp to set.
       * @return This builder for chaining.
       * <code>optional string rx2_rsrp = 32;</code>
       */
      public Builder setRx2RsrpBytes(
          com.google.protobuf.ByteString value) {
@@ -10497,8 +9718,7 @@
       *rx3路径的rsrp值
       * </pre>
       *
       * <code>string rx3_rsrp = 33;</code>
       * @return The rx3Rsrp.
       * <code>optional string rx3_rsrp = 33;</code>
       */
      public java.lang.String getRx3Rsrp() {
        java.lang.Object ref = rx3Rsrp_;
@@ -10517,8 +9737,7 @@
       *rx3路径的rsrp值
       * </pre>
       *
       * <code>string rx3_rsrp = 33;</code>
       * @return The bytes for rx3Rsrp.
       * <code>optional string rx3_rsrp = 33;</code>
       */
      public com.google.protobuf.ByteString
          getRx3RsrpBytes() {
@@ -10538,9 +9757,7 @@
       *rx3路径的rsrp值
       * </pre>
       *
       * <code>string rx3_rsrp = 33;</code>
       * @param value The rx3Rsrp to set.
       * @return This builder for chaining.
       * <code>optional string rx3_rsrp = 33;</code>
       */
      public Builder setRx3Rsrp(
          java.lang.String value) {
@@ -10557,8 +9774,7 @@
       *rx3路径的rsrp值
       * </pre>
       *
       * <code>string rx3_rsrp = 33;</code>
       * @return This builder for chaining.
       * <code>optional string rx3_rsrp = 33;</code>
       */
      public Builder clearRx3Rsrp() {
        
@@ -10571,9 +9787,7 @@
       *rx3路径的rsrp值
       * </pre>
       *
       * <code>string rx3_rsrp = 33;</code>
       * @param value The bytes for rx3Rsrp to set.
       * @return This builder for chaining.
       * <code>optional string rx3_rsrp = 33;</code>
       */
      public Builder setRx3RsrpBytes(
          com.google.protobuf.ByteString value) {
@@ -10593,8 +9807,7 @@
       *云盒编号
       * </pre>
       *
       * <code>string box_sn = 34;</code>
       * @return The boxSn.
       * <code>optional string box_sn = 34;</code>
       */
      public java.lang.String getBoxSn() {
        java.lang.Object ref = boxSn_;
@@ -10613,8 +9826,7 @@
       *云盒编号
       * </pre>
       *
       * <code>string box_sn = 34;</code>
       * @return The bytes for boxSn.
       * <code>optional string box_sn = 34;</code>
       */
      public com.google.protobuf.ByteString
          getBoxSnBytes() {
@@ -10634,9 +9846,7 @@
       *云盒编号
       * </pre>
       *
       * <code>string box_sn = 34;</code>
       * @param value The boxSn to set.
       * @return This builder for chaining.
       * <code>optional string box_sn = 34;</code>
       */
      public Builder setBoxSn(
          java.lang.String value) {
@@ -10653,8 +9863,7 @@
       *云盒编号
       * </pre>
       *
       * <code>string box_sn = 34;</code>
       * @return This builder for chaining.
       * <code>optional string box_sn = 34;</code>
       */
      public Builder clearBoxSn() {
        
@@ -10667,9 +9876,7 @@
       *云盒编号
       * </pre>
       *
       * <code>string box_sn = 34;</code>
       * @param value The bytes for boxSn to set.
       * @return This builder for chaining.
       * <code>optional string box_sn = 34;</code>
       */
      public Builder setBoxSnBytes(
          com.google.protobuf.ByteString value) {
@@ -10682,16 +9889,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -10710,12 +9915,11 @@
    private static final com.google.protobuf.Parser<SignalInfo>
        PARSER = new com.google.protobuf.AbstractParser<SignalInfo>() {
      @java.lang.Override
      public SignalInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SignalInfo(input, extensionRegistry);
          return new SignalInfo(input, extensionRegistry);
      }
    };
@@ -10728,7 +9932,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -10766,11 +9969,10 @@
  /**
   * Protobuf type {@code SignalList}
   */
  public static final class SignalList extends
  public  static final class SignalList extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SignalList)
      SignalListOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SignalList.newBuilder() to construct.
    private SignalList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
@@ -10780,28 +9982,16 @@
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SignalList();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private SignalList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
@@ -10810,8 +10000,14 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                signalInfo_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo>();
                mutable_bitField0_ |= 0x00000001;
              }
@@ -10819,27 +10015,17 @@
                  input.readMessage(com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          signalInfo_ = java.util.Collections.unmodifiableList(signalInfo_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -10848,7 +10034,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SignalList_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SignalList_fieldAccessorTable
@@ -10861,14 +10046,12 @@
    /**
     * <code>repeated .SignalInfo signalInfo = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo> getSignalInfoList() {
      return signalInfo_;
    }
    /**
     * <code>repeated .SignalInfo signalInfo = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfoOrBuilder> 
        getSignalInfoOrBuilderList() {
      return signalInfo_;
@@ -10876,28 +10059,24 @@
    /**
     * <code>repeated .SignalInfo signalInfo = 1;</code>
     */
    @java.lang.Override
    public int getSignalInfoCount() {
      return signalInfo_.size();
    }
    /**
     * <code>repeated .SignalInfo signalInfo = 1;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo getSignalInfo(int index) {
      return signalInfo_.get(index);
    }
    /**
     * <code>repeated .SignalInfo signalInfo = 1;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfoOrBuilder getSignalInfoOrBuilder(
        int index) {
      return signalInfo_.get(index);
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -10907,16 +10086,13 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < signalInfo_.size(); i++) {
        output.writeMessage(1, signalInfo_.get(i));
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -10926,11 +10102,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, signalInfo_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -10941,10 +10117,10 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList) obj;
      if (!getSignalInfoList()
          .equals(other.getSignalInfoList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && getSignalInfoList()
          .equals(other.getSignalInfoList());
      return result;
    }
    @java.lang.Override
@@ -10953,7 +10129,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (getSignalInfoCount() > 0) {
        hash = (37 * hash) + SIGNALINFO_FIELD_NUMBER;
        hash = (53 * hash) + getSignalInfoList().hashCode();
@@ -10963,17 +10139,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -11033,7 +10198,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -11041,7 +10205,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -11065,7 +10228,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SignalList_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SignalList_fieldAccessorTable
@@ -11089,7 +10251,6 @@
          getSignalInfoFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (signalInfoBuilder_ == null) {
@@ -11101,18 +10262,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SignalList_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList result = buildPartial();
        if (!result.isInitialized()) {
@@ -11121,12 +10279,11 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList(this);
        int from_bitField0_ = bitField0_;
        if (signalInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            signalInfo_ = java.util.Collections.unmodifiableList(signalInfo_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
@@ -11138,39 +10295,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList)other);
@@ -11208,17 +10358,14 @@
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -11241,7 +10388,7 @@
      private java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo> signalInfo_ =
        java.util.Collections.emptyList();
      private void ensureSignalInfoIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          signalInfo_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo>(signalInfo_);
          bitField0_ |= 0x00000001;
         }
@@ -11470,23 +10617,21 @@
          signalInfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo, com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfo.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalInfoOrBuilder>(
                  signalInfo_,
                  ((bitField0_ & 0x00000001) != 0),
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          signalInfo_ = null;
        }
        return signalInfoBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -11505,12 +10650,11 @@
    private static final com.google.protobuf.Parser<SignalList>
        PARSER = new com.google.protobuf.AbstractParser<SignalList>() {
      @java.lang.Override
      public SignalList parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SignalList(input, extensionRegistry);
          return new SignalList(input, extensionRegistry);
      }
    };
@@ -11523,7 +10667,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SignalList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -11539,8 +10682,7 @@
     *飞控状态
     * </pre>
     *
     * <code>.FlightControllerState flightControllerState = 1;</code>
     * @return Whether the flightControllerState field is set.
     * <code>optional .FlightControllerState flightControllerState = 1;</code>
     */
    boolean hasFlightControllerState();
    /**
@@ -11548,8 +10690,7 @@
     *飞控状态
     * </pre>
     *
     * <code>.FlightControllerState flightControllerState = 1;</code>
     * @return The flightControllerState.
     * <code>optional .FlightControllerState flightControllerState = 1;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState getFlightControllerState();
    /**
@@ -11557,7 +10698,7 @@
     *飞控状态
     * </pre>
     *
     * <code>.FlightControllerState flightControllerState = 1;</code>
     * <code>optional .FlightControllerState flightControllerState = 1;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerStateOrBuilder getFlightControllerStateOrBuilder();
@@ -11566,8 +10707,7 @@
     *电池状态
     * </pre>
     *
     * <code>.BatteryState batteryState = 2;</code>
     * @return Whether the batteryState field is set.
     * <code>optional .BatteryState batteryState = 2;</code>
     */
    boolean hasBatteryState();
    /**
@@ -11575,8 +10715,7 @@
     *电池状态
     * </pre>
     *
     * <code>.BatteryState batteryState = 2;</code>
     * @return The batteryState.
     * <code>optional .BatteryState batteryState = 2;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState getBatteryState();
    /**
@@ -11584,7 +10723,7 @@
     *电池状态
     * </pre>
     *
     * <code>.BatteryState batteryState = 2;</code>
     * <code>optional .BatteryState batteryState = 2;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateOrBuilder getBatteryStateOrBuilder();
@@ -11593,8 +10732,7 @@
     *云台状态
     * </pre>
     *
     * <code>.PtzState ptzState = 3;</code>
     * @return Whether the ptzState field is set.
     * <code>optional .PtzState ptzState = 3;</code>
     */
    boolean hasPtzState();
    /**
@@ -11602,8 +10740,7 @@
     *云台状态
     * </pre>
     *
     * <code>.PtzState ptzState = 3;</code>
     * @return The ptzState.
     * <code>optional .PtzState ptzState = 3;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState getPtzState();
    /**
@@ -11611,7 +10748,7 @@
     *云台状态
     * </pre>
     *
     * <code>.PtzState ptzState = 3;</code>
     * <code>optional .PtzState ptzState = 3;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzStateOrBuilder getPtzStateOrBuilder();
@@ -11620,8 +10757,7 @@
     *相机状态
     * </pre>
     *
     * <code>.CameraState cameraState = 4;</code>
     * @return Whether the cameraState field is set.
     * <code>optional .CameraState cameraState = 4;</code>
     */
    boolean hasCameraState();
    /**
@@ -11629,8 +10765,7 @@
     *相机状态
     * </pre>
     *
     * <code>.CameraState cameraState = 4;</code>
     * @return The cameraState.
     * <code>optional .CameraState cameraState = 4;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState getCameraState();
    /**
@@ -11638,7 +10773,7 @@
     *相机状态
     * </pre>
     *
     * <code>.CameraState cameraState = 4;</code>
     * <code>optional .CameraState cameraState = 4;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraStateOrBuilder getCameraStateOrBuilder();
@@ -11647,8 +10782,7 @@
     *任务状态
     * </pre>
     *
     * <code>.MissionState missionState = 5;</code>
     * @return Whether the missionState field is set.
     * <code>optional .MissionState missionState = 5;</code>
     */
    boolean hasMissionState();
    /**
@@ -11656,8 +10790,7 @@
     *任务状态
     * </pre>
     *
     * <code>.MissionState missionState = 5;</code>
     * @return The missionState.
     * <code>optional .MissionState missionState = 5;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState getMissionState();
    /**
@@ -11665,7 +10798,7 @@
     *任务状态
     * </pre>
     *
     * <code>.MissionState missionState = 5;</code>
     * <code>optional .MissionState missionState = 5;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionStateOrBuilder getMissionStateOrBuilder();
@@ -11674,8 +10807,7 @@
     *云盒编号
     * </pre>
     *
     * <code>string boxSn = 6;</code>
     * @return The boxSn.
     * <code>optional string boxSn = 6;</code>
     */
    java.lang.String getBoxSn();
    /**
@@ -11683,8 +10815,7 @@
     *云盒编号
     * </pre>
     *
     * <code>string boxSn = 6;</code>
     * @return The bytes for boxSn.
     * <code>optional string boxSn = 6;</code>
     */
    com.google.protobuf.ByteString
        getBoxSnBytes();
@@ -11694,8 +10825,7 @@
     *避障数据
     * </pre>
     *
     * <code>.AvoidanceData avoidanceData = 7;</code>
     * @return Whether the avoidanceData field is set.
     * <code>optional .AvoidanceData avoidanceData = 7;</code>
     */
    boolean hasAvoidanceData();
    /**
@@ -11703,8 +10833,7 @@
     *避障数据
     * </pre>
     *
     * <code>.AvoidanceData avoidanceData = 7;</code>
     * @return The avoidanceData.
     * <code>optional .AvoidanceData avoidanceData = 7;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData getAvoidanceData();
    /**
@@ -11712,7 +10841,7 @@
     *避障数据
     * </pre>
     *
     * <code>.AvoidanceData avoidanceData = 7;</code>
     * <code>optional .AvoidanceData avoidanceData = 7;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceDataOrBuilder getAvoidanceDataOrBuilder();
@@ -11767,11 +10896,10 @@
   *
   * Protobuf type {@code UavState}
   */
  public static final class UavState extends
  public  static final class UavState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:UavState)
      UavStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UavState.newBuilder() to construct.
    private UavState(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
@@ -11782,28 +10910,16 @@
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new UavState();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private UavState(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
@@ -11812,6 +10928,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState.Builder subBuilder = null;
              if (flightControllerState_ != null) {
@@ -11897,35 +11019,25 @@
              break;
            }
            case 66: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                hmsAlarmData_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData>();
                mutable_bitField0_ |= 0x00000001;
                mutable_bitField0_ |= 0x00000080;
              }
              hmsAlarmData_.add(
                  input.readMessage(com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          hmsAlarmData_ = java.util.Collections.unmodifiableList(hmsAlarmData_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -11934,7 +11046,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_UavState_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_UavState_fieldAccessorTable
@@ -11942,6 +11053,7 @@
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState.class, com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState.Builder.class);
    }
    private int bitField0_;
    public static final int FLIGHTCONTROLLERSTATE_FIELD_NUMBER = 1;
    private com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState flightControllerState_;
    /**
@@ -11949,10 +11061,8 @@
     *飞控状态
     * </pre>
     *
     * <code>.FlightControllerState flightControllerState = 1;</code>
     * @return Whether the flightControllerState field is set.
     * <code>optional .FlightControllerState flightControllerState = 1;</code>
     */
    @java.lang.Override
    public boolean hasFlightControllerState() {
      return flightControllerState_ != null;
    }
@@ -11961,10 +11071,8 @@
     *飞控状态
     * </pre>
     *
     * <code>.FlightControllerState flightControllerState = 1;</code>
     * @return The flightControllerState.
     * <code>optional .FlightControllerState flightControllerState = 1;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState getFlightControllerState() {
      return flightControllerState_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState.getDefaultInstance() : flightControllerState_;
    }
@@ -11973,9 +11081,8 @@
     *飞控状态
     * </pre>
     *
     * <code>.FlightControllerState flightControllerState = 1;</code>
     * <code>optional .FlightControllerState flightControllerState = 1;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerStateOrBuilder getFlightControllerStateOrBuilder() {
      return getFlightControllerState();
    }
@@ -11987,10 +11094,8 @@
     *电池状态
     * </pre>
     *
     * <code>.BatteryState batteryState = 2;</code>
     * @return Whether the batteryState field is set.
     * <code>optional .BatteryState batteryState = 2;</code>
     */
    @java.lang.Override
    public boolean hasBatteryState() {
      return batteryState_ != null;
    }
@@ -11999,10 +11104,8 @@
     *电池状态
     * </pre>
     *
     * <code>.BatteryState batteryState = 2;</code>
     * @return The batteryState.
     * <code>optional .BatteryState batteryState = 2;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState getBatteryState() {
      return batteryState_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState.getDefaultInstance() : batteryState_;
    }
@@ -12011,9 +11114,8 @@
     *电池状态
     * </pre>
     *
     * <code>.BatteryState batteryState = 2;</code>
     * <code>optional .BatteryState batteryState = 2;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateOrBuilder getBatteryStateOrBuilder() {
      return getBatteryState();
    }
@@ -12025,10 +11127,8 @@
     *云台状态
     * </pre>
     *
     * <code>.PtzState ptzState = 3;</code>
     * @return Whether the ptzState field is set.
     * <code>optional .PtzState ptzState = 3;</code>
     */
    @java.lang.Override
    public boolean hasPtzState() {
      return ptzState_ != null;
    }
@@ -12037,10 +11137,8 @@
     *云台状态
     * </pre>
     *
     * <code>.PtzState ptzState = 3;</code>
     * @return The ptzState.
     * <code>optional .PtzState ptzState = 3;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState getPtzState() {
      return ptzState_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState.getDefaultInstance() : ptzState_;
    }
@@ -12049,9 +11147,8 @@
     *云台状态
     * </pre>
     *
     * <code>.PtzState ptzState = 3;</code>
     * <code>optional .PtzState ptzState = 3;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzStateOrBuilder getPtzStateOrBuilder() {
      return getPtzState();
    }
@@ -12063,10 +11160,8 @@
     *相机状态
     * </pre>
     *
     * <code>.CameraState cameraState = 4;</code>
     * @return Whether the cameraState field is set.
     * <code>optional .CameraState cameraState = 4;</code>
     */
    @java.lang.Override
    public boolean hasCameraState() {
      return cameraState_ != null;
    }
@@ -12075,10 +11170,8 @@
     *相机状态
     * </pre>
     *
     * <code>.CameraState cameraState = 4;</code>
     * @return The cameraState.
     * <code>optional .CameraState cameraState = 4;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState getCameraState() {
      return cameraState_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState.getDefaultInstance() : cameraState_;
    }
@@ -12087,9 +11180,8 @@
     *相机状态
     * </pre>
     *
     * <code>.CameraState cameraState = 4;</code>
     * <code>optional .CameraState cameraState = 4;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraStateOrBuilder getCameraStateOrBuilder() {
      return getCameraState();
    }
@@ -12101,10 +11193,8 @@
     *任务状态
     * </pre>
     *
     * <code>.MissionState missionState = 5;</code>
     * @return Whether the missionState field is set.
     * <code>optional .MissionState missionState = 5;</code>
     */
    @java.lang.Override
    public boolean hasMissionState() {
      return missionState_ != null;
    }
@@ -12113,10 +11203,8 @@
     *任务状态
     * </pre>
     *
     * <code>.MissionState missionState = 5;</code>
     * @return The missionState.
     * <code>optional .MissionState missionState = 5;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState getMissionState() {
      return missionState_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState.getDefaultInstance() : missionState_;
    }
@@ -12125,9 +11213,8 @@
     *任务状态
     * </pre>
     *
     * <code>.MissionState missionState = 5;</code>
     * <code>optional .MissionState missionState = 5;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionStateOrBuilder getMissionStateOrBuilder() {
      return getMissionState();
    }
@@ -12139,10 +11226,8 @@
     *云盒编号
     * </pre>
     *
     * <code>string boxSn = 6;</code>
     * @return The boxSn.
     * <code>optional string boxSn = 6;</code>
     */
    @java.lang.Override
    public java.lang.String getBoxSn() {
      java.lang.Object ref = boxSn_;
      if (ref instanceof java.lang.String) {
@@ -12160,10 +11245,8 @@
     *云盒编号
     * </pre>
     *
     * <code>string boxSn = 6;</code>
     * @return The bytes for boxSn.
     * <code>optional string boxSn = 6;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBoxSnBytes() {
      java.lang.Object ref = boxSn_;
@@ -12185,10 +11268,8 @@
     *避障数据
     * </pre>
     *
     * <code>.AvoidanceData avoidanceData = 7;</code>
     * @return Whether the avoidanceData field is set.
     * <code>optional .AvoidanceData avoidanceData = 7;</code>
     */
    @java.lang.Override
    public boolean hasAvoidanceData() {
      return avoidanceData_ != null;
    }
@@ -12197,10 +11278,8 @@
     *避障数据
     * </pre>
     *
     * <code>.AvoidanceData avoidanceData = 7;</code>
     * @return The avoidanceData.
     * <code>optional .AvoidanceData avoidanceData = 7;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData getAvoidanceData() {
      return avoidanceData_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData.getDefaultInstance() : avoidanceData_;
    }
@@ -12209,9 +11288,8 @@
     *避障数据
     * </pre>
     *
     * <code>.AvoidanceData avoidanceData = 7;</code>
     * <code>optional .AvoidanceData avoidanceData = 7;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceDataOrBuilder getAvoidanceDataOrBuilder() {
      return getAvoidanceData();
    }
@@ -12225,7 +11303,6 @@
     *
     * <code>repeated .HmsAlarmData hmsAlarmData = 8;</code>
     */
    @java.lang.Override
    public java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData> getHmsAlarmDataList() {
      return hmsAlarmData_;
    }
@@ -12236,7 +11313,6 @@
     *
     * <code>repeated .HmsAlarmData hmsAlarmData = 8;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmDataOrBuilder> 
        getHmsAlarmDataOrBuilderList() {
      return hmsAlarmData_;
@@ -12248,7 +11324,6 @@
     *
     * <code>repeated .HmsAlarmData hmsAlarmData = 8;</code>
     */
    @java.lang.Override
    public int getHmsAlarmDataCount() {
      return hmsAlarmData_.size();
    }
@@ -12259,7 +11334,6 @@
     *
     * <code>repeated .HmsAlarmData hmsAlarmData = 8;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData getHmsAlarmData(int index) {
      return hmsAlarmData_.get(index);
    }
@@ -12270,14 +11344,12 @@
     *
     * <code>repeated .HmsAlarmData hmsAlarmData = 8;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmDataOrBuilder getHmsAlarmDataOrBuilder(
        int index) {
      return hmsAlarmData_.get(index);
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -12287,7 +11359,6 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (flightControllerState_ != null) {
@@ -12305,7 +11376,7 @@
      if (missionState_ != null) {
        output.writeMessage(5, getMissionState());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(boxSn_)) {
      if (!getBoxSnBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, boxSn_);
      }
      if (avoidanceData_ != null) {
@@ -12314,10 +11385,8 @@
      for (int i = 0; i < hmsAlarmData_.size(); i++) {
        output.writeMessage(8, hmsAlarmData_.get(i));
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -12343,7 +11412,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getMissionState());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(boxSn_)) {
      if (!getBoxSnBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, boxSn_);
      }
      if (avoidanceData_ != null) {
@@ -12354,11 +11423,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, hmsAlarmData_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -12369,42 +11438,42 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState) obj;
      if (hasFlightControllerState() != other.hasFlightControllerState()) return false;
      boolean result = true;
      result = result && (hasFlightControllerState() == other.hasFlightControllerState());
      if (hasFlightControllerState()) {
        if (!getFlightControllerState()
            .equals(other.getFlightControllerState())) return false;
        result = result && getFlightControllerState()
            .equals(other.getFlightControllerState());
      }
      if (hasBatteryState() != other.hasBatteryState()) return false;
      result = result && (hasBatteryState() == other.hasBatteryState());
      if (hasBatteryState()) {
        if (!getBatteryState()
            .equals(other.getBatteryState())) return false;
        result = result && getBatteryState()
            .equals(other.getBatteryState());
      }
      if (hasPtzState() != other.hasPtzState()) return false;
      result = result && (hasPtzState() == other.hasPtzState());
      if (hasPtzState()) {
        if (!getPtzState()
            .equals(other.getPtzState())) return false;
        result = result && getPtzState()
            .equals(other.getPtzState());
      }
      if (hasCameraState() != other.hasCameraState()) return false;
      result = result && (hasCameraState() == other.hasCameraState());
      if (hasCameraState()) {
        if (!getCameraState()
            .equals(other.getCameraState())) return false;
        result = result && getCameraState()
            .equals(other.getCameraState());
      }
      if (hasMissionState() != other.hasMissionState()) return false;
      result = result && (hasMissionState() == other.hasMissionState());
      if (hasMissionState()) {
        if (!getMissionState()
            .equals(other.getMissionState())) return false;
        result = result && getMissionState()
            .equals(other.getMissionState());
      }
      if (!getBoxSn()
          .equals(other.getBoxSn())) return false;
      if (hasAvoidanceData() != other.hasAvoidanceData()) return false;
      result = result && getBoxSn()
          .equals(other.getBoxSn());
      result = result && (hasAvoidanceData() == other.hasAvoidanceData());
      if (hasAvoidanceData()) {
        if (!getAvoidanceData()
            .equals(other.getAvoidanceData())) return false;
        result = result && getAvoidanceData()
            .equals(other.getAvoidanceData());
      }
      if (!getHmsAlarmDataList()
          .equals(other.getHmsAlarmDataList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      result = result && getHmsAlarmDataList()
          .equals(other.getHmsAlarmDataList());
      return result;
    }
    @java.lang.Override
@@ -12413,7 +11482,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (hasFlightControllerState()) {
        hash = (37 * hash) + FLIGHTCONTROLLERSTATE_FIELD_NUMBER;
        hash = (53 * hash) + getFlightControllerState().hashCode();
@@ -12449,17 +11518,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -12519,7 +11577,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -12527,7 +11584,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -12555,7 +11611,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_UavState_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_UavState_fieldAccessorTable
@@ -12579,7 +11634,6 @@
          getHmsAlarmDataFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (flightControllerStateBuilder_ == null) {
@@ -12622,25 +11676,22 @@
        }
        if (hmsAlarmDataBuilder_ == null) {
          hmsAlarmData_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          hmsAlarmDataBuilder_.clear();
        }
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_UavState_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState result = buildPartial();
        if (!result.isInitialized()) {
@@ -12649,10 +11700,10 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (flightControllerStateBuilder_ == null) {
          result.flightControllerState_ = flightControllerState_;
        } else {
@@ -12685,51 +11736,45 @@
          result.avoidanceData_ = avoidanceDataBuilder_.build();
        }
        if (hmsAlarmDataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            hmsAlarmData_ = java.util.Collections.unmodifiableList(hmsAlarmData_);
            bitField0_ = (bitField0_ & ~0x00000001);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.hmsAlarmData_ = hmsAlarmData_;
        } else {
          result.hmsAlarmData_ = hmsAlarmDataBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState)other);
@@ -12767,7 +11812,7 @@
          if (!other.hmsAlarmData_.isEmpty()) {
            if (hmsAlarmData_.isEmpty()) {
              hmsAlarmData_ = other.hmsAlarmData_;
              bitField0_ = (bitField0_ & ~0x00000001);
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureHmsAlarmDataIsMutable();
              hmsAlarmData_.addAll(other.hmsAlarmData_);
@@ -12780,7 +11825,7 @@
              hmsAlarmDataBuilder_.dispose();
              hmsAlarmDataBuilder_ = null;
              hmsAlarmData_ = other.hmsAlarmData_;
              bitField0_ = (bitField0_ & ~0x00000001);
              bitField0_ = (bitField0_ & ~0x00000080);
              hmsAlarmDataBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getHmsAlarmDataFieldBuilder() : null;
@@ -12789,17 +11834,14 @@
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -12819,7 +11861,7 @@
      }
      private int bitField0_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState flightControllerState_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState flightControllerState_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState, com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerStateOrBuilder> flightControllerStateBuilder_;
      /**
@@ -12827,8 +11869,7 @@
       *飞控状态
       * </pre>
       *
       * <code>.FlightControllerState flightControllerState = 1;</code>
       * @return Whether the flightControllerState field is set.
       * <code>optional .FlightControllerState flightControllerState = 1;</code>
       */
      public boolean hasFlightControllerState() {
        return flightControllerStateBuilder_ != null || flightControllerState_ != null;
@@ -12838,8 +11879,7 @@
       *飞控状态
       * </pre>
       *
       * <code>.FlightControllerState flightControllerState = 1;</code>
       * @return The flightControllerState.
       * <code>optional .FlightControllerState flightControllerState = 1;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState getFlightControllerState() {
        if (flightControllerStateBuilder_ == null) {
@@ -12853,7 +11893,7 @@
       *飞控状态
       * </pre>
       *
       * <code>.FlightControllerState flightControllerState = 1;</code>
       * <code>optional .FlightControllerState flightControllerState = 1;</code>
       */
      public Builder setFlightControllerState(com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState value) {
        if (flightControllerStateBuilder_ == null) {
@@ -12873,7 +11913,7 @@
       *飞控状态
       * </pre>
       *
       * <code>.FlightControllerState flightControllerState = 1;</code>
       * <code>optional .FlightControllerState flightControllerState = 1;</code>
       */
      public Builder setFlightControllerState(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState.Builder builderForValue) {
@@ -12891,7 +11931,7 @@
       *飞控状态
       * </pre>
       *
       * <code>.FlightControllerState flightControllerState = 1;</code>
       * <code>optional .FlightControllerState flightControllerState = 1;</code>
       */
      public Builder mergeFlightControllerState(com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState value) {
        if (flightControllerStateBuilder_ == null) {
@@ -12913,7 +11953,7 @@
       *飞控状态
       * </pre>
       *
       * <code>.FlightControllerState flightControllerState = 1;</code>
       * <code>optional .FlightControllerState flightControllerState = 1;</code>
       */
      public Builder clearFlightControllerState() {
        if (flightControllerStateBuilder_ == null) {
@@ -12931,7 +11971,7 @@
       *飞控状态
       * </pre>
       *
       * <code>.FlightControllerState flightControllerState = 1;</code>
       * <code>optional .FlightControllerState flightControllerState = 1;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState.Builder getFlightControllerStateBuilder() {
        
@@ -12943,7 +11983,7 @@
       *飞控状态
       * </pre>
       *
       * <code>.FlightControllerState flightControllerState = 1;</code>
       * <code>optional .FlightControllerState flightControllerState = 1;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerStateOrBuilder getFlightControllerStateOrBuilder() {
        if (flightControllerStateBuilder_ != null) {
@@ -12958,7 +11998,7 @@
       *飞控状态
       * </pre>
       *
       * <code>.FlightControllerState flightControllerState = 1;</code>
       * <code>optional .FlightControllerState flightControllerState = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState, com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerStateOrBuilder> 
@@ -12974,7 +12014,7 @@
        return flightControllerStateBuilder_;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState batteryState_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState batteryState_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState, com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateOrBuilder> batteryStateBuilder_;
      /**
@@ -12982,8 +12022,7 @@
       *电池状态
       * </pre>
       *
       * <code>.BatteryState batteryState = 2;</code>
       * @return Whether the batteryState field is set.
       * <code>optional .BatteryState batteryState = 2;</code>
       */
      public boolean hasBatteryState() {
        return batteryStateBuilder_ != null || batteryState_ != null;
@@ -12993,8 +12032,7 @@
       *电池状态
       * </pre>
       *
       * <code>.BatteryState batteryState = 2;</code>
       * @return The batteryState.
       * <code>optional .BatteryState batteryState = 2;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState getBatteryState() {
        if (batteryStateBuilder_ == null) {
@@ -13008,7 +12046,7 @@
       *电池状态
       * </pre>
       *
       * <code>.BatteryState batteryState = 2;</code>
       * <code>optional .BatteryState batteryState = 2;</code>
       */
      public Builder setBatteryState(com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState value) {
        if (batteryStateBuilder_ == null) {
@@ -13028,7 +12066,7 @@
       *电池状态
       * </pre>
       *
       * <code>.BatteryState batteryState = 2;</code>
       * <code>optional .BatteryState batteryState = 2;</code>
       */
      public Builder setBatteryState(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState.Builder builderForValue) {
@@ -13046,7 +12084,7 @@
       *电池状态
       * </pre>
       *
       * <code>.BatteryState batteryState = 2;</code>
       * <code>optional .BatteryState batteryState = 2;</code>
       */
      public Builder mergeBatteryState(com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState value) {
        if (batteryStateBuilder_ == null) {
@@ -13068,7 +12106,7 @@
       *电池状态
       * </pre>
       *
       * <code>.BatteryState batteryState = 2;</code>
       * <code>optional .BatteryState batteryState = 2;</code>
       */
      public Builder clearBatteryState() {
        if (batteryStateBuilder_ == null) {
@@ -13086,7 +12124,7 @@
       *电池状态
       * </pre>
       *
       * <code>.BatteryState batteryState = 2;</code>
       * <code>optional .BatteryState batteryState = 2;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState.Builder getBatteryStateBuilder() {
        
@@ -13098,7 +12136,7 @@
       *电池状态
       * </pre>
       *
       * <code>.BatteryState batteryState = 2;</code>
       * <code>optional .BatteryState batteryState = 2;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateOrBuilder getBatteryStateOrBuilder() {
        if (batteryStateBuilder_ != null) {
@@ -13113,7 +12151,7 @@
       *电池状态
       * </pre>
       *
       * <code>.BatteryState batteryState = 2;</code>
       * <code>optional .BatteryState batteryState = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState, com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateOrBuilder> 
@@ -13129,7 +12167,7 @@
        return batteryStateBuilder_;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState ptzState_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState ptzState_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzStateOrBuilder> ptzStateBuilder_;
      /**
@@ -13137,8 +12175,7 @@
       *云台状态
       * </pre>
       *
       * <code>.PtzState ptzState = 3;</code>
       * @return Whether the ptzState field is set.
       * <code>optional .PtzState ptzState = 3;</code>
       */
      public boolean hasPtzState() {
        return ptzStateBuilder_ != null || ptzState_ != null;
@@ -13148,8 +12185,7 @@
       *云台状态
       * </pre>
       *
       * <code>.PtzState ptzState = 3;</code>
       * @return The ptzState.
       * <code>optional .PtzState ptzState = 3;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState getPtzState() {
        if (ptzStateBuilder_ == null) {
@@ -13163,7 +12199,7 @@
       *云台状态
       * </pre>
       *
       * <code>.PtzState ptzState = 3;</code>
       * <code>optional .PtzState ptzState = 3;</code>
       */
      public Builder setPtzState(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState value) {
        if (ptzStateBuilder_ == null) {
@@ -13183,7 +12219,7 @@
       *云台状态
       * </pre>
       *
       * <code>.PtzState ptzState = 3;</code>
       * <code>optional .PtzState ptzState = 3;</code>
       */
      public Builder setPtzState(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState.Builder builderForValue) {
@@ -13201,7 +12237,7 @@
       *云台状态
       * </pre>
       *
       * <code>.PtzState ptzState = 3;</code>
       * <code>optional .PtzState ptzState = 3;</code>
       */
      public Builder mergePtzState(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState value) {
        if (ptzStateBuilder_ == null) {
@@ -13223,7 +12259,7 @@
       *云台状态
       * </pre>
       *
       * <code>.PtzState ptzState = 3;</code>
       * <code>optional .PtzState ptzState = 3;</code>
       */
      public Builder clearPtzState() {
        if (ptzStateBuilder_ == null) {
@@ -13241,7 +12277,7 @@
       *云台状态
       * </pre>
       *
       * <code>.PtzState ptzState = 3;</code>
       * <code>optional .PtzState ptzState = 3;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState.Builder getPtzStateBuilder() {
        
@@ -13253,7 +12289,7 @@
       *云台状态
       * </pre>
       *
       * <code>.PtzState ptzState = 3;</code>
       * <code>optional .PtzState ptzState = 3;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzStateOrBuilder getPtzStateOrBuilder() {
        if (ptzStateBuilder_ != null) {
@@ -13268,7 +12304,7 @@
       *云台状态
       * </pre>
       *
       * <code>.PtzState ptzState = 3;</code>
       * <code>optional .PtzState ptzState = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzStateOrBuilder> 
@@ -13284,7 +12320,7 @@
        return ptzStateBuilder_;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState cameraState_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState cameraState_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState, com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraStateOrBuilder> cameraStateBuilder_;
      /**
@@ -13292,8 +12328,7 @@
       *相机状态
       * </pre>
       *
       * <code>.CameraState cameraState = 4;</code>
       * @return Whether the cameraState field is set.
       * <code>optional .CameraState cameraState = 4;</code>
       */
      public boolean hasCameraState() {
        return cameraStateBuilder_ != null || cameraState_ != null;
@@ -13303,8 +12338,7 @@
       *相机状态
       * </pre>
       *
       * <code>.CameraState cameraState = 4;</code>
       * @return The cameraState.
       * <code>optional .CameraState cameraState = 4;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState getCameraState() {
        if (cameraStateBuilder_ == null) {
@@ -13318,7 +12352,7 @@
       *相机状态
       * </pre>
       *
       * <code>.CameraState cameraState = 4;</code>
       * <code>optional .CameraState cameraState = 4;</code>
       */
      public Builder setCameraState(com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState value) {
        if (cameraStateBuilder_ == null) {
@@ -13338,7 +12372,7 @@
       *相机状态
       * </pre>
       *
       * <code>.CameraState cameraState = 4;</code>
       * <code>optional .CameraState cameraState = 4;</code>
       */
      public Builder setCameraState(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState.Builder builderForValue) {
@@ -13356,7 +12390,7 @@
       *相机状态
       * </pre>
       *
       * <code>.CameraState cameraState = 4;</code>
       * <code>optional .CameraState cameraState = 4;</code>
       */
      public Builder mergeCameraState(com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState value) {
        if (cameraStateBuilder_ == null) {
@@ -13378,7 +12412,7 @@
       *相机状态
       * </pre>
       *
       * <code>.CameraState cameraState = 4;</code>
       * <code>optional .CameraState cameraState = 4;</code>
       */
      public Builder clearCameraState() {
        if (cameraStateBuilder_ == null) {
@@ -13396,7 +12430,7 @@
       *相机状态
       * </pre>
       *
       * <code>.CameraState cameraState = 4;</code>
       * <code>optional .CameraState cameraState = 4;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState.Builder getCameraStateBuilder() {
        
@@ -13408,7 +12442,7 @@
       *相机状态
       * </pre>
       *
       * <code>.CameraState cameraState = 4;</code>
       * <code>optional .CameraState cameraState = 4;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraStateOrBuilder getCameraStateOrBuilder() {
        if (cameraStateBuilder_ != null) {
@@ -13423,7 +12457,7 @@
       *相机状态
       * </pre>
       *
       * <code>.CameraState cameraState = 4;</code>
       * <code>optional .CameraState cameraState = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState, com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraStateOrBuilder> 
@@ -13439,7 +12473,7 @@
        return cameraStateBuilder_;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState missionState_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState missionState_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState, com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionStateOrBuilder> missionStateBuilder_;
      /**
@@ -13447,8 +12481,7 @@
       *任务状态
       * </pre>
       *
       * <code>.MissionState missionState = 5;</code>
       * @return Whether the missionState field is set.
       * <code>optional .MissionState missionState = 5;</code>
       */
      public boolean hasMissionState() {
        return missionStateBuilder_ != null || missionState_ != null;
@@ -13458,8 +12491,7 @@
       *任务状态
       * </pre>
       *
       * <code>.MissionState missionState = 5;</code>
       * @return The missionState.
       * <code>optional .MissionState missionState = 5;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState getMissionState() {
        if (missionStateBuilder_ == null) {
@@ -13473,7 +12505,7 @@
       *任务状态
       * </pre>
       *
       * <code>.MissionState missionState = 5;</code>
       * <code>optional .MissionState missionState = 5;</code>
       */
      public Builder setMissionState(com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState value) {
        if (missionStateBuilder_ == null) {
@@ -13493,7 +12525,7 @@
       *任务状态
       * </pre>
       *
       * <code>.MissionState missionState = 5;</code>
       * <code>optional .MissionState missionState = 5;</code>
       */
      public Builder setMissionState(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState.Builder builderForValue) {
@@ -13511,7 +12543,7 @@
       *任务状态
       * </pre>
       *
       * <code>.MissionState missionState = 5;</code>
       * <code>optional .MissionState missionState = 5;</code>
       */
      public Builder mergeMissionState(com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState value) {
        if (missionStateBuilder_ == null) {
@@ -13533,7 +12565,7 @@
       *任务状态
       * </pre>
       *
       * <code>.MissionState missionState = 5;</code>
       * <code>optional .MissionState missionState = 5;</code>
       */
      public Builder clearMissionState() {
        if (missionStateBuilder_ == null) {
@@ -13551,7 +12583,7 @@
       *任务状态
       * </pre>
       *
       * <code>.MissionState missionState = 5;</code>
       * <code>optional .MissionState missionState = 5;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState.Builder getMissionStateBuilder() {
        
@@ -13563,7 +12595,7 @@
       *任务状态
       * </pre>
       *
       * <code>.MissionState missionState = 5;</code>
       * <code>optional .MissionState missionState = 5;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionStateOrBuilder getMissionStateOrBuilder() {
        if (missionStateBuilder_ != null) {
@@ -13578,7 +12610,7 @@
       *任务状态
       * </pre>
       *
       * <code>.MissionState missionState = 5;</code>
       * <code>optional .MissionState missionState = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState, com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionStateOrBuilder> 
@@ -13600,8 +12632,7 @@
       *云盒编号
       * </pre>
       *
       * <code>string boxSn = 6;</code>
       * @return The boxSn.
       * <code>optional string boxSn = 6;</code>
       */
      public java.lang.String getBoxSn() {
        java.lang.Object ref = boxSn_;
@@ -13620,8 +12651,7 @@
       *云盒编号
       * </pre>
       *
       * <code>string boxSn = 6;</code>
       * @return The bytes for boxSn.
       * <code>optional string boxSn = 6;</code>
       */
      public com.google.protobuf.ByteString
          getBoxSnBytes() {
@@ -13641,9 +12671,7 @@
       *云盒编号
       * </pre>
       *
       * <code>string boxSn = 6;</code>
       * @param value The boxSn to set.
       * @return This builder for chaining.
       * <code>optional string boxSn = 6;</code>
       */
      public Builder setBoxSn(
          java.lang.String value) {
@@ -13660,8 +12688,7 @@
       *云盒编号
       * </pre>
       *
       * <code>string boxSn = 6;</code>
       * @return This builder for chaining.
       * <code>optional string boxSn = 6;</code>
       */
      public Builder clearBoxSn() {
        
@@ -13674,9 +12701,7 @@
       *云盒编号
       * </pre>
       *
       * <code>string boxSn = 6;</code>
       * @param value The bytes for boxSn to set.
       * @return This builder for chaining.
       * <code>optional string boxSn = 6;</code>
       */
      public Builder setBoxSnBytes(
          com.google.protobuf.ByteString value) {
@@ -13690,7 +12715,7 @@
        return this;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData avoidanceData_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData avoidanceData_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceDataOrBuilder> avoidanceDataBuilder_;
      /**
@@ -13698,8 +12723,7 @@
       *避障数据
       * </pre>
       *
       * <code>.AvoidanceData avoidanceData = 7;</code>
       * @return Whether the avoidanceData field is set.
       * <code>optional .AvoidanceData avoidanceData = 7;</code>
       */
      public boolean hasAvoidanceData() {
        return avoidanceDataBuilder_ != null || avoidanceData_ != null;
@@ -13709,8 +12733,7 @@
       *避障数据
       * </pre>
       *
       * <code>.AvoidanceData avoidanceData = 7;</code>
       * @return The avoidanceData.
       * <code>optional .AvoidanceData avoidanceData = 7;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData getAvoidanceData() {
        if (avoidanceDataBuilder_ == null) {
@@ -13724,7 +12747,7 @@
       *避障数据
       * </pre>
       *
       * <code>.AvoidanceData avoidanceData = 7;</code>
       * <code>optional .AvoidanceData avoidanceData = 7;</code>
       */
      public Builder setAvoidanceData(com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData value) {
        if (avoidanceDataBuilder_ == null) {
@@ -13744,7 +12767,7 @@
       *避障数据
       * </pre>
       *
       * <code>.AvoidanceData avoidanceData = 7;</code>
       * <code>optional .AvoidanceData avoidanceData = 7;</code>
       */
      public Builder setAvoidanceData(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData.Builder builderForValue) {
@@ -13762,7 +12785,7 @@
       *避障数据
       * </pre>
       *
       * <code>.AvoidanceData avoidanceData = 7;</code>
       * <code>optional .AvoidanceData avoidanceData = 7;</code>
       */
      public Builder mergeAvoidanceData(com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData value) {
        if (avoidanceDataBuilder_ == null) {
@@ -13784,7 +12807,7 @@
       *避障数据
       * </pre>
       *
       * <code>.AvoidanceData avoidanceData = 7;</code>
       * <code>optional .AvoidanceData avoidanceData = 7;</code>
       */
      public Builder clearAvoidanceData() {
        if (avoidanceDataBuilder_ == null) {
@@ -13802,7 +12825,7 @@
       *避障数据
       * </pre>
       *
       * <code>.AvoidanceData avoidanceData = 7;</code>
       * <code>optional .AvoidanceData avoidanceData = 7;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData.Builder getAvoidanceDataBuilder() {
        
@@ -13814,7 +12837,7 @@
       *避障数据
       * </pre>
       *
       * <code>.AvoidanceData avoidanceData = 7;</code>
       * <code>optional .AvoidanceData avoidanceData = 7;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceDataOrBuilder getAvoidanceDataOrBuilder() {
        if (avoidanceDataBuilder_ != null) {
@@ -13829,7 +12852,7 @@
       *避障数据
       * </pre>
       *
       * <code>.AvoidanceData avoidanceData = 7;</code>
       * <code>optional .AvoidanceData avoidanceData = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceDataOrBuilder> 
@@ -13848,9 +12871,9 @@
      private java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData> hmsAlarmData_ =
        java.util.Collections.emptyList();
      private void ensureHmsAlarmDataIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          hmsAlarmData_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData>(hmsAlarmData_);
          bitField0_ |= 0x00000001;
          bitField0_ |= 0x00000080;
         }
      }
@@ -14044,7 +13067,7 @@
      public Builder clearHmsAlarmData() {
        if (hmsAlarmDataBuilder_ == null) {
          hmsAlarmData_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          hmsAlarmDataBuilder_.clear();
@@ -14149,23 +13172,21 @@
          hmsAlarmDataBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmDataOrBuilder>(
                  hmsAlarmData_,
                  ((bitField0_ & 0x00000001) != 0),
                  ((bitField0_ & 0x00000080) == 0x00000080),
                  getParentForChildren(),
                  isClean());
          hmsAlarmData_ = null;
        }
        return hmsAlarmDataBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -14184,12 +13205,11 @@
    private static final com.google.protobuf.Parser<UavState>
        PARSER = new com.google.protobuf.AbstractParser<UavState>() {
      @java.lang.Override
      public UavState parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new UavState(input, extensionRegistry);
          return new UavState(input, extensionRegistry);
      }
    };
@@ -14202,7 +13222,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -14218,8 +13237,7 @@
     *卫星计数
     * </pre>
     *
     * <code>uint32 satelliteCount = 1;</code>
     * @return The satelliteCount.
     * <code>optional uint32 satelliteCount = 1;</code>
     */
    int getSatelliteCount();
@@ -14228,8 +13246,7 @@
     *GPS信号级别,0~5[4,5等级可以执行航线]
     * </pre>
     *
     * <code>uint32 gpsSignalLevel = 2;</code>
     * @return The gpsSignalLevel.
     * <code>optional uint32 gpsSignalLevel = 2;</code>
     */
    int getGpsSignalLevel();
@@ -14238,8 +13255,7 @@
     *飞行模式:1=手动控制模式,2=姿态模式,6=MODE_P_GPS,9=热点任务中,11=自动起飞中,12=降落中,14=航线中,15=返航中,17=虚拟摇杆控制中,33=强制降落中,41=解锁电机准备起飞中
     * </pre>
     *
     * <code>uint32 flightMode = 3;</code>
     * @return The flightMode.
     * <code>optional uint32 flightMode = 3;</code>
     */
    int getFlightMode();
@@ -14248,8 +13264,7 @@
     *飞行状态:0=电机未启动(地面),1=电机启动未起飞(地面),2=起飞在空中(空中)
     * </pre>
     *
     * <code>uint32 flightStatus = 4;</code>
     * @return The flightStatus.
     * <code>optional uint32 flightStatus = 4;</code>
     */
    int getFlightStatus();
@@ -14258,8 +13273,7 @@
     *起飞点(只包含lat和lng信息)
     * </pre>
     *
     * <code>.PointData startPoint = 5;</code>
     * @return Whether the startPoint field is set.
     * <code>optional .PointData startPoint = 5;</code>
     */
    boolean hasStartPoint();
    /**
@@ -14267,8 +13281,7 @@
     *起飞点(只包含lat和lng信息)
     * </pre>
     *
     * <code>.PointData startPoint = 5;</code>
     * @return The startPoint.
     * <code>optional .PointData startPoint = 5;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getStartPoint();
    /**
@@ -14276,7 +13289,7 @@
     *起飞点(只包含lat和lng信息)
     * </pre>
     *
     * <code>.PointData startPoint = 5;</code>
     * <code>optional .PointData startPoint = 5;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder getStartPointOrBuilder();
@@ -14285,8 +13298,7 @@
     *返航点(只包含lat和lng信息)
     * </pre>
     *
     * <code>.PointData homePoint = 6;</code>
     * @return Whether the homePoint field is set.
     * <code>optional .PointData homePoint = 6;</code>
     */
    boolean hasHomePoint();
    /**
@@ -14294,8 +13306,7 @@
     *返航点(只包含lat和lng信息)
     * </pre>
     *
     * <code>.PointData homePoint = 6;</code>
     * @return The homePoint.
     * <code>optional .PointData homePoint = 6;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getHomePoint();
    /**
@@ -14303,7 +13314,7 @@
     *返航点(只包含lat和lng信息)
     * </pre>
     *
     * <code>.PointData homePoint = 6;</code>
     * <code>optional .PointData homePoint = 6;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder getHomePointOrBuilder();
@@ -14312,8 +13323,7 @@
     *返航高度(单位:米)
     * </pre>
     *
     * <code>int32 homeHeight = 7;</code>
     * @return The homeHeight.
     * <code>optional int32 homeHeight = 7;</code>
     */
    int getHomeHeight();
@@ -14322,8 +13332,7 @@
     *打点飞行模式:0=节能模式【飞机直线飞到目标点,需飞机在空中并且有控制权】,1=安全模式【飞机飞行至目标点高度再平飞到目标点,飞机可以在地面】 默认为节能模式
     * </pre>
     *
     * <code>uint32 safeLine = 8;</code>
     * @return The safeLine.
     * <code>optional uint32 safeLine = 8;</code>
     */
    int getSafeLine();
@@ -14332,8 +13341,7 @@
     *控制权状态:0=遥控器,1=msdk,4=云盒[此控制权只针对虚拟摇杆控制权,起飞、降落、强制降落、航线操作、返航不需要此控制权,但是遥控器断连情况下,如果云盒没有控制权,飞机会执行遥控器的失联策略]
     * </pre>
     *
     * <code>uint32 deviceStatus = 9;</code>
     * @return The deviceStatus.
     * <code>optional uint32 deviceStatus = 9;</code>
     */
    int getDeviceStatus();
@@ -14342,27 +13350,24 @@
     *UWB星数(只有等于4时,才可以开启uwb精准降落模式)
     * </pre>
     *
     * <code>uint32 uwbNodeCount = 10;</code>
     * @return The uwbNodeCount.
     * <code>optional uint32 uwbNodeCount = 10;</code>
     */
    int getUwbNodeCount();
    /**
     * <pre>
     *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
     *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
     * </pre>
     *
     * <code>string rcMode = 11;</code>
     * @return The rcMode.
     * <code>optional string rcMode = 11;</code>
     */
    java.lang.String getRcMode();
    /**
     * <pre>
     *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
     *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
     * </pre>
     *
     * <code>string rcMode = 11;</code>
     * @return The bytes for rcMode.
     * <code>optional string rcMode = 11;</code>
     */
    com.google.protobuf.ByteString
        getRcModeBytes();
@@ -14372,8 +13377,7 @@
     *是否紧急制动中,0=否,1=是 【飞行器在地面限制起飞,飞行器在空中限制飞行.如果想操作飞行,请先解除紧急制动】
     * </pre>
     *
     * <code>uint32 isEmergencyBrakeing = 12;</code>
     * @return The isEmergencyBrakeing.
     * <code>optional uint32 isEmergencyBrakeing = 12;</code>
     */
    int getIsEmergencyBrakeing();
@@ -14382,8 +13386,7 @@
     *飞行器是否在所有自定义电子围栏外,0=电子围栏内 1=电子围栏外
     * </pre>
     *
     * <code>uint32 outFlyAreaFlag = 13;</code>
     * @return The outFlyAreaFlag.
     * <code>optional uint32 outFlyAreaFlag = 13;</code>
     */
    int getOutFlyAreaFlag();
@@ -14392,49 +13395,47 @@
     *飞行器是否在自定义禁飞区内,0=禁飞区外 1=禁飞区内
     * </pre>
     *
     * <code>uint32 inNoFlyAreaFlag = 14;</code>
     * @return The inNoFlyAreaFlag.
     * <code>optional uint32 inNoFlyAreaFlag = 14;</code>
     */
    int getInNoFlyAreaFlag();
  }
  /**
   * Protobuf type {@code FlightControllerState}
   */
  public static final class FlightControllerState extends
  public  static final class FlightControllerState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:FlightControllerState)
      FlightControllerStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use FlightControllerState.newBuilder() to construct.
    private FlightControllerState(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private FlightControllerState() {
      satelliteCount_ = 0;
      gpsSignalLevel_ = 0;
      flightMode_ = 0;
      flightStatus_ = 0;
      homeHeight_ = 0;
      safeLine_ = 0;
      deviceStatus_ = 0;
      uwbNodeCount_ = 0;
      rcMode_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new FlightControllerState();
      isEmergencyBrakeing_ = 0;
      outFlyAreaFlag_ = 0;
      inNoFlyAreaFlag_ = 0;
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private FlightControllerState(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
@@ -14443,6 +13444,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              satelliteCount_ = input.readUInt32();
@@ -14530,24 +13537,14 @@
              inNoFlyAreaFlag_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -14556,7 +13553,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_FlightControllerState_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_FlightControllerState_fieldAccessorTable
@@ -14571,10 +13567,8 @@
     *卫星计数
     * </pre>
     *
     * <code>uint32 satelliteCount = 1;</code>
     * @return The satelliteCount.
     * <code>optional uint32 satelliteCount = 1;</code>
     */
    @java.lang.Override
    public int getSatelliteCount() {
      return satelliteCount_;
    }
@@ -14586,10 +13580,8 @@
     *GPS信号级别,0~5[4,5等级可以执行航线]
     * </pre>
     *
     * <code>uint32 gpsSignalLevel = 2;</code>
     * @return The gpsSignalLevel.
     * <code>optional uint32 gpsSignalLevel = 2;</code>
     */
    @java.lang.Override
    public int getGpsSignalLevel() {
      return gpsSignalLevel_;
    }
@@ -14601,10 +13593,8 @@
     *飞行模式:1=手动控制模式,2=姿态模式,6=MODE_P_GPS,9=热点任务中,11=自动起飞中,12=降落中,14=航线中,15=返航中,17=虚拟摇杆控制中,33=强制降落中,41=解锁电机准备起飞中
     * </pre>
     *
     * <code>uint32 flightMode = 3;</code>
     * @return The flightMode.
     * <code>optional uint32 flightMode = 3;</code>
     */
    @java.lang.Override
    public int getFlightMode() {
      return flightMode_;
    }
@@ -14616,10 +13606,8 @@
     *飞行状态:0=电机未启动(地面),1=电机启动未起飞(地面),2=起飞在空中(空中)
     * </pre>
     *
     * <code>uint32 flightStatus = 4;</code>
     * @return The flightStatus.
     * <code>optional uint32 flightStatus = 4;</code>
     */
    @java.lang.Override
    public int getFlightStatus() {
      return flightStatus_;
    }
@@ -14631,10 +13619,8 @@
     *起飞点(只包含lat和lng信息)
     * </pre>
     *
     * <code>.PointData startPoint = 5;</code>
     * @return Whether the startPoint field is set.
     * <code>optional .PointData startPoint = 5;</code>
     */
    @java.lang.Override
    public boolean hasStartPoint() {
      return startPoint_ != null;
    }
@@ -14643,10 +13629,8 @@
     *起飞点(只包含lat和lng信息)
     * </pre>
     *
     * <code>.PointData startPoint = 5;</code>
     * @return The startPoint.
     * <code>optional .PointData startPoint = 5;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getStartPoint() {
      return startPoint_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.getDefaultInstance() : startPoint_;
    }
@@ -14655,9 +13639,8 @@
     *起飞点(只包含lat和lng信息)
     * </pre>
     *
     * <code>.PointData startPoint = 5;</code>
     * <code>optional .PointData startPoint = 5;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder getStartPointOrBuilder() {
      return getStartPoint();
    }
@@ -14669,10 +13652,8 @@
     *返航点(只包含lat和lng信息)
     * </pre>
     *
     * <code>.PointData homePoint = 6;</code>
     * @return Whether the homePoint field is set.
     * <code>optional .PointData homePoint = 6;</code>
     */
    @java.lang.Override
    public boolean hasHomePoint() {
      return homePoint_ != null;
    }
@@ -14681,10 +13662,8 @@
     *返航点(只包含lat和lng信息)
     * </pre>
     *
     * <code>.PointData homePoint = 6;</code>
     * @return The homePoint.
     * <code>optional .PointData homePoint = 6;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getHomePoint() {
      return homePoint_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.getDefaultInstance() : homePoint_;
    }
@@ -14693,9 +13672,8 @@
     *返航点(只包含lat和lng信息)
     * </pre>
     *
     * <code>.PointData homePoint = 6;</code>
     * <code>optional .PointData homePoint = 6;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder getHomePointOrBuilder() {
      return getHomePoint();
    }
@@ -14707,10 +13685,8 @@
     *返航高度(单位:米)
     * </pre>
     *
     * <code>int32 homeHeight = 7;</code>
     * @return The homeHeight.
     * <code>optional int32 homeHeight = 7;</code>
     */
    @java.lang.Override
    public int getHomeHeight() {
      return homeHeight_;
    }
@@ -14722,10 +13698,8 @@
     *打点飞行模式:0=节能模式【飞机直线飞到目标点,需飞机在空中并且有控制权】,1=安全模式【飞机飞行至目标点高度再平飞到目标点,飞机可以在地面】 默认为节能模式
     * </pre>
     *
     * <code>uint32 safeLine = 8;</code>
     * @return The safeLine.
     * <code>optional uint32 safeLine = 8;</code>
     */
    @java.lang.Override
    public int getSafeLine() {
      return safeLine_;
    }
@@ -14737,10 +13711,8 @@
     *控制权状态:0=遥控器,1=msdk,4=云盒[此控制权只针对虚拟摇杆控制权,起飞、降落、强制降落、航线操作、返航不需要此控制权,但是遥控器断连情况下,如果云盒没有控制权,飞机会执行遥控器的失联策略]
     * </pre>
     *
     * <code>uint32 deviceStatus = 9;</code>
     * @return The deviceStatus.
     * <code>optional uint32 deviceStatus = 9;</code>
     */
    @java.lang.Override
    public int getDeviceStatus() {
      return deviceStatus_;
    }
@@ -14752,10 +13724,8 @@
     *UWB星数(只有等于4时,才可以开启uwb精准降落模式)
     * </pre>
     *
     * <code>uint32 uwbNodeCount = 10;</code>
     * @return The uwbNodeCount.
     * <code>optional uint32 uwbNodeCount = 10;</code>
     */
    @java.lang.Override
    public int getUwbNodeCount() {
      return uwbNodeCount_;
    }
@@ -14764,13 +13734,11 @@
    private volatile java.lang.Object rcMode_;
    /**
     * <pre>
     *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
     *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
     * </pre>
     *
     * <code>string rcMode = 11;</code>
     * @return The rcMode.
     * <code>optional string rcMode = 11;</code>
     */
    @java.lang.Override
    public java.lang.String getRcMode() {
      java.lang.Object ref = rcMode_;
      if (ref instanceof java.lang.String) {
@@ -14785,13 +13753,11 @@
    }
    /**
     * <pre>
     *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
     *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
     * </pre>
     *
     * <code>string rcMode = 11;</code>
     * @return The bytes for rcMode.
     * <code>optional string rcMode = 11;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRcModeBytes() {
      java.lang.Object ref = rcMode_;
@@ -14813,10 +13779,8 @@
     *是否紧急制动中,0=否,1=是 【飞行器在地面限制起飞,飞行器在空中限制飞行.如果想操作飞行,请先解除紧急制动】
     * </pre>
     *
     * <code>uint32 isEmergencyBrakeing = 12;</code>
     * @return The isEmergencyBrakeing.
     * <code>optional uint32 isEmergencyBrakeing = 12;</code>
     */
    @java.lang.Override
    public int getIsEmergencyBrakeing() {
      return isEmergencyBrakeing_;
    }
@@ -14828,10 +13792,8 @@
     *飞行器是否在所有自定义电子围栏外,0=电子围栏内 1=电子围栏外
     * </pre>
     *
     * <code>uint32 outFlyAreaFlag = 13;</code>
     * @return The outFlyAreaFlag.
     * <code>optional uint32 outFlyAreaFlag = 13;</code>
     */
    @java.lang.Override
    public int getOutFlyAreaFlag() {
      return outFlyAreaFlag_;
    }
@@ -14843,16 +13805,13 @@
     *飞行器是否在自定义禁飞区内,0=禁飞区外 1=禁飞区内
     * </pre>
     *
     * <code>uint32 inNoFlyAreaFlag = 14;</code>
     * @return The inNoFlyAreaFlag.
     * <code>optional uint32 inNoFlyAreaFlag = 14;</code>
     */
    @java.lang.Override
    public int getInNoFlyAreaFlag() {
      return inNoFlyAreaFlag_;
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -14862,7 +13821,6 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (satelliteCount_ != 0) {
@@ -14895,7 +13853,7 @@
      if (uwbNodeCount_ != 0) {
        output.writeUInt32(10, uwbNodeCount_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rcMode_)) {
      if (!getRcModeBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, rcMode_);
      }
      if (isEmergencyBrakeing_ != 0) {
@@ -14907,10 +13865,8 @@
      if (inNoFlyAreaFlag_ != 0) {
        output.writeUInt32(14, inNoFlyAreaFlag_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -14956,7 +13912,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(10, uwbNodeCount_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(rcMode_)) {
      if (!getRcModeBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, rcMode_);
      }
      if (isEmergencyBrakeing_ != 0) {
@@ -14971,11 +13927,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(14, inNoFlyAreaFlag_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -14986,42 +13942,42 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState) obj;
      if (getSatelliteCount()
          != other.getSatelliteCount()) return false;
      if (getGpsSignalLevel()
          != other.getGpsSignalLevel()) return false;
      if (getFlightMode()
          != other.getFlightMode()) return false;
      if (getFlightStatus()
          != other.getFlightStatus()) return false;
      if (hasStartPoint() != other.hasStartPoint()) return false;
      boolean result = true;
      result = result && (getSatelliteCount()
          == other.getSatelliteCount());
      result = result && (getGpsSignalLevel()
          == other.getGpsSignalLevel());
      result = result && (getFlightMode()
          == other.getFlightMode());
      result = result && (getFlightStatus()
          == other.getFlightStatus());
      result = result && (hasStartPoint() == other.hasStartPoint());
      if (hasStartPoint()) {
        if (!getStartPoint()
            .equals(other.getStartPoint())) return false;
        result = result && getStartPoint()
            .equals(other.getStartPoint());
      }
      if (hasHomePoint() != other.hasHomePoint()) return false;
      result = result && (hasHomePoint() == other.hasHomePoint());
      if (hasHomePoint()) {
        if (!getHomePoint()
            .equals(other.getHomePoint())) return false;
        result = result && getHomePoint()
            .equals(other.getHomePoint());
      }
      if (getHomeHeight()
          != other.getHomeHeight()) return false;
      if (getSafeLine()
          != other.getSafeLine()) return false;
      if (getDeviceStatus()
          != other.getDeviceStatus()) return false;
      if (getUwbNodeCount()
          != other.getUwbNodeCount()) return false;
      if (!getRcMode()
          .equals(other.getRcMode())) return false;
      if (getIsEmergencyBrakeing()
          != other.getIsEmergencyBrakeing()) return false;
      if (getOutFlyAreaFlag()
          != other.getOutFlyAreaFlag()) return false;
      if (getInNoFlyAreaFlag()
          != other.getInNoFlyAreaFlag()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      result = result && (getHomeHeight()
          == other.getHomeHeight());
      result = result && (getSafeLine()
          == other.getSafeLine());
      result = result && (getDeviceStatus()
          == other.getDeviceStatus());
      result = result && (getUwbNodeCount()
          == other.getUwbNodeCount());
      result = result && getRcMode()
          .equals(other.getRcMode());
      result = result && (getIsEmergencyBrakeing()
          == other.getIsEmergencyBrakeing());
      result = result && (getOutFlyAreaFlag()
          == other.getOutFlyAreaFlag());
      result = result && (getInNoFlyAreaFlag()
          == other.getInNoFlyAreaFlag());
      return result;
    }
    @java.lang.Override
@@ -15030,7 +13986,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + SATELLITECOUNT_FIELD_NUMBER;
      hash = (53 * hash) + getSatelliteCount();
      hash = (37 * hash) + GPSSIGNALLEVEL_FIELD_NUMBER;
@@ -15068,17 +14024,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -15138,7 +14083,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -15146,7 +14090,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -15170,7 +14113,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_FlightControllerState_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_FlightControllerState_fieldAccessorTable
@@ -15193,7 +14135,6 @@
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        satelliteCount_ = 0;
@@ -15235,18 +14176,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_FlightControllerState_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState result = buildPartial();
        if (!result.isInitialized()) {
@@ -15255,7 +14193,6 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState(this);
        result.satelliteCount_ = satelliteCount_;
@@ -15284,39 +14221,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState)other);
@@ -15371,17 +14301,14 @@
        if (other.getInNoFlyAreaFlag() != 0) {
          setInNoFlyAreaFlag(other.getInNoFlyAreaFlag());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -15406,10 +14333,8 @@
       *卫星计数
       * </pre>
       *
       * <code>uint32 satelliteCount = 1;</code>
       * @return The satelliteCount.
       * <code>optional uint32 satelliteCount = 1;</code>
       */
      @java.lang.Override
      public int getSatelliteCount() {
        return satelliteCount_;
      }
@@ -15418,9 +14343,7 @@
       *卫星计数
       * </pre>
       *
       * <code>uint32 satelliteCount = 1;</code>
       * @param value The satelliteCount to set.
       * @return This builder for chaining.
       * <code>optional uint32 satelliteCount = 1;</code>
       */
      public Builder setSatelliteCount(int value) {
        
@@ -15433,8 +14356,7 @@
       *卫星计数
       * </pre>
       *
       * <code>uint32 satelliteCount = 1;</code>
       * @return This builder for chaining.
       * <code>optional uint32 satelliteCount = 1;</code>
       */
      public Builder clearSatelliteCount() {
        
@@ -15449,10 +14371,8 @@
       *GPS信号级别,0~5[4,5等级可以执行航线]
       * </pre>
       *
       * <code>uint32 gpsSignalLevel = 2;</code>
       * @return The gpsSignalLevel.
       * <code>optional uint32 gpsSignalLevel = 2;</code>
       */
      @java.lang.Override
      public int getGpsSignalLevel() {
        return gpsSignalLevel_;
      }
@@ -15461,9 +14381,7 @@
       *GPS信号级别,0~5[4,5等级可以执行航线]
       * </pre>
       *
       * <code>uint32 gpsSignalLevel = 2;</code>
       * @param value The gpsSignalLevel to set.
       * @return This builder for chaining.
       * <code>optional uint32 gpsSignalLevel = 2;</code>
       */
      public Builder setGpsSignalLevel(int value) {
        
@@ -15476,8 +14394,7 @@
       *GPS信号级别,0~5[4,5等级可以执行航线]
       * </pre>
       *
       * <code>uint32 gpsSignalLevel = 2;</code>
       * @return This builder for chaining.
       * <code>optional uint32 gpsSignalLevel = 2;</code>
       */
      public Builder clearGpsSignalLevel() {
        
@@ -15492,10 +14409,8 @@
       *飞行模式:1=手动控制模式,2=姿态模式,6=MODE_P_GPS,9=热点任务中,11=自动起飞中,12=降落中,14=航线中,15=返航中,17=虚拟摇杆控制中,33=强制降落中,41=解锁电机准备起飞中
       * </pre>
       *
       * <code>uint32 flightMode = 3;</code>
       * @return The flightMode.
       * <code>optional uint32 flightMode = 3;</code>
       */
      @java.lang.Override
      public int getFlightMode() {
        return flightMode_;
      }
@@ -15504,9 +14419,7 @@
       *飞行模式:1=手动控制模式,2=姿态模式,6=MODE_P_GPS,9=热点任务中,11=自动起飞中,12=降落中,14=航线中,15=返航中,17=虚拟摇杆控制中,33=强制降落中,41=解锁电机准备起飞中
       * </pre>
       *
       * <code>uint32 flightMode = 3;</code>
       * @param value The flightMode to set.
       * @return This builder for chaining.
       * <code>optional uint32 flightMode = 3;</code>
       */
      public Builder setFlightMode(int value) {
        
@@ -15519,8 +14432,7 @@
       *飞行模式:1=手动控制模式,2=姿态模式,6=MODE_P_GPS,9=热点任务中,11=自动起飞中,12=降落中,14=航线中,15=返航中,17=虚拟摇杆控制中,33=强制降落中,41=解锁电机准备起飞中
       * </pre>
       *
       * <code>uint32 flightMode = 3;</code>
       * @return This builder for chaining.
       * <code>optional uint32 flightMode = 3;</code>
       */
      public Builder clearFlightMode() {
        
@@ -15535,10 +14447,8 @@
       *飞行状态:0=电机未启动(地面),1=电机启动未起飞(地面),2=起飞在空中(空中)
       * </pre>
       *
       * <code>uint32 flightStatus = 4;</code>
       * @return The flightStatus.
       * <code>optional uint32 flightStatus = 4;</code>
       */
      @java.lang.Override
      public int getFlightStatus() {
        return flightStatus_;
      }
@@ -15547,9 +14457,7 @@
       *飞行状态:0=电机未启动(地面),1=电机启动未起飞(地面),2=起飞在空中(空中)
       * </pre>
       *
       * <code>uint32 flightStatus = 4;</code>
       * @param value The flightStatus to set.
       * @return This builder for chaining.
       * <code>optional uint32 flightStatus = 4;</code>
       */
      public Builder setFlightStatus(int value) {
        
@@ -15562,8 +14470,7 @@
       *飞行状态:0=电机未启动(地面),1=电机启动未起飞(地面),2=起飞在空中(空中)
       * </pre>
       *
       * <code>uint32 flightStatus = 4;</code>
       * @return This builder for chaining.
       * <code>optional uint32 flightStatus = 4;</code>
       */
      public Builder clearFlightStatus() {
        
@@ -15572,7 +14479,7 @@
        return this;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData startPoint_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData startPoint_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder> startPointBuilder_;
      /**
@@ -15580,8 +14487,7 @@
       *起飞点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData startPoint = 5;</code>
       * @return Whether the startPoint field is set.
       * <code>optional .PointData startPoint = 5;</code>
       */
      public boolean hasStartPoint() {
        return startPointBuilder_ != null || startPoint_ != null;
@@ -15591,8 +14497,7 @@
       *起飞点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData startPoint = 5;</code>
       * @return The startPoint.
       * <code>optional .PointData startPoint = 5;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getStartPoint() {
        if (startPointBuilder_ == null) {
@@ -15606,7 +14511,7 @@
       *起飞点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData startPoint = 5;</code>
       * <code>optional .PointData startPoint = 5;</code>
       */
      public Builder setStartPoint(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData value) {
        if (startPointBuilder_ == null) {
@@ -15626,7 +14531,7 @@
       *起飞点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData startPoint = 5;</code>
       * <code>optional .PointData startPoint = 5;</code>
       */
      public Builder setStartPoint(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder builderForValue) {
@@ -15644,7 +14549,7 @@
       *起飞点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData startPoint = 5;</code>
       * <code>optional .PointData startPoint = 5;</code>
       */
      public Builder mergeStartPoint(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData value) {
        if (startPointBuilder_ == null) {
@@ -15666,7 +14571,7 @@
       *起飞点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData startPoint = 5;</code>
       * <code>optional .PointData startPoint = 5;</code>
       */
      public Builder clearStartPoint() {
        if (startPointBuilder_ == null) {
@@ -15684,7 +14589,7 @@
       *起飞点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData startPoint = 5;</code>
       * <code>optional .PointData startPoint = 5;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder getStartPointBuilder() {
        
@@ -15696,7 +14601,7 @@
       *起飞点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData startPoint = 5;</code>
       * <code>optional .PointData startPoint = 5;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder getStartPointOrBuilder() {
        if (startPointBuilder_ != null) {
@@ -15711,7 +14616,7 @@
       *起飞点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData startPoint = 5;</code>
       * <code>optional .PointData startPoint = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder> 
@@ -15727,7 +14632,7 @@
        return startPointBuilder_;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData homePoint_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData homePoint_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder> homePointBuilder_;
      /**
@@ -15735,8 +14640,7 @@
       *返航点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData homePoint = 6;</code>
       * @return Whether the homePoint field is set.
       * <code>optional .PointData homePoint = 6;</code>
       */
      public boolean hasHomePoint() {
        return homePointBuilder_ != null || homePoint_ != null;
@@ -15746,8 +14650,7 @@
       *返航点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData homePoint = 6;</code>
       * @return The homePoint.
       * <code>optional .PointData homePoint = 6;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getHomePoint() {
        if (homePointBuilder_ == null) {
@@ -15761,7 +14664,7 @@
       *返航点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData homePoint = 6;</code>
       * <code>optional .PointData homePoint = 6;</code>
       */
      public Builder setHomePoint(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData value) {
        if (homePointBuilder_ == null) {
@@ -15781,7 +14684,7 @@
       *返航点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData homePoint = 6;</code>
       * <code>optional .PointData homePoint = 6;</code>
       */
      public Builder setHomePoint(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder builderForValue) {
@@ -15799,7 +14702,7 @@
       *返航点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData homePoint = 6;</code>
       * <code>optional .PointData homePoint = 6;</code>
       */
      public Builder mergeHomePoint(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData value) {
        if (homePointBuilder_ == null) {
@@ -15821,7 +14724,7 @@
       *返航点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData homePoint = 6;</code>
       * <code>optional .PointData homePoint = 6;</code>
       */
      public Builder clearHomePoint() {
        if (homePointBuilder_ == null) {
@@ -15839,7 +14742,7 @@
       *返航点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData homePoint = 6;</code>
       * <code>optional .PointData homePoint = 6;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder getHomePointBuilder() {
        
@@ -15851,7 +14754,7 @@
       *返航点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData homePoint = 6;</code>
       * <code>optional .PointData homePoint = 6;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder getHomePointOrBuilder() {
        if (homePointBuilder_ != null) {
@@ -15866,7 +14769,7 @@
       *返航点(只包含lat和lng信息)
       * </pre>
       *
       * <code>.PointData homePoint = 6;</code>
       * <code>optional .PointData homePoint = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder> 
@@ -15888,10 +14791,8 @@
       *返航高度(单位:米)
       * </pre>
       *
       * <code>int32 homeHeight = 7;</code>
       * @return The homeHeight.
       * <code>optional int32 homeHeight = 7;</code>
       */
      @java.lang.Override
      public int getHomeHeight() {
        return homeHeight_;
      }
@@ -15900,9 +14801,7 @@
       *返航高度(单位:米)
       * </pre>
       *
       * <code>int32 homeHeight = 7;</code>
       * @param value The homeHeight to set.
       * @return This builder for chaining.
       * <code>optional int32 homeHeight = 7;</code>
       */
      public Builder setHomeHeight(int value) {
        
@@ -15915,8 +14814,7 @@
       *返航高度(单位:米)
       * </pre>
       *
       * <code>int32 homeHeight = 7;</code>
       * @return This builder for chaining.
       * <code>optional int32 homeHeight = 7;</code>
       */
      public Builder clearHomeHeight() {
        
@@ -15931,10 +14829,8 @@
       *打点飞行模式:0=节能模式【飞机直线飞到目标点,需飞机在空中并且有控制权】,1=安全模式【飞机飞行至目标点高度再平飞到目标点,飞机可以在地面】 默认为节能模式
       * </pre>
       *
       * <code>uint32 safeLine = 8;</code>
       * @return The safeLine.
       * <code>optional uint32 safeLine = 8;</code>
       */
      @java.lang.Override
      public int getSafeLine() {
        return safeLine_;
      }
@@ -15943,9 +14839,7 @@
       *打点飞行模式:0=节能模式【飞机直线飞到目标点,需飞机在空中并且有控制权】,1=安全模式【飞机飞行至目标点高度再平飞到目标点,飞机可以在地面】 默认为节能模式
       * </pre>
       *
       * <code>uint32 safeLine = 8;</code>
       * @param value The safeLine to set.
       * @return This builder for chaining.
       * <code>optional uint32 safeLine = 8;</code>
       */
      public Builder setSafeLine(int value) {
        
@@ -15958,8 +14852,7 @@
       *打点飞行模式:0=节能模式【飞机直线飞到目标点,需飞机在空中并且有控制权】,1=安全模式【飞机飞行至目标点高度再平飞到目标点,飞机可以在地面】 默认为节能模式
       * </pre>
       *
       * <code>uint32 safeLine = 8;</code>
       * @return This builder for chaining.
       * <code>optional uint32 safeLine = 8;</code>
       */
      public Builder clearSafeLine() {
        
@@ -15974,10 +14867,8 @@
       *控制权状态:0=遥控器,1=msdk,4=云盒[此控制权只针对虚拟摇杆控制权,起飞、降落、强制降落、航线操作、返航不需要此控制权,但是遥控器断连情况下,如果云盒没有控制权,飞机会执行遥控器的失联策略]
       * </pre>
       *
       * <code>uint32 deviceStatus = 9;</code>
       * @return The deviceStatus.
       * <code>optional uint32 deviceStatus = 9;</code>
       */
      @java.lang.Override
      public int getDeviceStatus() {
        return deviceStatus_;
      }
@@ -15986,9 +14877,7 @@
       *控制权状态:0=遥控器,1=msdk,4=云盒[此控制权只针对虚拟摇杆控制权,起飞、降落、强制降落、航线操作、返航不需要此控制权,但是遥控器断连情况下,如果云盒没有控制权,飞机会执行遥控器的失联策略]
       * </pre>
       *
       * <code>uint32 deviceStatus = 9;</code>
       * @param value The deviceStatus to set.
       * @return This builder for chaining.
       * <code>optional uint32 deviceStatus = 9;</code>
       */
      public Builder setDeviceStatus(int value) {
        
@@ -16001,8 +14890,7 @@
       *控制权状态:0=遥控器,1=msdk,4=云盒[此控制权只针对虚拟摇杆控制权,起飞、降落、强制降落、航线操作、返航不需要此控制权,但是遥控器断连情况下,如果云盒没有控制权,飞机会执行遥控器的失联策略]
       * </pre>
       *
       * <code>uint32 deviceStatus = 9;</code>
       * @return This builder for chaining.
       * <code>optional uint32 deviceStatus = 9;</code>
       */
      public Builder clearDeviceStatus() {
        
@@ -16017,10 +14905,8 @@
       *UWB星数(只有等于4时,才可以开启uwb精准降落模式)
       * </pre>
       *
       * <code>uint32 uwbNodeCount = 10;</code>
       * @return The uwbNodeCount.
       * <code>optional uint32 uwbNodeCount = 10;</code>
       */
      @java.lang.Override
      public int getUwbNodeCount() {
        return uwbNodeCount_;
      }
@@ -16029,9 +14915,7 @@
       *UWB星数(只有等于4时,才可以开启uwb精准降落模式)
       * </pre>
       *
       * <code>uint32 uwbNodeCount = 10;</code>
       * @param value The uwbNodeCount to set.
       * @return This builder for chaining.
       * <code>optional uint32 uwbNodeCount = 10;</code>
       */
      public Builder setUwbNodeCount(int value) {
        
@@ -16044,8 +14928,7 @@
       *UWB星数(只有等于4时,才可以开启uwb精准降落模式)
       * </pre>
       *
       * <code>uint32 uwbNodeCount = 10;</code>
       * @return This builder for chaining.
       * <code>optional uint32 uwbNodeCount = 10;</code>
       */
      public Builder clearUwbNodeCount() {
        
@@ -16057,11 +14940,10 @@
      private java.lang.Object rcMode_ = "";
      /**
       * <pre>
       *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
       *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
       * </pre>
       *
       * <code>string rcMode = 11;</code>
       * @return The rcMode.
       * <code>optional string rcMode = 11;</code>
       */
      public java.lang.String getRcMode() {
        java.lang.Object ref = rcMode_;
@@ -16077,11 +14959,10 @@
      }
      /**
       * <pre>
       *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
       *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
       * </pre>
       *
       * <code>string rcMode = 11;</code>
       * @return The bytes for rcMode.
       * <code>optional string rcMode = 11;</code>
       */
      public com.google.protobuf.ByteString
          getRcModeBytes() {
@@ -16098,12 +14979,10 @@
      }
      /**
       * <pre>
       *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
       *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
       * </pre>
       *
       * <code>string rcMode = 11;</code>
       * @param value The rcMode to set.
       * @return This builder for chaining.
       * <code>optional string rcMode = 11;</code>
       */
      public Builder setRcMode(
          java.lang.String value) {
@@ -16117,11 +14996,10 @@
      }
      /**
       * <pre>
       *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
       *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
       * </pre>
       *
       * <code>string rcMode = 11;</code>
       * @return This builder for chaining.
       * <code>optional string rcMode = 11;</code>
       */
      public Builder clearRcMode() {
        
@@ -16131,12 +15009,10 @@
      }
      /**
       * <pre>
       *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
       *遥控器档位模式(说明:1.遥控器与飞机正常连接:(M300:T-P-S/M30:F-S-N/M3:C-N-S),2.遥控器与飞机未连接:W,3.只有在M300-P挡、M30-N挡、M3-N挡下云盒才能正常控制无人机)
       * </pre>
       *
       * <code>string rcMode = 11;</code>
       * @param value The bytes for rcMode to set.
       * @return This builder for chaining.
       * <code>optional string rcMode = 11;</code>
       */
      public Builder setRcModeBytes(
          com.google.protobuf.ByteString value) {
@@ -16156,10 +15032,8 @@
       *是否紧急制动中,0=否,1=是 【飞行器在地面限制起飞,飞行器在空中限制飞行.如果想操作飞行,请先解除紧急制动】
       * </pre>
       *
       * <code>uint32 isEmergencyBrakeing = 12;</code>
       * @return The isEmergencyBrakeing.
       * <code>optional uint32 isEmergencyBrakeing = 12;</code>
       */
      @java.lang.Override
      public int getIsEmergencyBrakeing() {
        return isEmergencyBrakeing_;
      }
@@ -16168,9 +15042,7 @@
       *是否紧急制动中,0=否,1=是 【飞行器在地面限制起飞,飞行器在空中限制飞行.如果想操作飞行,请先解除紧急制动】
       * </pre>
       *
       * <code>uint32 isEmergencyBrakeing = 12;</code>
       * @param value The isEmergencyBrakeing to set.
       * @return This builder for chaining.
       * <code>optional uint32 isEmergencyBrakeing = 12;</code>
       */
      public Builder setIsEmergencyBrakeing(int value) {
        
@@ -16183,8 +15055,7 @@
       *是否紧急制动中,0=否,1=是 【飞行器在地面限制起飞,飞行器在空中限制飞行.如果想操作飞行,请先解除紧急制动】
       * </pre>
       *
       * <code>uint32 isEmergencyBrakeing = 12;</code>
       * @return This builder for chaining.
       * <code>optional uint32 isEmergencyBrakeing = 12;</code>
       */
      public Builder clearIsEmergencyBrakeing() {
        
@@ -16199,10 +15070,8 @@
       *飞行器是否在所有自定义电子围栏外,0=电子围栏内 1=电子围栏外
       * </pre>
       *
       * <code>uint32 outFlyAreaFlag = 13;</code>
       * @return The outFlyAreaFlag.
       * <code>optional uint32 outFlyAreaFlag = 13;</code>
       */
      @java.lang.Override
      public int getOutFlyAreaFlag() {
        return outFlyAreaFlag_;
      }
@@ -16211,9 +15080,7 @@
       *飞行器是否在所有自定义电子围栏外,0=电子围栏内 1=电子围栏外
       * </pre>
       *
       * <code>uint32 outFlyAreaFlag = 13;</code>
       * @param value The outFlyAreaFlag to set.
       * @return This builder for chaining.
       * <code>optional uint32 outFlyAreaFlag = 13;</code>
       */
      public Builder setOutFlyAreaFlag(int value) {
        
@@ -16226,8 +15093,7 @@
       *飞行器是否在所有自定义电子围栏外,0=电子围栏内 1=电子围栏外
       * </pre>
       *
       * <code>uint32 outFlyAreaFlag = 13;</code>
       * @return This builder for chaining.
       * <code>optional uint32 outFlyAreaFlag = 13;</code>
       */
      public Builder clearOutFlyAreaFlag() {
        
@@ -16242,10 +15108,8 @@
       *飞行器是否在自定义禁飞区内,0=禁飞区外 1=禁飞区内
       * </pre>
       *
       * <code>uint32 inNoFlyAreaFlag = 14;</code>
       * @return The inNoFlyAreaFlag.
       * <code>optional uint32 inNoFlyAreaFlag = 14;</code>
       */
      @java.lang.Override
      public int getInNoFlyAreaFlag() {
        return inNoFlyAreaFlag_;
      }
@@ -16254,9 +15118,7 @@
       *飞行器是否在自定义禁飞区内,0=禁飞区外 1=禁飞区内
       * </pre>
       *
       * <code>uint32 inNoFlyAreaFlag = 14;</code>
       * @param value The inNoFlyAreaFlag to set.
       * @return This builder for chaining.
       * <code>optional uint32 inNoFlyAreaFlag = 14;</code>
       */
      public Builder setInNoFlyAreaFlag(int value) {
        
@@ -16269,8 +15131,7 @@
       *飞行器是否在自定义禁飞区内,0=禁飞区外 1=禁飞区内
       * </pre>
       *
       * <code>uint32 inNoFlyAreaFlag = 14;</code>
       * @return This builder for chaining.
       * <code>optional uint32 inNoFlyAreaFlag = 14;</code>
       */
      public Builder clearInNoFlyAreaFlag() {
        
@@ -16278,16 +15139,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -16306,12 +15165,11 @@
    private static final com.google.protobuf.Parser<FlightControllerState>
        PARSER = new com.google.protobuf.AbstractParser<FlightControllerState>() {
      @java.lang.Override
      public FlightControllerState parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new FlightControllerState(input, extensionRegistry);
          return new FlightControllerState(input, extensionRegistry);
      }
    };
@@ -16324,7 +15182,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.FlightControllerState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -16340,8 +15197,7 @@
     *电池数量
     * </pre>
     *
     * <code>uint32 batteryNum = 1;</code>
     * @return The batteryNum.
     * <code>optional uint32 batteryNum = 1;</code>
     */
    int getBatteryNum();
@@ -16350,8 +15206,7 @@
     *电池电量,多个电池以下划线分割,如:80_60
     * </pre>
     *
     * <code>string batteryPower = 2;</code>
     * @return The batteryPower.
     * <code>optional string batteryPower = 2;</code>
     */
    java.lang.String getBatteryPower();
    /**
@@ -16359,8 +15214,7 @@
     *电池电量,多个电池以下划线分割,如:80_60
     * </pre>
     *
     * <code>string batteryPower = 2;</code>
     * @return The bytes for batteryPower.
     * <code>optional string batteryPower = 2;</code>
     */
    com.google.protobuf.ByteString
        getBatteryPowerBytes();
@@ -16370,8 +15224,7 @@
     *电池电压,多个电池以下划线分割,如:40_30(单位:V)[注意:如果2块电池电压差大于0.7V,飞机限制起飞]
     * </pre>
     *
     * <code>string batteryVoltage = 3;</code>
     * @return The batteryVoltage.
     * <code>optional string batteryVoltage = 3;</code>
     */
    java.lang.String getBatteryVoltage();
    /**
@@ -16379,8 +15232,7 @@
     *电池电压,多个电池以下划线分割,如:40_30(单位:V)[注意:如果2块电池电压差大于0.7V,飞机限制起飞]
     * </pre>
     *
     * <code>string batteryVoltage = 3;</code>
     * @return The bytes for batteryVoltage.
     * <code>optional string batteryVoltage = 3;</code>
     */
    com.google.protobuf.ByteString
        getBatteryVoltageBytes();
@@ -16390,8 +15242,7 @@
     *第一块电池状态信息(安装在飞机左边电池槽)
     * </pre>
     *
     * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
     * @return Whether the firstBatteryInfo field is set.
     * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
     */
    boolean hasFirstBatteryInfo();
    /**
@@ -16399,8 +15250,7 @@
     *第一块电池状态信息(安装在飞机左边电池槽)
     * </pre>
     *
     * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
     * @return The firstBatteryInfo.
     * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo getFirstBatteryInfo();
    /**
@@ -16408,7 +15258,7 @@
     *第一块电池状态信息(安装在飞机左边电池槽)
     * </pre>
     *
     * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
     * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfoOrBuilder getFirstBatteryInfoOrBuilder();
@@ -16417,8 +15267,7 @@
     *第二块电池状态信息(安装在飞机右边电池槽)
     * </pre>
     *
     * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
     * @return Whether the secondBatteryInfo field is set.
     * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
     */
    boolean hasSecondBatteryInfo();
    /**
@@ -16426,8 +15275,7 @@
     *第二块电池状态信息(安装在飞机右边电池槽)
     * </pre>
     *
     * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
     * @return The secondBatteryInfo.
     * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo getSecondBatteryInfo();
    /**
@@ -16435,7 +15283,7 @@
     *第二块电池状态信息(安装在飞机右边电池槽)
     * </pre>
     *
     * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
     * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfoOrBuilder getSecondBatteryInfoOrBuilder();
  }
@@ -16446,42 +15294,31 @@
   *
   * Protobuf type {@code BatteryState}
   */
  public static final class BatteryState extends
  public  static final class BatteryState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:BatteryState)
      BatteryStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BatteryState.newBuilder() to construct.
    private BatteryState(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BatteryState() {
      batteryNum_ = 0;
      batteryPower_ = "";
      batteryVoltage_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new BatteryState();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private BatteryState(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
@@ -16490,6 +15327,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              batteryNum_ = input.readUInt32();
@@ -16533,24 +15376,14 @@
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -16559,7 +15392,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_BatteryState_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_BatteryState_fieldAccessorTable
@@ -16574,10 +15406,8 @@
     *电池数量
     * </pre>
     *
     * <code>uint32 batteryNum = 1;</code>
     * @return The batteryNum.
     * <code>optional uint32 batteryNum = 1;</code>
     */
    @java.lang.Override
    public int getBatteryNum() {
      return batteryNum_;
    }
@@ -16589,10 +15419,8 @@
     *电池电量,多个电池以下划线分割,如:80_60
     * </pre>
     *
     * <code>string batteryPower = 2;</code>
     * @return The batteryPower.
     * <code>optional string batteryPower = 2;</code>
     */
    @java.lang.Override
    public java.lang.String getBatteryPower() {
      java.lang.Object ref = batteryPower_;
      if (ref instanceof java.lang.String) {
@@ -16610,10 +15438,8 @@
     *电池电量,多个电池以下划线分割,如:80_60
     * </pre>
     *
     * <code>string batteryPower = 2;</code>
     * @return The bytes for batteryPower.
     * <code>optional string batteryPower = 2;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBatteryPowerBytes() {
      java.lang.Object ref = batteryPower_;
@@ -16635,10 +15461,8 @@
     *电池电压,多个电池以下划线分割,如:40_30(单位:V)[注意:如果2块电池电压差大于0.7V,飞机限制起飞]
     * </pre>
     *
     * <code>string batteryVoltage = 3;</code>
     * @return The batteryVoltage.
     * <code>optional string batteryVoltage = 3;</code>
     */
    @java.lang.Override
    public java.lang.String getBatteryVoltage() {
      java.lang.Object ref = batteryVoltage_;
      if (ref instanceof java.lang.String) {
@@ -16656,10 +15480,8 @@
     *电池电压,多个电池以下划线分割,如:40_30(单位:V)[注意:如果2块电池电压差大于0.7V,飞机限制起飞]
     * </pre>
     *
     * <code>string batteryVoltage = 3;</code>
     * @return The bytes for batteryVoltage.
     * <code>optional string batteryVoltage = 3;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBatteryVoltageBytes() {
      java.lang.Object ref = batteryVoltage_;
@@ -16681,10 +15503,8 @@
     *第一块电池状态信息(安装在飞机左边电池槽)
     * </pre>
     *
     * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
     * @return Whether the firstBatteryInfo field is set.
     * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
     */
    @java.lang.Override
    public boolean hasFirstBatteryInfo() {
      return firstBatteryInfo_ != null;
    }
@@ -16693,10 +15513,8 @@
     *第一块电池状态信息(安装在飞机左边电池槽)
     * </pre>
     *
     * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
     * @return The firstBatteryInfo.
     * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo getFirstBatteryInfo() {
      return firstBatteryInfo_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo.getDefaultInstance() : firstBatteryInfo_;
    }
@@ -16705,9 +15523,8 @@
     *第一块电池状态信息(安装在飞机左边电池槽)
     * </pre>
     *
     * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
     * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfoOrBuilder getFirstBatteryInfoOrBuilder() {
      return getFirstBatteryInfo();
    }
@@ -16719,10 +15536,8 @@
     *第二块电池状态信息(安装在飞机右边电池槽)
     * </pre>
     *
     * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
     * @return Whether the secondBatteryInfo field is set.
     * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
     */
    @java.lang.Override
    public boolean hasSecondBatteryInfo() {
      return secondBatteryInfo_ != null;
    }
@@ -16731,10 +15546,8 @@
     *第二块电池状态信息(安装在飞机右边电池槽)
     * </pre>
     *
     * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
     * @return The secondBatteryInfo.
     * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo getSecondBatteryInfo() {
      return secondBatteryInfo_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo.getDefaultInstance() : secondBatteryInfo_;
    }
@@ -16743,15 +15556,13 @@
     *第二块电池状态信息(安装在飞机右边电池槽)
     * </pre>
     *
     * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
     * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfoOrBuilder getSecondBatteryInfoOrBuilder() {
      return getSecondBatteryInfo();
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -16761,16 +15572,15 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (batteryNum_ != 0) {
        output.writeUInt32(1, batteryNum_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(batteryPower_)) {
      if (!getBatteryPowerBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, batteryPower_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(batteryVoltage_)) {
      if (!getBatteryVoltageBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, batteryVoltage_);
      }
      if (firstBatteryInfo_ != null) {
@@ -16779,10 +15589,8 @@
      if (secondBatteryInfo_ != null) {
        output.writeMessage(5, getSecondBatteryInfo());
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -16792,10 +15600,10 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, batteryNum_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(batteryPower_)) {
      if (!getBatteryPowerBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, batteryPower_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(batteryVoltage_)) {
      if (!getBatteryVoltageBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, batteryVoltage_);
      }
      if (firstBatteryInfo_ != null) {
@@ -16806,11 +15614,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getSecondBatteryInfo());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -16821,24 +15629,24 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState) obj;
      if (getBatteryNum()
          != other.getBatteryNum()) return false;
      if (!getBatteryPower()
          .equals(other.getBatteryPower())) return false;
      if (!getBatteryVoltage()
          .equals(other.getBatteryVoltage())) return false;
      if (hasFirstBatteryInfo() != other.hasFirstBatteryInfo()) return false;
      boolean result = true;
      result = result && (getBatteryNum()
          == other.getBatteryNum());
      result = result && getBatteryPower()
          .equals(other.getBatteryPower());
      result = result && getBatteryVoltage()
          .equals(other.getBatteryVoltage());
      result = result && (hasFirstBatteryInfo() == other.hasFirstBatteryInfo());
      if (hasFirstBatteryInfo()) {
        if (!getFirstBatteryInfo()
            .equals(other.getFirstBatteryInfo())) return false;
        result = result && getFirstBatteryInfo()
            .equals(other.getFirstBatteryInfo());
      }
      if (hasSecondBatteryInfo() != other.hasSecondBatteryInfo()) return false;
      result = result && (hasSecondBatteryInfo() == other.hasSecondBatteryInfo());
      if (hasSecondBatteryInfo()) {
        if (!getSecondBatteryInfo()
            .equals(other.getSecondBatteryInfo())) return false;
        result = result && getSecondBatteryInfo()
            .equals(other.getSecondBatteryInfo());
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      return result;
    }
    @java.lang.Override
@@ -16847,7 +15655,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + BATTERYNUM_FIELD_NUMBER;
      hash = (53 * hash) + getBatteryNum();
      hash = (37 * hash) + BATTERYPOWER_FIELD_NUMBER;
@@ -16867,17 +15675,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -16937,7 +15734,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -16945,7 +15741,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -16973,7 +15768,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_BatteryState_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_BatteryState_fieldAccessorTable
@@ -16996,7 +15790,6 @@
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        batteryNum_ = 0;
@@ -17020,18 +15813,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_BatteryState_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState result = buildPartial();
        if (!result.isInitialized()) {
@@ -17040,7 +15830,6 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState(this);
        result.batteryNum_ = batteryNum_;
@@ -17060,39 +15849,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState)other);
@@ -17121,17 +15903,14 @@
        if (other.hasSecondBatteryInfo()) {
          mergeSecondBatteryInfo(other.getSecondBatteryInfo());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -17156,10 +15935,8 @@
       *电池数量
       * </pre>
       *
       * <code>uint32 batteryNum = 1;</code>
       * @return The batteryNum.
       * <code>optional uint32 batteryNum = 1;</code>
       */
      @java.lang.Override
      public int getBatteryNum() {
        return batteryNum_;
      }
@@ -17168,9 +15945,7 @@
       *电池数量
       * </pre>
       *
       * <code>uint32 batteryNum = 1;</code>
       * @param value The batteryNum to set.
       * @return This builder for chaining.
       * <code>optional uint32 batteryNum = 1;</code>
       */
      public Builder setBatteryNum(int value) {
        
@@ -17183,8 +15958,7 @@
       *电池数量
       * </pre>
       *
       * <code>uint32 batteryNum = 1;</code>
       * @return This builder for chaining.
       * <code>optional uint32 batteryNum = 1;</code>
       */
      public Builder clearBatteryNum() {
        
@@ -17199,8 +15973,7 @@
       *电池电量,多个电池以下划线分割,如:80_60
       * </pre>
       *
       * <code>string batteryPower = 2;</code>
       * @return The batteryPower.
       * <code>optional string batteryPower = 2;</code>
       */
      public java.lang.String getBatteryPower() {
        java.lang.Object ref = batteryPower_;
@@ -17219,8 +15992,7 @@
       *电池电量,多个电池以下划线分割,如:80_60
       * </pre>
       *
       * <code>string batteryPower = 2;</code>
       * @return The bytes for batteryPower.
       * <code>optional string batteryPower = 2;</code>
       */
      public com.google.protobuf.ByteString
          getBatteryPowerBytes() {
@@ -17240,9 +16012,7 @@
       *电池电量,多个电池以下划线分割,如:80_60
       * </pre>
       *
       * <code>string batteryPower = 2;</code>
       * @param value The batteryPower to set.
       * @return This builder for chaining.
       * <code>optional string batteryPower = 2;</code>
       */
      public Builder setBatteryPower(
          java.lang.String value) {
@@ -17259,8 +16029,7 @@
       *电池电量,多个电池以下划线分割,如:80_60
       * </pre>
       *
       * <code>string batteryPower = 2;</code>
       * @return This builder for chaining.
       * <code>optional string batteryPower = 2;</code>
       */
      public Builder clearBatteryPower() {
        
@@ -17273,9 +16042,7 @@
       *电池电量,多个电池以下划线分割,如:80_60
       * </pre>
       *
       * <code>string batteryPower = 2;</code>
       * @param value The bytes for batteryPower to set.
       * @return This builder for chaining.
       * <code>optional string batteryPower = 2;</code>
       */
      public Builder setBatteryPowerBytes(
          com.google.protobuf.ByteString value) {
@@ -17295,8 +16062,7 @@
       *电池电压,多个电池以下划线分割,如:40_30(单位:V)[注意:如果2块电池电压差大于0.7V,飞机限制起飞]
       * </pre>
       *
       * <code>string batteryVoltage = 3;</code>
       * @return The batteryVoltage.
       * <code>optional string batteryVoltage = 3;</code>
       */
      public java.lang.String getBatteryVoltage() {
        java.lang.Object ref = batteryVoltage_;
@@ -17315,8 +16081,7 @@
       *电池电压,多个电池以下划线分割,如:40_30(单位:V)[注意:如果2块电池电压差大于0.7V,飞机限制起飞]
       * </pre>
       *
       * <code>string batteryVoltage = 3;</code>
       * @return The bytes for batteryVoltage.
       * <code>optional string batteryVoltage = 3;</code>
       */
      public com.google.protobuf.ByteString
          getBatteryVoltageBytes() {
@@ -17336,9 +16101,7 @@
       *电池电压,多个电池以下划线分割,如:40_30(单位:V)[注意:如果2块电池电压差大于0.7V,飞机限制起飞]
       * </pre>
       *
       * <code>string batteryVoltage = 3;</code>
       * @param value The batteryVoltage to set.
       * @return This builder for chaining.
       * <code>optional string batteryVoltage = 3;</code>
       */
      public Builder setBatteryVoltage(
          java.lang.String value) {
@@ -17355,8 +16118,7 @@
       *电池电压,多个电池以下划线分割,如:40_30(单位:V)[注意:如果2块电池电压差大于0.7V,飞机限制起飞]
       * </pre>
       *
       * <code>string batteryVoltage = 3;</code>
       * @return This builder for chaining.
       * <code>optional string batteryVoltage = 3;</code>
       */
      public Builder clearBatteryVoltage() {
        
@@ -17369,9 +16131,7 @@
       *电池电压,多个电池以下划线分割,如:40_30(单位:V)[注意:如果2块电池电压差大于0.7V,飞机限制起飞]
       * </pre>
       *
       * <code>string batteryVoltage = 3;</code>
       * @param value The bytes for batteryVoltage to set.
       * @return This builder for chaining.
       * <code>optional string batteryVoltage = 3;</code>
       */
      public Builder setBatteryVoltageBytes(
          com.google.protobuf.ByteString value) {
@@ -17385,7 +16145,7 @@
        return this;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo firstBatteryInfo_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo firstBatteryInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo, com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfoOrBuilder> firstBatteryInfoBuilder_;
      /**
@@ -17393,8 +16153,7 @@
       *第一块电池状态信息(安装在飞机左边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
       * @return Whether the firstBatteryInfo field is set.
       * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
       */
      public boolean hasFirstBatteryInfo() {
        return firstBatteryInfoBuilder_ != null || firstBatteryInfo_ != null;
@@ -17404,8 +16163,7 @@
       *第一块电池状态信息(安装在飞机左边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
       * @return The firstBatteryInfo.
       * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo getFirstBatteryInfo() {
        if (firstBatteryInfoBuilder_ == null) {
@@ -17419,7 +16177,7 @@
       *第一块电池状态信息(安装在飞机左边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
       * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
       */
      public Builder setFirstBatteryInfo(com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo value) {
        if (firstBatteryInfoBuilder_ == null) {
@@ -17439,7 +16197,7 @@
       *第一块电池状态信息(安装在飞机左边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
       * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
       */
      public Builder setFirstBatteryInfo(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo.Builder builderForValue) {
@@ -17457,7 +16215,7 @@
       *第一块电池状态信息(安装在飞机左边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
       * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
       */
      public Builder mergeFirstBatteryInfo(com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo value) {
        if (firstBatteryInfoBuilder_ == null) {
@@ -17479,7 +16237,7 @@
       *第一块电池状态信息(安装在飞机左边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
       * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
       */
      public Builder clearFirstBatteryInfo() {
        if (firstBatteryInfoBuilder_ == null) {
@@ -17497,7 +16255,7 @@
       *第一块电池状态信息(安装在飞机左边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
       * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo.Builder getFirstBatteryInfoBuilder() {
        
@@ -17509,7 +16267,7 @@
       *第一块电池状态信息(安装在飞机左边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
       * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfoOrBuilder getFirstBatteryInfoOrBuilder() {
        if (firstBatteryInfoBuilder_ != null) {
@@ -17524,7 +16282,7 @@
       *第一块电池状态信息(安装在飞机左边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo firstBatteryInfo = 4;</code>
       * <code>optional .BatteryStateInfo firstBatteryInfo = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo, com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfoOrBuilder> 
@@ -17540,7 +16298,7 @@
        return firstBatteryInfoBuilder_;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo secondBatteryInfo_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo secondBatteryInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo, com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfoOrBuilder> secondBatteryInfoBuilder_;
      /**
@@ -17548,8 +16306,7 @@
       *第二块电池状态信息(安装在飞机右边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
       * @return Whether the secondBatteryInfo field is set.
       * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
       */
      public boolean hasSecondBatteryInfo() {
        return secondBatteryInfoBuilder_ != null || secondBatteryInfo_ != null;
@@ -17559,8 +16316,7 @@
       *第二块电池状态信息(安装在飞机右边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
       * @return The secondBatteryInfo.
       * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo getSecondBatteryInfo() {
        if (secondBatteryInfoBuilder_ == null) {
@@ -17574,7 +16330,7 @@
       *第二块电池状态信息(安装在飞机右边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
       * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
       */
      public Builder setSecondBatteryInfo(com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo value) {
        if (secondBatteryInfoBuilder_ == null) {
@@ -17594,7 +16350,7 @@
       *第二块电池状态信息(安装在飞机右边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
       * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
       */
      public Builder setSecondBatteryInfo(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo.Builder builderForValue) {
@@ -17612,7 +16368,7 @@
       *第二块电池状态信息(安装在飞机右边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
       * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
       */
      public Builder mergeSecondBatteryInfo(com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo value) {
        if (secondBatteryInfoBuilder_ == null) {
@@ -17634,7 +16390,7 @@
       *第二块电池状态信息(安装在飞机右边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
       * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
       */
      public Builder clearSecondBatteryInfo() {
        if (secondBatteryInfoBuilder_ == null) {
@@ -17652,7 +16408,7 @@
       *第二块电池状态信息(安装在飞机右边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
       * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo.Builder getSecondBatteryInfoBuilder() {
        
@@ -17664,7 +16420,7 @@
       *第二块电池状态信息(安装在飞机右边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
       * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfoOrBuilder getSecondBatteryInfoOrBuilder() {
        if (secondBatteryInfoBuilder_ != null) {
@@ -17679,7 +16435,7 @@
       *第二块电池状态信息(安装在飞机右边电池槽)
       * </pre>
       *
       * <code>.BatteryStateInfo secondBatteryInfo = 5;</code>
       * <code>optional .BatteryStateInfo secondBatteryInfo = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo, com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfoOrBuilder> 
@@ -17694,16 +16450,14 @@
        }
        return secondBatteryInfoBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -17722,12 +16476,11 @@
    private static final com.google.protobuf.Parser<BatteryState>
        PARSER = new com.google.protobuf.AbstractParser<BatteryState>() {
      @java.lang.Override
      public BatteryState parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new BatteryState(input, extensionRegistry);
          return new BatteryState(input, extensionRegistry);
      }
    };
@@ -17740,7 +16493,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -17756,8 +16508,7 @@
     *电池插入飞机状态(注意:如果未插入所有电池信息不可用):0=插入,1=未插入
     * </pre>
     *
     * <code>uint32 isBatteryEmbed = 1;</code>
     * @return The isBatteryEmbed.
     * <code>optional uint32 isBatteryEmbed = 1;</code>
     */
    int getIsBatteryEmbed();
@@ -17766,8 +16517,7 @@
     *电池电量百分比
     * </pre>
     *
     * <code>uint32 batteryCapacityPercent = 2;</code>
     * @return The batteryCapacityPercent.
     * <code>optional uint32 batteryCapacityPercent = 2;</code>
     */
    int getBatteryCapacityPercent();
@@ -17776,8 +16526,7 @@
     *电池电压(单位:mV)
     * </pre>
     *
     * <code>int32 currentVoltage = 3;</code>
     * @return The currentVoltage.
     * <code>optional int32 currentVoltage = 3;</code>
     */
    int getCurrentVoltage();
@@ -17786,8 +16535,7 @@
     *当前电池电流(单位:mA)
     * </pre>
     *
     * <code>int32 currentElectric = 4;</code>
     * @return The currentElectric.
     * <code>optional int32 currentElectric = 4;</code>
     */
    int getCurrentElectric();
@@ -17796,8 +16544,7 @@
     *满电池容量(单位:mAh)
     * </pre>
     *
     * <code>uint32 fullCapacity = 5;</code>
     * @return The fullCapacity.
     * <code>optional uint32 fullCapacity = 5;</code>
     */
    int getFullCapacity();
@@ -17806,8 +16553,7 @@
     *剩余电池容量(单位:mAh)
     * </pre>
     *
     * <code>uint32 remainedCapacity = 6;</code>
     * @return The remainedCapacity.
     * <code>optional uint32 remainedCapacity = 6;</code>
     */
    int getRemainedCapacity();
@@ -17816,8 +16562,7 @@
     *电池温度(单位:摄氏度)
     * </pre>
     *
     * <code>float batteryTemperature = 7;</code>
     * @return The batteryTemperature.
     * <code>optional float batteryTemperature = 7;</code>
     */
    float getBatteryTemperature();
@@ -17826,8 +16571,7 @@
     *电池组数(电池硬件型号有关)
     * </pre>
     *
     * <code>uint32 cellCount = 8;</code>
     * @return The cellCount.
     * <code>optional uint32 cellCount = 8;</code>
     */
    int getCellCount();
@@ -17836,18 +16580,16 @@
     *电池循环健康状态:0=正常,1=警报,2=注意安全
     * </pre>
     *
     * <code>uint32 batSOHState = 9;</code>
     * @return The batSOHState.
     * <code>optional uint32 batSOHState = 9;</code>
     */
    int getBatSOHState();
    /**
     * <pre>
     *相对功率百分比(Relative power percentage)
     *相对功率百分比(Relative power percentage)
     * </pre>
     *
     * <code>uint32 sop = 10;</code>
     * @return The sop.
     * <code>optional uint32 sop = 10;</code>
     */
    int getSop();
@@ -17856,8 +16598,7 @@
     *电池加热状态:0=未加热,1=加热中,2=保持恒温
     * </pre>
     *
     * <code>uint32 heatState = 11;</code>
     * @return The heatState.
     * <code>optional uint32 heatState = 11;</code>
     */
    int getHeatState();
@@ -17866,8 +16607,7 @@
     *电池SOC荷电状态: 0=SOC正常,1=SOC_ABNORMAL_HIGH,2=SOC_JUMP_DOWN,3=SOC_JUMP_UP,4=SOC_INVALID
     * </pre>
     *
     * <code>uint32 socState = 12;</code>
     * @return The socState.
     * <code>optional uint32 socState = 12;</code>
     */
    int getSocState();
@@ -17876,8 +16616,7 @@
     *电池自检错误标志(注意:如果此值非0,就是电池损坏需要维修):0=正常,1=电池自检NTC异常,2=电池自检MOS异常,3=电池自检采样电阻异常,4=电池电芯损坏,5=电池未校准,6=电量计参数异常
     * </pre>
     *
     * <code>uint32 selfCheckError = 13;</code>
     * @return The selfCheckError.
     * <code>optional uint32 selfCheckError = 13;</code>
     */
    int getSelfCheckError();
  }
@@ -17888,40 +16627,41 @@
   *
   * Protobuf type {@code BatteryStateInfo}
   */
  public static final class BatteryStateInfo extends
  public  static final class BatteryStateInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:BatteryStateInfo)
      BatteryStateInfoOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use BatteryStateInfo.newBuilder() to construct.
    private BatteryStateInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private BatteryStateInfo() {
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new BatteryStateInfo();
      isBatteryEmbed_ = 0;
      batteryCapacityPercent_ = 0;
      currentVoltage_ = 0;
      currentElectric_ = 0;
      fullCapacity_ = 0;
      remainedCapacity_ = 0;
      batteryTemperature_ = 0F;
      cellCount_ = 0;
      batSOHState_ = 0;
      sop_ = 0;
      heatState_ = 0;
      socState_ = 0;
      selfCheckError_ = 0;
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private BatteryStateInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
@@ -17930,6 +16670,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              isBatteryEmbed_ = input.readUInt32();
@@ -17995,24 +16741,14 @@
              selfCheckError_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -18021,7 +16757,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_BatteryStateInfo_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_BatteryStateInfo_fieldAccessorTable
@@ -18036,10 +16771,8 @@
     *电池插入飞机状态(注意:如果未插入所有电池信息不可用):0=插入,1=未插入
     * </pre>
     *
     * <code>uint32 isBatteryEmbed = 1;</code>
     * @return The isBatteryEmbed.
     * <code>optional uint32 isBatteryEmbed = 1;</code>
     */
    @java.lang.Override
    public int getIsBatteryEmbed() {
      return isBatteryEmbed_;
    }
@@ -18051,10 +16784,8 @@
     *电池电量百分比
     * </pre>
     *
     * <code>uint32 batteryCapacityPercent = 2;</code>
     * @return The batteryCapacityPercent.
     * <code>optional uint32 batteryCapacityPercent = 2;</code>
     */
    @java.lang.Override
    public int getBatteryCapacityPercent() {
      return batteryCapacityPercent_;
    }
@@ -18066,10 +16797,8 @@
     *电池电压(单位:mV)
     * </pre>
     *
     * <code>int32 currentVoltage = 3;</code>
     * @return The currentVoltage.
     * <code>optional int32 currentVoltage = 3;</code>
     */
    @java.lang.Override
    public int getCurrentVoltage() {
      return currentVoltage_;
    }
@@ -18081,10 +16810,8 @@
     *当前电池电流(单位:mA)
     * </pre>
     *
     * <code>int32 currentElectric = 4;</code>
     * @return The currentElectric.
     * <code>optional int32 currentElectric = 4;</code>
     */
    @java.lang.Override
    public int getCurrentElectric() {
      return currentElectric_;
    }
@@ -18096,10 +16823,8 @@
     *满电池容量(单位:mAh)
     * </pre>
     *
     * <code>uint32 fullCapacity = 5;</code>
     * @return The fullCapacity.
     * <code>optional uint32 fullCapacity = 5;</code>
     */
    @java.lang.Override
    public int getFullCapacity() {
      return fullCapacity_;
    }
@@ -18111,10 +16836,8 @@
     *剩余电池容量(单位:mAh)
     * </pre>
     *
     * <code>uint32 remainedCapacity = 6;</code>
     * @return The remainedCapacity.
     * <code>optional uint32 remainedCapacity = 6;</code>
     */
    @java.lang.Override
    public int getRemainedCapacity() {
      return remainedCapacity_;
    }
@@ -18126,10 +16849,8 @@
     *电池温度(单位:摄氏度)
     * </pre>
     *
     * <code>float batteryTemperature = 7;</code>
     * @return The batteryTemperature.
     * <code>optional float batteryTemperature = 7;</code>
     */
    @java.lang.Override
    public float getBatteryTemperature() {
      return batteryTemperature_;
    }
@@ -18141,10 +16862,8 @@
     *电池组数(电池硬件型号有关)
     * </pre>
     *
     * <code>uint32 cellCount = 8;</code>
     * @return The cellCount.
     * <code>optional uint32 cellCount = 8;</code>
     */
    @java.lang.Override
    public int getCellCount() {
      return cellCount_;
    }
@@ -18156,10 +16875,8 @@
     *电池循环健康状态:0=正常,1=警报,2=注意安全
     * </pre>
     *
     * <code>uint32 batSOHState = 9;</code>
     * @return The batSOHState.
     * <code>optional uint32 batSOHState = 9;</code>
     */
    @java.lang.Override
    public int getBatSOHState() {
      return batSOHState_;
    }
@@ -18168,13 +16885,11 @@
    private int sop_;
    /**
     * <pre>
     *相对功率百分比(Relative power percentage)
     *相对功率百分比(Relative power percentage)
     * </pre>
     *
     * <code>uint32 sop = 10;</code>
     * @return The sop.
     * <code>optional uint32 sop = 10;</code>
     */
    @java.lang.Override
    public int getSop() {
      return sop_;
    }
@@ -18186,10 +16901,8 @@
     *电池加热状态:0=未加热,1=加热中,2=保持恒温
     * </pre>
     *
     * <code>uint32 heatState = 11;</code>
     * @return The heatState.
     * <code>optional uint32 heatState = 11;</code>
     */
    @java.lang.Override
    public int getHeatState() {
      return heatState_;
    }
@@ -18201,10 +16914,8 @@
     *电池SOC荷电状态: 0=SOC正常,1=SOC_ABNORMAL_HIGH,2=SOC_JUMP_DOWN,3=SOC_JUMP_UP,4=SOC_INVALID
     * </pre>
     *
     * <code>uint32 socState = 12;</code>
     * @return The socState.
     * <code>optional uint32 socState = 12;</code>
     */
    @java.lang.Override
    public int getSocState() {
      return socState_;
    }
@@ -18216,16 +16927,13 @@
     *电池自检错误标志(注意:如果此值非0,就是电池损坏需要维修):0=正常,1=电池自检NTC异常,2=电池自检MOS异常,3=电池自检采样电阻异常,4=电池电芯损坏,5=电池未校准,6=电量计参数异常
     * </pre>
     *
     * <code>uint32 selfCheckError = 13;</code>
     * @return The selfCheckError.
     * <code>optional uint32 selfCheckError = 13;</code>
     */
    @java.lang.Override
    public int getSelfCheckError() {
      return selfCheckError_;
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -18235,7 +16943,6 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (isBatteryEmbed_ != 0) {
@@ -18256,7 +16963,7 @@
      if (remainedCapacity_ != 0) {
        output.writeUInt32(6, remainedCapacity_);
      }
      if (java.lang.Float.floatToRawIntBits(batteryTemperature_) != 0) {
      if (batteryTemperature_ != 0F) {
        output.writeFloat(7, batteryTemperature_);
      }
      if (cellCount_ != 0) {
@@ -18277,10 +16984,8 @@
      if (selfCheckError_ != 0) {
        output.writeUInt32(13, selfCheckError_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -18310,7 +17015,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, remainedCapacity_);
      }
      if (java.lang.Float.floatToRawIntBits(batteryTemperature_) != 0) {
      if (batteryTemperature_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(7, batteryTemperature_);
      }
@@ -18338,11 +17043,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(13, selfCheckError_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -18353,35 +17058,36 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo) obj;
      if (getIsBatteryEmbed()
          != other.getIsBatteryEmbed()) return false;
      if (getBatteryCapacityPercent()
          != other.getBatteryCapacityPercent()) return false;
      if (getCurrentVoltage()
          != other.getCurrentVoltage()) return false;
      if (getCurrentElectric()
          != other.getCurrentElectric()) return false;
      if (getFullCapacity()
          != other.getFullCapacity()) return false;
      if (getRemainedCapacity()
          != other.getRemainedCapacity()) return false;
      if (java.lang.Float.floatToIntBits(getBatteryTemperature())
          != java.lang.Float.floatToIntBits(
              other.getBatteryTemperature())) return false;
      if (getCellCount()
          != other.getCellCount()) return false;
      if (getBatSOHState()
          != other.getBatSOHState()) return false;
      if (getSop()
          != other.getSop()) return false;
      if (getHeatState()
          != other.getHeatState()) return false;
      if (getSocState()
          != other.getSocState()) return false;
      if (getSelfCheckError()
          != other.getSelfCheckError()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && (getIsBatteryEmbed()
          == other.getIsBatteryEmbed());
      result = result && (getBatteryCapacityPercent()
          == other.getBatteryCapacityPercent());
      result = result && (getCurrentVoltage()
          == other.getCurrentVoltage());
      result = result && (getCurrentElectric()
          == other.getCurrentElectric());
      result = result && (getFullCapacity()
          == other.getFullCapacity());
      result = result && (getRemainedCapacity()
          == other.getRemainedCapacity());
      result = result && (
          java.lang.Float.floatToIntBits(getBatteryTemperature())
          == java.lang.Float.floatToIntBits(
              other.getBatteryTemperature()));
      result = result && (getCellCount()
          == other.getCellCount());
      result = result && (getBatSOHState()
          == other.getBatSOHState());
      result = result && (getSop()
          == other.getSop());
      result = result && (getHeatState()
          == other.getHeatState());
      result = result && (getSocState()
          == other.getSocState());
      result = result && (getSelfCheckError()
          == other.getSelfCheckError());
      return result;
    }
    @java.lang.Override
@@ -18390,7 +17096,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + ISBATTERYEMBED_FIELD_NUMBER;
      hash = (53 * hash) + getIsBatteryEmbed();
      hash = (37 * hash) + BATTERYCAPACITYPERCENT_FIELD_NUMBER;
@@ -18423,17 +17129,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -18493,7 +17188,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -18501,7 +17195,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -18529,7 +17222,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_BatteryStateInfo_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_BatteryStateInfo_fieldAccessorTable
@@ -18552,7 +17244,6 @@
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        isBatteryEmbed_ = 0;
@@ -18584,18 +17275,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_BatteryStateInfo_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo result = buildPartial();
        if (!result.isInitialized()) {
@@ -18604,7 +17292,6 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo(this);
        result.isBatteryEmbed_ = isBatteryEmbed_;
@@ -18624,39 +17311,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo)other);
@@ -18707,17 +17387,14 @@
        if (other.getSelfCheckError() != 0) {
          setSelfCheckError(other.getSelfCheckError());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -18742,10 +17419,8 @@
       *电池插入飞机状态(注意:如果未插入所有电池信息不可用):0=插入,1=未插入
       * </pre>
       *
       * <code>uint32 isBatteryEmbed = 1;</code>
       * @return The isBatteryEmbed.
       * <code>optional uint32 isBatteryEmbed = 1;</code>
       */
      @java.lang.Override
      public int getIsBatteryEmbed() {
        return isBatteryEmbed_;
      }
@@ -18754,9 +17429,7 @@
       *电池插入飞机状态(注意:如果未插入所有电池信息不可用):0=插入,1=未插入
       * </pre>
       *
       * <code>uint32 isBatteryEmbed = 1;</code>
       * @param value The isBatteryEmbed to set.
       * @return This builder for chaining.
       * <code>optional uint32 isBatteryEmbed = 1;</code>
       */
      public Builder setIsBatteryEmbed(int value) {
        
@@ -18769,8 +17442,7 @@
       *电池插入飞机状态(注意:如果未插入所有电池信息不可用):0=插入,1=未插入
       * </pre>
       *
       * <code>uint32 isBatteryEmbed = 1;</code>
       * @return This builder for chaining.
       * <code>optional uint32 isBatteryEmbed = 1;</code>
       */
      public Builder clearIsBatteryEmbed() {
        
@@ -18785,10 +17457,8 @@
       *电池电量百分比
       * </pre>
       *
       * <code>uint32 batteryCapacityPercent = 2;</code>
       * @return The batteryCapacityPercent.
       * <code>optional uint32 batteryCapacityPercent = 2;</code>
       */
      @java.lang.Override
      public int getBatteryCapacityPercent() {
        return batteryCapacityPercent_;
      }
@@ -18797,9 +17467,7 @@
       *电池电量百分比
       * </pre>
       *
       * <code>uint32 batteryCapacityPercent = 2;</code>
       * @param value The batteryCapacityPercent to set.
       * @return This builder for chaining.
       * <code>optional uint32 batteryCapacityPercent = 2;</code>
       */
      public Builder setBatteryCapacityPercent(int value) {
        
@@ -18812,8 +17480,7 @@
       *电池电量百分比
       * </pre>
       *
       * <code>uint32 batteryCapacityPercent = 2;</code>
       * @return This builder for chaining.
       * <code>optional uint32 batteryCapacityPercent = 2;</code>
       */
      public Builder clearBatteryCapacityPercent() {
        
@@ -18828,10 +17495,8 @@
       *电池电压(单位:mV)
       * </pre>
       *
       * <code>int32 currentVoltage = 3;</code>
       * @return The currentVoltage.
       * <code>optional int32 currentVoltage = 3;</code>
       */
      @java.lang.Override
      public int getCurrentVoltage() {
        return currentVoltage_;
      }
@@ -18840,9 +17505,7 @@
       *电池电压(单位:mV)
       * </pre>
       *
       * <code>int32 currentVoltage = 3;</code>
       * @param value The currentVoltage to set.
       * @return This builder for chaining.
       * <code>optional int32 currentVoltage = 3;</code>
       */
      public Builder setCurrentVoltage(int value) {
        
@@ -18855,8 +17518,7 @@
       *电池电压(单位:mV)
       * </pre>
       *
       * <code>int32 currentVoltage = 3;</code>
       * @return This builder for chaining.
       * <code>optional int32 currentVoltage = 3;</code>
       */
      public Builder clearCurrentVoltage() {
        
@@ -18871,10 +17533,8 @@
       *当前电池电流(单位:mA)
       * </pre>
       *
       * <code>int32 currentElectric = 4;</code>
       * @return The currentElectric.
       * <code>optional int32 currentElectric = 4;</code>
       */
      @java.lang.Override
      public int getCurrentElectric() {
        return currentElectric_;
      }
@@ -18883,9 +17543,7 @@
       *当前电池电流(单位:mA)
       * </pre>
       *
       * <code>int32 currentElectric = 4;</code>
       * @param value The currentElectric to set.
       * @return This builder for chaining.
       * <code>optional int32 currentElectric = 4;</code>
       */
      public Builder setCurrentElectric(int value) {
        
@@ -18898,8 +17556,7 @@
       *当前电池电流(单位:mA)
       * </pre>
       *
       * <code>int32 currentElectric = 4;</code>
       * @return This builder for chaining.
       * <code>optional int32 currentElectric = 4;</code>
       */
      public Builder clearCurrentElectric() {
        
@@ -18914,10 +17571,8 @@
       *满电池容量(单位:mAh)
       * </pre>
       *
       * <code>uint32 fullCapacity = 5;</code>
       * @return The fullCapacity.
       * <code>optional uint32 fullCapacity = 5;</code>
       */
      @java.lang.Override
      public int getFullCapacity() {
        return fullCapacity_;
      }
@@ -18926,9 +17581,7 @@
       *满电池容量(单位:mAh)
       * </pre>
       *
       * <code>uint32 fullCapacity = 5;</code>
       * @param value The fullCapacity to set.
       * @return This builder for chaining.
       * <code>optional uint32 fullCapacity = 5;</code>
       */
      public Builder setFullCapacity(int value) {
        
@@ -18941,8 +17594,7 @@
       *满电池容量(单位:mAh)
       * </pre>
       *
       * <code>uint32 fullCapacity = 5;</code>
       * @return This builder for chaining.
       * <code>optional uint32 fullCapacity = 5;</code>
       */
      public Builder clearFullCapacity() {
        
@@ -18957,10 +17609,8 @@
       *剩余电池容量(单位:mAh)
       * </pre>
       *
       * <code>uint32 remainedCapacity = 6;</code>
       * @return The remainedCapacity.
       * <code>optional uint32 remainedCapacity = 6;</code>
       */
      @java.lang.Override
      public int getRemainedCapacity() {
        return remainedCapacity_;
      }
@@ -18969,9 +17619,7 @@
       *剩余电池容量(单位:mAh)
       * </pre>
       *
       * <code>uint32 remainedCapacity = 6;</code>
       * @param value The remainedCapacity to set.
       * @return This builder for chaining.
       * <code>optional uint32 remainedCapacity = 6;</code>
       */
      public Builder setRemainedCapacity(int value) {
        
@@ -18984,8 +17632,7 @@
       *剩余电池容量(单位:mAh)
       * </pre>
       *
       * <code>uint32 remainedCapacity = 6;</code>
       * @return This builder for chaining.
       * <code>optional uint32 remainedCapacity = 6;</code>
       */
      public Builder clearRemainedCapacity() {
        
@@ -19000,10 +17647,8 @@
       *电池温度(单位:摄氏度)
       * </pre>
       *
       * <code>float batteryTemperature = 7;</code>
       * @return The batteryTemperature.
       * <code>optional float batteryTemperature = 7;</code>
       */
      @java.lang.Override
      public float getBatteryTemperature() {
        return batteryTemperature_;
      }
@@ -19012,9 +17657,7 @@
       *电池温度(单位:摄氏度)
       * </pre>
       *
       * <code>float batteryTemperature = 7;</code>
       * @param value The batteryTemperature to set.
       * @return This builder for chaining.
       * <code>optional float batteryTemperature = 7;</code>
       */
      public Builder setBatteryTemperature(float value) {
        
@@ -19027,8 +17670,7 @@
       *电池温度(单位:摄氏度)
       * </pre>
       *
       * <code>float batteryTemperature = 7;</code>
       * @return This builder for chaining.
       * <code>optional float batteryTemperature = 7;</code>
       */
      public Builder clearBatteryTemperature() {
        
@@ -19043,10 +17685,8 @@
       *电池组数(电池硬件型号有关)
       * </pre>
       *
       * <code>uint32 cellCount = 8;</code>
       * @return The cellCount.
       * <code>optional uint32 cellCount = 8;</code>
       */
      @java.lang.Override
      public int getCellCount() {
        return cellCount_;
      }
@@ -19055,9 +17695,7 @@
       *电池组数(电池硬件型号有关)
       * </pre>
       *
       * <code>uint32 cellCount = 8;</code>
       * @param value The cellCount to set.
       * @return This builder for chaining.
       * <code>optional uint32 cellCount = 8;</code>
       */
      public Builder setCellCount(int value) {
        
@@ -19070,8 +17708,7 @@
       *电池组数(电池硬件型号有关)
       * </pre>
       *
       * <code>uint32 cellCount = 8;</code>
       * @return This builder for chaining.
       * <code>optional uint32 cellCount = 8;</code>
       */
      public Builder clearCellCount() {
        
@@ -19086,10 +17723,8 @@
       *电池循环健康状态:0=正常,1=警报,2=注意安全
       * </pre>
       *
       * <code>uint32 batSOHState = 9;</code>
       * @return The batSOHState.
       * <code>optional uint32 batSOHState = 9;</code>
       */
      @java.lang.Override
      public int getBatSOHState() {
        return batSOHState_;
      }
@@ -19098,9 +17733,7 @@
       *电池循环健康状态:0=正常,1=警报,2=注意安全
       * </pre>
       *
       * <code>uint32 batSOHState = 9;</code>
       * @param value The batSOHState to set.
       * @return This builder for chaining.
       * <code>optional uint32 batSOHState = 9;</code>
       */
      public Builder setBatSOHState(int value) {
        
@@ -19113,8 +17746,7 @@
       *电池循环健康状态:0=正常,1=警报,2=注意安全
       * </pre>
       *
       * <code>uint32 batSOHState = 9;</code>
       * @return This builder for chaining.
       * <code>optional uint32 batSOHState = 9;</code>
       */
      public Builder clearBatSOHState() {
        
@@ -19126,24 +17758,20 @@
      private int sop_ ;
      /**
       * <pre>
       *相对功率百分比(Relative power percentage)
       *相对功率百分比(Relative power percentage)
       * </pre>
       *
       * <code>uint32 sop = 10;</code>
       * @return The sop.
       * <code>optional uint32 sop = 10;</code>
       */
      @java.lang.Override
      public int getSop() {
        return sop_;
      }
      /**
       * <pre>
       *相对功率百分比(Relative power percentage)
       *相对功率百分比(Relative power percentage)
       * </pre>
       *
       * <code>uint32 sop = 10;</code>
       * @param value The sop to set.
       * @return This builder for chaining.
       * <code>optional uint32 sop = 10;</code>
       */
      public Builder setSop(int value) {
        
@@ -19153,11 +17781,10 @@
      }
      /**
       * <pre>
       *相对功率百分比(Relative power percentage)
       *相对功率百分比(Relative power percentage)
       * </pre>
       *
       * <code>uint32 sop = 10;</code>
       * @return This builder for chaining.
       * <code>optional uint32 sop = 10;</code>
       */
      public Builder clearSop() {
        
@@ -19172,10 +17799,8 @@
       *电池加热状态:0=未加热,1=加热中,2=保持恒温
       * </pre>
       *
       * <code>uint32 heatState = 11;</code>
       * @return The heatState.
       * <code>optional uint32 heatState = 11;</code>
       */
      @java.lang.Override
      public int getHeatState() {
        return heatState_;
      }
@@ -19184,9 +17809,7 @@
       *电池加热状态:0=未加热,1=加热中,2=保持恒温
       * </pre>
       *
       * <code>uint32 heatState = 11;</code>
       * @param value The heatState to set.
       * @return This builder for chaining.
       * <code>optional uint32 heatState = 11;</code>
       */
      public Builder setHeatState(int value) {
        
@@ -19199,8 +17822,7 @@
       *电池加热状态:0=未加热,1=加热中,2=保持恒温
       * </pre>
       *
       * <code>uint32 heatState = 11;</code>
       * @return This builder for chaining.
       * <code>optional uint32 heatState = 11;</code>
       */
      public Builder clearHeatState() {
        
@@ -19215,10 +17837,8 @@
       *电池SOC荷电状态: 0=SOC正常,1=SOC_ABNORMAL_HIGH,2=SOC_JUMP_DOWN,3=SOC_JUMP_UP,4=SOC_INVALID
       * </pre>
       *
       * <code>uint32 socState = 12;</code>
       * @return The socState.
       * <code>optional uint32 socState = 12;</code>
       */
      @java.lang.Override
      public int getSocState() {
        return socState_;
      }
@@ -19227,9 +17847,7 @@
       *电池SOC荷电状态: 0=SOC正常,1=SOC_ABNORMAL_HIGH,2=SOC_JUMP_DOWN,3=SOC_JUMP_UP,4=SOC_INVALID
       * </pre>
       *
       * <code>uint32 socState = 12;</code>
       * @param value The socState to set.
       * @return This builder for chaining.
       * <code>optional uint32 socState = 12;</code>
       */
      public Builder setSocState(int value) {
        
@@ -19242,8 +17860,7 @@
       *电池SOC荷电状态: 0=SOC正常,1=SOC_ABNORMAL_HIGH,2=SOC_JUMP_DOWN,3=SOC_JUMP_UP,4=SOC_INVALID
       * </pre>
       *
       * <code>uint32 socState = 12;</code>
       * @return This builder for chaining.
       * <code>optional uint32 socState = 12;</code>
       */
      public Builder clearSocState() {
        
@@ -19258,10 +17875,8 @@
       *电池自检错误标志(注意:如果此值非0,就是电池损坏需要维修):0=正常,1=电池自检NTC异常,2=电池自检MOS异常,3=电池自检采样电阻异常,4=电池电芯损坏,5=电池未校准,6=电量计参数异常
       * </pre>
       *
       * <code>uint32 selfCheckError = 13;</code>
       * @return The selfCheckError.
       * <code>optional uint32 selfCheckError = 13;</code>
       */
      @java.lang.Override
      public int getSelfCheckError() {
        return selfCheckError_;
      }
@@ -19270,9 +17885,7 @@
       *电池自检错误标志(注意:如果此值非0,就是电池损坏需要维修):0=正常,1=电池自检NTC异常,2=电池自检MOS异常,3=电池自检采样电阻异常,4=电池电芯损坏,5=电池未校准,6=电量计参数异常
       * </pre>
       *
       * <code>uint32 selfCheckError = 13;</code>
       * @param value The selfCheckError to set.
       * @return This builder for chaining.
       * <code>optional uint32 selfCheckError = 13;</code>
       */
      public Builder setSelfCheckError(int value) {
        
@@ -19285,8 +17898,7 @@
       *电池自检错误标志(注意:如果此值非0,就是电池损坏需要维修):0=正常,1=电池自检NTC异常,2=电池自检MOS异常,3=电池自检采样电阻异常,4=电池电芯损坏,5=电池未校准,6=电量计参数异常
       * </pre>
       *
       * <code>uint32 selfCheckError = 13;</code>
       * @return This builder for chaining.
       * <code>optional uint32 selfCheckError = 13;</code>
       */
      public Builder clearSelfCheckError() {
        
@@ -19294,16 +17906,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -19322,12 +17932,11 @@
    private static final com.google.protobuf.Parser<BatteryStateInfo>
        PARSER = new com.google.protobuf.AbstractParser<BatteryStateInfo>() {
      @java.lang.Override
      public BatteryStateInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new BatteryStateInfo(input, extensionRegistry);
          return new BatteryStateInfo(input, extensionRegistry);
      }
    };
@@ -19340,7 +17949,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.BatteryStateInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -19356,8 +17964,7 @@
     *俯仰角 范围:-120° ~ 30°
     * </pre>
     *
     * <code>float pitch = 1;</code>
     * @return The pitch.
     * <code>optional float pitch = 1;</code>
     */
    float getPitch();
@@ -19366,8 +17973,7 @@
     *横滚角 范围:-90° ~ 60°
     * </pre>
     *
     * <code>float roll = 2;</code>
     * @return The roll.
     * <code>optional float roll = 2;</code>
     */
    float getRoll();
@@ -19376,8 +17982,7 @@
     *偏航角  范围:-180° ~ 180°
     * </pre>
     *
     * <code>float yaw = 3;</code>
     * @return The yaw.
     * <code>optional float yaw = 3;</code>
     */
    float getYaw();
@@ -19386,8 +17991,7 @@
     *云台模式 1=自由模式,2=跟随模式,3=FPV模式
     * </pre>
     *
     * <code>uint32 gimbalMode = 4;</code>
     * @return The gimbalMode.
     * <code>optional uint32 gimbalMode = 4;</code>
     */
    int getGimbalMode();
  }
@@ -19398,40 +18002,32 @@
   *
   * Protobuf type {@code PtzState}
   */
  public static final class PtzState extends
  public  static final class PtzState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PtzState)
      PtzStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PtzState.newBuilder() to construct.
    private PtzState(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PtzState() {
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PtzState();
      pitch_ = 0F;
      roll_ = 0F;
      yaw_ = 0F;
      gimbalMode_ = 0;
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private PtzState(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
@@ -19440,6 +18036,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 13: {
              pitch_ = input.readFloat();
@@ -19460,24 +18062,14 @@
              gimbalMode_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -19486,7 +18078,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PtzState_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PtzState_fieldAccessorTable
@@ -19501,10 +18092,8 @@
     *俯仰角 范围:-120° ~ 30°
     * </pre>
     *
     * <code>float pitch = 1;</code>
     * @return The pitch.
     * <code>optional float pitch = 1;</code>
     */
    @java.lang.Override
    public float getPitch() {
      return pitch_;
    }
@@ -19516,10 +18105,8 @@
     *横滚角 范围:-90° ~ 60°
     * </pre>
     *
     * <code>float roll = 2;</code>
     * @return The roll.
     * <code>optional float roll = 2;</code>
     */
    @java.lang.Override
    public float getRoll() {
      return roll_;
    }
@@ -19531,10 +18118,8 @@
     *偏航角  范围:-180° ~ 180°
     * </pre>
     *
     * <code>float yaw = 3;</code>
     * @return The yaw.
     * <code>optional float yaw = 3;</code>
     */
    @java.lang.Override
    public float getYaw() {
      return yaw_;
    }
@@ -19546,16 +18131,13 @@
     *云台模式 1=自由模式,2=跟随模式,3=FPV模式
     * </pre>
     *
     * <code>uint32 gimbalMode = 4;</code>
     * @return The gimbalMode.
     * <code>optional uint32 gimbalMode = 4;</code>
     */
    @java.lang.Override
    public int getGimbalMode() {
      return gimbalMode_;
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -19565,39 +18147,36 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (java.lang.Float.floatToRawIntBits(pitch_) != 0) {
      if (pitch_ != 0F) {
        output.writeFloat(1, pitch_);
      }
      if (java.lang.Float.floatToRawIntBits(roll_) != 0) {
      if (roll_ != 0F) {
        output.writeFloat(2, roll_);
      }
      if (java.lang.Float.floatToRawIntBits(yaw_) != 0) {
      if (yaw_ != 0F) {
        output.writeFloat(3, yaw_);
      }
      if (gimbalMode_ != 0) {
        output.writeUInt32(4, gimbalMode_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (java.lang.Float.floatToRawIntBits(pitch_) != 0) {
      if (pitch_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(1, pitch_);
      }
      if (java.lang.Float.floatToRawIntBits(roll_) != 0) {
      if (roll_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, roll_);
      }
      if (java.lang.Float.floatToRawIntBits(yaw_) != 0) {
      if (yaw_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, yaw_);
      }
@@ -19605,11 +18184,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, gimbalMode_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -19620,19 +18199,22 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState) obj;
      if (java.lang.Float.floatToIntBits(getPitch())
          != java.lang.Float.floatToIntBits(
              other.getPitch())) return false;
      if (java.lang.Float.floatToIntBits(getRoll())
          != java.lang.Float.floatToIntBits(
              other.getRoll())) return false;
      if (java.lang.Float.floatToIntBits(getYaw())
          != java.lang.Float.floatToIntBits(
              other.getYaw())) return false;
      if (getGimbalMode()
          != other.getGimbalMode()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && (
          java.lang.Float.floatToIntBits(getPitch())
          == java.lang.Float.floatToIntBits(
              other.getPitch()));
      result = result && (
          java.lang.Float.floatToIntBits(getRoll())
          == java.lang.Float.floatToIntBits(
              other.getRoll()));
      result = result && (
          java.lang.Float.floatToIntBits(getYaw())
          == java.lang.Float.floatToIntBits(
              other.getYaw()));
      result = result && (getGimbalMode()
          == other.getGimbalMode());
      return result;
    }
    @java.lang.Override
@@ -19641,7 +18223,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + PITCH_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getPitch());
@@ -19658,17 +18240,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -19728,7 +18299,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -19736,7 +18306,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -19764,7 +18333,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PtzState_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PtzState_fieldAccessorTable
@@ -19787,7 +18355,6 @@
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        pitch_ = 0F;
@@ -19801,18 +18368,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PtzState_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState result = buildPartial();
        if (!result.isInitialized()) {
@@ -19821,7 +18385,6 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState(this);
        result.pitch_ = pitch_;
@@ -19832,39 +18395,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState)other);
@@ -19888,17 +18444,14 @@
        if (other.getGimbalMode() != 0) {
          setGimbalMode(other.getGimbalMode());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -19923,10 +18476,8 @@
       *俯仰角 范围:-120° ~ 30°
       * </pre>
       *
       * <code>float pitch = 1;</code>
       * @return The pitch.
       * <code>optional float pitch = 1;</code>
       */
      @java.lang.Override
      public float getPitch() {
        return pitch_;
      }
@@ -19935,9 +18486,7 @@
       *俯仰角 范围:-120° ~ 30°
       * </pre>
       *
       * <code>float pitch = 1;</code>
       * @param value The pitch to set.
       * @return This builder for chaining.
       * <code>optional float pitch = 1;</code>
       */
      public Builder setPitch(float value) {
        
@@ -19950,8 +18499,7 @@
       *俯仰角 范围:-120° ~ 30°
       * </pre>
       *
       * <code>float pitch = 1;</code>
       * @return This builder for chaining.
       * <code>optional float pitch = 1;</code>
       */
      public Builder clearPitch() {
        
@@ -19966,10 +18514,8 @@
       *横滚角 范围:-90° ~ 60°
       * </pre>
       *
       * <code>float roll = 2;</code>
       * @return The roll.
       * <code>optional float roll = 2;</code>
       */
      @java.lang.Override
      public float getRoll() {
        return roll_;
      }
@@ -19978,9 +18524,7 @@
       *横滚角 范围:-90° ~ 60°
       * </pre>
       *
       * <code>float roll = 2;</code>
       * @param value The roll to set.
       * @return This builder for chaining.
       * <code>optional float roll = 2;</code>
       */
      public Builder setRoll(float value) {
        
@@ -19993,8 +18537,7 @@
       *横滚角 范围:-90° ~ 60°
       * </pre>
       *
       * <code>float roll = 2;</code>
       * @return This builder for chaining.
       * <code>optional float roll = 2;</code>
       */
      public Builder clearRoll() {
        
@@ -20009,10 +18552,8 @@
       *偏航角  范围:-180° ~ 180°
       * </pre>
       *
       * <code>float yaw = 3;</code>
       * @return The yaw.
       * <code>optional float yaw = 3;</code>
       */
      @java.lang.Override
      public float getYaw() {
        return yaw_;
      }
@@ -20021,9 +18562,7 @@
       *偏航角  范围:-180° ~ 180°
       * </pre>
       *
       * <code>float yaw = 3;</code>
       * @param value The yaw to set.
       * @return This builder for chaining.
       * <code>optional float yaw = 3;</code>
       */
      public Builder setYaw(float value) {
        
@@ -20036,8 +18575,7 @@
       *偏航角  范围:-180° ~ 180°
       * </pre>
       *
       * <code>float yaw = 3;</code>
       * @return This builder for chaining.
       * <code>optional float yaw = 3;</code>
       */
      public Builder clearYaw() {
        
@@ -20052,10 +18590,8 @@
       *云台模式 1=自由模式,2=跟随模式,3=FPV模式
       * </pre>
       *
       * <code>uint32 gimbalMode = 4;</code>
       * @return The gimbalMode.
       * <code>optional uint32 gimbalMode = 4;</code>
       */
      @java.lang.Override
      public int getGimbalMode() {
        return gimbalMode_;
      }
@@ -20064,9 +18600,7 @@
       *云台模式 1=自由模式,2=跟随模式,3=FPV模式
       * </pre>
       *
       * <code>uint32 gimbalMode = 4;</code>
       * @param value The gimbalMode to set.
       * @return This builder for chaining.
       * <code>optional uint32 gimbalMode = 4;</code>
       */
      public Builder setGimbalMode(int value) {
        
@@ -20079,8 +18613,7 @@
       *云台模式 1=自由模式,2=跟随模式,3=FPV模式
       * </pre>
       *
       * <code>uint32 gimbalMode = 4;</code>
       * @return This builder for chaining.
       * <code>optional uint32 gimbalMode = 4;</code>
       */
      public Builder clearGimbalMode() {
        
@@ -20088,16 +18621,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -20116,12 +18647,11 @@
    private static final com.google.protobuf.Parser<PtzState>
        PARSER = new com.google.protobuf.AbstractParser<PtzState>() {
      @java.lang.Override
      public PtzState parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PtzState(input, extensionRegistry);
          return new PtzState(input, extensionRegistry);
      }
    };
@@ -20134,7 +18664,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PtzState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -20150,8 +18679,7 @@
     *相机模式:1=拍照模式,2=录像模式,0=未知
     * </pre>
     *
     * <code>uint32 mode = 1;</code>
     * @return The mode.
     * <code>optional uint32 mode = 1;</code>
     */
    int getMode();
@@ -20160,8 +18688,7 @@
     *是否录制中:1=录制中,0=未录制
     * </pre>
     *
     * <code>uint32 isRecording = 2;</code>
     * @return The isRecording.
     * <code>optional uint32 isRecording = 2;</code>
     */
    int getIsRecording();
@@ -20170,8 +18697,7 @@
     *录制时长(单位:秒)
     * </pre>
     *
     * <code>uint32 recordDuration = 3;</code>
     * @return The recordDuration.
     * <code>optional uint32 recordDuration = 3;</code>
     */
    int getRecordDuration();
@@ -20180,8 +18706,7 @@
     *相机视源:0=可见,1=变焦,2=红外
     * </pre>
     *
     * <code>uint32 source = 4;</code>
     * @return The source.
     * <code>optional uint32 source = 4;</code>
     */
    int getSource();
@@ -20190,8 +18715,7 @@
     *相机: 0=FPV,1=相机(1),2=相机(2)
     * </pre>
     *
     * <code>uint32 camera = 5;</code>
     * @return The camera.
     * <code>optional uint32 camera = 5;</code>
     */
    int getCamera();
@@ -20200,8 +18724,7 @@
     *相机当前变焦倍数
     * </pre>
     *
     * <code>float zoomfactor = 6;</code>
     * @return The zoomfactor.
     * <code>optional float zoomfactor = 6;</code>
     */
    float getZoomfactor();
@@ -20210,8 +18733,7 @@
     *水平像素(例如:1920)
     * </pre>
     *
     * <code>uint32 width = 7;</code>
     * @return The width.
     * <code>optional uint32 width = 7;</code>
     */
    int getWidth();
@@ -20220,8 +18742,7 @@
     *垂直像素(例如:1080)
     * </pre>
     *
     * <code>uint32 height = 8;</code>
     * @return The height.
     * <code>optional uint32 height = 8;</code>
     */
    int getHeight();
@@ -20230,8 +18751,7 @@
     *帧率(例如:30)
     * </pre>
     *
     * <code>uint32 frameRate = 9;</code>
     * @return The frameRate.
     * <code>optional uint32 frameRate = 9;</code>
     */
    int getFrameRate();
@@ -20240,8 +18760,7 @@
     *码率(单位:0.001)(例如:6兆设置值为6000)
     * </pre>
     *
     * <code>uint32 bitstream = 10;</code>
     * @return The bitstream.
     * <code>optional uint32 bitstream = 10;</code>
     */
    int getBitstream();
@@ -20250,8 +18769,7 @@
     *单点测温状态:0=非单点测温中,1=单点测温中
     * </pre>
     *
     * <code>uint32 pointThermometrying = 11;</code>
     * @return The pointThermometrying.
     * <code>optional uint32 pointThermometrying = 11;</code>
     */
    int getPointThermometrying();
@@ -20260,8 +18778,7 @@
     *区域测温状态:0=非区域测温中,1=区域测温中
     * </pre>
     *
     * <code>uint32 areaThermometrying = 12;</code>
     * @return The areaThermometrying.
     * <code>optional uint32 areaThermometrying = 12;</code>
     */
    int getAreaThermometrying();
@@ -20270,8 +18787,7 @@
     *激光测距状态:0=非激光测距中,1=激光测距中
     * </pre>
     *
     * <code>uint32 laserRanging = 13;</code>
     * @return The laserRanging.
     * <code>optional uint32 laserRanging = 13;</code>
     */
    int getLaserRanging();
  }
@@ -20282,40 +18798,41 @@
   *
   * Protobuf type {@code CameraState}
   */
  public static final class CameraState extends
  public  static final class CameraState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:CameraState)
      CameraStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use CameraState.newBuilder() to construct.
    private CameraState(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private CameraState() {
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new CameraState();
      mode_ = 0;
      isRecording_ = 0;
      recordDuration_ = 0;
      source_ = 0;
      camera_ = 0;
      zoomfactor_ = 0F;
      width_ = 0;
      height_ = 0;
      frameRate_ = 0;
      bitstream_ = 0;
      pointThermometrying_ = 0;
      areaThermometrying_ = 0;
      laserRanging_ = 0;
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private CameraState(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
@@ -20324,6 +18841,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              mode_ = input.readUInt32();
@@ -20389,24 +18912,14 @@
              laserRanging_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -20415,7 +18928,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_CameraState_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_CameraState_fieldAccessorTable
@@ -20430,10 +18942,8 @@
     *相机模式:1=拍照模式,2=录像模式,0=未知
     * </pre>
     *
     * <code>uint32 mode = 1;</code>
     * @return The mode.
     * <code>optional uint32 mode = 1;</code>
     */
    @java.lang.Override
    public int getMode() {
      return mode_;
    }
@@ -20445,10 +18955,8 @@
     *是否录制中:1=录制中,0=未录制
     * </pre>
     *
     * <code>uint32 isRecording = 2;</code>
     * @return The isRecording.
     * <code>optional uint32 isRecording = 2;</code>
     */
    @java.lang.Override
    public int getIsRecording() {
      return isRecording_;
    }
@@ -20460,10 +18968,8 @@
     *录制时长(单位:秒)
     * </pre>
     *
     * <code>uint32 recordDuration = 3;</code>
     * @return The recordDuration.
     * <code>optional uint32 recordDuration = 3;</code>
     */
    @java.lang.Override
    public int getRecordDuration() {
      return recordDuration_;
    }
@@ -20475,10 +18981,8 @@
     *相机视源:0=可见,1=变焦,2=红外
     * </pre>
     *
     * <code>uint32 source = 4;</code>
     * @return The source.
     * <code>optional uint32 source = 4;</code>
     */
    @java.lang.Override
    public int getSource() {
      return source_;
    }
@@ -20490,10 +18994,8 @@
     *相机: 0=FPV,1=相机(1),2=相机(2)
     * </pre>
     *
     * <code>uint32 camera = 5;</code>
     * @return The camera.
     * <code>optional uint32 camera = 5;</code>
     */
    @java.lang.Override
    public int getCamera() {
      return camera_;
    }
@@ -20505,10 +19007,8 @@
     *相机当前变焦倍数
     * </pre>
     *
     * <code>float zoomfactor = 6;</code>
     * @return The zoomfactor.
     * <code>optional float zoomfactor = 6;</code>
     */
    @java.lang.Override
    public float getZoomfactor() {
      return zoomfactor_;
    }
@@ -20520,10 +19020,8 @@
     *水平像素(例如:1920)
     * </pre>
     *
     * <code>uint32 width = 7;</code>
     * @return The width.
     * <code>optional uint32 width = 7;</code>
     */
    @java.lang.Override
    public int getWidth() {
      return width_;
    }
@@ -20535,10 +19033,8 @@
     *垂直像素(例如:1080)
     * </pre>
     *
     * <code>uint32 height = 8;</code>
     * @return The height.
     * <code>optional uint32 height = 8;</code>
     */
    @java.lang.Override
    public int getHeight() {
      return height_;
    }
@@ -20550,10 +19046,8 @@
     *帧率(例如:30)
     * </pre>
     *
     * <code>uint32 frameRate = 9;</code>
     * @return The frameRate.
     * <code>optional uint32 frameRate = 9;</code>
     */
    @java.lang.Override
    public int getFrameRate() {
      return frameRate_;
    }
@@ -20565,10 +19059,8 @@
     *码率(单位:0.001)(例如:6兆设置值为6000)
     * </pre>
     *
     * <code>uint32 bitstream = 10;</code>
     * @return The bitstream.
     * <code>optional uint32 bitstream = 10;</code>
     */
    @java.lang.Override
    public int getBitstream() {
      return bitstream_;
    }
@@ -20580,10 +19072,8 @@
     *单点测温状态:0=非单点测温中,1=单点测温中
     * </pre>
     *
     * <code>uint32 pointThermometrying = 11;</code>
     * @return The pointThermometrying.
     * <code>optional uint32 pointThermometrying = 11;</code>
     */
    @java.lang.Override
    public int getPointThermometrying() {
      return pointThermometrying_;
    }
@@ -20595,10 +19085,8 @@
     *区域测温状态:0=非区域测温中,1=区域测温中
     * </pre>
     *
     * <code>uint32 areaThermometrying = 12;</code>
     * @return The areaThermometrying.
     * <code>optional uint32 areaThermometrying = 12;</code>
     */
    @java.lang.Override
    public int getAreaThermometrying() {
      return areaThermometrying_;
    }
@@ -20610,16 +19098,13 @@
     *激光测距状态:0=非激光测距中,1=激光测距中
     * </pre>
     *
     * <code>uint32 laserRanging = 13;</code>
     * @return The laserRanging.
     * <code>optional uint32 laserRanging = 13;</code>
     */
    @java.lang.Override
    public int getLaserRanging() {
      return laserRanging_;
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -20629,7 +19114,6 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (mode_ != 0) {
@@ -20647,7 +19131,7 @@
      if (camera_ != 0) {
        output.writeUInt32(5, camera_);
      }
      if (java.lang.Float.floatToRawIntBits(zoomfactor_) != 0) {
      if (zoomfactor_ != 0F) {
        output.writeFloat(6, zoomfactor_);
      }
      if (width_ != 0) {
@@ -20671,10 +19155,8 @@
      if (laserRanging_ != 0) {
        output.writeUInt32(13, laserRanging_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -20700,7 +19182,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, camera_);
      }
      if (java.lang.Float.floatToRawIntBits(zoomfactor_) != 0) {
      if (zoomfactor_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(6, zoomfactor_);
      }
@@ -20732,11 +19214,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(13, laserRanging_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -20747,35 +19229,36 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState) obj;
      if (getMode()
          != other.getMode()) return false;
      if (getIsRecording()
          != other.getIsRecording()) return false;
      if (getRecordDuration()
          != other.getRecordDuration()) return false;
      if (getSource()
          != other.getSource()) return false;
      if (getCamera()
          != other.getCamera()) return false;
      if (java.lang.Float.floatToIntBits(getZoomfactor())
          != java.lang.Float.floatToIntBits(
              other.getZoomfactor())) return false;
      if (getWidth()
          != other.getWidth()) return false;
      if (getHeight()
          != other.getHeight()) return false;
      if (getFrameRate()
          != other.getFrameRate()) return false;
      if (getBitstream()
          != other.getBitstream()) return false;
      if (getPointThermometrying()
          != other.getPointThermometrying()) return false;
      if (getAreaThermometrying()
          != other.getAreaThermometrying()) return false;
      if (getLaserRanging()
          != other.getLaserRanging()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && (getMode()
          == other.getMode());
      result = result && (getIsRecording()
          == other.getIsRecording());
      result = result && (getRecordDuration()
          == other.getRecordDuration());
      result = result && (getSource()
          == other.getSource());
      result = result && (getCamera()
          == other.getCamera());
      result = result && (
          java.lang.Float.floatToIntBits(getZoomfactor())
          == java.lang.Float.floatToIntBits(
              other.getZoomfactor()));
      result = result && (getWidth()
          == other.getWidth());
      result = result && (getHeight()
          == other.getHeight());
      result = result && (getFrameRate()
          == other.getFrameRate());
      result = result && (getBitstream()
          == other.getBitstream());
      result = result && (getPointThermometrying()
          == other.getPointThermometrying());
      result = result && (getAreaThermometrying()
          == other.getAreaThermometrying());
      result = result && (getLaserRanging()
          == other.getLaserRanging());
      return result;
    }
    @java.lang.Override
@@ -20784,7 +19267,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + MODE_FIELD_NUMBER;
      hash = (53 * hash) + getMode();
      hash = (37 * hash) + ISRECORDING_FIELD_NUMBER;
@@ -20817,17 +19300,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -20887,7 +19359,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -20895,7 +19366,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -20923,7 +19393,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_CameraState_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_CameraState_fieldAccessorTable
@@ -20946,7 +19415,6 @@
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        mode_ = 0;
@@ -20978,18 +19446,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_CameraState_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState result = buildPartial();
        if (!result.isInitialized()) {
@@ -20998,7 +19463,6 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState(this);
        result.mode_ = mode_;
@@ -21018,39 +19482,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState)other);
@@ -21101,17 +19558,14 @@
        if (other.getLaserRanging() != 0) {
          setLaserRanging(other.getLaserRanging());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -21136,10 +19590,8 @@
       *相机模式:1=拍照模式,2=录像模式,0=未知
       * </pre>
       *
       * <code>uint32 mode = 1;</code>
       * @return The mode.
       * <code>optional uint32 mode = 1;</code>
       */
      @java.lang.Override
      public int getMode() {
        return mode_;
      }
@@ -21148,9 +19600,7 @@
       *相机模式:1=拍照模式,2=录像模式,0=未知
       * </pre>
       *
       * <code>uint32 mode = 1;</code>
       * @param value The mode to set.
       * @return This builder for chaining.
       * <code>optional uint32 mode = 1;</code>
       */
      public Builder setMode(int value) {
        
@@ -21163,8 +19613,7 @@
       *相机模式:1=拍照模式,2=录像模式,0=未知
       * </pre>
       *
       * <code>uint32 mode = 1;</code>
       * @return This builder for chaining.
       * <code>optional uint32 mode = 1;</code>
       */
      public Builder clearMode() {
        
@@ -21179,10 +19628,8 @@
       *是否录制中:1=录制中,0=未录制
       * </pre>
       *
       * <code>uint32 isRecording = 2;</code>
       * @return The isRecording.
       * <code>optional uint32 isRecording = 2;</code>
       */
      @java.lang.Override
      public int getIsRecording() {
        return isRecording_;
      }
@@ -21191,9 +19638,7 @@
       *是否录制中:1=录制中,0=未录制
       * </pre>
       *
       * <code>uint32 isRecording = 2;</code>
       * @param value The isRecording to set.
       * @return This builder for chaining.
       * <code>optional uint32 isRecording = 2;</code>
       */
      public Builder setIsRecording(int value) {
        
@@ -21206,8 +19651,7 @@
       *是否录制中:1=录制中,0=未录制
       * </pre>
       *
       * <code>uint32 isRecording = 2;</code>
       * @return This builder for chaining.
       * <code>optional uint32 isRecording = 2;</code>
       */
      public Builder clearIsRecording() {
        
@@ -21222,10 +19666,8 @@
       *录制时长(单位:秒)
       * </pre>
       *
       * <code>uint32 recordDuration = 3;</code>
       * @return The recordDuration.
       * <code>optional uint32 recordDuration = 3;</code>
       */
      @java.lang.Override
      public int getRecordDuration() {
        return recordDuration_;
      }
@@ -21234,9 +19676,7 @@
       *录制时长(单位:秒)
       * </pre>
       *
       * <code>uint32 recordDuration = 3;</code>
       * @param value The recordDuration to set.
       * @return This builder for chaining.
       * <code>optional uint32 recordDuration = 3;</code>
       */
      public Builder setRecordDuration(int value) {
        
@@ -21249,8 +19689,7 @@
       *录制时长(单位:秒)
       * </pre>
       *
       * <code>uint32 recordDuration = 3;</code>
       * @return This builder for chaining.
       * <code>optional uint32 recordDuration = 3;</code>
       */
      public Builder clearRecordDuration() {
        
@@ -21265,10 +19704,8 @@
       *相机视源:0=可见,1=变焦,2=红外
       * </pre>
       *
       * <code>uint32 source = 4;</code>
       * @return The source.
       * <code>optional uint32 source = 4;</code>
       */
      @java.lang.Override
      public int getSource() {
        return source_;
      }
@@ -21277,9 +19714,7 @@
       *相机视源:0=可见,1=变焦,2=红外
       * </pre>
       *
       * <code>uint32 source = 4;</code>
       * @param value The source to set.
       * @return This builder for chaining.
       * <code>optional uint32 source = 4;</code>
       */
      public Builder setSource(int value) {
        
@@ -21292,8 +19727,7 @@
       *相机视源:0=可见,1=变焦,2=红外
       * </pre>
       *
       * <code>uint32 source = 4;</code>
       * @return This builder for chaining.
       * <code>optional uint32 source = 4;</code>
       */
      public Builder clearSource() {
        
@@ -21308,10 +19742,8 @@
       *相机: 0=FPV,1=相机(1),2=相机(2)
       * </pre>
       *
       * <code>uint32 camera = 5;</code>
       * @return The camera.
       * <code>optional uint32 camera = 5;</code>
       */
      @java.lang.Override
      public int getCamera() {
        return camera_;
      }
@@ -21320,9 +19752,7 @@
       *相机: 0=FPV,1=相机(1),2=相机(2)
       * </pre>
       *
       * <code>uint32 camera = 5;</code>
       * @param value The camera to set.
       * @return This builder for chaining.
       * <code>optional uint32 camera = 5;</code>
       */
      public Builder setCamera(int value) {
        
@@ -21335,8 +19765,7 @@
       *相机: 0=FPV,1=相机(1),2=相机(2)
       * </pre>
       *
       * <code>uint32 camera = 5;</code>
       * @return This builder for chaining.
       * <code>optional uint32 camera = 5;</code>
       */
      public Builder clearCamera() {
        
@@ -21351,10 +19780,8 @@
       *相机当前变焦倍数
       * </pre>
       *
       * <code>float zoomfactor = 6;</code>
       * @return The zoomfactor.
       * <code>optional float zoomfactor = 6;</code>
       */
      @java.lang.Override
      public float getZoomfactor() {
        return zoomfactor_;
      }
@@ -21363,9 +19790,7 @@
       *相机当前变焦倍数
       * </pre>
       *
       * <code>float zoomfactor = 6;</code>
       * @param value The zoomfactor to set.
       * @return This builder for chaining.
       * <code>optional float zoomfactor = 6;</code>
       */
      public Builder setZoomfactor(float value) {
        
@@ -21378,8 +19803,7 @@
       *相机当前变焦倍数
       * </pre>
       *
       * <code>float zoomfactor = 6;</code>
       * @return This builder for chaining.
       * <code>optional float zoomfactor = 6;</code>
       */
      public Builder clearZoomfactor() {
        
@@ -21394,10 +19818,8 @@
       *水平像素(例如:1920)
       * </pre>
       *
       * <code>uint32 width = 7;</code>
       * @return The width.
       * <code>optional uint32 width = 7;</code>
       */
      @java.lang.Override
      public int getWidth() {
        return width_;
      }
@@ -21406,9 +19828,7 @@
       *水平像素(例如:1920)
       * </pre>
       *
       * <code>uint32 width = 7;</code>
       * @param value The width to set.
       * @return This builder for chaining.
       * <code>optional uint32 width = 7;</code>
       */
      public Builder setWidth(int value) {
        
@@ -21421,8 +19841,7 @@
       *水平像素(例如:1920)
       * </pre>
       *
       * <code>uint32 width = 7;</code>
       * @return This builder for chaining.
       * <code>optional uint32 width = 7;</code>
       */
      public Builder clearWidth() {
        
@@ -21437,10 +19856,8 @@
       *垂直像素(例如:1080)
       * </pre>
       *
       * <code>uint32 height = 8;</code>
       * @return The height.
       * <code>optional uint32 height = 8;</code>
       */
      @java.lang.Override
      public int getHeight() {
        return height_;
      }
@@ -21449,9 +19866,7 @@
       *垂直像素(例如:1080)
       * </pre>
       *
       * <code>uint32 height = 8;</code>
       * @param value The height to set.
       * @return This builder for chaining.
       * <code>optional uint32 height = 8;</code>
       */
      public Builder setHeight(int value) {
        
@@ -21464,8 +19879,7 @@
       *垂直像素(例如:1080)
       * </pre>
       *
       * <code>uint32 height = 8;</code>
       * @return This builder for chaining.
       * <code>optional uint32 height = 8;</code>
       */
      public Builder clearHeight() {
        
@@ -21480,10 +19894,8 @@
       *帧率(例如:30)
       * </pre>
       *
       * <code>uint32 frameRate = 9;</code>
       * @return The frameRate.
       * <code>optional uint32 frameRate = 9;</code>
       */
      @java.lang.Override
      public int getFrameRate() {
        return frameRate_;
      }
@@ -21492,9 +19904,7 @@
       *帧率(例如:30)
       * </pre>
       *
       * <code>uint32 frameRate = 9;</code>
       * @param value The frameRate to set.
       * @return This builder for chaining.
       * <code>optional uint32 frameRate = 9;</code>
       */
      public Builder setFrameRate(int value) {
        
@@ -21507,8 +19917,7 @@
       *帧率(例如:30)
       * </pre>
       *
       * <code>uint32 frameRate = 9;</code>
       * @return This builder for chaining.
       * <code>optional uint32 frameRate = 9;</code>
       */
      public Builder clearFrameRate() {
        
@@ -21523,10 +19932,8 @@
       *码率(单位:0.001)(例如:6兆设置值为6000)
       * </pre>
       *
       * <code>uint32 bitstream = 10;</code>
       * @return The bitstream.
       * <code>optional uint32 bitstream = 10;</code>
       */
      @java.lang.Override
      public int getBitstream() {
        return bitstream_;
      }
@@ -21535,9 +19942,7 @@
       *码率(单位:0.001)(例如:6兆设置值为6000)
       * </pre>
       *
       * <code>uint32 bitstream = 10;</code>
       * @param value The bitstream to set.
       * @return This builder for chaining.
       * <code>optional uint32 bitstream = 10;</code>
       */
      public Builder setBitstream(int value) {
        
@@ -21550,8 +19955,7 @@
       *码率(单位:0.001)(例如:6兆设置值为6000)
       * </pre>
       *
       * <code>uint32 bitstream = 10;</code>
       * @return This builder for chaining.
       * <code>optional uint32 bitstream = 10;</code>
       */
      public Builder clearBitstream() {
        
@@ -21566,10 +19970,8 @@
       *单点测温状态:0=非单点测温中,1=单点测温中
       * </pre>
       *
       * <code>uint32 pointThermometrying = 11;</code>
       * @return The pointThermometrying.
       * <code>optional uint32 pointThermometrying = 11;</code>
       */
      @java.lang.Override
      public int getPointThermometrying() {
        return pointThermometrying_;
      }
@@ -21578,9 +19980,7 @@
       *单点测温状态:0=非单点测温中,1=单点测温中
       * </pre>
       *
       * <code>uint32 pointThermometrying = 11;</code>
       * @param value The pointThermometrying to set.
       * @return This builder for chaining.
       * <code>optional uint32 pointThermometrying = 11;</code>
       */
      public Builder setPointThermometrying(int value) {
        
@@ -21593,8 +19993,7 @@
       *单点测温状态:0=非单点测温中,1=单点测温中
       * </pre>
       *
       * <code>uint32 pointThermometrying = 11;</code>
       * @return This builder for chaining.
       * <code>optional uint32 pointThermometrying = 11;</code>
       */
      public Builder clearPointThermometrying() {
        
@@ -21609,10 +20008,8 @@
       *区域测温状态:0=非区域测温中,1=区域测温中
       * </pre>
       *
       * <code>uint32 areaThermometrying = 12;</code>
       * @return The areaThermometrying.
       * <code>optional uint32 areaThermometrying = 12;</code>
       */
      @java.lang.Override
      public int getAreaThermometrying() {
        return areaThermometrying_;
      }
@@ -21621,9 +20018,7 @@
       *区域测温状态:0=非区域测温中,1=区域测温中
       * </pre>
       *
       * <code>uint32 areaThermometrying = 12;</code>
       * @param value The areaThermometrying to set.
       * @return This builder for chaining.
       * <code>optional uint32 areaThermometrying = 12;</code>
       */
      public Builder setAreaThermometrying(int value) {
        
@@ -21636,8 +20031,7 @@
       *区域测温状态:0=非区域测温中,1=区域测温中
       * </pre>
       *
       * <code>uint32 areaThermometrying = 12;</code>
       * @return This builder for chaining.
       * <code>optional uint32 areaThermometrying = 12;</code>
       */
      public Builder clearAreaThermometrying() {
        
@@ -21652,10 +20046,8 @@
       *激光测距状态:0=非激光测距中,1=激光测距中
       * </pre>
       *
       * <code>uint32 laserRanging = 13;</code>
       * @return The laserRanging.
       * <code>optional uint32 laserRanging = 13;</code>
       */
      @java.lang.Override
      public int getLaserRanging() {
        return laserRanging_;
      }
@@ -21664,9 +20056,7 @@
       *激光测距状态:0=非激光测距中,1=激光测距中
       * </pre>
       *
       * <code>uint32 laserRanging = 13;</code>
       * @param value The laserRanging to set.
       * @return This builder for chaining.
       * <code>optional uint32 laserRanging = 13;</code>
       */
      public Builder setLaserRanging(int value) {
        
@@ -21679,8 +20069,7 @@
       *激光测距状态:0=非激光测距中,1=激光测距中
       * </pre>
       *
       * <code>uint32 laserRanging = 13;</code>
       * @return This builder for chaining.
       * <code>optional uint32 laserRanging = 13;</code>
       */
      public Builder clearLaserRanging() {
        
@@ -21688,16 +20077,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -21716,12 +20103,11 @@
    private static final com.google.protobuf.Parser<CameraState>
        PARSER = new com.google.protobuf.AbstractParser<CameraState>() {
      @java.lang.Override
      public CameraState parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CameraState(input, extensionRegistry);
          return new CameraState(input, extensionRegistry);
      }
    };
@@ -21734,7 +20120,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.CameraState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -21750,8 +20135,7 @@
     *航线是否暂停中:0=未暂停,1=暂停中
     * </pre>
     *
     * <code>uint32 isPause = 1;</code>
     * @return The isPause.
     * <code>optional uint32 isPause = 1;</code>
     */
    int getIsPause();
@@ -21760,8 +20144,7 @@
     *目标航点下标(说明:开始成功到第一个航点之间此值为0,到达第一个航点此值为1,到达第二个航点此值为2,以此类推,航线结束后此值不清空直到下一次开始航线)
     * </pre>
     *
     * <code>uint32 targetWaypointIndex = 2;</code>
     * @return The targetWaypointIndex.
     * <code>optional uint32 targetWaypointIndex = 2;</code>
     */
    int getTargetWaypointIndex();
@@ -21770,8 +20153,7 @@
     *是否航点完成:1完成、0未完成(此值废弃)
     * </pre>
     *
     * <code>uint32 isWaypointFinished = 3;</code>
     * @return The isWaypointFinished.
     * <code>optional uint32 isWaypointFinished = 3;</code>
     */
    int getIsWaypointFinished();
@@ -21780,8 +20162,7 @@
     *云盒是否发送视频数据:0=不发送,1=发送
     * </pre>
     *
     * <code>uint32 pushVideo = 4;</code>
     * @return The pushVideo.
     * <code>optional uint32 pushVideo = 4;</code>
     */
    int getPushVideo();
@@ -21790,8 +20171,7 @@
     *是否锁定4G:0=不锁定,1=锁定
     * </pre>
     *
     * <code>uint32 lock4g = 5;</code>
     * @return The lock4g.
     * <code>optional uint32 lock4g = 5;</code>
     */
    int getLock4G();
@@ -21800,8 +20180,7 @@
     *是否开通图片自动回传功能:0=未开通,1=已开通
     * </pre>
     *
     * <code>uint32 boxModel = 6;</code>
     * @return The boxModel.
     * <code>optional uint32 boxModel = 6;</code>
     */
    int getBoxModel();
@@ -21810,8 +20189,7 @@
     *自动拍照间隔:0未开始,3~255间隔时间
     * </pre>
     *
     * <code>uint32 mapPlay = 7;</code>
     * @return The mapPlay.
     * <code>optional uint32 mapPlay = 7;</code>
     */
    int getMapPlay();
@@ -21820,8 +20198,7 @@
     *网络失联后动作:0=返回HOME点,1=继续航线
     * </pre>
     *
     * <code>uint32 loseAction = 8;</code>
     * @return The loseAction.
     * <code>optional uint32 loseAction = 8;</code>
     */
    int getLoseAction();
@@ -21830,8 +20207,7 @@
     *是否打点飞行控制中:0=否,1=是
     * </pre>
     *
     * <code>uint32 isPointControl = 9;</code>
     * @return The isPointControl.
     * <code>optional uint32 isPointControl = 9;</code>
     */
    int getIsPointControl();
@@ -21840,8 +20216,7 @@
     *是否UWB精准降落中:0=不是,1=是
     * </pre>
     *
     * <code>uint32 isUwbLanding = 10;</code>
     * @return The isUwbLanding.
     * <code>optional uint32 isUwbLanding = 10;</code>
     */
    int getIsUwbLanding();
@@ -21850,8 +20225,7 @@
     *视频是否推流中:0=不是,1=是
     * </pre>
     *
     * <code>uint32 isPushVideoing = 11;</code>
     * @return The isPushVideoing.
     * <code>optional uint32 isPushVideoing = 11;</code>
     */
    int getIsPushVideoing();
@@ -21860,8 +20234,7 @@
     *是否二维码精准降落中:0=不是,1=是
     * </pre>
     *
     * <code>uint32 isDLanding = 12;</code>
     * @return The isDLanding.
     * <code>optional uint32 isDLanding = 12;</code>
     */
    int getIsDLanding();
@@ -21870,8 +20243,7 @@
     *二维码精准降落模式:0=载荷降落,1=下视降落
     * </pre>
     *
     * <code>uint32 perceptionFlag = 13;</code>
     * @return The perceptionFlag.
     * <code>optional uint32 perceptionFlag = 13;</code>
     */
    int getPerceptionFlag();
@@ -21880,8 +20252,7 @@
     *是否指定距离飞行控制中:0=否,1=是
     * </pre>
     *
     * <code>uint32 isPositionControl = 14;</code>
     * @return The isPositionControl.
     * <code>optional uint32 isPositionControl = 14;</code>
     */
    int getIsPositionControl();
  }
@@ -21892,40 +20263,42 @@
   *
   * Protobuf type {@code MissionState}
   */
  public static final class MissionState extends
  public  static final class MissionState extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:MissionState)
      MissionStateOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use MissionState.newBuilder() to construct.
    private MissionState(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private MissionState() {
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new MissionState();
      isPause_ = 0;
      targetWaypointIndex_ = 0;
      isWaypointFinished_ = 0;
      pushVideo_ = 0;
      lock4G_ = 0;
      boxModel_ = 0;
      mapPlay_ = 0;
      loseAction_ = 0;
      isPointControl_ = 0;
      isUwbLanding_ = 0;
      isPushVideoing_ = 0;
      isDLanding_ = 0;
      perceptionFlag_ = 0;
      isPositionControl_ = 0;
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private MissionState(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
@@ -21934,6 +20307,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              isPause_ = input.readUInt32();
@@ -22004,24 +20383,14 @@
              isPositionControl_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -22030,7 +20399,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_MissionState_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_MissionState_fieldAccessorTable
@@ -22045,10 +20413,8 @@
     *航线是否暂停中:0=未暂停,1=暂停中
     * </pre>
     *
     * <code>uint32 isPause = 1;</code>
     * @return The isPause.
     * <code>optional uint32 isPause = 1;</code>
     */
    @java.lang.Override
    public int getIsPause() {
      return isPause_;
    }
@@ -22060,10 +20426,8 @@
     *目标航点下标(说明:开始成功到第一个航点之间此值为0,到达第一个航点此值为1,到达第二个航点此值为2,以此类推,航线结束后此值不清空直到下一次开始航线)
     * </pre>
     *
     * <code>uint32 targetWaypointIndex = 2;</code>
     * @return The targetWaypointIndex.
     * <code>optional uint32 targetWaypointIndex = 2;</code>
     */
    @java.lang.Override
    public int getTargetWaypointIndex() {
      return targetWaypointIndex_;
    }
@@ -22075,10 +20439,8 @@
     *是否航点完成:1完成、0未完成(此值废弃)
     * </pre>
     *
     * <code>uint32 isWaypointFinished = 3;</code>
     * @return The isWaypointFinished.
     * <code>optional uint32 isWaypointFinished = 3;</code>
     */
    @java.lang.Override
    public int getIsWaypointFinished() {
      return isWaypointFinished_;
    }
@@ -22090,10 +20452,8 @@
     *云盒是否发送视频数据:0=不发送,1=发送
     * </pre>
     *
     * <code>uint32 pushVideo = 4;</code>
     * @return The pushVideo.
     * <code>optional uint32 pushVideo = 4;</code>
     */
    @java.lang.Override
    public int getPushVideo() {
      return pushVideo_;
    }
@@ -22105,10 +20465,8 @@
     *是否锁定4G:0=不锁定,1=锁定
     * </pre>
     *
     * <code>uint32 lock4g = 5;</code>
     * @return The lock4g.
     * <code>optional uint32 lock4g = 5;</code>
     */
    @java.lang.Override
    public int getLock4G() {
      return lock4G_;
    }
@@ -22120,10 +20478,8 @@
     *是否开通图片自动回传功能:0=未开通,1=已开通
     * </pre>
     *
     * <code>uint32 boxModel = 6;</code>
     * @return The boxModel.
     * <code>optional uint32 boxModel = 6;</code>
     */
    @java.lang.Override
    public int getBoxModel() {
      return boxModel_;
    }
@@ -22135,10 +20491,8 @@
     *自动拍照间隔:0未开始,3~255间隔时间
     * </pre>
     *
     * <code>uint32 mapPlay = 7;</code>
     * @return The mapPlay.
     * <code>optional uint32 mapPlay = 7;</code>
     */
    @java.lang.Override
    public int getMapPlay() {
      return mapPlay_;
    }
@@ -22150,10 +20504,8 @@
     *网络失联后动作:0=返回HOME点,1=继续航线
     * </pre>
     *
     * <code>uint32 loseAction = 8;</code>
     * @return The loseAction.
     * <code>optional uint32 loseAction = 8;</code>
     */
    @java.lang.Override
    public int getLoseAction() {
      return loseAction_;
    }
@@ -22165,10 +20517,8 @@
     *是否打点飞行控制中:0=否,1=是
     * </pre>
     *
     * <code>uint32 isPointControl = 9;</code>
     * @return The isPointControl.
     * <code>optional uint32 isPointControl = 9;</code>
     */
    @java.lang.Override
    public int getIsPointControl() {
      return isPointControl_;
    }
@@ -22180,10 +20530,8 @@
     *是否UWB精准降落中:0=不是,1=是
     * </pre>
     *
     * <code>uint32 isUwbLanding = 10;</code>
     * @return The isUwbLanding.
     * <code>optional uint32 isUwbLanding = 10;</code>
     */
    @java.lang.Override
    public int getIsUwbLanding() {
      return isUwbLanding_;
    }
@@ -22195,10 +20543,8 @@
     *视频是否推流中:0=不是,1=是
     * </pre>
     *
     * <code>uint32 isPushVideoing = 11;</code>
     * @return The isPushVideoing.
     * <code>optional uint32 isPushVideoing = 11;</code>
     */
    @java.lang.Override
    public int getIsPushVideoing() {
      return isPushVideoing_;
    }
@@ -22210,10 +20556,8 @@
     *是否二维码精准降落中:0=不是,1=是
     * </pre>
     *
     * <code>uint32 isDLanding = 12;</code>
     * @return The isDLanding.
     * <code>optional uint32 isDLanding = 12;</code>
     */
    @java.lang.Override
    public int getIsDLanding() {
      return isDLanding_;
    }
@@ -22225,10 +20569,8 @@
     *二维码精准降落模式:0=载荷降落,1=下视降落
     * </pre>
     *
     * <code>uint32 perceptionFlag = 13;</code>
     * @return The perceptionFlag.
     * <code>optional uint32 perceptionFlag = 13;</code>
     */
    @java.lang.Override
    public int getPerceptionFlag() {
      return perceptionFlag_;
    }
@@ -22240,16 +20582,13 @@
     *是否指定距离飞行控制中:0=否,1=是
     * </pre>
     *
     * <code>uint32 isPositionControl = 14;</code>
     * @return The isPositionControl.
     * <code>optional uint32 isPositionControl = 14;</code>
     */
    @java.lang.Override
    public int getIsPositionControl() {
      return isPositionControl_;
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -22259,7 +20598,6 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (isPause_ != 0) {
@@ -22304,10 +20642,8 @@
      if (isPositionControl_ != 0) {
        output.writeUInt32(14, isPositionControl_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -22369,11 +20705,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(14, isPositionControl_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -22384,36 +20720,36 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState) obj;
      if (getIsPause()
          != other.getIsPause()) return false;
      if (getTargetWaypointIndex()
          != other.getTargetWaypointIndex()) return false;
      if (getIsWaypointFinished()
          != other.getIsWaypointFinished()) return false;
      if (getPushVideo()
          != other.getPushVideo()) return false;
      if (getLock4G()
          != other.getLock4G()) return false;
      if (getBoxModel()
          != other.getBoxModel()) return false;
      if (getMapPlay()
          != other.getMapPlay()) return false;
      if (getLoseAction()
          != other.getLoseAction()) return false;
      if (getIsPointControl()
          != other.getIsPointControl()) return false;
      if (getIsUwbLanding()
          != other.getIsUwbLanding()) return false;
      if (getIsPushVideoing()
          != other.getIsPushVideoing()) return false;
      if (getIsDLanding()
          != other.getIsDLanding()) return false;
      if (getPerceptionFlag()
          != other.getPerceptionFlag()) return false;
      if (getIsPositionControl()
          != other.getIsPositionControl()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && (getIsPause()
          == other.getIsPause());
      result = result && (getTargetWaypointIndex()
          == other.getTargetWaypointIndex());
      result = result && (getIsWaypointFinished()
          == other.getIsWaypointFinished());
      result = result && (getPushVideo()
          == other.getPushVideo());
      result = result && (getLock4G()
          == other.getLock4G());
      result = result && (getBoxModel()
          == other.getBoxModel());
      result = result && (getMapPlay()
          == other.getMapPlay());
      result = result && (getLoseAction()
          == other.getLoseAction());
      result = result && (getIsPointControl()
          == other.getIsPointControl());
      result = result && (getIsUwbLanding()
          == other.getIsUwbLanding());
      result = result && (getIsPushVideoing()
          == other.getIsPushVideoing());
      result = result && (getIsDLanding()
          == other.getIsDLanding());
      result = result && (getPerceptionFlag()
          == other.getPerceptionFlag());
      result = result && (getIsPositionControl()
          == other.getIsPositionControl());
      return result;
    }
    @java.lang.Override
@@ -22422,7 +20758,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + ISPAUSE_FIELD_NUMBER;
      hash = (53 * hash) + getIsPause();
      hash = (37 * hash) + TARGETWAYPOINTINDEX_FIELD_NUMBER;
@@ -22456,17 +20792,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -22526,7 +20851,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -22534,7 +20858,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -22562,7 +20885,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_MissionState_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_MissionState_fieldAccessorTable
@@ -22585,7 +20907,6 @@
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        isPause_ = 0;
@@ -22619,18 +20940,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_MissionState_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState result = buildPartial();
        if (!result.isInitialized()) {
@@ -22639,7 +20957,6 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState(this);
        result.isPause_ = isPause_;
@@ -22660,39 +20977,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState)other);
@@ -22746,17 +21056,14 @@
        if (other.getIsPositionControl() != 0) {
          setIsPositionControl(other.getIsPositionControl());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -22781,10 +21088,8 @@
       *航线是否暂停中:0=未暂停,1=暂停中
       * </pre>
       *
       * <code>uint32 isPause = 1;</code>
       * @return The isPause.
       * <code>optional uint32 isPause = 1;</code>
       */
      @java.lang.Override
      public int getIsPause() {
        return isPause_;
      }
@@ -22793,9 +21098,7 @@
       *航线是否暂停中:0=未暂停,1=暂停中
       * </pre>
       *
       * <code>uint32 isPause = 1;</code>
       * @param value The isPause to set.
       * @return This builder for chaining.
       * <code>optional uint32 isPause = 1;</code>
       */
      public Builder setIsPause(int value) {
        
@@ -22808,8 +21111,7 @@
       *航线是否暂停中:0=未暂停,1=暂停中
       * </pre>
       *
       * <code>uint32 isPause = 1;</code>
       * @return This builder for chaining.
       * <code>optional uint32 isPause = 1;</code>
       */
      public Builder clearIsPause() {
        
@@ -22824,10 +21126,8 @@
       *目标航点下标(说明:开始成功到第一个航点之间此值为0,到达第一个航点此值为1,到达第二个航点此值为2,以此类推,航线结束后此值不清空直到下一次开始航线)
       * </pre>
       *
       * <code>uint32 targetWaypointIndex = 2;</code>
       * @return The targetWaypointIndex.
       * <code>optional uint32 targetWaypointIndex = 2;</code>
       */
      @java.lang.Override
      public int getTargetWaypointIndex() {
        return targetWaypointIndex_;
      }
@@ -22836,9 +21136,7 @@
       *目标航点下标(说明:开始成功到第一个航点之间此值为0,到达第一个航点此值为1,到达第二个航点此值为2,以此类推,航线结束后此值不清空直到下一次开始航线)
       * </pre>
       *
       * <code>uint32 targetWaypointIndex = 2;</code>
       * @param value The targetWaypointIndex to set.
       * @return This builder for chaining.
       * <code>optional uint32 targetWaypointIndex = 2;</code>
       */
      public Builder setTargetWaypointIndex(int value) {
        
@@ -22851,8 +21149,7 @@
       *目标航点下标(说明:开始成功到第一个航点之间此值为0,到达第一个航点此值为1,到达第二个航点此值为2,以此类推,航线结束后此值不清空直到下一次开始航线)
       * </pre>
       *
       * <code>uint32 targetWaypointIndex = 2;</code>
       * @return This builder for chaining.
       * <code>optional uint32 targetWaypointIndex = 2;</code>
       */
      public Builder clearTargetWaypointIndex() {
        
@@ -22867,10 +21164,8 @@
       *是否航点完成:1完成、0未完成(此值废弃)
       * </pre>
       *
       * <code>uint32 isWaypointFinished = 3;</code>
       * @return The isWaypointFinished.
       * <code>optional uint32 isWaypointFinished = 3;</code>
       */
      @java.lang.Override
      public int getIsWaypointFinished() {
        return isWaypointFinished_;
      }
@@ -22879,9 +21174,7 @@
       *是否航点完成:1完成、0未完成(此值废弃)
       * </pre>
       *
       * <code>uint32 isWaypointFinished = 3;</code>
       * @param value The isWaypointFinished to set.
       * @return This builder for chaining.
       * <code>optional uint32 isWaypointFinished = 3;</code>
       */
      public Builder setIsWaypointFinished(int value) {
        
@@ -22894,8 +21187,7 @@
       *是否航点完成:1完成、0未完成(此值废弃)
       * </pre>
       *
       * <code>uint32 isWaypointFinished = 3;</code>
       * @return This builder for chaining.
       * <code>optional uint32 isWaypointFinished = 3;</code>
       */
      public Builder clearIsWaypointFinished() {
        
@@ -22910,10 +21202,8 @@
       *云盒是否发送视频数据:0=不发送,1=发送
       * </pre>
       *
       * <code>uint32 pushVideo = 4;</code>
       * @return The pushVideo.
       * <code>optional uint32 pushVideo = 4;</code>
       */
      @java.lang.Override
      public int getPushVideo() {
        return pushVideo_;
      }
@@ -22922,9 +21212,7 @@
       *云盒是否发送视频数据:0=不发送,1=发送
       * </pre>
       *
       * <code>uint32 pushVideo = 4;</code>
       * @param value The pushVideo to set.
       * @return This builder for chaining.
       * <code>optional uint32 pushVideo = 4;</code>
       */
      public Builder setPushVideo(int value) {
        
@@ -22937,8 +21225,7 @@
       *云盒是否发送视频数据:0=不发送,1=发送
       * </pre>
       *
       * <code>uint32 pushVideo = 4;</code>
       * @return This builder for chaining.
       * <code>optional uint32 pushVideo = 4;</code>
       */
      public Builder clearPushVideo() {
        
@@ -22953,10 +21240,8 @@
       *是否锁定4G:0=不锁定,1=锁定
       * </pre>
       *
       * <code>uint32 lock4g = 5;</code>
       * @return The lock4g.
       * <code>optional uint32 lock4g = 5;</code>
       */
      @java.lang.Override
      public int getLock4G() {
        return lock4G_;
      }
@@ -22965,9 +21250,7 @@
       *是否锁定4G:0=不锁定,1=锁定
       * </pre>
       *
       * <code>uint32 lock4g = 5;</code>
       * @param value The lock4g to set.
       * @return This builder for chaining.
       * <code>optional uint32 lock4g = 5;</code>
       */
      public Builder setLock4G(int value) {
        
@@ -22980,8 +21263,7 @@
       *是否锁定4G:0=不锁定,1=锁定
       * </pre>
       *
       * <code>uint32 lock4g = 5;</code>
       * @return This builder for chaining.
       * <code>optional uint32 lock4g = 5;</code>
       */
      public Builder clearLock4G() {
        
@@ -22996,10 +21278,8 @@
       *是否开通图片自动回传功能:0=未开通,1=已开通
       * </pre>
       *
       * <code>uint32 boxModel = 6;</code>
       * @return The boxModel.
       * <code>optional uint32 boxModel = 6;</code>
       */
      @java.lang.Override
      public int getBoxModel() {
        return boxModel_;
      }
@@ -23008,9 +21288,7 @@
       *是否开通图片自动回传功能:0=未开通,1=已开通
       * </pre>
       *
       * <code>uint32 boxModel = 6;</code>
       * @param value The boxModel to set.
       * @return This builder for chaining.
       * <code>optional uint32 boxModel = 6;</code>
       */
      public Builder setBoxModel(int value) {
        
@@ -23023,8 +21301,7 @@
       *是否开通图片自动回传功能:0=未开通,1=已开通
       * </pre>
       *
       * <code>uint32 boxModel = 6;</code>
       * @return This builder for chaining.
       * <code>optional uint32 boxModel = 6;</code>
       */
      public Builder clearBoxModel() {
        
@@ -23039,10 +21316,8 @@
       *自动拍照间隔:0未开始,3~255间隔时间
       * </pre>
       *
       * <code>uint32 mapPlay = 7;</code>
       * @return The mapPlay.
       * <code>optional uint32 mapPlay = 7;</code>
       */
      @java.lang.Override
      public int getMapPlay() {
        return mapPlay_;
      }
@@ -23051,9 +21326,7 @@
       *自动拍照间隔:0未开始,3~255间隔时间
       * </pre>
       *
       * <code>uint32 mapPlay = 7;</code>
       * @param value The mapPlay to set.
       * @return This builder for chaining.
       * <code>optional uint32 mapPlay = 7;</code>
       */
      public Builder setMapPlay(int value) {
        
@@ -23066,8 +21339,7 @@
       *自动拍照间隔:0未开始,3~255间隔时间
       * </pre>
       *
       * <code>uint32 mapPlay = 7;</code>
       * @return This builder for chaining.
       * <code>optional uint32 mapPlay = 7;</code>
       */
      public Builder clearMapPlay() {
        
@@ -23082,10 +21354,8 @@
       *网络失联后动作:0=返回HOME点,1=继续航线
       * </pre>
       *
       * <code>uint32 loseAction = 8;</code>
       * @return The loseAction.
       * <code>optional uint32 loseAction = 8;</code>
       */
      @java.lang.Override
      public int getLoseAction() {
        return loseAction_;
      }
@@ -23094,9 +21364,7 @@
       *网络失联后动作:0=返回HOME点,1=继续航线
       * </pre>
       *
       * <code>uint32 loseAction = 8;</code>
       * @param value The loseAction to set.
       * @return This builder for chaining.
       * <code>optional uint32 loseAction = 8;</code>
       */
      public Builder setLoseAction(int value) {
        
@@ -23109,8 +21377,7 @@
       *网络失联后动作:0=返回HOME点,1=继续航线
       * </pre>
       *
       * <code>uint32 loseAction = 8;</code>
       * @return This builder for chaining.
       * <code>optional uint32 loseAction = 8;</code>
       */
      public Builder clearLoseAction() {
        
@@ -23125,10 +21392,8 @@
       *是否打点飞行控制中:0=否,1=是
       * </pre>
       *
       * <code>uint32 isPointControl = 9;</code>
       * @return The isPointControl.
       * <code>optional uint32 isPointControl = 9;</code>
       */
      @java.lang.Override
      public int getIsPointControl() {
        return isPointControl_;
      }
@@ -23137,9 +21402,7 @@
       *是否打点飞行控制中:0=否,1=是
       * </pre>
       *
       * <code>uint32 isPointControl = 9;</code>
       * @param value The isPointControl to set.
       * @return This builder for chaining.
       * <code>optional uint32 isPointControl = 9;</code>
       */
      public Builder setIsPointControl(int value) {
        
@@ -23152,8 +21415,7 @@
       *是否打点飞行控制中:0=否,1=是
       * </pre>
       *
       * <code>uint32 isPointControl = 9;</code>
       * @return This builder for chaining.
       * <code>optional uint32 isPointControl = 9;</code>
       */
      public Builder clearIsPointControl() {
        
@@ -23168,10 +21430,8 @@
       *是否UWB精准降落中:0=不是,1=是
       * </pre>
       *
       * <code>uint32 isUwbLanding = 10;</code>
       * @return The isUwbLanding.
       * <code>optional uint32 isUwbLanding = 10;</code>
       */
      @java.lang.Override
      public int getIsUwbLanding() {
        return isUwbLanding_;
      }
@@ -23180,9 +21440,7 @@
       *是否UWB精准降落中:0=不是,1=是
       * </pre>
       *
       * <code>uint32 isUwbLanding = 10;</code>
       * @param value The isUwbLanding to set.
       * @return This builder for chaining.
       * <code>optional uint32 isUwbLanding = 10;</code>
       */
      public Builder setIsUwbLanding(int value) {
        
@@ -23195,8 +21453,7 @@
       *是否UWB精准降落中:0=不是,1=是
       * </pre>
       *
       * <code>uint32 isUwbLanding = 10;</code>
       * @return This builder for chaining.
       * <code>optional uint32 isUwbLanding = 10;</code>
       */
      public Builder clearIsUwbLanding() {
        
@@ -23211,10 +21468,8 @@
       *视频是否推流中:0=不是,1=是
       * </pre>
       *
       * <code>uint32 isPushVideoing = 11;</code>
       * @return The isPushVideoing.
       * <code>optional uint32 isPushVideoing = 11;</code>
       */
      @java.lang.Override
      public int getIsPushVideoing() {
        return isPushVideoing_;
      }
@@ -23223,9 +21478,7 @@
       *视频是否推流中:0=不是,1=是
       * </pre>
       *
       * <code>uint32 isPushVideoing = 11;</code>
       * @param value The isPushVideoing to set.
       * @return This builder for chaining.
       * <code>optional uint32 isPushVideoing = 11;</code>
       */
      public Builder setIsPushVideoing(int value) {
        
@@ -23238,8 +21491,7 @@
       *视频是否推流中:0=不是,1=是
       * </pre>
       *
       * <code>uint32 isPushVideoing = 11;</code>
       * @return This builder for chaining.
       * <code>optional uint32 isPushVideoing = 11;</code>
       */
      public Builder clearIsPushVideoing() {
        
@@ -23254,10 +21506,8 @@
       *是否二维码精准降落中:0=不是,1=是
       * </pre>
       *
       * <code>uint32 isDLanding = 12;</code>
       * @return The isDLanding.
       * <code>optional uint32 isDLanding = 12;</code>
       */
      @java.lang.Override
      public int getIsDLanding() {
        return isDLanding_;
      }
@@ -23266,9 +21516,7 @@
       *是否二维码精准降落中:0=不是,1=是
       * </pre>
       *
       * <code>uint32 isDLanding = 12;</code>
       * @param value The isDLanding to set.
       * @return This builder for chaining.
       * <code>optional uint32 isDLanding = 12;</code>
       */
      public Builder setIsDLanding(int value) {
        
@@ -23281,8 +21529,7 @@
       *是否二维码精准降落中:0=不是,1=是
       * </pre>
       *
       * <code>uint32 isDLanding = 12;</code>
       * @return This builder for chaining.
       * <code>optional uint32 isDLanding = 12;</code>
       */
      public Builder clearIsDLanding() {
        
@@ -23297,10 +21544,8 @@
       *二维码精准降落模式:0=载荷降落,1=下视降落
       * </pre>
       *
       * <code>uint32 perceptionFlag = 13;</code>
       * @return The perceptionFlag.
       * <code>optional uint32 perceptionFlag = 13;</code>
       */
      @java.lang.Override
      public int getPerceptionFlag() {
        return perceptionFlag_;
      }
@@ -23309,9 +21554,7 @@
       *二维码精准降落模式:0=载荷降落,1=下视降落
       * </pre>
       *
       * <code>uint32 perceptionFlag = 13;</code>
       * @param value The perceptionFlag to set.
       * @return This builder for chaining.
       * <code>optional uint32 perceptionFlag = 13;</code>
       */
      public Builder setPerceptionFlag(int value) {
        
@@ -23324,8 +21567,7 @@
       *二维码精准降落模式:0=载荷降落,1=下视降落
       * </pre>
       *
       * <code>uint32 perceptionFlag = 13;</code>
       * @return This builder for chaining.
       * <code>optional uint32 perceptionFlag = 13;</code>
       */
      public Builder clearPerceptionFlag() {
        
@@ -23340,10 +21582,8 @@
       *是否指定距离飞行控制中:0=否,1=是
       * </pre>
       *
       * <code>uint32 isPositionControl = 14;</code>
       * @return The isPositionControl.
       * <code>optional uint32 isPositionControl = 14;</code>
       */
      @java.lang.Override
      public int getIsPositionControl() {
        return isPositionControl_;
      }
@@ -23352,9 +21592,7 @@
       *是否指定距离飞行控制中:0=否,1=是
       * </pre>
       *
       * <code>uint32 isPositionControl = 14;</code>
       * @param value The isPositionControl to set.
       * @return This builder for chaining.
       * <code>optional uint32 isPositionControl = 14;</code>
       */
      public Builder setIsPositionControl(int value) {
        
@@ -23367,8 +21605,7 @@
       *是否指定距离飞行控制中:0=否,1=是
       * </pre>
       *
       * <code>uint32 isPositionControl = 14;</code>
       * @return This builder for chaining.
       * <code>optional uint32 isPositionControl = 14;</code>
       */
      public Builder clearIsPositionControl() {
        
@@ -23376,16 +21613,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -23404,12 +21639,11 @@
    private static final com.google.protobuf.Parser<MissionState>
        PARSER = new com.google.protobuf.AbstractParser<MissionState>() {
      @java.lang.Override
      public MissionState parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new MissionState(input, extensionRegistry);
          return new MissionState(input, extensionRegistry);
      }
    };
@@ -23422,7 +21656,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.MissionState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -23434,8 +21667,7 @@
      com.google.protobuf.MessageOrBuilder {
    /**
     * <code>uint32 downHealth = 1;</code>
     * @return The downHealth.
     * <code>optional uint32 downHealth = 1;</code>
     */
    int getDownHealth();
@@ -23444,30 +21676,26 @@
     *距下障碍物的距离(单位:米),downHealth为1时值有效
     * </pre>
     *
     * <code>float down = 2;</code>
     * @return The down.
     * <code>optional float down = 2;</code>
     */
    float getDown();
    /**
     * <code>uint32 frontHealth = 3;</code>
     * @return The frontHealth.
     * <code>optional uint32 frontHealth = 3;</code>
     */
    int getFrontHealth();
    /**
     * <pre>
     *距前障碍物的距离(单位:米),frontHealth为1时值有效
     *距前障碍物的距离(单位:米),frontHealth为1时值有效
     * </pre>
     *
     * <code>float front = 4;</code>
     * @return The front.
     * <code>optional float front = 4;</code>
     */
    float getFront();
    /**
     * <code>uint32 rightHealth = 5;</code>
     * @return The rightHealth.
     * <code>optional uint32 rightHealth = 5;</code>
     */
    int getRightHealth();
@@ -23476,14 +21704,12 @@
     *距右障碍物的距离(单位:米),rightHealth为1时值有效
     * </pre>
     *
     * <code>float right = 6;</code>
     * @return The right.
     * <code>optional float right = 6;</code>
     */
    float getRight();
    /**
     * <code>uint32 backHealth = 7;</code>
     * @return The backHealth.
     * <code>optional uint32 backHealth = 7;</code>
     */
    int getBackHealth();
@@ -23492,14 +21718,12 @@
     *距后障碍物的距离(单位:米),backHealth为1时值有效
     * </pre>
     *
     * <code>float back = 8;</code>
     * @return The back.
     * <code>optional float back = 8;</code>
     */
    float getBack();
    /**
     * <code>uint32 leftHealth = 9;</code>
     * @return The leftHealth.
     * <code>optional uint32 leftHealth = 9;</code>
     */
    int getLeftHealth();
@@ -23508,14 +21732,12 @@
     *距左障碍物的距离(单位:米),leftHealth为1时值有效
     * </pre>
     *
     * <code>float left = 10;</code>
     * @return The left.
     * <code>optional float left = 10;</code>
     */
    float getLeft();
    /**
     * <code>uint32 upHealth = 11;</code>
     * @return The upHealth.
     * <code>optional uint32 upHealth = 11;</code>
     */
    int getUpHealth();
@@ -23524,8 +21746,7 @@
     *距上障碍物的距离(单位:米),upHealth为1时值有效
     * </pre>
     *
     * <code>float up = 12;</code>
     * @return The up.
     * <code>optional float up = 12;</code>
     */
    float getUp();
@@ -23534,8 +21755,7 @@
     *下视觉避障开关状态:0-关闭 1-打开
     * </pre>
     *
     * <code>uint32 avoidanceEnableStatusDown = 13;</code>
     * @return The avoidanceEnableStatusDown.
     * <code>optional uint32 avoidanceEnableStatusDown = 13;</code>
     */
    int getAvoidanceEnableStatusDown();
@@ -23544,8 +21764,7 @@
     *上视觉避障开关状态:0-关闭 1-打开
     * </pre>
     *
     * <code>uint32 avoidanceEnableStatusUp = 14;</code>
     * @return The avoidanceEnableStatusUp.
     * <code>optional uint32 avoidanceEnableStatusUp = 14;</code>
     */
    int getAvoidanceEnableStatusUp();
@@ -23554,8 +21773,7 @@
     *水平视觉避障开关状态:0-关闭 1-打开
     * </pre>
     *
     * <code>uint32 avoidanceEnableStatusHorizontal = 15;</code>
     * @return The avoidanceEnableStatusHorizontal.
     * <code>optional uint32 avoidanceEnableStatusHorizontal = 15;</code>
     */
    int getAvoidanceEnableStatusHorizontal();
  }
@@ -23566,40 +21784,43 @@
   *
   * Protobuf type {@code AvoidanceData}
   */
  public static final class AvoidanceData extends
  public  static final class AvoidanceData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:AvoidanceData)
      AvoidanceDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AvoidanceData.newBuilder() to construct.
    private AvoidanceData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AvoidanceData() {
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AvoidanceData();
      downHealth_ = 0;
      down_ = 0F;
      frontHealth_ = 0;
      front_ = 0F;
      rightHealth_ = 0;
      right_ = 0F;
      backHealth_ = 0;
      back_ = 0F;
      leftHealth_ = 0;
      left_ = 0F;
      upHealth_ = 0;
      up_ = 0F;
      avoidanceEnableStatusDown_ = 0;
      avoidanceEnableStatusUp_ = 0;
      avoidanceEnableStatusHorizontal_ = 0;
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private AvoidanceData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
@@ -23608,6 +21829,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              downHealth_ = input.readUInt32();
@@ -23683,24 +21910,14 @@
              avoidanceEnableStatusHorizontal_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -23709,7 +21926,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_AvoidanceData_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_AvoidanceData_fieldAccessorTable
@@ -23720,10 +21936,8 @@
    public static final int DOWNHEALTH_FIELD_NUMBER = 1;
    private int downHealth_;
    /**
     * <code>uint32 downHealth = 1;</code>
     * @return The downHealth.
     * <code>optional uint32 downHealth = 1;</code>
     */
    @java.lang.Override
    public int getDownHealth() {
      return downHealth_;
    }
@@ -23735,10 +21949,8 @@
     *距下障碍物的距离(单位:米),downHealth为1时值有效
     * </pre>
     *
     * <code>float down = 2;</code>
     * @return The down.
     * <code>optional float down = 2;</code>
     */
    @java.lang.Override
    public float getDown() {
      return down_;
    }
@@ -23746,10 +21958,8 @@
    public static final int FRONTHEALTH_FIELD_NUMBER = 3;
    private int frontHealth_;
    /**
     * <code>uint32 frontHealth = 3;</code>
     * @return The frontHealth.
     * <code>optional uint32 frontHealth = 3;</code>
     */
    @java.lang.Override
    public int getFrontHealth() {
      return frontHealth_;
    }
@@ -23758,13 +21968,11 @@
    private float front_;
    /**
     * <pre>
     *距前障碍物的距离(单位:米),frontHealth为1时值有效
     *距前障碍物的距离(单位:米),frontHealth为1时值有效
     * </pre>
     *
     * <code>float front = 4;</code>
     * @return The front.
     * <code>optional float front = 4;</code>
     */
    @java.lang.Override
    public float getFront() {
      return front_;
    }
@@ -23772,10 +21980,8 @@
    public static final int RIGHTHEALTH_FIELD_NUMBER = 5;
    private int rightHealth_;
    /**
     * <code>uint32 rightHealth = 5;</code>
     * @return The rightHealth.
     * <code>optional uint32 rightHealth = 5;</code>
     */
    @java.lang.Override
    public int getRightHealth() {
      return rightHealth_;
    }
@@ -23787,10 +21993,8 @@
     *距右障碍物的距离(单位:米),rightHealth为1时值有效
     * </pre>
     *
     * <code>float right = 6;</code>
     * @return The right.
     * <code>optional float right = 6;</code>
     */
    @java.lang.Override
    public float getRight() {
      return right_;
    }
@@ -23798,10 +22002,8 @@
    public static final int BACKHEALTH_FIELD_NUMBER = 7;
    private int backHealth_;
    /**
     * <code>uint32 backHealth = 7;</code>
     * @return The backHealth.
     * <code>optional uint32 backHealth = 7;</code>
     */
    @java.lang.Override
    public int getBackHealth() {
      return backHealth_;
    }
@@ -23813,10 +22015,8 @@
     *距后障碍物的距离(单位:米),backHealth为1时值有效
     * </pre>
     *
     * <code>float back = 8;</code>
     * @return The back.
     * <code>optional float back = 8;</code>
     */
    @java.lang.Override
    public float getBack() {
      return back_;
    }
@@ -23824,10 +22024,8 @@
    public static final int LEFTHEALTH_FIELD_NUMBER = 9;
    private int leftHealth_;
    /**
     * <code>uint32 leftHealth = 9;</code>
     * @return The leftHealth.
     * <code>optional uint32 leftHealth = 9;</code>
     */
    @java.lang.Override
    public int getLeftHealth() {
      return leftHealth_;
    }
@@ -23839,10 +22037,8 @@
     *距左障碍物的距离(单位:米),leftHealth为1时值有效
     * </pre>
     *
     * <code>float left = 10;</code>
     * @return The left.
     * <code>optional float left = 10;</code>
     */
    @java.lang.Override
    public float getLeft() {
      return left_;
    }
@@ -23850,10 +22046,8 @@
    public static final int UPHEALTH_FIELD_NUMBER = 11;
    private int upHealth_;
    /**
     * <code>uint32 upHealth = 11;</code>
     * @return The upHealth.
     * <code>optional uint32 upHealth = 11;</code>
     */
    @java.lang.Override
    public int getUpHealth() {
      return upHealth_;
    }
@@ -23865,10 +22059,8 @@
     *距上障碍物的距离(单位:米),upHealth为1时值有效
     * </pre>
     *
     * <code>float up = 12;</code>
     * @return The up.
     * <code>optional float up = 12;</code>
     */
    @java.lang.Override
    public float getUp() {
      return up_;
    }
@@ -23880,10 +22072,8 @@
     *下视觉避障开关状态:0-关闭 1-打开
     * </pre>
     *
     * <code>uint32 avoidanceEnableStatusDown = 13;</code>
     * @return The avoidanceEnableStatusDown.
     * <code>optional uint32 avoidanceEnableStatusDown = 13;</code>
     */
    @java.lang.Override
    public int getAvoidanceEnableStatusDown() {
      return avoidanceEnableStatusDown_;
    }
@@ -23895,10 +22085,8 @@
     *上视觉避障开关状态:0-关闭 1-打开
     * </pre>
     *
     * <code>uint32 avoidanceEnableStatusUp = 14;</code>
     * @return The avoidanceEnableStatusUp.
     * <code>optional uint32 avoidanceEnableStatusUp = 14;</code>
     */
    @java.lang.Override
    public int getAvoidanceEnableStatusUp() {
      return avoidanceEnableStatusUp_;
    }
@@ -23910,16 +22098,13 @@
     *水平视觉避障开关状态:0-关闭 1-打开
     * </pre>
     *
     * <code>uint32 avoidanceEnableStatusHorizontal = 15;</code>
     * @return The avoidanceEnableStatusHorizontal.
     * <code>optional uint32 avoidanceEnableStatusHorizontal = 15;</code>
     */
    @java.lang.Override
    public int getAvoidanceEnableStatusHorizontal() {
      return avoidanceEnableStatusHorizontal_;
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -23929,43 +22114,42 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (downHealth_ != 0) {
        output.writeUInt32(1, downHealth_);
      }
      if (java.lang.Float.floatToRawIntBits(down_) != 0) {
      if (down_ != 0F) {
        output.writeFloat(2, down_);
      }
      if (frontHealth_ != 0) {
        output.writeUInt32(3, frontHealth_);
      }
      if (java.lang.Float.floatToRawIntBits(front_) != 0) {
      if (front_ != 0F) {
        output.writeFloat(4, front_);
      }
      if (rightHealth_ != 0) {
        output.writeUInt32(5, rightHealth_);
      }
      if (java.lang.Float.floatToRawIntBits(right_) != 0) {
      if (right_ != 0F) {
        output.writeFloat(6, right_);
      }
      if (backHealth_ != 0) {
        output.writeUInt32(7, backHealth_);
      }
      if (java.lang.Float.floatToRawIntBits(back_) != 0) {
      if (back_ != 0F) {
        output.writeFloat(8, back_);
      }
      if (leftHealth_ != 0) {
        output.writeUInt32(9, leftHealth_);
      }
      if (java.lang.Float.floatToRawIntBits(left_) != 0) {
      if (left_ != 0F) {
        output.writeFloat(10, left_);
      }
      if (upHealth_ != 0) {
        output.writeUInt32(11, upHealth_);
      }
      if (java.lang.Float.floatToRawIntBits(up_) != 0) {
      if (up_ != 0F) {
        output.writeFloat(12, up_);
      }
      if (avoidanceEnableStatusDown_ != 0) {
@@ -23977,10 +22161,8 @@
      if (avoidanceEnableStatusHorizontal_ != 0) {
        output.writeUInt32(15, avoidanceEnableStatusHorizontal_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -23990,7 +22172,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, downHealth_);
      }
      if (java.lang.Float.floatToRawIntBits(down_) != 0) {
      if (down_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, down_);
      }
@@ -23998,7 +22180,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(3, frontHealth_);
      }
      if (java.lang.Float.floatToRawIntBits(front_) != 0) {
      if (front_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, front_);
      }
@@ -24006,7 +22188,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(5, rightHealth_);
      }
      if (java.lang.Float.floatToRawIntBits(right_) != 0) {
      if (right_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(6, right_);
      }
@@ -24014,7 +22196,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(7, backHealth_);
      }
      if (java.lang.Float.floatToRawIntBits(back_) != 0) {
      if (back_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(8, back_);
      }
@@ -24022,7 +22204,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, leftHealth_);
      }
      if (java.lang.Float.floatToRawIntBits(left_) != 0) {
      if (left_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(10, left_);
      }
@@ -24030,7 +22212,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(11, upHealth_);
      }
      if (java.lang.Float.floatToRawIntBits(up_) != 0) {
      if (up_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(12, up_);
      }
@@ -24046,11 +22228,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(15, avoidanceEnableStatusHorizontal_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -24061,44 +22243,50 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData) obj;
      if (getDownHealth()
          != other.getDownHealth()) return false;
      if (java.lang.Float.floatToIntBits(getDown())
          != java.lang.Float.floatToIntBits(
              other.getDown())) return false;
      if (getFrontHealth()
          != other.getFrontHealth()) return false;
      if (java.lang.Float.floatToIntBits(getFront())
          != java.lang.Float.floatToIntBits(
              other.getFront())) return false;
      if (getRightHealth()
          != other.getRightHealth()) return false;
      if (java.lang.Float.floatToIntBits(getRight())
          != java.lang.Float.floatToIntBits(
              other.getRight())) return false;
      if (getBackHealth()
          != other.getBackHealth()) return false;
      if (java.lang.Float.floatToIntBits(getBack())
          != java.lang.Float.floatToIntBits(
              other.getBack())) return false;
      if (getLeftHealth()
          != other.getLeftHealth()) return false;
      if (java.lang.Float.floatToIntBits(getLeft())
          != java.lang.Float.floatToIntBits(
              other.getLeft())) return false;
      if (getUpHealth()
          != other.getUpHealth()) return false;
      if (java.lang.Float.floatToIntBits(getUp())
          != java.lang.Float.floatToIntBits(
              other.getUp())) return false;
      if (getAvoidanceEnableStatusDown()
          != other.getAvoidanceEnableStatusDown()) return false;
      if (getAvoidanceEnableStatusUp()
          != other.getAvoidanceEnableStatusUp()) return false;
      if (getAvoidanceEnableStatusHorizontal()
          != other.getAvoidanceEnableStatusHorizontal()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && (getDownHealth()
          == other.getDownHealth());
      result = result && (
          java.lang.Float.floatToIntBits(getDown())
          == java.lang.Float.floatToIntBits(
              other.getDown()));
      result = result && (getFrontHealth()
          == other.getFrontHealth());
      result = result && (
          java.lang.Float.floatToIntBits(getFront())
          == java.lang.Float.floatToIntBits(
              other.getFront()));
      result = result && (getRightHealth()
          == other.getRightHealth());
      result = result && (
          java.lang.Float.floatToIntBits(getRight())
          == java.lang.Float.floatToIntBits(
              other.getRight()));
      result = result && (getBackHealth()
          == other.getBackHealth());
      result = result && (
          java.lang.Float.floatToIntBits(getBack())
          == java.lang.Float.floatToIntBits(
              other.getBack()));
      result = result && (getLeftHealth()
          == other.getLeftHealth());
      result = result && (
          java.lang.Float.floatToIntBits(getLeft())
          == java.lang.Float.floatToIntBits(
              other.getLeft()));
      result = result && (getUpHealth()
          == other.getUpHealth());
      result = result && (
          java.lang.Float.floatToIntBits(getUp())
          == java.lang.Float.floatToIntBits(
              other.getUp()));
      result = result && (getAvoidanceEnableStatusDown()
          == other.getAvoidanceEnableStatusDown());
      result = result && (getAvoidanceEnableStatusUp()
          == other.getAvoidanceEnableStatusUp());
      result = result && (getAvoidanceEnableStatusHorizontal()
          == other.getAvoidanceEnableStatusHorizontal());
      return result;
    }
    @java.lang.Override
@@ -24107,7 +22295,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + DOWNHEALTH_FIELD_NUMBER;
      hash = (53 * hash) + getDownHealth();
      hash = (37 * hash) + DOWN_FIELD_NUMBER;
@@ -24149,17 +22337,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -24219,7 +22396,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -24227,7 +22403,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -24255,7 +22430,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_AvoidanceData_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_AvoidanceData_fieldAccessorTable
@@ -24278,7 +22452,6 @@
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        downHealth_ = 0;
@@ -24314,18 +22487,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_AvoidanceData_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData result = buildPartial();
        if (!result.isInitialized()) {
@@ -24334,7 +22504,6 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData(this);
        result.downHealth_ = downHealth_;
@@ -24356,39 +22525,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData)other);
@@ -24445,17 +22607,14 @@
        if (other.getAvoidanceEnableStatusHorizontal() != 0) {
          setAvoidanceEnableStatusHorizontal(other.getAvoidanceEnableStatusHorizontal());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -24476,17 +22635,13 @@
      private int downHealth_ ;
      /**
       * <code>uint32 downHealth = 1;</code>
       * @return The downHealth.
       * <code>optional uint32 downHealth = 1;</code>
       */
      @java.lang.Override
      public int getDownHealth() {
        return downHealth_;
      }
      /**
       * <code>uint32 downHealth = 1;</code>
       * @param value The downHealth to set.
       * @return This builder for chaining.
       * <code>optional uint32 downHealth = 1;</code>
       */
      public Builder setDownHealth(int value) {
        
@@ -24495,8 +22650,7 @@
        return this;
      }
      /**
       * <code>uint32 downHealth = 1;</code>
       * @return This builder for chaining.
       * <code>optional uint32 downHealth = 1;</code>
       */
      public Builder clearDownHealth() {
        
@@ -24511,10 +22665,8 @@
       *距下障碍物的距离(单位:米),downHealth为1时值有效
       * </pre>
       *
       * <code>float down = 2;</code>
       * @return The down.
       * <code>optional float down = 2;</code>
       */
      @java.lang.Override
      public float getDown() {
        return down_;
      }
@@ -24523,9 +22675,7 @@
       *距下障碍物的距离(单位:米),downHealth为1时值有效
       * </pre>
       *
       * <code>float down = 2;</code>
       * @param value The down to set.
       * @return This builder for chaining.
       * <code>optional float down = 2;</code>
       */
      public Builder setDown(float value) {
        
@@ -24538,8 +22688,7 @@
       *距下障碍物的距离(单位:米),downHealth为1时值有效
       * </pre>
       *
       * <code>float down = 2;</code>
       * @return This builder for chaining.
       * <code>optional float down = 2;</code>
       */
      public Builder clearDown() {
        
@@ -24550,17 +22699,13 @@
      private int frontHealth_ ;
      /**
       * <code>uint32 frontHealth = 3;</code>
       * @return The frontHealth.
       * <code>optional uint32 frontHealth = 3;</code>
       */
      @java.lang.Override
      public int getFrontHealth() {
        return frontHealth_;
      }
      /**
       * <code>uint32 frontHealth = 3;</code>
       * @param value The frontHealth to set.
       * @return This builder for chaining.
       * <code>optional uint32 frontHealth = 3;</code>
       */
      public Builder setFrontHealth(int value) {
        
@@ -24569,8 +22714,7 @@
        return this;
      }
      /**
       * <code>uint32 frontHealth = 3;</code>
       * @return This builder for chaining.
       * <code>optional uint32 frontHealth = 3;</code>
       */
      public Builder clearFrontHealth() {
        
@@ -24582,24 +22726,20 @@
      private float front_ ;
      /**
       * <pre>
       *距前障碍物的距离(单位:米),frontHealth为1时值有效
       *距前障碍物的距离(单位:米),frontHealth为1时值有效
       * </pre>
       *
       * <code>float front = 4;</code>
       * @return The front.
       * <code>optional float front = 4;</code>
       */
      @java.lang.Override
      public float getFront() {
        return front_;
      }
      /**
       * <pre>
       *距前障碍物的距离(单位:米),frontHealth为1时值有效
       *距前障碍物的距离(单位:米),frontHealth为1时值有效
       * </pre>
       *
       * <code>float front = 4;</code>
       * @param value The front to set.
       * @return This builder for chaining.
       * <code>optional float front = 4;</code>
       */
      public Builder setFront(float value) {
        
@@ -24609,11 +22749,10 @@
      }
      /**
       * <pre>
       *距前障碍物的距离(单位:米),frontHealth为1时值有效
       *距前障碍物的距离(单位:米),frontHealth为1时值有效
       * </pre>
       *
       * <code>float front = 4;</code>
       * @return This builder for chaining.
       * <code>optional float front = 4;</code>
       */
      public Builder clearFront() {
        
@@ -24624,17 +22763,13 @@
      private int rightHealth_ ;
      /**
       * <code>uint32 rightHealth = 5;</code>
       * @return The rightHealth.
       * <code>optional uint32 rightHealth = 5;</code>
       */
      @java.lang.Override
      public int getRightHealth() {
        return rightHealth_;
      }
      /**
       * <code>uint32 rightHealth = 5;</code>
       * @param value The rightHealth to set.
       * @return This builder for chaining.
       * <code>optional uint32 rightHealth = 5;</code>
       */
      public Builder setRightHealth(int value) {
        
@@ -24643,8 +22778,7 @@
        return this;
      }
      /**
       * <code>uint32 rightHealth = 5;</code>
       * @return This builder for chaining.
       * <code>optional uint32 rightHealth = 5;</code>
       */
      public Builder clearRightHealth() {
        
@@ -24659,10 +22793,8 @@
       *距右障碍物的距离(单位:米),rightHealth为1时值有效
       * </pre>
       *
       * <code>float right = 6;</code>
       * @return The right.
       * <code>optional float right = 6;</code>
       */
      @java.lang.Override
      public float getRight() {
        return right_;
      }
@@ -24671,9 +22803,7 @@
       *距右障碍物的距离(单位:米),rightHealth为1时值有效
       * </pre>
       *
       * <code>float right = 6;</code>
       * @param value The right to set.
       * @return This builder for chaining.
       * <code>optional float right = 6;</code>
       */
      public Builder setRight(float value) {
        
@@ -24686,8 +22816,7 @@
       *距右障碍物的距离(单位:米),rightHealth为1时值有效
       * </pre>
       *
       * <code>float right = 6;</code>
       * @return This builder for chaining.
       * <code>optional float right = 6;</code>
       */
      public Builder clearRight() {
        
@@ -24698,17 +22827,13 @@
      private int backHealth_ ;
      /**
       * <code>uint32 backHealth = 7;</code>
       * @return The backHealth.
       * <code>optional uint32 backHealth = 7;</code>
       */
      @java.lang.Override
      public int getBackHealth() {
        return backHealth_;
      }
      /**
       * <code>uint32 backHealth = 7;</code>
       * @param value The backHealth to set.
       * @return This builder for chaining.
       * <code>optional uint32 backHealth = 7;</code>
       */
      public Builder setBackHealth(int value) {
        
@@ -24717,8 +22842,7 @@
        return this;
      }
      /**
       * <code>uint32 backHealth = 7;</code>
       * @return This builder for chaining.
       * <code>optional uint32 backHealth = 7;</code>
       */
      public Builder clearBackHealth() {
        
@@ -24733,10 +22857,8 @@
       *距后障碍物的距离(单位:米),backHealth为1时值有效
       * </pre>
       *
       * <code>float back = 8;</code>
       * @return The back.
       * <code>optional float back = 8;</code>
       */
      @java.lang.Override
      public float getBack() {
        return back_;
      }
@@ -24745,9 +22867,7 @@
       *距后障碍物的距离(单位:米),backHealth为1时值有效
       * </pre>
       *
       * <code>float back = 8;</code>
       * @param value The back to set.
       * @return This builder for chaining.
       * <code>optional float back = 8;</code>
       */
      public Builder setBack(float value) {
        
@@ -24760,8 +22880,7 @@
       *距后障碍物的距离(单位:米),backHealth为1时值有效
       * </pre>
       *
       * <code>float back = 8;</code>
       * @return This builder for chaining.
       * <code>optional float back = 8;</code>
       */
      public Builder clearBack() {
        
@@ -24772,17 +22891,13 @@
      private int leftHealth_ ;
      /**
       * <code>uint32 leftHealth = 9;</code>
       * @return The leftHealth.
       * <code>optional uint32 leftHealth = 9;</code>
       */
      @java.lang.Override
      public int getLeftHealth() {
        return leftHealth_;
      }
      /**
       * <code>uint32 leftHealth = 9;</code>
       * @param value The leftHealth to set.
       * @return This builder for chaining.
       * <code>optional uint32 leftHealth = 9;</code>
       */
      public Builder setLeftHealth(int value) {
        
@@ -24791,8 +22906,7 @@
        return this;
      }
      /**
       * <code>uint32 leftHealth = 9;</code>
       * @return This builder for chaining.
       * <code>optional uint32 leftHealth = 9;</code>
       */
      public Builder clearLeftHealth() {
        
@@ -24807,10 +22921,8 @@
       *距左障碍物的距离(单位:米),leftHealth为1时值有效
       * </pre>
       *
       * <code>float left = 10;</code>
       * @return The left.
       * <code>optional float left = 10;</code>
       */
      @java.lang.Override
      public float getLeft() {
        return left_;
      }
@@ -24819,9 +22931,7 @@
       *距左障碍物的距离(单位:米),leftHealth为1时值有效
       * </pre>
       *
       * <code>float left = 10;</code>
       * @param value The left to set.
       * @return This builder for chaining.
       * <code>optional float left = 10;</code>
       */
      public Builder setLeft(float value) {
        
@@ -24834,8 +22944,7 @@
       *距左障碍物的距离(单位:米),leftHealth为1时值有效
       * </pre>
       *
       * <code>float left = 10;</code>
       * @return This builder for chaining.
       * <code>optional float left = 10;</code>
       */
      public Builder clearLeft() {
        
@@ -24846,17 +22955,13 @@
      private int upHealth_ ;
      /**
       * <code>uint32 upHealth = 11;</code>
       * @return The upHealth.
       * <code>optional uint32 upHealth = 11;</code>
       */
      @java.lang.Override
      public int getUpHealth() {
        return upHealth_;
      }
      /**
       * <code>uint32 upHealth = 11;</code>
       * @param value The upHealth to set.
       * @return This builder for chaining.
       * <code>optional uint32 upHealth = 11;</code>
       */
      public Builder setUpHealth(int value) {
        
@@ -24865,8 +22970,7 @@
        return this;
      }
      /**
       * <code>uint32 upHealth = 11;</code>
       * @return This builder for chaining.
       * <code>optional uint32 upHealth = 11;</code>
       */
      public Builder clearUpHealth() {
        
@@ -24881,10 +22985,8 @@
       *距上障碍物的距离(单位:米),upHealth为1时值有效
       * </pre>
       *
       * <code>float up = 12;</code>
       * @return The up.
       * <code>optional float up = 12;</code>
       */
      @java.lang.Override
      public float getUp() {
        return up_;
      }
@@ -24893,9 +22995,7 @@
       *距上障碍物的距离(单位:米),upHealth为1时值有效
       * </pre>
       *
       * <code>float up = 12;</code>
       * @param value The up to set.
       * @return This builder for chaining.
       * <code>optional float up = 12;</code>
       */
      public Builder setUp(float value) {
        
@@ -24908,8 +23008,7 @@
       *距上障碍物的距离(单位:米),upHealth为1时值有效
       * </pre>
       *
       * <code>float up = 12;</code>
       * @return This builder for chaining.
       * <code>optional float up = 12;</code>
       */
      public Builder clearUp() {
        
@@ -24924,10 +23023,8 @@
       *下视觉避障开关状态:0-关闭 1-打开
       * </pre>
       *
       * <code>uint32 avoidanceEnableStatusDown = 13;</code>
       * @return The avoidanceEnableStatusDown.
       * <code>optional uint32 avoidanceEnableStatusDown = 13;</code>
       */
      @java.lang.Override
      public int getAvoidanceEnableStatusDown() {
        return avoidanceEnableStatusDown_;
      }
@@ -24936,9 +23033,7 @@
       *下视觉避障开关状态:0-关闭 1-打开
       * </pre>
       *
       * <code>uint32 avoidanceEnableStatusDown = 13;</code>
       * @param value The avoidanceEnableStatusDown to set.
       * @return This builder for chaining.
       * <code>optional uint32 avoidanceEnableStatusDown = 13;</code>
       */
      public Builder setAvoidanceEnableStatusDown(int value) {
        
@@ -24951,8 +23046,7 @@
       *下视觉避障开关状态:0-关闭 1-打开
       * </pre>
       *
       * <code>uint32 avoidanceEnableStatusDown = 13;</code>
       * @return This builder for chaining.
       * <code>optional uint32 avoidanceEnableStatusDown = 13;</code>
       */
      public Builder clearAvoidanceEnableStatusDown() {
        
@@ -24967,10 +23061,8 @@
       *上视觉避障开关状态:0-关闭 1-打开
       * </pre>
       *
       * <code>uint32 avoidanceEnableStatusUp = 14;</code>
       * @return The avoidanceEnableStatusUp.
       * <code>optional uint32 avoidanceEnableStatusUp = 14;</code>
       */
      @java.lang.Override
      public int getAvoidanceEnableStatusUp() {
        return avoidanceEnableStatusUp_;
      }
@@ -24979,9 +23071,7 @@
       *上视觉避障开关状态:0-关闭 1-打开
       * </pre>
       *
       * <code>uint32 avoidanceEnableStatusUp = 14;</code>
       * @param value The avoidanceEnableStatusUp to set.
       * @return This builder for chaining.
       * <code>optional uint32 avoidanceEnableStatusUp = 14;</code>
       */
      public Builder setAvoidanceEnableStatusUp(int value) {
        
@@ -24994,8 +23084,7 @@
       *上视觉避障开关状态:0-关闭 1-打开
       * </pre>
       *
       * <code>uint32 avoidanceEnableStatusUp = 14;</code>
       * @return This builder for chaining.
       * <code>optional uint32 avoidanceEnableStatusUp = 14;</code>
       */
      public Builder clearAvoidanceEnableStatusUp() {
        
@@ -25010,10 +23099,8 @@
       *水平视觉避障开关状态:0-关闭 1-打开
       * </pre>
       *
       * <code>uint32 avoidanceEnableStatusHorizontal = 15;</code>
       * @return The avoidanceEnableStatusHorizontal.
       * <code>optional uint32 avoidanceEnableStatusHorizontal = 15;</code>
       */
      @java.lang.Override
      public int getAvoidanceEnableStatusHorizontal() {
        return avoidanceEnableStatusHorizontal_;
      }
@@ -25022,9 +23109,7 @@
       *水平视觉避障开关状态:0-关闭 1-打开
       * </pre>
       *
       * <code>uint32 avoidanceEnableStatusHorizontal = 15;</code>
       * @param value The avoidanceEnableStatusHorizontal to set.
       * @return This builder for chaining.
       * <code>optional uint32 avoidanceEnableStatusHorizontal = 15;</code>
       */
      public Builder setAvoidanceEnableStatusHorizontal(int value) {
        
@@ -25037,8 +23122,7 @@
       *水平视觉避障开关状态:0-关闭 1-打开
       * </pre>
       *
       * <code>uint32 avoidanceEnableStatusHorizontal = 15;</code>
       * @return This builder for chaining.
       * <code>optional uint32 avoidanceEnableStatusHorizontal = 15;</code>
       */
      public Builder clearAvoidanceEnableStatusHorizontal() {
        
@@ -25046,16 +23130,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -25074,12 +23156,11 @@
    private static final com.google.protobuf.Parser<AvoidanceData>
        PARSER = new com.google.protobuf.AbstractParser<AvoidanceData>() {
      @java.lang.Override
      public AvoidanceData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AvoidanceData(input, extensionRegistry);
          return new AvoidanceData(input, extensionRegistry);
      }
    };
@@ -25092,7 +23173,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.AvoidanceData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -25108,8 +23188,7 @@
     *报警信息ID
     * </pre>
     *
     * <code>uint32 alarmId = 1;</code>
     * @return The alarmId.
     * <code>optional uint32 alarmId = 1;</code>
     */
    int getAlarmId();
@@ -25118,8 +23197,7 @@
     *等级[1/2-警告 3/4/5-错误]
     * </pre>
     *
     * <code>uint32 reportLevel = 2;</code>
     * @return The reportLevel.
     * <code>optional uint32 reportLevel = 2;</code>
     */
    int getReportLevel();
@@ -25128,8 +23206,7 @@
     *报警信息描述(说明:支持中文和英文版本,默认中文,如需切换请联系技术支持)
     * </pre>
     *
     * <code>string alarmMssInfo = 3;</code>
     * @return The alarmMssInfo.
     * <code>optional string alarmMssInfo = 3;</code>
     */
    java.lang.String getAlarmMssInfo();
    /**
@@ -25137,8 +23214,7 @@
     *报警信息描述(说明:支持中文和英文版本,默认中文,如需切换请联系技术支持)
     * </pre>
     *
     * <code>string alarmMssInfo = 3;</code>
     * @return The bytes for alarmMssInfo.
     * <code>optional string alarmMssInfo = 3;</code>
     */
    com.google.protobuf.ByteString
        getAlarmMssInfoBytes();
@@ -25150,41 +23226,31 @@
   *
   * Protobuf type {@code HmsAlarmData}
   */
  public static final class HmsAlarmData extends
  public  static final class HmsAlarmData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HmsAlarmData)
      HmsAlarmDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HmsAlarmData.newBuilder() to construct.
    private HmsAlarmData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HmsAlarmData() {
      alarmId_ = 0;
      reportLevel_ = 0;
      alarmMssInfo_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new HmsAlarmData();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private HmsAlarmData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
@@ -25193,6 +23259,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              alarmId_ = input.readUInt32();
@@ -25209,24 +23281,14 @@
              alarmMssInfo_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -25235,7 +23297,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_HmsAlarmData_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_HmsAlarmData_fieldAccessorTable
@@ -25250,10 +23311,8 @@
     *报警信息ID
     * </pre>
     *
     * <code>uint32 alarmId = 1;</code>
     * @return The alarmId.
     * <code>optional uint32 alarmId = 1;</code>
     */
    @java.lang.Override
    public int getAlarmId() {
      return alarmId_;
    }
@@ -25265,10 +23324,8 @@
     *等级[1/2-警告 3/4/5-错误]
     * </pre>
     *
     * <code>uint32 reportLevel = 2;</code>
     * @return The reportLevel.
     * <code>optional uint32 reportLevel = 2;</code>
     */
    @java.lang.Override
    public int getReportLevel() {
      return reportLevel_;
    }
@@ -25280,10 +23337,8 @@
     *报警信息描述(说明:支持中文和英文版本,默认中文,如需切换请联系技术支持)
     * </pre>
     *
     * <code>string alarmMssInfo = 3;</code>
     * @return The alarmMssInfo.
     * <code>optional string alarmMssInfo = 3;</code>
     */
    @java.lang.Override
    public java.lang.String getAlarmMssInfo() {
      java.lang.Object ref = alarmMssInfo_;
      if (ref instanceof java.lang.String) {
@@ -25301,10 +23356,8 @@
     *报警信息描述(说明:支持中文和英文版本,默认中文,如需切换请联系技术支持)
     * </pre>
     *
     * <code>string alarmMssInfo = 3;</code>
     * @return The bytes for alarmMssInfo.
     * <code>optional string alarmMssInfo = 3;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getAlarmMssInfoBytes() {
      java.lang.Object ref = alarmMssInfo_;
@@ -25320,7 +23373,6 @@
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -25330,7 +23382,6 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (alarmId_ != 0) {
@@ -25339,13 +23390,11 @@
      if (reportLevel_ != 0) {
        output.writeUInt32(2, reportLevel_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(alarmMssInfo_)) {
      if (!getAlarmMssInfoBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, alarmMssInfo_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -25359,14 +23408,14 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(2, reportLevel_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(alarmMssInfo_)) {
      if (!getAlarmMssInfoBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, alarmMssInfo_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -25377,14 +23426,14 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData) obj;
      if (getAlarmId()
          != other.getAlarmId()) return false;
      if (getReportLevel()
          != other.getReportLevel()) return false;
      if (!getAlarmMssInfo()
          .equals(other.getAlarmMssInfo())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && (getAlarmId()
          == other.getAlarmId());
      result = result && (getReportLevel()
          == other.getReportLevel());
      result = result && getAlarmMssInfo()
          .equals(other.getAlarmMssInfo());
      return result;
    }
    @java.lang.Override
@@ -25393,7 +23442,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + ALARMID_FIELD_NUMBER;
      hash = (53 * hash) + getAlarmId();
      hash = (37 * hash) + REPORTLEVEL_FIELD_NUMBER;
@@ -25405,17 +23454,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -25475,7 +23513,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -25483,7 +23520,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -25511,7 +23547,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_HmsAlarmData_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_HmsAlarmData_fieldAccessorTable
@@ -25534,7 +23569,6 @@
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        alarmId_ = 0;
@@ -25546,18 +23580,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_HmsAlarmData_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData result = buildPartial();
        if (!result.isInitialized()) {
@@ -25566,7 +23597,6 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData(this);
        result.alarmId_ = alarmId_;
@@ -25576,39 +23606,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData)other);
@@ -25630,17 +23653,14 @@
          alarmMssInfo_ = other.alarmMssInfo_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -25665,10 +23685,8 @@
       *报警信息ID
       * </pre>
       *
       * <code>uint32 alarmId = 1;</code>
       * @return The alarmId.
       * <code>optional uint32 alarmId = 1;</code>
       */
      @java.lang.Override
      public int getAlarmId() {
        return alarmId_;
      }
@@ -25677,9 +23695,7 @@
       *报警信息ID
       * </pre>
       *
       * <code>uint32 alarmId = 1;</code>
       * @param value The alarmId to set.
       * @return This builder for chaining.
       * <code>optional uint32 alarmId = 1;</code>
       */
      public Builder setAlarmId(int value) {
        
@@ -25692,8 +23708,7 @@
       *报警信息ID
       * </pre>
       *
       * <code>uint32 alarmId = 1;</code>
       * @return This builder for chaining.
       * <code>optional uint32 alarmId = 1;</code>
       */
      public Builder clearAlarmId() {
        
@@ -25708,10 +23723,8 @@
       *等级[1/2-警告 3/4/5-错误]
       * </pre>
       *
       * <code>uint32 reportLevel = 2;</code>
       * @return The reportLevel.
       * <code>optional uint32 reportLevel = 2;</code>
       */
      @java.lang.Override
      public int getReportLevel() {
        return reportLevel_;
      }
@@ -25720,9 +23733,7 @@
       *等级[1/2-警告 3/4/5-错误]
       * </pre>
       *
       * <code>uint32 reportLevel = 2;</code>
       * @param value The reportLevel to set.
       * @return This builder for chaining.
       * <code>optional uint32 reportLevel = 2;</code>
       */
      public Builder setReportLevel(int value) {
        
@@ -25735,8 +23746,7 @@
       *等级[1/2-警告 3/4/5-错误]
       * </pre>
       *
       * <code>uint32 reportLevel = 2;</code>
       * @return This builder for chaining.
       * <code>optional uint32 reportLevel = 2;</code>
       */
      public Builder clearReportLevel() {
        
@@ -25751,8 +23761,7 @@
       *报警信息描述(说明:支持中文和英文版本,默认中文,如需切换请联系技术支持)
       * </pre>
       *
       * <code>string alarmMssInfo = 3;</code>
       * @return The alarmMssInfo.
       * <code>optional string alarmMssInfo = 3;</code>
       */
      public java.lang.String getAlarmMssInfo() {
        java.lang.Object ref = alarmMssInfo_;
@@ -25771,8 +23780,7 @@
       *报警信息描述(说明:支持中文和英文版本,默认中文,如需切换请联系技术支持)
       * </pre>
       *
       * <code>string alarmMssInfo = 3;</code>
       * @return The bytes for alarmMssInfo.
       * <code>optional string alarmMssInfo = 3;</code>
       */
      public com.google.protobuf.ByteString
          getAlarmMssInfoBytes() {
@@ -25792,9 +23800,7 @@
       *报警信息描述(说明:支持中文和英文版本,默认中文,如需切换请联系技术支持)
       * </pre>
       *
       * <code>string alarmMssInfo = 3;</code>
       * @param value The alarmMssInfo to set.
       * @return This builder for chaining.
       * <code>optional string alarmMssInfo = 3;</code>
       */
      public Builder setAlarmMssInfo(
          java.lang.String value) {
@@ -25811,8 +23817,7 @@
       *报警信息描述(说明:支持中文和英文版本,默认中文,如需切换请联系技术支持)
       * </pre>
       *
       * <code>string alarmMssInfo = 3;</code>
       * @return This builder for chaining.
       * <code>optional string alarmMssInfo = 3;</code>
       */
      public Builder clearAlarmMssInfo() {
        
@@ -25825,9 +23830,7 @@
       *报警信息描述(说明:支持中文和英文版本,默认中文,如需切换请联系技术支持)
       * </pre>
       *
       * <code>string alarmMssInfo = 3;</code>
       * @param value The bytes for alarmMssInfo to set.
       * @return This builder for chaining.
       * <code>optional string alarmMssInfo = 3;</code>
       */
      public Builder setAlarmMssInfoBytes(
          com.google.protobuf.ByteString value) {
@@ -25840,16 +23843,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -25868,12 +23869,11 @@
    private static final com.google.protobuf.Parser<HmsAlarmData>
        PARSER = new com.google.protobuf.AbstractParser<HmsAlarmData>() {
      @java.lang.Override
      public HmsAlarmData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HmsAlarmData(input, extensionRegistry);
          return new HmsAlarmData(input, extensionRegistry);
      }
    };
@@ -25886,7 +23886,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HmsAlarmData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -25902,8 +23901,7 @@
     *结束航线后动作:1=返航,2=原地悬停,3=原地降落,4=原地绕飞[目前只osdk4.1版本支持,中心点为最后一个航点,飞机绕此点画圆飞行],5=返回至第一个航点并悬停[如果飞机到最后一个点时RC和飞机失联,飞机会在最后一个点悬停]
     * </pre>
     *
     * <code>uint32 finishedAction = 1;</code>
     * @return The finishedAction.
     * <code>optional uint32 finishedAction = 1;</code>
     */
    int getFinishedAction();
@@ -25912,8 +23910,7 @@
     *最大飞行速度(单位:米/秒,范围0~15),默认15
     * </pre>
     *
     * <code>float maxSpeed = 2;</code>
     * @return The maxSpeed.
     * <code>optional float maxSpeed = 2;</code>
     */
    float getMaxSpeed();
@@ -25922,8 +23919,7 @@
     *自动飞行速度(单位:米/秒,范围0~15),默认8
     * </pre>
     *
     * <code>float autoSpeed = 3;</code>
     * @return The autoSpeed.
     * <code>optional float autoSpeed = 3;</code>
     */
    float getAutoSpeed();
@@ -25976,8 +23972,7 @@
     *网络失联后动作:0=返回HOME点,1=继续航线,默认0
     * </pre>
     *
     * <code>uint32 loseAction = 5;</code>
     * @return The loseAction.
     * <code>optional uint32 loseAction = 5;</code>
     */
    int getLoseAction();
@@ -25986,8 +23981,7 @@
     *返航高度:(单位:米,范围20~1500),说明:此值为相对起飞点高度,如果太高会有失去网络覆盖风险。不同飞行器返航逻辑不一样,若飞行器距HOME点距离过近,可能不会升高再返航。具体逻辑请咨询大疆DJI
     * </pre>
     *
     * <code>uint32 homeHeight = 6;</code>
     * @return The homeHeight.
     * <code>optional uint32 homeHeight = 6;</code>
     */
    int getHomeHeight();
@@ -25996,8 +23990,7 @@
     *是否开启节能模式:0=不是,1=是(说明:节能模式下,飞机沿最短直线距离由起飞点到航线第一个航点,非升高到第一个航点高度再飞往第一个航点)
     * </pre>
     *
     * <code>uint32 isSaveEnergyMode = 7;</code>
     * @return The isSaveEnergyMode.
     * <code>optional uint32 isSaveEnergyMode = 7;</code>
     */
    int getIsSaveEnergyMode();
@@ -26006,8 +23999,7 @@
     *起飞点机库信息
     * </pre>
     *
     * <code>.HangarPoint takePoint = 8;</code>
     * @return Whether the takePoint field is set.
     * <code>optional .HangarPoint takePoint = 8;</code>
     */
    boolean hasTakePoint();
    /**
@@ -26015,8 +24007,7 @@
     *起飞点机库信息
     * </pre>
     *
     * <code>.HangarPoint takePoint = 8;</code>
     * @return The takePoint.
     * <code>optional .HangarPoint takePoint = 8;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint getTakePoint();
    /**
@@ -26024,7 +24015,7 @@
     *起飞点机库信息
     * </pre>
     *
     * <code>.HangarPoint takePoint = 8;</code>
     * <code>optional .HangarPoint takePoint = 8;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPointOrBuilder getTakePointOrBuilder();
@@ -26033,8 +24024,7 @@
     *降落点机库信息
     * </pre>
     *
     * <code>.HangarPoint landPoint = 9;</code>
     * @return Whether the landPoint field is set.
     * <code>optional .HangarPoint landPoint = 9;</code>
     */
    boolean hasLandPoint();
    /**
@@ -26042,8 +24032,7 @@
     *降落点机库信息
     * </pre>
     *
     * <code>.HangarPoint landPoint = 9;</code>
     * @return The landPoint.
     * <code>optional .HangarPoint landPoint = 9;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint getLandPoint();
    /**
@@ -26051,7 +24040,7 @@
     *降落点机库信息
     * </pre>
     *
     * <code>.HangarPoint landPoint = 9;</code>
     * <code>optional .HangarPoint landPoint = 9;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPointOrBuilder getLandPointOrBuilder();
@@ -26104,8 +24093,7 @@
     *普通建模
     * </pre>
     *
     * <code>.NormalModel normalModel = 11;</code>
     * @return Whether the normalModel field is set.
     * <code>optional .NormalModel normalModel = 11;</code>
     */
    boolean hasNormalModel();
    /**
@@ -26113,8 +24101,7 @@
     *普通建模
     * </pre>
     *
     * <code>.NormalModel normalModel = 11;</code>
     * @return The normalModel.
     * <code>optional .NormalModel normalModel = 11;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel getNormalModel();
    /**
@@ -26122,7 +24109,7 @@
     *普通建模
     * </pre>
     *
     * <code>.NormalModel normalModel = 11;</code>
     * <code>optional .NormalModel normalModel = 11;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModelOrBuilder getNormalModelOrBuilder();
@@ -26131,8 +24118,7 @@
     *环绕建模
     * </pre>
     *
     * <code>.SurroundModel surroundModel = 12;</code>
     * @return Whether the surroundModel field is set.
     * <code>optional .SurroundModel surroundModel = 12;</code>
     */
    boolean hasSurroundModel();
    /**
@@ -26140,8 +24126,7 @@
     *环绕建模
     * </pre>
     *
     * <code>.SurroundModel surroundModel = 12;</code>
     * @return The surroundModel.
     * <code>optional .SurroundModel surroundModel = 12;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel getSurroundModel();
    /**
@@ -26149,7 +24134,7 @@
     *环绕建模
     * </pre>
     *
     * <code>.SurroundModel surroundModel = 12;</code>
     * <code>optional .SurroundModel surroundModel = 12;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModelOrBuilder getSurroundModelOrBuilder();
@@ -26158,8 +24143,7 @@
     *起飞点(对象只包含经纬高)
     * </pre>
     *
     * <code>.PointData takeOffPoint = 13;</code>
     * @return Whether the takeOffPoint field is set.
     * <code>optional .PointData takeOffPoint = 13;</code>
     */
    boolean hasTakeOffPoint();
    /**
@@ -26167,8 +24151,7 @@
     *起飞点(对象只包含经纬高)
     * </pre>
     *
     * <code>.PointData takeOffPoint = 13;</code>
     * @return The takeOffPoint.
     * <code>optional .PointData takeOffPoint = 13;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getTakeOffPoint();
    /**
@@ -26176,7 +24159,7 @@
     *起飞点(对象只包含经纬高)
     * </pre>
     *
     * <code>.PointData takeOffPoint = 13;</code>
     * <code>optional .PointData takeOffPoint = 13;</code>
     */
    com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder getTakeOffPointOrBuilder();
  }
@@ -26187,43 +24170,36 @@
   *
   * Protobuf type {@code PlanLineData}
   */
  public static final class PlanLineData extends
  public  static final class PlanLineData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PlanLineData)
      PlanLineDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PlanLineData.newBuilder() to construct.
    private PlanLineData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PlanLineData() {
      finishedAction_ = 0;
      maxSpeed_ = 0F;
      autoSpeed_ = 0F;
      points_ = java.util.Collections.emptyList();
      loseAction_ = 0;
      homeHeight_ = 0;
      isSaveEnergyMode_ = 0;
      interests_ = java.util.Collections.emptyList();
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PlanLineData();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private PlanLineData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
@@ -26232,6 +24208,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              finishedAction_ = input.readUInt32();
@@ -26248,9 +24230,9 @@
              break;
            }
            case 34: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                points_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData>();
                mutable_bitField0_ |= 0x00000001;
                mutable_bitField0_ |= 0x00000008;
              }
              points_.add(
                  input.readMessage(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.parser(), extensionRegistry));
@@ -26298,9 +24280,9 @@
              break;
            }
            case 82: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
              if (!((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
                interests_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData>();
                mutable_bitField0_ |= 0x00000002;
                mutable_bitField0_ |= 0x00000200;
              }
              interests_.add(
                  input.readMessage(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.parser(), extensionRegistry));
@@ -26345,30 +24327,20 @@
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          points_ = java.util.Collections.unmodifiableList(points_);
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
        if (((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
          interests_ = java.util.Collections.unmodifiableList(interests_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -26377,7 +24349,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PlanLineData_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PlanLineData_fieldAccessorTable
@@ -26385,6 +24356,7 @@
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData.class, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData.Builder.class);
    }
    private int bitField0_;
    public static final int FINISHEDACTION_FIELD_NUMBER = 1;
    private int finishedAction_;
    /**
@@ -26392,10 +24364,8 @@
     *结束航线后动作:1=返航,2=原地悬停,3=原地降落,4=原地绕飞[目前只osdk4.1版本支持,中心点为最后一个航点,飞机绕此点画圆飞行],5=返回至第一个航点并悬停[如果飞机到最后一个点时RC和飞机失联,飞机会在最后一个点悬停]
     * </pre>
     *
     * <code>uint32 finishedAction = 1;</code>
     * @return The finishedAction.
     * <code>optional uint32 finishedAction = 1;</code>
     */
    @java.lang.Override
    public int getFinishedAction() {
      return finishedAction_;
    }
@@ -26407,10 +24377,8 @@
     *最大飞行速度(单位:米/秒,范围0~15),默认15
     * </pre>
     *
     * <code>float maxSpeed = 2;</code>
     * @return The maxSpeed.
     * <code>optional float maxSpeed = 2;</code>
     */
    @java.lang.Override
    public float getMaxSpeed() {
      return maxSpeed_;
    }
@@ -26422,10 +24390,8 @@
     *自动飞行速度(单位:米/秒,范围0~15),默认8
     * </pre>
     *
     * <code>float autoSpeed = 3;</code>
     * @return The autoSpeed.
     * <code>optional float autoSpeed = 3;</code>
     */
    @java.lang.Override
    public float getAutoSpeed() {
      return autoSpeed_;
    }
@@ -26439,7 +24405,6 @@
     *
     * <code>repeated .PointData points = 4;</code>
     */
    @java.lang.Override
    public java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData> getPointsList() {
      return points_;
    }
@@ -26450,7 +24415,6 @@
     *
     * <code>repeated .PointData points = 4;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder> 
        getPointsOrBuilderList() {
      return points_;
@@ -26462,7 +24426,6 @@
     *
     * <code>repeated .PointData points = 4;</code>
     */
    @java.lang.Override
    public int getPointsCount() {
      return points_.size();
    }
@@ -26473,7 +24436,6 @@
     *
     * <code>repeated .PointData points = 4;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getPoints(int index) {
      return points_.get(index);
    }
@@ -26484,7 +24446,6 @@
     *
     * <code>repeated .PointData points = 4;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder getPointsOrBuilder(
        int index) {
      return points_.get(index);
@@ -26497,10 +24458,8 @@
     *网络失联后动作:0=返回HOME点,1=继续航线,默认0
     * </pre>
     *
     * <code>uint32 loseAction = 5;</code>
     * @return The loseAction.
     * <code>optional uint32 loseAction = 5;</code>
     */
    @java.lang.Override
    public int getLoseAction() {
      return loseAction_;
    }
@@ -26512,10 +24471,8 @@
     *返航高度:(单位:米,范围20~1500),说明:此值为相对起飞点高度,如果太高会有失去网络覆盖风险。不同飞行器返航逻辑不一样,若飞行器距HOME点距离过近,可能不会升高再返航。具体逻辑请咨询大疆DJI
     * </pre>
     *
     * <code>uint32 homeHeight = 6;</code>
     * @return The homeHeight.
     * <code>optional uint32 homeHeight = 6;</code>
     */
    @java.lang.Override
    public int getHomeHeight() {
      return homeHeight_;
    }
@@ -26527,10 +24484,8 @@
     *是否开启节能模式:0=不是,1=是(说明:节能模式下,飞机沿最短直线距离由起飞点到航线第一个航点,非升高到第一个航点高度再飞往第一个航点)
     * </pre>
     *
     * <code>uint32 isSaveEnergyMode = 7;</code>
     * @return The isSaveEnergyMode.
     * <code>optional uint32 isSaveEnergyMode = 7;</code>
     */
    @java.lang.Override
    public int getIsSaveEnergyMode() {
      return isSaveEnergyMode_;
    }
@@ -26542,10 +24497,8 @@
     *起飞点机库信息
     * </pre>
     *
     * <code>.HangarPoint takePoint = 8;</code>
     * @return Whether the takePoint field is set.
     * <code>optional .HangarPoint takePoint = 8;</code>
     */
    @java.lang.Override
    public boolean hasTakePoint() {
      return takePoint_ != null;
    }
@@ -26554,10 +24507,8 @@
     *起飞点机库信息
     * </pre>
     *
     * <code>.HangarPoint takePoint = 8;</code>
     * @return The takePoint.
     * <code>optional .HangarPoint takePoint = 8;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint getTakePoint() {
      return takePoint_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint.getDefaultInstance() : takePoint_;
    }
@@ -26566,9 +24517,8 @@
     *起飞点机库信息
     * </pre>
     *
     * <code>.HangarPoint takePoint = 8;</code>
     * <code>optional .HangarPoint takePoint = 8;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPointOrBuilder getTakePointOrBuilder() {
      return getTakePoint();
    }
@@ -26580,10 +24530,8 @@
     *降落点机库信息
     * </pre>
     *
     * <code>.HangarPoint landPoint = 9;</code>
     * @return Whether the landPoint field is set.
     * <code>optional .HangarPoint landPoint = 9;</code>
     */
    @java.lang.Override
    public boolean hasLandPoint() {
      return landPoint_ != null;
    }
@@ -26592,10 +24540,8 @@
     *降落点机库信息
     * </pre>
     *
     * <code>.HangarPoint landPoint = 9;</code>
     * @return The landPoint.
     * <code>optional .HangarPoint landPoint = 9;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint getLandPoint() {
      return landPoint_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint.getDefaultInstance() : landPoint_;
    }
@@ -26604,9 +24550,8 @@
     *降落点机库信息
     * </pre>
     *
     * <code>.HangarPoint landPoint = 9;</code>
     * <code>optional .HangarPoint landPoint = 9;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPointOrBuilder getLandPointOrBuilder() {
      return getLandPoint();
    }
@@ -26620,7 +24565,6 @@
     *
     * <code>repeated .PointData interests = 10;</code>
     */
    @java.lang.Override
    public java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData> getInterestsList() {
      return interests_;
    }
@@ -26631,7 +24575,6 @@
     *
     * <code>repeated .PointData interests = 10;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder> 
        getInterestsOrBuilderList() {
      return interests_;
@@ -26643,7 +24586,6 @@
     *
     * <code>repeated .PointData interests = 10;</code>
     */
    @java.lang.Override
    public int getInterestsCount() {
      return interests_.size();
    }
@@ -26654,7 +24596,6 @@
     *
     * <code>repeated .PointData interests = 10;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getInterests(int index) {
      return interests_.get(index);
    }
@@ -26665,7 +24606,6 @@
     *
     * <code>repeated .PointData interests = 10;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder getInterestsOrBuilder(
        int index) {
      return interests_.get(index);
@@ -26678,10 +24618,8 @@
     *普通建模
     * </pre>
     *
     * <code>.NormalModel normalModel = 11;</code>
     * @return Whether the normalModel field is set.
     * <code>optional .NormalModel normalModel = 11;</code>
     */
    @java.lang.Override
    public boolean hasNormalModel() {
      return normalModel_ != null;
    }
@@ -26690,10 +24628,8 @@
     *普通建模
     * </pre>
     *
     * <code>.NormalModel normalModel = 11;</code>
     * @return The normalModel.
     * <code>optional .NormalModel normalModel = 11;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel getNormalModel() {
      return normalModel_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel.getDefaultInstance() : normalModel_;
    }
@@ -26702,9 +24638,8 @@
     *普通建模
     * </pre>
     *
     * <code>.NormalModel normalModel = 11;</code>
     * <code>optional .NormalModel normalModel = 11;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModelOrBuilder getNormalModelOrBuilder() {
      return getNormalModel();
    }
@@ -26716,10 +24651,8 @@
     *环绕建模
     * </pre>
     *
     * <code>.SurroundModel surroundModel = 12;</code>
     * @return Whether the surroundModel field is set.
     * <code>optional .SurroundModel surroundModel = 12;</code>
     */
    @java.lang.Override
    public boolean hasSurroundModel() {
      return surroundModel_ != null;
    }
@@ -26728,10 +24661,8 @@
     *环绕建模
     * </pre>
     *
     * <code>.SurroundModel surroundModel = 12;</code>
     * @return The surroundModel.
     * <code>optional .SurroundModel surroundModel = 12;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel getSurroundModel() {
      return surroundModel_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel.getDefaultInstance() : surroundModel_;
    }
@@ -26740,9 +24671,8 @@
     *环绕建模
     * </pre>
     *
     * <code>.SurroundModel surroundModel = 12;</code>
     * <code>optional .SurroundModel surroundModel = 12;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModelOrBuilder getSurroundModelOrBuilder() {
      return getSurroundModel();
    }
@@ -26754,10 +24684,8 @@
     *起飞点(对象只包含经纬高)
     * </pre>
     *
     * <code>.PointData takeOffPoint = 13;</code>
     * @return Whether the takeOffPoint field is set.
     * <code>optional .PointData takeOffPoint = 13;</code>
     */
    @java.lang.Override
    public boolean hasTakeOffPoint() {
      return takeOffPoint_ != null;
    }
@@ -26766,10 +24694,8 @@
     *起飞点(对象只包含经纬高)
     * </pre>
     *
     * <code>.PointData takeOffPoint = 13;</code>
     * @return The takeOffPoint.
     * <code>optional .PointData takeOffPoint = 13;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getTakeOffPoint() {
      return takeOffPoint_ == null ? com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.getDefaultInstance() : takeOffPoint_;
    }
@@ -26778,15 +24704,13 @@
     *起飞点(对象只包含经纬高)
     * </pre>
     *
     * <code>.PointData takeOffPoint = 13;</code>
     * <code>optional .PointData takeOffPoint = 13;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder getTakeOffPointOrBuilder() {
      return getTakeOffPoint();
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -26796,16 +24720,15 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (finishedAction_ != 0) {
        output.writeUInt32(1, finishedAction_);
      }
      if (java.lang.Float.floatToRawIntBits(maxSpeed_) != 0) {
      if (maxSpeed_ != 0F) {
        output.writeFloat(2, maxSpeed_);
      }
      if (java.lang.Float.floatToRawIntBits(autoSpeed_) != 0) {
      if (autoSpeed_ != 0F) {
        output.writeFloat(3, autoSpeed_);
      }
      for (int i = 0; i < points_.size(); i++) {
@@ -26838,10 +24761,8 @@
      if (takeOffPoint_ != null) {
        output.writeMessage(13, getTakeOffPoint());
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -26851,11 +24772,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, finishedAction_);
      }
      if (java.lang.Float.floatToRawIntBits(maxSpeed_) != 0) {
      if (maxSpeed_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, maxSpeed_);
      }
      if (java.lang.Float.floatToRawIntBits(autoSpeed_) != 0) {
      if (autoSpeed_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, autoSpeed_);
      }
@@ -26899,11 +24820,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(13, getTakeOffPoint());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -26914,51 +24835,53 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData) obj;
      if (getFinishedAction()
          != other.getFinishedAction()) return false;
      if (java.lang.Float.floatToIntBits(getMaxSpeed())
          != java.lang.Float.floatToIntBits(
              other.getMaxSpeed())) return false;
      if (java.lang.Float.floatToIntBits(getAutoSpeed())
          != java.lang.Float.floatToIntBits(
              other.getAutoSpeed())) return false;
      if (!getPointsList()
          .equals(other.getPointsList())) return false;
      if (getLoseAction()
          != other.getLoseAction()) return false;
      if (getHomeHeight()
          != other.getHomeHeight()) return false;
      if (getIsSaveEnergyMode()
          != other.getIsSaveEnergyMode()) return false;
      if (hasTakePoint() != other.hasTakePoint()) return false;
      boolean result = true;
      result = result && (getFinishedAction()
          == other.getFinishedAction());
      result = result && (
          java.lang.Float.floatToIntBits(getMaxSpeed())
          == java.lang.Float.floatToIntBits(
              other.getMaxSpeed()));
      result = result && (
          java.lang.Float.floatToIntBits(getAutoSpeed())
          == java.lang.Float.floatToIntBits(
              other.getAutoSpeed()));
      result = result && getPointsList()
          .equals(other.getPointsList());
      result = result && (getLoseAction()
          == other.getLoseAction());
      result = result && (getHomeHeight()
          == other.getHomeHeight());
      result = result && (getIsSaveEnergyMode()
          == other.getIsSaveEnergyMode());
      result = result && (hasTakePoint() == other.hasTakePoint());
      if (hasTakePoint()) {
        if (!getTakePoint()
            .equals(other.getTakePoint())) return false;
        result = result && getTakePoint()
            .equals(other.getTakePoint());
      }
      if (hasLandPoint() != other.hasLandPoint()) return false;
      result = result && (hasLandPoint() == other.hasLandPoint());
      if (hasLandPoint()) {
        if (!getLandPoint()
            .equals(other.getLandPoint())) return false;
        result = result && getLandPoint()
            .equals(other.getLandPoint());
      }
      if (!getInterestsList()
          .equals(other.getInterestsList())) return false;
      if (hasNormalModel() != other.hasNormalModel()) return false;
      result = result && getInterestsList()
          .equals(other.getInterestsList());
      result = result && (hasNormalModel() == other.hasNormalModel());
      if (hasNormalModel()) {
        if (!getNormalModel()
            .equals(other.getNormalModel())) return false;
        result = result && getNormalModel()
            .equals(other.getNormalModel());
      }
      if (hasSurroundModel() != other.hasSurroundModel()) return false;
      result = result && (hasSurroundModel() == other.hasSurroundModel());
      if (hasSurroundModel()) {
        if (!getSurroundModel()
            .equals(other.getSurroundModel())) return false;
        result = result && getSurroundModel()
            .equals(other.getSurroundModel());
      }
      if (hasTakeOffPoint() != other.hasTakeOffPoint()) return false;
      result = result && (hasTakeOffPoint() == other.hasTakeOffPoint());
      if (hasTakeOffPoint()) {
        if (!getTakeOffPoint()
            .equals(other.getTakeOffPoint())) return false;
        result = result && getTakeOffPoint()
            .equals(other.getTakeOffPoint());
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      return result;
    }
    @java.lang.Override
@@ -26967,7 +24890,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + FINISHEDACTION_FIELD_NUMBER;
      hash = (53 * hash) + getFinishedAction();
      hash = (37 * hash) + MAXSPEED_FIELD_NUMBER;
@@ -27015,17 +24938,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -27085,7 +24997,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -27093,7 +25004,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -27121,7 +25031,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PlanLineData_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PlanLineData_fieldAccessorTable
@@ -27146,7 +25055,6 @@
          getInterestsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        finishedAction_ = 0;
@@ -27157,7 +25065,7 @@
        if (pointsBuilder_ == null) {
          points_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          pointsBuilder_.clear();
        }
@@ -27181,7 +25089,7 @@
        }
        if (interestsBuilder_ == null) {
          interests_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          bitField0_ = (bitField0_ & ~0x00000200);
        } else {
          interestsBuilder_.clear();
        }
@@ -27206,18 +25114,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PlanLineData_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData result = buildPartial();
        if (!result.isInitialized()) {
@@ -27226,17 +25131,17 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.finishedAction_ = finishedAction_;
        result.maxSpeed_ = maxSpeed_;
        result.autoSpeed_ = autoSpeed_;
        if (pointsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            points_ = java.util.Collections.unmodifiableList(points_);
            bitField0_ = (bitField0_ & ~0x00000001);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.points_ = points_;
        } else {
@@ -27256,9 +25161,9 @@
          result.landPoint_ = landPointBuilder_.build();
        }
        if (interestsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
          if (((bitField0_ & 0x00000200) == 0x00000200)) {
            interests_ = java.util.Collections.unmodifiableList(interests_);
            bitField0_ = (bitField0_ & ~0x00000002);
            bitField0_ = (bitField0_ & ~0x00000200);
          }
          result.interests_ = interests_;
        } else {
@@ -27279,43 +25184,37 @@
        } else {
          result.takeOffPoint_ = takeOffPointBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData)other);
@@ -27340,7 +25239,7 @@
          if (!other.points_.isEmpty()) {
            if (points_.isEmpty()) {
              points_ = other.points_;
              bitField0_ = (bitField0_ & ~0x00000001);
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensurePointsIsMutable();
              points_.addAll(other.points_);
@@ -27353,7 +25252,7 @@
              pointsBuilder_.dispose();
              pointsBuilder_ = null;
              points_ = other.points_;
              bitField0_ = (bitField0_ & ~0x00000001);
              bitField0_ = (bitField0_ & ~0x00000008);
              pointsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPointsFieldBuilder() : null;
@@ -27381,7 +25280,7 @@
          if (!other.interests_.isEmpty()) {
            if (interests_.isEmpty()) {
              interests_ = other.interests_;
              bitField0_ = (bitField0_ & ~0x00000002);
              bitField0_ = (bitField0_ & ~0x00000200);
            } else {
              ensureInterestsIsMutable();
              interests_.addAll(other.interests_);
@@ -27394,7 +25293,7 @@
              interestsBuilder_.dispose();
              interestsBuilder_ = null;
              interests_ = other.interests_;
              bitField0_ = (bitField0_ & ~0x00000002);
              bitField0_ = (bitField0_ & ~0x00000200);
              interestsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getInterestsFieldBuilder() : null;
@@ -27412,17 +25311,14 @@
        if (other.hasTakeOffPoint()) {
          mergeTakeOffPoint(other.getTakeOffPoint());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -27448,10 +25344,8 @@
       *结束航线后动作:1=返航,2=原地悬停,3=原地降落,4=原地绕飞[目前只osdk4.1版本支持,中心点为最后一个航点,飞机绕此点画圆飞行],5=返回至第一个航点并悬停[如果飞机到最后一个点时RC和飞机失联,飞机会在最后一个点悬停]
       * </pre>
       *
       * <code>uint32 finishedAction = 1;</code>
       * @return The finishedAction.
       * <code>optional uint32 finishedAction = 1;</code>
       */
      @java.lang.Override
      public int getFinishedAction() {
        return finishedAction_;
      }
@@ -27460,9 +25354,7 @@
       *结束航线后动作:1=返航,2=原地悬停,3=原地降落,4=原地绕飞[目前只osdk4.1版本支持,中心点为最后一个航点,飞机绕此点画圆飞行],5=返回至第一个航点并悬停[如果飞机到最后一个点时RC和飞机失联,飞机会在最后一个点悬停]
       * </pre>
       *
       * <code>uint32 finishedAction = 1;</code>
       * @param value The finishedAction to set.
       * @return This builder for chaining.
       * <code>optional uint32 finishedAction = 1;</code>
       */
      public Builder setFinishedAction(int value) {
        
@@ -27475,8 +25367,7 @@
       *结束航线后动作:1=返航,2=原地悬停,3=原地降落,4=原地绕飞[目前只osdk4.1版本支持,中心点为最后一个航点,飞机绕此点画圆飞行],5=返回至第一个航点并悬停[如果飞机到最后一个点时RC和飞机失联,飞机会在最后一个点悬停]
       * </pre>
       *
       * <code>uint32 finishedAction = 1;</code>
       * @return This builder for chaining.
       * <code>optional uint32 finishedAction = 1;</code>
       */
      public Builder clearFinishedAction() {
        
@@ -27491,10 +25382,8 @@
       *最大飞行速度(单位:米/秒,范围0~15),默认15
       * </pre>
       *
       * <code>float maxSpeed = 2;</code>
       * @return The maxSpeed.
       * <code>optional float maxSpeed = 2;</code>
       */
      @java.lang.Override
      public float getMaxSpeed() {
        return maxSpeed_;
      }
@@ -27503,9 +25392,7 @@
       *最大飞行速度(单位:米/秒,范围0~15),默认15
       * </pre>
       *
       * <code>float maxSpeed = 2;</code>
       * @param value The maxSpeed to set.
       * @return This builder for chaining.
       * <code>optional float maxSpeed = 2;</code>
       */
      public Builder setMaxSpeed(float value) {
        
@@ -27518,8 +25405,7 @@
       *最大飞行速度(单位:米/秒,范围0~15),默认15
       * </pre>
       *
       * <code>float maxSpeed = 2;</code>
       * @return This builder for chaining.
       * <code>optional float maxSpeed = 2;</code>
       */
      public Builder clearMaxSpeed() {
        
@@ -27534,10 +25420,8 @@
       *自动飞行速度(单位:米/秒,范围0~15),默认8
       * </pre>
       *
       * <code>float autoSpeed = 3;</code>
       * @return The autoSpeed.
       * <code>optional float autoSpeed = 3;</code>
       */
      @java.lang.Override
      public float getAutoSpeed() {
        return autoSpeed_;
      }
@@ -27546,9 +25430,7 @@
       *自动飞行速度(单位:米/秒,范围0~15),默认8
       * </pre>
       *
       * <code>float autoSpeed = 3;</code>
       * @param value The autoSpeed to set.
       * @return This builder for chaining.
       * <code>optional float autoSpeed = 3;</code>
       */
      public Builder setAutoSpeed(float value) {
        
@@ -27561,8 +25443,7 @@
       *自动飞行速度(单位:米/秒,范围0~15),默认8
       * </pre>
       *
       * <code>float autoSpeed = 3;</code>
       * @return This builder for chaining.
       * <code>optional float autoSpeed = 3;</code>
       */
      public Builder clearAutoSpeed() {
        
@@ -27574,9 +25455,9 @@
      private java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData> points_ =
        java.util.Collections.emptyList();
      private void ensurePointsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          points_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData>(points_);
          bitField0_ |= 0x00000001;
          bitField0_ |= 0x00000008;
         }
      }
@@ -27770,7 +25651,7 @@
      public Builder clearPoints() {
        if (pointsBuilder_ == null) {
          points_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          pointsBuilder_.clear();
@@ -27875,7 +25756,7 @@
          pointsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder>(
                  points_,
                  ((bitField0_ & 0x00000001) != 0),
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          points_ = null;
@@ -27889,10 +25770,8 @@
       *网络失联后动作:0=返回HOME点,1=继续航线,默认0
       * </pre>
       *
       * <code>uint32 loseAction = 5;</code>
       * @return The loseAction.
       * <code>optional uint32 loseAction = 5;</code>
       */
      @java.lang.Override
      public int getLoseAction() {
        return loseAction_;
      }
@@ -27901,9 +25780,7 @@
       *网络失联后动作:0=返回HOME点,1=继续航线,默认0
       * </pre>
       *
       * <code>uint32 loseAction = 5;</code>
       * @param value The loseAction to set.
       * @return This builder for chaining.
       * <code>optional uint32 loseAction = 5;</code>
       */
      public Builder setLoseAction(int value) {
        
@@ -27916,8 +25793,7 @@
       *网络失联后动作:0=返回HOME点,1=继续航线,默认0
       * </pre>
       *
       * <code>uint32 loseAction = 5;</code>
       * @return This builder for chaining.
       * <code>optional uint32 loseAction = 5;</code>
       */
      public Builder clearLoseAction() {
        
@@ -27932,10 +25808,8 @@
       *返航高度:(单位:米,范围20~1500),说明:此值为相对起飞点高度,如果太高会有失去网络覆盖风险。不同飞行器返航逻辑不一样,若飞行器距HOME点距离过近,可能不会升高再返航。具体逻辑请咨询大疆DJI
       * </pre>
       *
       * <code>uint32 homeHeight = 6;</code>
       * @return The homeHeight.
       * <code>optional uint32 homeHeight = 6;</code>
       */
      @java.lang.Override
      public int getHomeHeight() {
        return homeHeight_;
      }
@@ -27944,9 +25818,7 @@
       *返航高度:(单位:米,范围20~1500),说明:此值为相对起飞点高度,如果太高会有失去网络覆盖风险。不同飞行器返航逻辑不一样,若飞行器距HOME点距离过近,可能不会升高再返航。具体逻辑请咨询大疆DJI
       * </pre>
       *
       * <code>uint32 homeHeight = 6;</code>
       * @param value The homeHeight to set.
       * @return This builder for chaining.
       * <code>optional uint32 homeHeight = 6;</code>
       */
      public Builder setHomeHeight(int value) {
        
@@ -27959,8 +25831,7 @@
       *返航高度:(单位:米,范围20~1500),说明:此值为相对起飞点高度,如果太高会有失去网络覆盖风险。不同飞行器返航逻辑不一样,若飞行器距HOME点距离过近,可能不会升高再返航。具体逻辑请咨询大疆DJI
       * </pre>
       *
       * <code>uint32 homeHeight = 6;</code>
       * @return This builder for chaining.
       * <code>optional uint32 homeHeight = 6;</code>
       */
      public Builder clearHomeHeight() {
        
@@ -27975,10 +25846,8 @@
       *是否开启节能模式:0=不是,1=是(说明:节能模式下,飞机沿最短直线距离由起飞点到航线第一个航点,非升高到第一个航点高度再飞往第一个航点)
       * </pre>
       *
       * <code>uint32 isSaveEnergyMode = 7;</code>
       * @return The isSaveEnergyMode.
       * <code>optional uint32 isSaveEnergyMode = 7;</code>
       */
      @java.lang.Override
      public int getIsSaveEnergyMode() {
        return isSaveEnergyMode_;
      }
@@ -27987,9 +25856,7 @@
       *是否开启节能模式:0=不是,1=是(说明:节能模式下,飞机沿最短直线距离由起飞点到航线第一个航点,非升高到第一个航点高度再飞往第一个航点)
       * </pre>
       *
       * <code>uint32 isSaveEnergyMode = 7;</code>
       * @param value The isSaveEnergyMode to set.
       * @return This builder for chaining.
       * <code>optional uint32 isSaveEnergyMode = 7;</code>
       */
      public Builder setIsSaveEnergyMode(int value) {
        
@@ -28002,8 +25869,7 @@
       *是否开启节能模式:0=不是,1=是(说明:节能模式下,飞机沿最短直线距离由起飞点到航线第一个航点,非升高到第一个航点高度再飞往第一个航点)
       * </pre>
       *
       * <code>uint32 isSaveEnergyMode = 7;</code>
       * @return This builder for chaining.
       * <code>optional uint32 isSaveEnergyMode = 7;</code>
       */
      public Builder clearIsSaveEnergyMode() {
        
@@ -28012,7 +25878,7 @@
        return this;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint takePoint_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint takePoint_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint, com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPointOrBuilder> takePointBuilder_;
      /**
@@ -28020,8 +25886,7 @@
       *起飞点机库信息
       * </pre>
       *
       * <code>.HangarPoint takePoint = 8;</code>
       * @return Whether the takePoint field is set.
       * <code>optional .HangarPoint takePoint = 8;</code>
       */
      public boolean hasTakePoint() {
        return takePointBuilder_ != null || takePoint_ != null;
@@ -28031,8 +25896,7 @@
       *起飞点机库信息
       * </pre>
       *
       * <code>.HangarPoint takePoint = 8;</code>
       * @return The takePoint.
       * <code>optional .HangarPoint takePoint = 8;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint getTakePoint() {
        if (takePointBuilder_ == null) {
@@ -28046,7 +25910,7 @@
       *起飞点机库信息
       * </pre>
       *
       * <code>.HangarPoint takePoint = 8;</code>
       * <code>optional .HangarPoint takePoint = 8;</code>
       */
      public Builder setTakePoint(com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint value) {
        if (takePointBuilder_ == null) {
@@ -28066,7 +25930,7 @@
       *起飞点机库信息
       * </pre>
       *
       * <code>.HangarPoint takePoint = 8;</code>
       * <code>optional .HangarPoint takePoint = 8;</code>
       */
      public Builder setTakePoint(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint.Builder builderForValue) {
@@ -28084,7 +25948,7 @@
       *起飞点机库信息
       * </pre>
       *
       * <code>.HangarPoint takePoint = 8;</code>
       * <code>optional .HangarPoint takePoint = 8;</code>
       */
      public Builder mergeTakePoint(com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint value) {
        if (takePointBuilder_ == null) {
@@ -28106,7 +25970,7 @@
       *起飞点机库信息
       * </pre>
       *
       * <code>.HangarPoint takePoint = 8;</code>
       * <code>optional .HangarPoint takePoint = 8;</code>
       */
      public Builder clearTakePoint() {
        if (takePointBuilder_ == null) {
@@ -28124,7 +25988,7 @@
       *起飞点机库信息
       * </pre>
       *
       * <code>.HangarPoint takePoint = 8;</code>
       * <code>optional .HangarPoint takePoint = 8;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint.Builder getTakePointBuilder() {
        
@@ -28136,7 +26000,7 @@
       *起飞点机库信息
       * </pre>
       *
       * <code>.HangarPoint takePoint = 8;</code>
       * <code>optional .HangarPoint takePoint = 8;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPointOrBuilder getTakePointOrBuilder() {
        if (takePointBuilder_ != null) {
@@ -28151,7 +26015,7 @@
       *起飞点机库信息
       * </pre>
       *
       * <code>.HangarPoint takePoint = 8;</code>
       * <code>optional .HangarPoint takePoint = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint, com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPointOrBuilder> 
@@ -28167,7 +26031,7 @@
        return takePointBuilder_;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint landPoint_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint landPoint_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint, com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPointOrBuilder> landPointBuilder_;
      /**
@@ -28175,8 +26039,7 @@
       *降落点机库信息
       * </pre>
       *
       * <code>.HangarPoint landPoint = 9;</code>
       * @return Whether the landPoint field is set.
       * <code>optional .HangarPoint landPoint = 9;</code>
       */
      public boolean hasLandPoint() {
        return landPointBuilder_ != null || landPoint_ != null;
@@ -28186,8 +26049,7 @@
       *降落点机库信息
       * </pre>
       *
       * <code>.HangarPoint landPoint = 9;</code>
       * @return The landPoint.
       * <code>optional .HangarPoint landPoint = 9;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint getLandPoint() {
        if (landPointBuilder_ == null) {
@@ -28201,7 +26063,7 @@
       *降落点机库信息
       * </pre>
       *
       * <code>.HangarPoint landPoint = 9;</code>
       * <code>optional .HangarPoint landPoint = 9;</code>
       */
      public Builder setLandPoint(com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint value) {
        if (landPointBuilder_ == null) {
@@ -28221,7 +26083,7 @@
       *降落点机库信息
       * </pre>
       *
       * <code>.HangarPoint landPoint = 9;</code>
       * <code>optional .HangarPoint landPoint = 9;</code>
       */
      public Builder setLandPoint(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint.Builder builderForValue) {
@@ -28239,7 +26101,7 @@
       *降落点机库信息
       * </pre>
       *
       * <code>.HangarPoint landPoint = 9;</code>
       * <code>optional .HangarPoint landPoint = 9;</code>
       */
      public Builder mergeLandPoint(com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint value) {
        if (landPointBuilder_ == null) {
@@ -28261,7 +26123,7 @@
       *降落点机库信息
       * </pre>
       *
       * <code>.HangarPoint landPoint = 9;</code>
       * <code>optional .HangarPoint landPoint = 9;</code>
       */
      public Builder clearLandPoint() {
        if (landPointBuilder_ == null) {
@@ -28279,7 +26141,7 @@
       *降落点机库信息
       * </pre>
       *
       * <code>.HangarPoint landPoint = 9;</code>
       * <code>optional .HangarPoint landPoint = 9;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint.Builder getLandPointBuilder() {
        
@@ -28291,7 +26153,7 @@
       *降落点机库信息
       * </pre>
       *
       * <code>.HangarPoint landPoint = 9;</code>
       * <code>optional .HangarPoint landPoint = 9;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPointOrBuilder getLandPointOrBuilder() {
        if (landPointBuilder_ != null) {
@@ -28306,7 +26168,7 @@
       *降落点机库信息
       * </pre>
       *
       * <code>.HangarPoint landPoint = 9;</code>
       * <code>optional .HangarPoint landPoint = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint, com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPointOrBuilder> 
@@ -28325,9 +26187,9 @@
      private java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData> interests_ =
        java.util.Collections.emptyList();
      private void ensureInterestsIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
        if (!((bitField0_ & 0x00000200) == 0x00000200)) {
          interests_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData>(interests_);
          bitField0_ |= 0x00000002;
          bitField0_ |= 0x00000200;
         }
      }
@@ -28521,7 +26383,7 @@
      public Builder clearInterests() {
        if (interestsBuilder_ == null) {
          interests_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          bitField0_ = (bitField0_ & ~0x00000200);
          onChanged();
        } else {
          interestsBuilder_.clear();
@@ -28626,7 +26488,7 @@
          interestsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder>(
                  interests_,
                  ((bitField0_ & 0x00000002) != 0),
                  ((bitField0_ & 0x00000200) == 0x00000200),
                  getParentForChildren(),
                  isClean());
          interests_ = null;
@@ -28634,7 +26496,7 @@
        return interestsBuilder_;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel normalModel_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel normalModel_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel, com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModelOrBuilder> normalModelBuilder_;
      /**
@@ -28642,8 +26504,7 @@
       *普通建模
       * </pre>
       *
       * <code>.NormalModel normalModel = 11;</code>
       * @return Whether the normalModel field is set.
       * <code>optional .NormalModel normalModel = 11;</code>
       */
      public boolean hasNormalModel() {
        return normalModelBuilder_ != null || normalModel_ != null;
@@ -28653,8 +26514,7 @@
       *普通建模
       * </pre>
       *
       * <code>.NormalModel normalModel = 11;</code>
       * @return The normalModel.
       * <code>optional .NormalModel normalModel = 11;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel getNormalModel() {
        if (normalModelBuilder_ == null) {
@@ -28668,7 +26528,7 @@
       *普通建模
       * </pre>
       *
       * <code>.NormalModel normalModel = 11;</code>
       * <code>optional .NormalModel normalModel = 11;</code>
       */
      public Builder setNormalModel(com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel value) {
        if (normalModelBuilder_ == null) {
@@ -28688,7 +26548,7 @@
       *普通建模
       * </pre>
       *
       * <code>.NormalModel normalModel = 11;</code>
       * <code>optional .NormalModel normalModel = 11;</code>
       */
      public Builder setNormalModel(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel.Builder builderForValue) {
@@ -28706,7 +26566,7 @@
       *普通建模
       * </pre>
       *
       * <code>.NormalModel normalModel = 11;</code>
       * <code>optional .NormalModel normalModel = 11;</code>
       */
      public Builder mergeNormalModel(com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel value) {
        if (normalModelBuilder_ == null) {
@@ -28728,7 +26588,7 @@
       *普通建模
       * </pre>
       *
       * <code>.NormalModel normalModel = 11;</code>
       * <code>optional .NormalModel normalModel = 11;</code>
       */
      public Builder clearNormalModel() {
        if (normalModelBuilder_ == null) {
@@ -28746,7 +26606,7 @@
       *普通建模
       * </pre>
       *
       * <code>.NormalModel normalModel = 11;</code>
       * <code>optional .NormalModel normalModel = 11;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel.Builder getNormalModelBuilder() {
        
@@ -28758,7 +26618,7 @@
       *普通建模
       * </pre>
       *
       * <code>.NormalModel normalModel = 11;</code>
       * <code>optional .NormalModel normalModel = 11;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModelOrBuilder getNormalModelOrBuilder() {
        if (normalModelBuilder_ != null) {
@@ -28773,7 +26633,7 @@
       *普通建模
       * </pre>
       *
       * <code>.NormalModel normalModel = 11;</code>
       * <code>optional .NormalModel normalModel = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel, com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModelOrBuilder> 
@@ -28789,7 +26649,7 @@
        return normalModelBuilder_;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel surroundModel_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel surroundModel_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel, com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModelOrBuilder> surroundModelBuilder_;
      /**
@@ -28797,8 +26657,7 @@
       *环绕建模
       * </pre>
       *
       * <code>.SurroundModel surroundModel = 12;</code>
       * @return Whether the surroundModel field is set.
       * <code>optional .SurroundModel surroundModel = 12;</code>
       */
      public boolean hasSurroundModel() {
        return surroundModelBuilder_ != null || surroundModel_ != null;
@@ -28808,8 +26667,7 @@
       *环绕建模
       * </pre>
       *
       * <code>.SurroundModel surroundModel = 12;</code>
       * @return The surroundModel.
       * <code>optional .SurroundModel surroundModel = 12;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel getSurroundModel() {
        if (surroundModelBuilder_ == null) {
@@ -28823,7 +26681,7 @@
       *环绕建模
       * </pre>
       *
       * <code>.SurroundModel surroundModel = 12;</code>
       * <code>optional .SurroundModel surroundModel = 12;</code>
       */
      public Builder setSurroundModel(com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel value) {
        if (surroundModelBuilder_ == null) {
@@ -28843,7 +26701,7 @@
       *环绕建模
       * </pre>
       *
       * <code>.SurroundModel surroundModel = 12;</code>
       * <code>optional .SurroundModel surroundModel = 12;</code>
       */
      public Builder setSurroundModel(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel.Builder builderForValue) {
@@ -28861,7 +26719,7 @@
       *环绕建模
       * </pre>
       *
       * <code>.SurroundModel surroundModel = 12;</code>
       * <code>optional .SurroundModel surroundModel = 12;</code>
       */
      public Builder mergeSurroundModel(com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel value) {
        if (surroundModelBuilder_ == null) {
@@ -28883,7 +26741,7 @@
       *环绕建模
       * </pre>
       *
       * <code>.SurroundModel surroundModel = 12;</code>
       * <code>optional .SurroundModel surroundModel = 12;</code>
       */
      public Builder clearSurroundModel() {
        if (surroundModelBuilder_ == null) {
@@ -28901,7 +26759,7 @@
       *环绕建模
       * </pre>
       *
       * <code>.SurroundModel surroundModel = 12;</code>
       * <code>optional .SurroundModel surroundModel = 12;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel.Builder getSurroundModelBuilder() {
        
@@ -28913,7 +26771,7 @@
       *环绕建模
       * </pre>
       *
       * <code>.SurroundModel surroundModel = 12;</code>
       * <code>optional .SurroundModel surroundModel = 12;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModelOrBuilder getSurroundModelOrBuilder() {
        if (surroundModelBuilder_ != null) {
@@ -28928,7 +26786,7 @@
       *环绕建模
       * </pre>
       *
       * <code>.SurroundModel surroundModel = 12;</code>
       * <code>optional .SurroundModel surroundModel = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel, com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModelOrBuilder> 
@@ -28944,7 +26802,7 @@
        return surroundModelBuilder_;
      }
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData takeOffPoint_;
      private com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData takeOffPoint_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder> takeOffPointBuilder_;
      /**
@@ -28952,8 +26810,7 @@
       *起飞点(对象只包含经纬高)
       * </pre>
       *
       * <code>.PointData takeOffPoint = 13;</code>
       * @return Whether the takeOffPoint field is set.
       * <code>optional .PointData takeOffPoint = 13;</code>
       */
      public boolean hasTakeOffPoint() {
        return takeOffPointBuilder_ != null || takeOffPoint_ != null;
@@ -28963,8 +26820,7 @@
       *起飞点(对象只包含经纬高)
       * </pre>
       *
       * <code>.PointData takeOffPoint = 13;</code>
       * @return The takeOffPoint.
       * <code>optional .PointData takeOffPoint = 13;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getTakeOffPoint() {
        if (takeOffPointBuilder_ == null) {
@@ -28978,7 +26834,7 @@
       *起飞点(对象只包含经纬高)
       * </pre>
       *
       * <code>.PointData takeOffPoint = 13;</code>
       * <code>optional .PointData takeOffPoint = 13;</code>
       */
      public Builder setTakeOffPoint(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData value) {
        if (takeOffPointBuilder_ == null) {
@@ -28998,7 +26854,7 @@
       *起飞点(对象只包含经纬高)
       * </pre>
       *
       * <code>.PointData takeOffPoint = 13;</code>
       * <code>optional .PointData takeOffPoint = 13;</code>
       */
      public Builder setTakeOffPoint(
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder builderForValue) {
@@ -29016,7 +26872,7 @@
       *起飞点(对象只包含经纬高)
       * </pre>
       *
       * <code>.PointData takeOffPoint = 13;</code>
       * <code>optional .PointData takeOffPoint = 13;</code>
       */
      public Builder mergeTakeOffPoint(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData value) {
        if (takeOffPointBuilder_ == null) {
@@ -29038,7 +26894,7 @@
       *起飞点(对象只包含经纬高)
       * </pre>
       *
       * <code>.PointData takeOffPoint = 13;</code>
       * <code>optional .PointData takeOffPoint = 13;</code>
       */
      public Builder clearTakeOffPoint() {
        if (takeOffPointBuilder_ == null) {
@@ -29056,7 +26912,7 @@
       *起飞点(对象只包含经纬高)
       * </pre>
       *
       * <code>.PointData takeOffPoint = 13;</code>
       * <code>optional .PointData takeOffPoint = 13;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder getTakeOffPointBuilder() {
        
@@ -29068,7 +26924,7 @@
       *起飞点(对象只包含经纬高)
       * </pre>
       *
       * <code>.PointData takeOffPoint = 13;</code>
       * <code>optional .PointData takeOffPoint = 13;</code>
       */
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder getTakeOffPointOrBuilder() {
        if (takeOffPointBuilder_ != null) {
@@ -29083,7 +26939,7 @@
       *起飞点(对象只包含经纬高)
       * </pre>
       *
       * <code>.PointData takeOffPoint = 13;</code>
       * <code>optional .PointData takeOffPoint = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder> 
@@ -29098,16 +26954,14 @@
        }
        return takeOffPointBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -29126,12 +26980,11 @@
    private static final com.google.protobuf.Parser<PlanLineData>
        PARSER = new com.google.protobuf.AbstractParser<PlanLineData>() {
      @java.lang.Override
      public PlanLineData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PlanLineData(input, extensionRegistry);
          return new PlanLineData(input, extensionRegistry);
      }
    };
@@ -29144,7 +26997,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PlanLineData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -29160,8 +27012,7 @@
     *经度
     * </pre>
     *
     * <code>double lng = 1;</code>
     * @return The lng.
     * <code>optional double lng = 1;</code>
     */
    double getLng();
@@ -29170,8 +27021,7 @@
     *纬度
     * </pre>
     *
     * <code>double lat = 2;</code>
     * @return The lat.
     * <code>optional double lat = 2;</code>
     */
    double getLat();
@@ -29180,8 +27030,7 @@
     *高度(单位:米,范围0~遥控器限高),说明:此值为相对起飞点高度,如果太高会有失去网络覆盖风险
     * </pre>
     *
     * <code>float height = 3;</code>
     * @return The height.
     * <code>optional float height = 3;</code>
     */
    float getHeight();
@@ -29190,8 +27039,7 @@
     *速度(单位:米/秒,范围0~15),默认8
     * </pre>
     *
     * <code>float speed = 4;</code>
     * @return The speed.
     * <code>optional float speed = 4;</code>
     */
    float getSpeed();
@@ -29244,8 +27092,7 @@
     *航线飞行模式:1=直线飞行,2=协调转弯,3=曲线飞行(停),4=曲线飞行(不停)
     * </pre>
     *
     * <code>uint32 flightPathMode = 6;</code>
     * @return The flightPathMode.
     * <code>optional uint32 flightPathMode = 6;</code>
     */
    int getFlightPathMode();
@@ -29254,8 +27101,7 @@
     *转弯半径(仅协调转弯模式下有效),取值范围1~655.35单位:米,两点间距离要小于此值,此值要根据实际情况计算,切勿随便设此值[可能导致航线开始失败],具体计算方法可以咨询售后支持或者大疆DJI
     * </pre>
     *
     * <code>float dampingDistance = 7;</code>
     * @return The dampingDistance.
     * <code>optional float dampingDistance = 7;</code>
     */
    float getDampingDistance();
@@ -29264,8 +27110,7 @@
     *是否为安全返航点 0=不是,1=是 (暂时未启用)
     * </pre>
     *
     * <code>uint32 safeGohomeFlag = 8;</code>
     * @return The safeGohomeFlag.
     * <code>optional uint32 safeGohomeFlag = 8;</code>
     */
    int getSafeGohomeFlag();
@@ -29274,8 +27119,7 @@
     *偏航模式 0=自动,1=锁定,2=遥控器控制,3=云台依照航点方向旋转,4=朝向兴趣点,5=飞机和云台的偏航同时旋转
     * </pre>
     *
     * <code>uint32 headingMode = 9;</code>
     * @return The headingMode.
     * <code>optional uint32 headingMode = 9;</code>
     */
    int getHeadingMode();
@@ -29284,8 +27128,7 @@
     *航点偏航 -180~180
     * </pre>
     *
     * <code>float heading = 10;</code>
     * @return The heading.
     * <code>optional float heading = 10;</code>
     */
    float getHeading();
@@ -29294,8 +27137,7 @@
     *兴趣点下标,默认-1
     * </pre>
     *
     * <code>int32 interestIndex = 11;</code>
     * @return The interestIndex.
     * <code>optional int32 interestIndex = 11;</code>
     */
    int getInterestIndex();
@@ -29304,8 +27146,7 @@
     *组下标
     * </pre>
     *
     * <code>uint32 groupIndex = 12;</code>
     * @return The groupIndex.
     * <code>optional uint32 groupIndex = 12;</code>
     */
    int getGroupIndex();
  }
@@ -29316,42 +27157,40 @@
   *
   * Protobuf type {@code PointData}
   */
  public static final class PointData extends
  public  static final class PointData extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PointData)
      PointDataOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PointData.newBuilder() to construct.
    private PointData(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PointData() {
      lng_ = 0D;
      lat_ = 0D;
      height_ = 0F;
      speed_ = 0F;
      actions_ = java.util.Collections.emptyList();
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PointData();
      flightPathMode_ = 0;
      dampingDistance_ = 0F;
      safeGohomeFlag_ = 0;
      headingMode_ = 0;
      heading_ = 0F;
      interestIndex_ = 0;
      groupIndex_ = 0;
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private PointData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
@@ -29360,6 +27199,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 9: {
              lng_ = input.readDouble();
@@ -29381,9 +27226,9 @@
              break;
            }
            case 42: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
              if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                actions_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction>();
                mutable_bitField0_ |= 0x00000001;
                mutable_bitField0_ |= 0x00000010;
              }
              actions_.add(
                  input.readMessage(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction.parser(), extensionRegistry));
@@ -29424,27 +27269,17 @@
              groupIndex_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          actions_ = java.util.Collections.unmodifiableList(actions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -29453,7 +27288,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PointData_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PointData_fieldAccessorTable
@@ -29461,6 +27295,7 @@
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.class, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder.class);
    }
    private int bitField0_;
    public static final int LNG_FIELD_NUMBER = 1;
    private double lng_;
    /**
@@ -29468,10 +27303,8 @@
     *经度
     * </pre>
     *
     * <code>double lng = 1;</code>
     * @return The lng.
     * <code>optional double lng = 1;</code>
     */
    @java.lang.Override
    public double getLng() {
      return lng_;
    }
@@ -29483,10 +27316,8 @@
     *纬度
     * </pre>
     *
     * <code>double lat = 2;</code>
     * @return The lat.
     * <code>optional double lat = 2;</code>
     */
    @java.lang.Override
    public double getLat() {
      return lat_;
    }
@@ -29498,10 +27329,8 @@
     *高度(单位:米,范围0~遥控器限高),说明:此值为相对起飞点高度,如果太高会有失去网络覆盖风险
     * </pre>
     *
     * <code>float height = 3;</code>
     * @return The height.
     * <code>optional float height = 3;</code>
     */
    @java.lang.Override
    public float getHeight() {
      return height_;
    }
@@ -29513,10 +27342,8 @@
     *速度(单位:米/秒,范围0~15),默认8
     * </pre>
     *
     * <code>float speed = 4;</code>
     * @return The speed.
     * <code>optional float speed = 4;</code>
     */
    @java.lang.Override
    public float getSpeed() {
      return speed_;
    }
@@ -29530,7 +27357,6 @@
     *
     * <code>repeated .PointAction actions = 5;</code>
     */
    @java.lang.Override
    public java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction> getActionsList() {
      return actions_;
    }
@@ -29541,7 +27367,6 @@
     *
     * <code>repeated .PointAction actions = 5;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointActionOrBuilder> 
        getActionsOrBuilderList() {
      return actions_;
@@ -29553,7 +27378,6 @@
     *
     * <code>repeated .PointAction actions = 5;</code>
     */
    @java.lang.Override
    public int getActionsCount() {
      return actions_.size();
    }
@@ -29564,7 +27388,6 @@
     *
     * <code>repeated .PointAction actions = 5;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction getActions(int index) {
      return actions_.get(index);
    }
@@ -29575,7 +27398,6 @@
     *
     * <code>repeated .PointAction actions = 5;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointActionOrBuilder getActionsOrBuilder(
        int index) {
      return actions_.get(index);
@@ -29588,10 +27410,8 @@
     *航线飞行模式:1=直线飞行,2=协调转弯,3=曲线飞行(停),4=曲线飞行(不停)
     * </pre>
     *
     * <code>uint32 flightPathMode = 6;</code>
     * @return The flightPathMode.
     * <code>optional uint32 flightPathMode = 6;</code>
     */
    @java.lang.Override
    public int getFlightPathMode() {
      return flightPathMode_;
    }
@@ -29603,10 +27423,8 @@
     *转弯半径(仅协调转弯模式下有效),取值范围1~655.35单位:米,两点间距离要小于此值,此值要根据实际情况计算,切勿随便设此值[可能导致航线开始失败],具体计算方法可以咨询售后支持或者大疆DJI
     * </pre>
     *
     * <code>float dampingDistance = 7;</code>
     * @return The dampingDistance.
     * <code>optional float dampingDistance = 7;</code>
     */
    @java.lang.Override
    public float getDampingDistance() {
      return dampingDistance_;
    }
@@ -29618,10 +27436,8 @@
     *是否为安全返航点 0=不是,1=是 (暂时未启用)
     * </pre>
     *
     * <code>uint32 safeGohomeFlag = 8;</code>
     * @return The safeGohomeFlag.
     * <code>optional uint32 safeGohomeFlag = 8;</code>
     */
    @java.lang.Override
    public int getSafeGohomeFlag() {
      return safeGohomeFlag_;
    }
@@ -29633,10 +27449,8 @@
     *偏航模式 0=自动,1=锁定,2=遥控器控制,3=云台依照航点方向旋转,4=朝向兴趣点,5=飞机和云台的偏航同时旋转
     * </pre>
     *
     * <code>uint32 headingMode = 9;</code>
     * @return The headingMode.
     * <code>optional uint32 headingMode = 9;</code>
     */
    @java.lang.Override
    public int getHeadingMode() {
      return headingMode_;
    }
@@ -29648,10 +27462,8 @@
     *航点偏航 -180~180
     * </pre>
     *
     * <code>float heading = 10;</code>
     * @return The heading.
     * <code>optional float heading = 10;</code>
     */
    @java.lang.Override
    public float getHeading() {
      return heading_;
    }
@@ -29663,10 +27475,8 @@
     *兴趣点下标,默认-1
     * </pre>
     *
     * <code>int32 interestIndex = 11;</code>
     * @return The interestIndex.
     * <code>optional int32 interestIndex = 11;</code>
     */
    @java.lang.Override
    public int getInterestIndex() {
      return interestIndex_;
    }
@@ -29678,16 +27488,13 @@
     *组下标
     * </pre>
     *
     * <code>uint32 groupIndex = 12;</code>
     * @return The groupIndex.
     * <code>optional uint32 groupIndex = 12;</code>
     */
    @java.lang.Override
    public int getGroupIndex() {
      return groupIndex_;
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -29697,19 +27504,18 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (java.lang.Double.doubleToRawLongBits(lng_) != 0) {
      if (lng_ != 0D) {
        output.writeDouble(1, lng_);
      }
      if (java.lang.Double.doubleToRawLongBits(lat_) != 0) {
      if (lat_ != 0D) {
        output.writeDouble(2, lat_);
      }
      if (java.lang.Float.floatToRawIntBits(height_) != 0) {
      if (height_ != 0F) {
        output.writeFloat(3, height_);
      }
      if (java.lang.Float.floatToRawIntBits(speed_) != 0) {
      if (speed_ != 0F) {
        output.writeFloat(4, speed_);
      }
      for (int i = 0; i < actions_.size(); i++) {
@@ -29718,7 +27524,7 @@
      if (flightPathMode_ != 0) {
        output.writeUInt32(6, flightPathMode_);
      }
      if (java.lang.Float.floatToRawIntBits(dampingDistance_) != 0) {
      if (dampingDistance_ != 0F) {
        output.writeFloat(7, dampingDistance_);
      }
      if (safeGohomeFlag_ != 0) {
@@ -29727,7 +27533,7 @@
      if (headingMode_ != 0) {
        output.writeUInt32(9, headingMode_);
      }
      if (java.lang.Float.floatToRawIntBits(heading_) != 0) {
      if (heading_ != 0F) {
        output.writeFloat(10, heading_);
      }
      if (interestIndex_ != 0) {
@@ -29736,28 +27542,26 @@
      if (groupIndex_ != 0) {
        output.writeUInt32(12, groupIndex_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (java.lang.Double.doubleToRawLongBits(lng_) != 0) {
      if (lng_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(1, lng_);
      }
      if (java.lang.Double.doubleToRawLongBits(lat_) != 0) {
      if (lat_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, lat_);
      }
      if (java.lang.Float.floatToRawIntBits(height_) != 0) {
      if (height_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(3, height_);
      }
      if (java.lang.Float.floatToRawIntBits(speed_) != 0) {
      if (speed_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(4, speed_);
      }
@@ -29769,7 +27573,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, flightPathMode_);
      }
      if (java.lang.Float.floatToRawIntBits(dampingDistance_) != 0) {
      if (dampingDistance_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(7, dampingDistance_);
      }
@@ -29781,7 +27585,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(9, headingMode_);
      }
      if (java.lang.Float.floatToRawIntBits(heading_) != 0) {
      if (heading_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(10, heading_);
      }
@@ -29793,11 +27597,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(12, groupIndex_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -29808,38 +27612,44 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData) obj;
      if (java.lang.Double.doubleToLongBits(getLng())
          != java.lang.Double.doubleToLongBits(
              other.getLng())) return false;
      if (java.lang.Double.doubleToLongBits(getLat())
          != java.lang.Double.doubleToLongBits(
              other.getLat())) return false;
      if (java.lang.Float.floatToIntBits(getHeight())
          != java.lang.Float.floatToIntBits(
              other.getHeight())) return false;
      if (java.lang.Float.floatToIntBits(getSpeed())
          != java.lang.Float.floatToIntBits(
              other.getSpeed())) return false;
      if (!getActionsList()
          .equals(other.getActionsList())) return false;
      if (getFlightPathMode()
          != other.getFlightPathMode()) return false;
      if (java.lang.Float.floatToIntBits(getDampingDistance())
          != java.lang.Float.floatToIntBits(
              other.getDampingDistance())) return false;
      if (getSafeGohomeFlag()
          != other.getSafeGohomeFlag()) return false;
      if (getHeadingMode()
          != other.getHeadingMode()) return false;
      if (java.lang.Float.floatToIntBits(getHeading())
          != java.lang.Float.floatToIntBits(
              other.getHeading())) return false;
      if (getInterestIndex()
          != other.getInterestIndex()) return false;
      if (getGroupIndex()
          != other.getGroupIndex()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && (
          java.lang.Double.doubleToLongBits(getLng())
          == java.lang.Double.doubleToLongBits(
              other.getLng()));
      result = result && (
          java.lang.Double.doubleToLongBits(getLat())
          == java.lang.Double.doubleToLongBits(
              other.getLat()));
      result = result && (
          java.lang.Float.floatToIntBits(getHeight())
          == java.lang.Float.floatToIntBits(
              other.getHeight()));
      result = result && (
          java.lang.Float.floatToIntBits(getSpeed())
          == java.lang.Float.floatToIntBits(
              other.getSpeed()));
      result = result && getActionsList()
          .equals(other.getActionsList());
      result = result && (getFlightPathMode()
          == other.getFlightPathMode());
      result = result && (
          java.lang.Float.floatToIntBits(getDampingDistance())
          == java.lang.Float.floatToIntBits(
              other.getDampingDistance()));
      result = result && (getSafeGohomeFlag()
          == other.getSafeGohomeFlag());
      result = result && (getHeadingMode()
          == other.getHeadingMode());
      result = result && (
          java.lang.Float.floatToIntBits(getHeading())
          == java.lang.Float.floatToIntBits(
              other.getHeading()));
      result = result && (getInterestIndex()
          == other.getInterestIndex());
      result = result && (getGroupIndex()
          == other.getGroupIndex());
      return result;
    }
    @java.lang.Override
@@ -29848,7 +27658,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + LNG_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getLng()));
@@ -29886,17 +27696,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -29956,7 +27755,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -29964,7 +27762,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -29992,7 +27789,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PointData_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PointData_fieldAccessorTable
@@ -30016,7 +27812,6 @@
          getActionsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        lng_ = 0D;
@@ -30029,7 +27824,7 @@
        if (actionsBuilder_ == null) {
          actions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          actionsBuilder_.clear();
        }
@@ -30050,18 +27845,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PointData_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData result = buildPartial();
        if (!result.isInitialized()) {
@@ -30070,18 +27862,18 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.lng_ = lng_;
        result.lat_ = lat_;
        result.height_ = height_;
        result.speed_ = speed_;
        if (actionsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            actions_ = java.util.Collections.unmodifiableList(actions_);
            bitField0_ = (bitField0_ & ~0x00000001);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.actions_ = actions_;
        } else {
@@ -30094,43 +27886,37 @@
        result.heading_ = heading_;
        result.interestIndex_ = interestIndex_;
        result.groupIndex_ = groupIndex_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData)other);
@@ -30158,7 +27944,7 @@
          if (!other.actions_.isEmpty()) {
            if (actions_.isEmpty()) {
              actions_ = other.actions_;
              bitField0_ = (bitField0_ & ~0x00000001);
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureActionsIsMutable();
              actions_.addAll(other.actions_);
@@ -30171,7 +27957,7 @@
              actionsBuilder_.dispose();
              actionsBuilder_ = null;
              actions_ = other.actions_;
              bitField0_ = (bitField0_ & ~0x00000001);
              bitField0_ = (bitField0_ & ~0x00000010);
              actionsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getActionsFieldBuilder() : null;
@@ -30201,17 +27987,14 @@
        if (other.getGroupIndex() != 0) {
          setGroupIndex(other.getGroupIndex());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -30237,10 +28020,8 @@
       *经度
       * </pre>
       *
       * <code>double lng = 1;</code>
       * @return The lng.
       * <code>optional double lng = 1;</code>
       */
      @java.lang.Override
      public double getLng() {
        return lng_;
      }
@@ -30249,9 +28030,7 @@
       *经度
       * </pre>
       *
       * <code>double lng = 1;</code>
       * @param value The lng to set.
       * @return This builder for chaining.
       * <code>optional double lng = 1;</code>
       */
      public Builder setLng(double value) {
        
@@ -30264,8 +28043,7 @@
       *经度
       * </pre>
       *
       * <code>double lng = 1;</code>
       * @return This builder for chaining.
       * <code>optional double lng = 1;</code>
       */
      public Builder clearLng() {
        
@@ -30280,10 +28058,8 @@
       *纬度
       * </pre>
       *
       * <code>double lat = 2;</code>
       * @return The lat.
       * <code>optional double lat = 2;</code>
       */
      @java.lang.Override
      public double getLat() {
        return lat_;
      }
@@ -30292,9 +28068,7 @@
       *纬度
       * </pre>
       *
       * <code>double lat = 2;</code>
       * @param value The lat to set.
       * @return This builder for chaining.
       * <code>optional double lat = 2;</code>
       */
      public Builder setLat(double value) {
        
@@ -30307,8 +28081,7 @@
       *纬度
       * </pre>
       *
       * <code>double lat = 2;</code>
       * @return This builder for chaining.
       * <code>optional double lat = 2;</code>
       */
      public Builder clearLat() {
        
@@ -30323,10 +28096,8 @@
       *高度(单位:米,范围0~遥控器限高),说明:此值为相对起飞点高度,如果太高会有失去网络覆盖风险
       * </pre>
       *
       * <code>float height = 3;</code>
       * @return The height.
       * <code>optional float height = 3;</code>
       */
      @java.lang.Override
      public float getHeight() {
        return height_;
      }
@@ -30335,9 +28106,7 @@
       *高度(单位:米,范围0~遥控器限高),说明:此值为相对起飞点高度,如果太高会有失去网络覆盖风险
       * </pre>
       *
       * <code>float height = 3;</code>
       * @param value The height to set.
       * @return This builder for chaining.
       * <code>optional float height = 3;</code>
       */
      public Builder setHeight(float value) {
        
@@ -30350,8 +28119,7 @@
       *高度(单位:米,范围0~遥控器限高),说明:此值为相对起飞点高度,如果太高会有失去网络覆盖风险
       * </pre>
       *
       * <code>float height = 3;</code>
       * @return This builder for chaining.
       * <code>optional float height = 3;</code>
       */
      public Builder clearHeight() {
        
@@ -30366,10 +28134,8 @@
       *速度(单位:米/秒,范围0~15),默认8
       * </pre>
       *
       * <code>float speed = 4;</code>
       * @return The speed.
       * <code>optional float speed = 4;</code>
       */
      @java.lang.Override
      public float getSpeed() {
        return speed_;
      }
@@ -30378,9 +28144,7 @@
       *速度(单位:米/秒,范围0~15),默认8
       * </pre>
       *
       * <code>float speed = 4;</code>
       * @param value The speed to set.
       * @return This builder for chaining.
       * <code>optional float speed = 4;</code>
       */
      public Builder setSpeed(float value) {
        
@@ -30393,8 +28157,7 @@
       *速度(单位:米/秒,范围0~15),默认8
       * </pre>
       *
       * <code>float speed = 4;</code>
       * @return This builder for chaining.
       * <code>optional float speed = 4;</code>
       */
      public Builder clearSpeed() {
        
@@ -30406,9 +28169,9 @@
      private java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction> actions_ =
        java.util.Collections.emptyList();
      private void ensureActionsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          actions_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction>(actions_);
          bitField0_ |= 0x00000001;
          bitField0_ |= 0x00000010;
         }
      }
@@ -30602,7 +28365,7 @@
      public Builder clearActions() {
        if (actionsBuilder_ == null) {
          actions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          actionsBuilder_.clear();
@@ -30707,7 +28470,7 @@
          actionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointActionOrBuilder>(
                  actions_,
                  ((bitField0_ & 0x00000001) != 0),
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          actions_ = null;
@@ -30721,10 +28484,8 @@
       *航线飞行模式:1=直线飞行,2=协调转弯,3=曲线飞行(停),4=曲线飞行(不停)
       * </pre>
       *
       * <code>uint32 flightPathMode = 6;</code>
       * @return The flightPathMode.
       * <code>optional uint32 flightPathMode = 6;</code>
       */
      @java.lang.Override
      public int getFlightPathMode() {
        return flightPathMode_;
      }
@@ -30733,9 +28494,7 @@
       *航线飞行模式:1=直线飞行,2=协调转弯,3=曲线飞行(停),4=曲线飞行(不停)
       * </pre>
       *
       * <code>uint32 flightPathMode = 6;</code>
       * @param value The flightPathMode to set.
       * @return This builder for chaining.
       * <code>optional uint32 flightPathMode = 6;</code>
       */
      public Builder setFlightPathMode(int value) {
        
@@ -30748,8 +28507,7 @@
       *航线飞行模式:1=直线飞行,2=协调转弯,3=曲线飞行(停),4=曲线飞行(不停)
       * </pre>
       *
       * <code>uint32 flightPathMode = 6;</code>
       * @return This builder for chaining.
       * <code>optional uint32 flightPathMode = 6;</code>
       */
      public Builder clearFlightPathMode() {
        
@@ -30764,10 +28522,8 @@
       *转弯半径(仅协调转弯模式下有效),取值范围1~655.35单位:米,两点间距离要小于此值,此值要根据实际情况计算,切勿随便设此值[可能导致航线开始失败],具体计算方法可以咨询售后支持或者大疆DJI
       * </pre>
       *
       * <code>float dampingDistance = 7;</code>
       * @return The dampingDistance.
       * <code>optional float dampingDistance = 7;</code>
       */
      @java.lang.Override
      public float getDampingDistance() {
        return dampingDistance_;
      }
@@ -30776,9 +28532,7 @@
       *转弯半径(仅协调转弯模式下有效),取值范围1~655.35单位:米,两点间距离要小于此值,此值要根据实际情况计算,切勿随便设此值[可能导致航线开始失败],具体计算方法可以咨询售后支持或者大疆DJI
       * </pre>
       *
       * <code>float dampingDistance = 7;</code>
       * @param value The dampingDistance to set.
       * @return This builder for chaining.
       * <code>optional float dampingDistance = 7;</code>
       */
      public Builder setDampingDistance(float value) {
        
@@ -30791,8 +28545,7 @@
       *转弯半径(仅协调转弯模式下有效),取值范围1~655.35单位:米,两点间距离要小于此值,此值要根据实际情况计算,切勿随便设此值[可能导致航线开始失败],具体计算方法可以咨询售后支持或者大疆DJI
       * </pre>
       *
       * <code>float dampingDistance = 7;</code>
       * @return This builder for chaining.
       * <code>optional float dampingDistance = 7;</code>
       */
      public Builder clearDampingDistance() {
        
@@ -30807,10 +28560,8 @@
       *是否为安全返航点 0=不是,1=是 (暂时未启用)
       * </pre>
       *
       * <code>uint32 safeGohomeFlag = 8;</code>
       * @return The safeGohomeFlag.
       * <code>optional uint32 safeGohomeFlag = 8;</code>
       */
      @java.lang.Override
      public int getSafeGohomeFlag() {
        return safeGohomeFlag_;
      }
@@ -30819,9 +28570,7 @@
       *是否为安全返航点 0=不是,1=是 (暂时未启用)
       * </pre>
       *
       * <code>uint32 safeGohomeFlag = 8;</code>
       * @param value The safeGohomeFlag to set.
       * @return This builder for chaining.
       * <code>optional uint32 safeGohomeFlag = 8;</code>
       */
      public Builder setSafeGohomeFlag(int value) {
        
@@ -30834,8 +28583,7 @@
       *是否为安全返航点 0=不是,1=是 (暂时未启用)
       * </pre>
       *
       * <code>uint32 safeGohomeFlag = 8;</code>
       * @return This builder for chaining.
       * <code>optional uint32 safeGohomeFlag = 8;</code>
       */
      public Builder clearSafeGohomeFlag() {
        
@@ -30850,10 +28598,8 @@
       *偏航模式 0=自动,1=锁定,2=遥控器控制,3=云台依照航点方向旋转,4=朝向兴趣点,5=飞机和云台的偏航同时旋转
       * </pre>
       *
       * <code>uint32 headingMode = 9;</code>
       * @return The headingMode.
       * <code>optional uint32 headingMode = 9;</code>
       */
      @java.lang.Override
      public int getHeadingMode() {
        return headingMode_;
      }
@@ -30862,9 +28608,7 @@
       *偏航模式 0=自动,1=锁定,2=遥控器控制,3=云台依照航点方向旋转,4=朝向兴趣点,5=飞机和云台的偏航同时旋转
       * </pre>
       *
       * <code>uint32 headingMode = 9;</code>
       * @param value The headingMode to set.
       * @return This builder for chaining.
       * <code>optional uint32 headingMode = 9;</code>
       */
      public Builder setHeadingMode(int value) {
        
@@ -30877,8 +28621,7 @@
       *偏航模式 0=自动,1=锁定,2=遥控器控制,3=云台依照航点方向旋转,4=朝向兴趣点,5=飞机和云台的偏航同时旋转
       * </pre>
       *
       * <code>uint32 headingMode = 9;</code>
       * @return This builder for chaining.
       * <code>optional uint32 headingMode = 9;</code>
       */
      public Builder clearHeadingMode() {
        
@@ -30893,10 +28636,8 @@
       *航点偏航 -180~180
       * </pre>
       *
       * <code>float heading = 10;</code>
       * @return The heading.
       * <code>optional float heading = 10;</code>
       */
      @java.lang.Override
      public float getHeading() {
        return heading_;
      }
@@ -30905,9 +28646,7 @@
       *航点偏航 -180~180
       * </pre>
       *
       * <code>float heading = 10;</code>
       * @param value The heading to set.
       * @return This builder for chaining.
       * <code>optional float heading = 10;</code>
       */
      public Builder setHeading(float value) {
        
@@ -30920,8 +28659,7 @@
       *航点偏航 -180~180
       * </pre>
       *
       * <code>float heading = 10;</code>
       * @return This builder for chaining.
       * <code>optional float heading = 10;</code>
       */
      public Builder clearHeading() {
        
@@ -30936,10 +28674,8 @@
       *兴趣点下标,默认-1
       * </pre>
       *
       * <code>int32 interestIndex = 11;</code>
       * @return The interestIndex.
       * <code>optional int32 interestIndex = 11;</code>
       */
      @java.lang.Override
      public int getInterestIndex() {
        return interestIndex_;
      }
@@ -30948,9 +28684,7 @@
       *兴趣点下标,默认-1
       * </pre>
       *
       * <code>int32 interestIndex = 11;</code>
       * @param value The interestIndex to set.
       * @return This builder for chaining.
       * <code>optional int32 interestIndex = 11;</code>
       */
      public Builder setInterestIndex(int value) {
        
@@ -30963,8 +28697,7 @@
       *兴趣点下标,默认-1
       * </pre>
       *
       * <code>int32 interestIndex = 11;</code>
       * @return This builder for chaining.
       * <code>optional int32 interestIndex = 11;</code>
       */
      public Builder clearInterestIndex() {
        
@@ -30979,10 +28712,8 @@
       *组下标
       * </pre>
       *
       * <code>uint32 groupIndex = 12;</code>
       * @return The groupIndex.
       * <code>optional uint32 groupIndex = 12;</code>
       */
      @java.lang.Override
      public int getGroupIndex() {
        return groupIndex_;
      }
@@ -30991,9 +28722,7 @@
       *组下标
       * </pre>
       *
       * <code>uint32 groupIndex = 12;</code>
       * @param value The groupIndex to set.
       * @return This builder for chaining.
       * <code>optional uint32 groupIndex = 12;</code>
       */
      public Builder setGroupIndex(int value) {
        
@@ -31006,8 +28735,7 @@
       *组下标
       * </pre>
       *
       * <code>uint32 groupIndex = 12;</code>
       * @return This builder for chaining.
       * <code>optional uint32 groupIndex = 12;</code>
       */
      public Builder clearGroupIndex() {
        
@@ -31015,16 +28743,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -31043,12 +28769,11 @@
    private static final com.google.protobuf.Parser<PointData>
        PARSER = new com.google.protobuf.AbstractParser<PointData>() {
      @java.lang.Override
      public PointData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PointData(input, extensionRegistry);
          return new PointData(input, extensionRegistry);
      }
    };
@@ -31061,7 +28786,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -31077,8 +28801,7 @@
     *类型:1.变焦 2.拍照 3.录像 4.停录 5.控制飞机机头偏航 6.控制云台俯仰 7.控制云台偏航 8.控制云台横滚 9.悬停 10.等距间隔拍照 11.等时间隔拍照 12.结束间隔拍照 13.单条喊话 14.开始循环喊话 15.结束循环喊话 16.对焦
     * </pre>
     *
     * <code>uint32 type = 1;</code>
     * @return The type.
     * <code>optional uint32 type = 1;</code>
     */
    int getType();
@@ -31087,8 +28810,7 @@
     *参数:[1.变焦]-&gt;变焦倍数(范围:2~200) 、 [5.控制飞机机头偏航(范围:-180~180)、6.控制云台俯仰(范围:-120~30)、7.控制云台偏航(范围:-180~180)、8.控制云台横滚(范围:-90~60)]-&gt;角度(按正北坐标系绝对值控制) 、[9.悬停]-&gt;时间(单位:秒,范围:1~25,如果想停留大于25秒时长,可以加多组悬停动作) [10.等距间隔拍照]-&gt;距离(单位:米,范围:1~100)  [11.等时间隔拍照]-&gt;时间(单位:秒,范围:1~30)  [13/14-&gt;喊话器俯仰角度,如果此值为0默认改成-90](范围:0~-90)
     * </pre>
     *
     * <code>float param = 2;</code>
     * @return The param.
     * <code>optional float param = 2;</code>
     */
    float getParam();
@@ -31097,8 +28819,7 @@
     *动作触发后等待时长(单位:秒) [此值如果不需要可以不传,如需悬停可添加类型9悬停动作] [13/14-&gt;喊话器声音,如果此值不传默认50](范围:0~100)
     * </pre>
     *
     * <code>int32 waitTime = 3;</code>
     * @return The waitTime.
     * <code>optional int32 waitTime = 3;</code>
     */
    int getWaitTime();
@@ -31107,8 +28828,7 @@
     *喊话内容[type=13和type=14时生效]
     * </pre>
     *
     * <code>string speakInfo = 4;</code>
     * @return The speakInfo.
     * <code>optional string speakInfo = 4;</code>
     */
    java.lang.String getSpeakInfo();
    /**
@@ -31116,8 +28836,7 @@
     *喊话内容[type=13和type=14时生效]
     * </pre>
     *
     * <code>string speakInfo = 4;</code>
     * @return The bytes for speakInfo.
     * <code>optional string speakInfo = 4;</code>
     */
    com.google.protobuf.ByteString
        getSpeakInfoBytes();
@@ -31129,41 +28848,32 @@
   *
   * Protobuf type {@code PointAction}
   */
  public static final class PointAction extends
  public  static final class PointAction extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:PointAction)
      PointActionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PointAction.newBuilder() to construct.
    private PointAction(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PointAction() {
      type_ = 0;
      param_ = 0F;
      waitTime_ = 0;
      speakInfo_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PointAction();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private PointAction(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
@@ -31172,6 +28882,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              type_ = input.readUInt32();
@@ -31193,24 +28909,14 @@
              speakInfo_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -31219,7 +28925,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PointAction_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PointAction_fieldAccessorTable
@@ -31234,10 +28939,8 @@
     *类型:1.变焦 2.拍照 3.录像 4.停录 5.控制飞机机头偏航 6.控制云台俯仰 7.控制云台偏航 8.控制云台横滚 9.悬停 10.等距间隔拍照 11.等时间隔拍照 12.结束间隔拍照 13.单条喊话 14.开始循环喊话 15.结束循环喊话 16.对焦
     * </pre>
     *
     * <code>uint32 type = 1;</code>
     * @return The type.
     * <code>optional uint32 type = 1;</code>
     */
    @java.lang.Override
    public int getType() {
      return type_;
    }
@@ -31249,10 +28952,8 @@
     *参数:[1.变焦]-&gt;变焦倍数(范围:2~200) 、 [5.控制飞机机头偏航(范围:-180~180)、6.控制云台俯仰(范围:-120~30)、7.控制云台偏航(范围:-180~180)、8.控制云台横滚(范围:-90~60)]-&gt;角度(按正北坐标系绝对值控制) 、[9.悬停]-&gt;时间(单位:秒,范围:1~25,如果想停留大于25秒时长,可以加多组悬停动作) [10.等距间隔拍照]-&gt;距离(单位:米,范围:1~100)  [11.等时间隔拍照]-&gt;时间(单位:秒,范围:1~30)  [13/14-&gt;喊话器俯仰角度,如果此值为0默认改成-90](范围:0~-90)
     * </pre>
     *
     * <code>float param = 2;</code>
     * @return The param.
     * <code>optional float param = 2;</code>
     */
    @java.lang.Override
    public float getParam() {
      return param_;
    }
@@ -31264,10 +28965,8 @@
     *动作触发后等待时长(单位:秒) [此值如果不需要可以不传,如需悬停可添加类型9悬停动作] [13/14-&gt;喊话器声音,如果此值不传默认50](范围:0~100)
     * </pre>
     *
     * <code>int32 waitTime = 3;</code>
     * @return The waitTime.
     * <code>optional int32 waitTime = 3;</code>
     */
    @java.lang.Override
    public int getWaitTime() {
      return waitTime_;
    }
@@ -31279,10 +28978,8 @@
     *喊话内容[type=13和type=14时生效]
     * </pre>
     *
     * <code>string speakInfo = 4;</code>
     * @return The speakInfo.
     * <code>optional string speakInfo = 4;</code>
     */
    @java.lang.Override
    public java.lang.String getSpeakInfo() {
      java.lang.Object ref = speakInfo_;
      if (ref instanceof java.lang.String) {
@@ -31300,10 +28997,8 @@
     *喊话内容[type=13和type=14时生效]
     * </pre>
     *
     * <code>string speakInfo = 4;</code>
     * @return The bytes for speakInfo.
     * <code>optional string speakInfo = 4;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSpeakInfoBytes() {
      java.lang.Object ref = speakInfo_;
@@ -31319,7 +29014,6 @@
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -31329,25 +29023,22 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (type_ != 0) {
        output.writeUInt32(1, type_);
      }
      if (java.lang.Float.floatToRawIntBits(param_) != 0) {
      if (param_ != 0F) {
        output.writeFloat(2, param_);
      }
      if (waitTime_ != 0) {
        output.writeInt32(3, waitTime_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(speakInfo_)) {
      if (!getSpeakInfoBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, speakInfo_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -31357,7 +29048,7 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(1, type_);
      }
      if (java.lang.Float.floatToRawIntBits(param_) != 0) {
      if (param_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(2, param_);
      }
@@ -31365,14 +29056,14 @@
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, waitTime_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(speakInfo_)) {
      if (!getSpeakInfoBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, speakInfo_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -31383,17 +29074,18 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction) obj;
      if (getType()
          != other.getType()) return false;
      if (java.lang.Float.floatToIntBits(getParam())
          != java.lang.Float.floatToIntBits(
              other.getParam())) return false;
      if (getWaitTime()
          != other.getWaitTime()) return false;
      if (!getSpeakInfo()
          .equals(other.getSpeakInfo())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && (getType()
          == other.getType());
      result = result && (
          java.lang.Float.floatToIntBits(getParam())
          == java.lang.Float.floatToIntBits(
              other.getParam()));
      result = result && (getWaitTime()
          == other.getWaitTime());
      result = result && getSpeakInfo()
          .equals(other.getSpeakInfo());
      return result;
    }
    @java.lang.Override
@@ -31402,7 +29094,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getType();
      hash = (37 * hash) + PARAM_FIELD_NUMBER;
@@ -31417,17 +29109,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -31487,7 +29168,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -31495,7 +29175,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -31523,7 +29202,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PointAction_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PointAction_fieldAccessorTable
@@ -31546,7 +29224,6 @@
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        type_ = 0;
@@ -31560,18 +29237,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_PointAction_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction result = buildPartial();
        if (!result.isInitialized()) {
@@ -31580,7 +29254,6 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction(this);
        result.type_ = type_;
@@ -31591,39 +29264,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction)other);
@@ -31648,17 +29314,14 @@
          speakInfo_ = other.speakInfo_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -31683,10 +29346,8 @@
       *类型:1.变焦 2.拍照 3.录像 4.停录 5.控制飞机机头偏航 6.控制云台俯仰 7.控制云台偏航 8.控制云台横滚 9.悬停 10.等距间隔拍照 11.等时间隔拍照 12.结束间隔拍照 13.单条喊话 14.开始循环喊话 15.结束循环喊话 16.对焦
       * </pre>
       *
       * <code>uint32 type = 1;</code>
       * @return The type.
       * <code>optional uint32 type = 1;</code>
       */
      @java.lang.Override
      public int getType() {
        return type_;
      }
@@ -31695,9 +29356,7 @@
       *类型:1.变焦 2.拍照 3.录像 4.停录 5.控制飞机机头偏航 6.控制云台俯仰 7.控制云台偏航 8.控制云台横滚 9.悬停 10.等距间隔拍照 11.等时间隔拍照 12.结束间隔拍照 13.单条喊话 14.开始循环喊话 15.结束循环喊话 16.对焦
       * </pre>
       *
       * <code>uint32 type = 1;</code>
       * @param value The type to set.
       * @return This builder for chaining.
       * <code>optional uint32 type = 1;</code>
       */
      public Builder setType(int value) {
        
@@ -31710,8 +29369,7 @@
       *类型:1.变焦 2.拍照 3.录像 4.停录 5.控制飞机机头偏航 6.控制云台俯仰 7.控制云台偏航 8.控制云台横滚 9.悬停 10.等距间隔拍照 11.等时间隔拍照 12.结束间隔拍照 13.单条喊话 14.开始循环喊话 15.结束循环喊话 16.对焦
       * </pre>
       *
       * <code>uint32 type = 1;</code>
       * @return This builder for chaining.
       * <code>optional uint32 type = 1;</code>
       */
      public Builder clearType() {
        
@@ -31726,10 +29384,8 @@
       *参数:[1.变焦]-&gt;变焦倍数(范围:2~200) 、 [5.控制飞机机头偏航(范围:-180~180)、6.控制云台俯仰(范围:-120~30)、7.控制云台偏航(范围:-180~180)、8.控制云台横滚(范围:-90~60)]-&gt;角度(按正北坐标系绝对值控制) 、[9.悬停]-&gt;时间(单位:秒,范围:1~25,如果想停留大于25秒时长,可以加多组悬停动作) [10.等距间隔拍照]-&gt;距离(单位:米,范围:1~100)  [11.等时间隔拍照]-&gt;时间(单位:秒,范围:1~30)  [13/14-&gt;喊话器俯仰角度,如果此值为0默认改成-90](范围:0~-90)
       * </pre>
       *
       * <code>float param = 2;</code>
       * @return The param.
       * <code>optional float param = 2;</code>
       */
      @java.lang.Override
      public float getParam() {
        return param_;
      }
@@ -31738,9 +29394,7 @@
       *参数:[1.变焦]-&gt;变焦倍数(范围:2~200) 、 [5.控制飞机机头偏航(范围:-180~180)、6.控制云台俯仰(范围:-120~30)、7.控制云台偏航(范围:-180~180)、8.控制云台横滚(范围:-90~60)]-&gt;角度(按正北坐标系绝对值控制) 、[9.悬停]-&gt;时间(单位:秒,范围:1~25,如果想停留大于25秒时长,可以加多组悬停动作) [10.等距间隔拍照]-&gt;距离(单位:米,范围:1~100)  [11.等时间隔拍照]-&gt;时间(单位:秒,范围:1~30)  [13/14-&gt;喊话器俯仰角度,如果此值为0默认改成-90](范围:0~-90)
       * </pre>
       *
       * <code>float param = 2;</code>
       * @param value The param to set.
       * @return This builder for chaining.
       * <code>optional float param = 2;</code>
       */
      public Builder setParam(float value) {
        
@@ -31753,8 +29407,7 @@
       *参数:[1.变焦]-&gt;变焦倍数(范围:2~200) 、 [5.控制飞机机头偏航(范围:-180~180)、6.控制云台俯仰(范围:-120~30)、7.控制云台偏航(范围:-180~180)、8.控制云台横滚(范围:-90~60)]-&gt;角度(按正北坐标系绝对值控制) 、[9.悬停]-&gt;时间(单位:秒,范围:1~25,如果想停留大于25秒时长,可以加多组悬停动作) [10.等距间隔拍照]-&gt;距离(单位:米,范围:1~100)  [11.等时间隔拍照]-&gt;时间(单位:秒,范围:1~30)  [13/14-&gt;喊话器俯仰角度,如果此值为0默认改成-90](范围:0~-90)
       * </pre>
       *
       * <code>float param = 2;</code>
       * @return This builder for chaining.
       * <code>optional float param = 2;</code>
       */
      public Builder clearParam() {
        
@@ -31769,10 +29422,8 @@
       *动作触发后等待时长(单位:秒) [此值如果不需要可以不传,如需悬停可添加类型9悬停动作] [13/14-&gt;喊话器声音,如果此值不传默认50](范围:0~100)
       * </pre>
       *
       * <code>int32 waitTime = 3;</code>
       * @return The waitTime.
       * <code>optional int32 waitTime = 3;</code>
       */
      @java.lang.Override
      public int getWaitTime() {
        return waitTime_;
      }
@@ -31781,9 +29432,7 @@
       *动作触发后等待时长(单位:秒) [此值如果不需要可以不传,如需悬停可添加类型9悬停动作] [13/14-&gt;喊话器声音,如果此值不传默认50](范围:0~100)
       * </pre>
       *
       * <code>int32 waitTime = 3;</code>
       * @param value The waitTime to set.
       * @return This builder for chaining.
       * <code>optional int32 waitTime = 3;</code>
       */
      public Builder setWaitTime(int value) {
        
@@ -31796,8 +29445,7 @@
       *动作触发后等待时长(单位:秒) [此值如果不需要可以不传,如需悬停可添加类型9悬停动作] [13/14-&gt;喊话器声音,如果此值不传默认50](范围:0~100)
       * </pre>
       *
       * <code>int32 waitTime = 3;</code>
       * @return This builder for chaining.
       * <code>optional int32 waitTime = 3;</code>
       */
      public Builder clearWaitTime() {
        
@@ -31812,8 +29460,7 @@
       *喊话内容[type=13和type=14时生效]
       * </pre>
       *
       * <code>string speakInfo = 4;</code>
       * @return The speakInfo.
       * <code>optional string speakInfo = 4;</code>
       */
      public java.lang.String getSpeakInfo() {
        java.lang.Object ref = speakInfo_;
@@ -31832,8 +29479,7 @@
       *喊话内容[type=13和type=14时生效]
       * </pre>
       *
       * <code>string speakInfo = 4;</code>
       * @return The bytes for speakInfo.
       * <code>optional string speakInfo = 4;</code>
       */
      public com.google.protobuf.ByteString
          getSpeakInfoBytes() {
@@ -31853,9 +29499,7 @@
       *喊话内容[type=13和type=14时生效]
       * </pre>
       *
       * <code>string speakInfo = 4;</code>
       * @param value The speakInfo to set.
       * @return This builder for chaining.
       * <code>optional string speakInfo = 4;</code>
       */
      public Builder setSpeakInfo(
          java.lang.String value) {
@@ -31872,8 +29516,7 @@
       *喊话内容[type=13和type=14时生效]
       * </pre>
       *
       * <code>string speakInfo = 4;</code>
       * @return This builder for chaining.
       * <code>optional string speakInfo = 4;</code>
       */
      public Builder clearSpeakInfo() {
        
@@ -31886,9 +29529,7 @@
       *喊话内容[type=13和type=14时生效]
       * </pre>
       *
       * <code>string speakInfo = 4;</code>
       * @param value The bytes for speakInfo to set.
       * @return This builder for chaining.
       * <code>optional string speakInfo = 4;</code>
       */
      public Builder setSpeakInfoBytes(
          com.google.protobuf.ByteString value) {
@@ -31901,16 +29542,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -31929,12 +29568,11 @@
    private static final com.google.protobuf.Parser<PointAction>
        PARSER = new com.google.protobuf.AbstractParser<PointAction>() {
      @java.lang.Override
      public PointAction parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PointAction(input, extensionRegistry);
          return new PointAction(input, extensionRegistry);
      }
    };
@@ -31947,7 +29585,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointAction getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -31963,8 +29600,7 @@
     *机库ID
     * </pre>
     *
     * <code>string hangarId = 1;</code>
     * @return The hangarId.
     * <code>optional string hangarId = 1;</code>
     */
    java.lang.String getHangarId();
    /**
@@ -31972,8 +29608,7 @@
     *机库ID
     * </pre>
     *
     * <code>string hangarId = 1;</code>
     * @return The bytes for hangarId.
     * <code>optional string hangarId = 1;</code>
     */
    com.google.protobuf.ByteString
        getHangarIdBytes();
@@ -31983,8 +29618,7 @@
     *机库经度
     * </pre>
     *
     * <code>double hangarLng = 2;</code>
     * @return The hangarLng.
     * <code>optional double hangarLng = 2;</code>
     */
    double getHangarLng();
@@ -31993,8 +29627,7 @@
     *机库纬度
     * </pre>
     *
     * <code>double hangarLat = 3;</code>
     * @return The hangarLat.
     * <code>optional double hangarLat = 3;</code>
     */
    double getHangarLat();
@@ -32003,8 +29636,7 @@
     *备降点经度
     * </pre>
     *
     * <code>double alternateLng = 4;</code>
     * @return The alternateLng.
     * <code>optional double alternateLng = 4;</code>
     */
    double getAlternateLng();
@@ -32013,8 +29645,7 @@
     *备降点纬度
     * </pre>
     *
     * <code>double alternateLat = 5;</code>
     * @return The alternateLat.
     * <code>optional double alternateLat = 5;</code>
     */
    double getAlternateLat();
  }
@@ -32025,41 +29656,33 @@
   *
   * Protobuf type {@code HangarPoint}
   */
  public static final class HangarPoint extends
  public  static final class HangarPoint extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:HangarPoint)
      HangarPointOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use HangarPoint.newBuilder() to construct.
    private HangarPoint(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private HangarPoint() {
      hangarId_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new HangarPoint();
      hangarLng_ = 0D;
      hangarLat_ = 0D;
      alternateLng_ = 0D;
      alternateLat_ = 0D;
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private HangarPoint(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
@@ -32068,6 +29691,12 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();
@@ -32094,24 +29723,14 @@
              alternateLat_ = input.readDouble();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -32120,7 +29739,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_HangarPoint_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_HangarPoint_fieldAccessorTable
@@ -32135,10 +29753,8 @@
     *机库ID
     * </pre>
     *
     * <code>string hangarId = 1;</code>
     * @return The hangarId.
     * <code>optional string hangarId = 1;</code>
     */
    @java.lang.Override
    public java.lang.String getHangarId() {
      java.lang.Object ref = hangarId_;
      if (ref instanceof java.lang.String) {
@@ -32156,10 +29772,8 @@
     *机库ID
     * </pre>
     *
     * <code>string hangarId = 1;</code>
     * @return The bytes for hangarId.
     * <code>optional string hangarId = 1;</code>
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getHangarIdBytes() {
      java.lang.Object ref = hangarId_;
@@ -32181,10 +29795,8 @@
     *机库经度
     * </pre>
     *
     * <code>double hangarLng = 2;</code>
     * @return The hangarLng.
     * <code>optional double hangarLng = 2;</code>
     */
    @java.lang.Override
    public double getHangarLng() {
      return hangarLng_;
    }
@@ -32196,10 +29808,8 @@
     *机库纬度
     * </pre>
     *
     * <code>double hangarLat = 3;</code>
     * @return The hangarLat.
     * <code>optional double hangarLat = 3;</code>
     */
    @java.lang.Override
    public double getHangarLat() {
      return hangarLat_;
    }
@@ -32211,10 +29821,8 @@
     *备降点经度
     * </pre>
     *
     * <code>double alternateLng = 4;</code>
     * @return The alternateLng.
     * <code>optional double alternateLng = 4;</code>
     */
    @java.lang.Override
    public double getAlternateLng() {
      return alternateLng_;
    }
@@ -32226,16 +29834,13 @@
     *备降点纬度
     * </pre>
     *
     * <code>double alternateLat = 5;</code>
     * @return The alternateLat.
     * <code>optional double alternateLat = 5;</code>
     */
    @java.lang.Override
    public double getAlternateLat() {
      return alternateLat_;
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -32245,57 +29850,54 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hangarId_)) {
      if (!getHangarIdBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, hangarId_);
      }
      if (java.lang.Double.doubleToRawLongBits(hangarLng_) != 0) {
      if (hangarLng_ != 0D) {
        output.writeDouble(2, hangarLng_);
      }
      if (java.lang.Double.doubleToRawLongBits(hangarLat_) != 0) {
      if (hangarLat_ != 0D) {
        output.writeDouble(3, hangarLat_);
      }
      if (java.lang.Double.doubleToRawLongBits(alternateLng_) != 0) {
      if (alternateLng_ != 0D) {
        output.writeDouble(4, alternateLng_);
      }
      if (java.lang.Double.doubleToRawLongBits(alternateLat_) != 0) {
      if (alternateLat_ != 0D) {
        output.writeDouble(5, alternateLat_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(hangarId_)) {
      if (!getHangarIdBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, hangarId_);
      }
      if (java.lang.Double.doubleToRawLongBits(hangarLng_) != 0) {
      if (hangarLng_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(2, hangarLng_);
      }
      if (java.lang.Double.doubleToRawLongBits(hangarLat_) != 0) {
      if (hangarLat_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(3, hangarLat_);
      }
      if (java.lang.Double.doubleToRawLongBits(alternateLng_) != 0) {
      if (alternateLng_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(4, alternateLng_);
      }
      if (java.lang.Double.doubleToRawLongBits(alternateLat_) != 0) {
      if (alternateLat_ != 0D) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(5, alternateLat_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -32306,22 +29908,26 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint) obj;
      if (!getHangarId()
          .equals(other.getHangarId())) return false;
      if (java.lang.Double.doubleToLongBits(getHangarLng())
          != java.lang.Double.doubleToLongBits(
              other.getHangarLng())) return false;
      if (java.lang.Double.doubleToLongBits(getHangarLat())
          != java.lang.Double.doubleToLongBits(
              other.getHangarLat())) return false;
      if (java.lang.Double.doubleToLongBits(getAlternateLng())
          != java.lang.Double.doubleToLongBits(
              other.getAlternateLng())) return false;
      if (java.lang.Double.doubleToLongBits(getAlternateLat())
          != java.lang.Double.doubleToLongBits(
              other.getAlternateLat())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && getHangarId()
          .equals(other.getHangarId());
      result = result && (
          java.lang.Double.doubleToLongBits(getHangarLng())
          == java.lang.Double.doubleToLongBits(
              other.getHangarLng()));
      result = result && (
          java.lang.Double.doubleToLongBits(getHangarLat())
          == java.lang.Double.doubleToLongBits(
              other.getHangarLat()));
      result = result && (
          java.lang.Double.doubleToLongBits(getAlternateLng())
          == java.lang.Double.doubleToLongBits(
              other.getAlternateLng()));
      result = result && (
          java.lang.Double.doubleToLongBits(getAlternateLat())
          == java.lang.Double.doubleToLongBits(
              other.getAlternateLat()));
      return result;
    }
    @java.lang.Override
@@ -32330,7 +29936,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + HANGARID_FIELD_NUMBER;
      hash = (53 * hash) + getHangarId().hashCode();
      hash = (37 * hash) + HANGARLNG_FIELD_NUMBER;
@@ -32350,17 +29956,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -32420,7 +30015,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -32428,7 +30022,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -32456,7 +30049,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_HangarPoint_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_HangarPoint_fieldAccessorTable
@@ -32479,7 +30071,6 @@
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        hangarId_ = "";
@@ -32495,18 +30086,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_HangarPoint_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint result = buildPartial();
        if (!result.isInitialized()) {
@@ -32515,7 +30103,6 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint(this);
        result.hangarId_ = hangarId_;
@@ -32527,39 +30114,32 @@
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint)other);
@@ -32587,17 +30167,14 @@
        if (other.getAlternateLat() != 0D) {
          setAlternateLat(other.getAlternateLat());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -32622,8 +30199,7 @@
       *机库ID
       * </pre>
       *
       * <code>string hangarId = 1;</code>
       * @return The hangarId.
       * <code>optional string hangarId = 1;</code>
       */
      public java.lang.String getHangarId() {
        java.lang.Object ref = hangarId_;
@@ -32642,8 +30218,7 @@
       *机库ID
       * </pre>
       *
       * <code>string hangarId = 1;</code>
       * @return The bytes for hangarId.
       * <code>optional string hangarId = 1;</code>
       */
      public com.google.protobuf.ByteString
          getHangarIdBytes() {
@@ -32663,9 +30238,7 @@
       *机库ID
       * </pre>
       *
       * <code>string hangarId = 1;</code>
       * @param value The hangarId to set.
       * @return This builder for chaining.
       * <code>optional string hangarId = 1;</code>
       */
      public Builder setHangarId(
          java.lang.String value) {
@@ -32682,8 +30255,7 @@
       *机库ID
       * </pre>
       *
       * <code>string hangarId = 1;</code>
       * @return This builder for chaining.
       * <code>optional string hangarId = 1;</code>
       */
      public Builder clearHangarId() {
        
@@ -32696,9 +30268,7 @@
       *机库ID
       * </pre>
       *
       * <code>string hangarId = 1;</code>
       * @param value The bytes for hangarId to set.
       * @return This builder for chaining.
       * <code>optional string hangarId = 1;</code>
       */
      public Builder setHangarIdBytes(
          com.google.protobuf.ByteString value) {
@@ -32718,10 +30288,8 @@
       *机库经度
       * </pre>
       *
       * <code>double hangarLng = 2;</code>
       * @return The hangarLng.
       * <code>optional double hangarLng = 2;</code>
       */
      @java.lang.Override
      public double getHangarLng() {
        return hangarLng_;
      }
@@ -32730,9 +30298,7 @@
       *机库经度
       * </pre>
       *
       * <code>double hangarLng = 2;</code>
       * @param value The hangarLng to set.
       * @return This builder for chaining.
       * <code>optional double hangarLng = 2;</code>
       */
      public Builder setHangarLng(double value) {
        
@@ -32745,8 +30311,7 @@
       *机库经度
       * </pre>
       *
       * <code>double hangarLng = 2;</code>
       * @return This builder for chaining.
       * <code>optional double hangarLng = 2;</code>
       */
      public Builder clearHangarLng() {
        
@@ -32761,10 +30326,8 @@
       *机库纬度
       * </pre>
       *
       * <code>double hangarLat = 3;</code>
       * @return The hangarLat.
       * <code>optional double hangarLat = 3;</code>
       */
      @java.lang.Override
      public double getHangarLat() {
        return hangarLat_;
      }
@@ -32773,9 +30336,7 @@
       *机库纬度
       * </pre>
       *
       * <code>double hangarLat = 3;</code>
       * @param value The hangarLat to set.
       * @return This builder for chaining.
       * <code>optional double hangarLat = 3;</code>
       */
      public Builder setHangarLat(double value) {
        
@@ -32788,8 +30349,7 @@
       *机库纬度
       * </pre>
       *
       * <code>double hangarLat = 3;</code>
       * @return This builder for chaining.
       * <code>optional double hangarLat = 3;</code>
       */
      public Builder clearHangarLat() {
        
@@ -32804,10 +30364,8 @@
       *备降点经度
       * </pre>
       *
       * <code>double alternateLng = 4;</code>
       * @return The alternateLng.
       * <code>optional double alternateLng = 4;</code>
       */
      @java.lang.Override
      public double getAlternateLng() {
        return alternateLng_;
      }
@@ -32816,9 +30374,7 @@
       *备降点经度
       * </pre>
       *
       * <code>double alternateLng = 4;</code>
       * @param value The alternateLng to set.
       * @return This builder for chaining.
       * <code>optional double alternateLng = 4;</code>
       */
      public Builder setAlternateLng(double value) {
        
@@ -32831,8 +30387,7 @@
       *备降点经度
       * </pre>
       *
       * <code>double alternateLng = 4;</code>
       * @return This builder for chaining.
       * <code>optional double alternateLng = 4;</code>
       */
      public Builder clearAlternateLng() {
        
@@ -32847,10 +30402,8 @@
       *备降点纬度
       * </pre>
       *
       * <code>double alternateLat = 5;</code>
       * @return The alternateLat.
       * <code>optional double alternateLat = 5;</code>
       */
      @java.lang.Override
      public double getAlternateLat() {
        return alternateLat_;
      }
@@ -32859,9 +30412,7 @@
       *备降点纬度
       * </pre>
       *
       * <code>double alternateLat = 5;</code>
       * @param value The alternateLat to set.
       * @return This builder for chaining.
       * <code>optional double alternateLat = 5;</code>
       */
      public Builder setAlternateLat(double value) {
        
@@ -32874,8 +30425,7 @@
       *备降点纬度
       * </pre>
       *
       * <code>double alternateLat = 5;</code>
       * @return This builder for chaining.
       * <code>optional double alternateLat = 5;</code>
       */
      public Builder clearAlternateLat() {
        
@@ -32883,16 +30433,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -32911,12 +30459,11 @@
    private static final com.google.protobuf.Parser<HangarPoint>
        PARSER = new com.google.protobuf.AbstractParser<HangarPoint>() {
      @java.lang.Override
      public HangarPoint parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new HangarPoint(input, extensionRegistry);
          return new HangarPoint(input, extensionRegistry);
      }
    };
@@ -32929,7 +30476,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.HangarPoint getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -32989,8 +30535,7 @@
     *建模平台编号:1=瞰景,2=大势,默认1
     * </pre>
     *
     * <code>uint32 serviceId = 2;</code>
     * @return The serviceId.
     * <code>optional uint32 serviceId = 2;</code>
     */
    int getServiceId();
@@ -32999,8 +30544,7 @@
     *相机编号
     * </pre>
     *
     * <code>uint32 cameraId = 3;</code>
     * @return The cameraId.
     * <code>optional uint32 cameraId = 3;</code>
     */
    int getCameraId();
@@ -33009,8 +30553,7 @@
     *是否实时建模:0=不,1=是
     * </pre>
     *
     * <code>uint32 isModeling = 4;</code>
     * @return The isModeling.
     * <code>optional uint32 isModeling = 4;</code>
     */
    int getIsModeling();
@@ -33019,8 +30562,7 @@
     *作业模式:1=倾斜,2=正摄
     * </pre>
     *
     * <code>uint32 mode = 5;</code>
     * @return The mode.
     * <code>optional uint32 mode = 5;</code>
     */
    int getMode();
@@ -33029,8 +30571,7 @@
     *横向重叠率
     * </pre>
     *
     * <code>uint32 hOverlap = 6;</code>
     * @return The hOverlap.
     * <code>optional uint32 hOverlap = 6;</code>
     */
    int getHOverlap();
@@ -33039,8 +30580,7 @@
     *纵向重叠率
     * </pre>
     *
     * <code>uint32 vOverlap = 7;</code>
     * @return The vOverlap.
     * <code>optional uint32 vOverlap = 7;</code>
     */
    int getVOverlap();
@@ -33049,8 +30589,7 @@
     *方向正反
     * </pre>
     *
     * <code>uint32 mirror = 8;</code>
     * @return The mirror.
     * <code>optional uint32 mirror = 8;</code>
     */
    int getMirror();
  }
@@ -33061,42 +30600,36 @@
   *
   * Protobuf type {@code NormalModel}
   */
  public static final class NormalModel extends
  public  static final class NormalModel extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:NormalModel)
      NormalModelOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use NormalModel.newBuilder() to construct.
    private NormalModel(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private NormalModel() {
      area_ = java.util.Collections.emptyList();
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new NormalModel();
      serviceId_ = 0;
      cameraId_ = 0;
      isModeling_ = 0;
      mode_ = 0;
      hOverlap_ = 0;
      vOverlap_ = 0;
      mirror_ = 0;
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private NormalModel(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
@@ -33105,8 +30638,14 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                area_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData>();
                mutable_bitField0_ |= 0x00000001;
              }
@@ -33149,27 +30688,17 @@
              mirror_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          area_ = java.util.Collections.unmodifiableList(area_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -33178,7 +30707,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_NormalModel_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_NormalModel_fieldAccessorTable
@@ -33186,6 +30714,7 @@
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel.class, com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel.Builder.class);
    }
    private int bitField0_;
    public static final int AREA_FIELD_NUMBER = 1;
    private java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData> area_;
    /**
@@ -33195,7 +30724,6 @@
     *
     * <code>repeated .PointData area = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData> getAreaList() {
      return area_;
    }
@@ -33206,7 +30734,6 @@
     *
     * <code>repeated .PointData area = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder> 
        getAreaOrBuilderList() {
      return area_;
@@ -33218,7 +30745,6 @@
     *
     * <code>repeated .PointData area = 1;</code>
     */
    @java.lang.Override
    public int getAreaCount() {
      return area_.size();
    }
@@ -33229,7 +30755,6 @@
     *
     * <code>repeated .PointData area = 1;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getArea(int index) {
      return area_.get(index);
    }
@@ -33240,7 +30765,6 @@
     *
     * <code>repeated .PointData area = 1;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder getAreaOrBuilder(
        int index) {
      return area_.get(index);
@@ -33253,10 +30777,8 @@
     *建模平台编号:1=瞰景,2=大势,默认1
     * </pre>
     *
     * <code>uint32 serviceId = 2;</code>
     * @return The serviceId.
     * <code>optional uint32 serviceId = 2;</code>
     */
    @java.lang.Override
    public int getServiceId() {
      return serviceId_;
    }
@@ -33268,10 +30790,8 @@
     *相机编号
     * </pre>
     *
     * <code>uint32 cameraId = 3;</code>
     * @return The cameraId.
     * <code>optional uint32 cameraId = 3;</code>
     */
    @java.lang.Override
    public int getCameraId() {
      return cameraId_;
    }
@@ -33283,10 +30803,8 @@
     *是否实时建模:0=不,1=是
     * </pre>
     *
     * <code>uint32 isModeling = 4;</code>
     * @return The isModeling.
     * <code>optional uint32 isModeling = 4;</code>
     */
    @java.lang.Override
    public int getIsModeling() {
      return isModeling_;
    }
@@ -33298,10 +30816,8 @@
     *作业模式:1=倾斜,2=正摄
     * </pre>
     *
     * <code>uint32 mode = 5;</code>
     * @return The mode.
     * <code>optional uint32 mode = 5;</code>
     */
    @java.lang.Override
    public int getMode() {
      return mode_;
    }
@@ -33313,10 +30829,8 @@
     *横向重叠率
     * </pre>
     *
     * <code>uint32 hOverlap = 6;</code>
     * @return The hOverlap.
     * <code>optional uint32 hOverlap = 6;</code>
     */
    @java.lang.Override
    public int getHOverlap() {
      return hOverlap_;
    }
@@ -33328,10 +30842,8 @@
     *纵向重叠率
     * </pre>
     *
     * <code>uint32 vOverlap = 7;</code>
     * @return The vOverlap.
     * <code>optional uint32 vOverlap = 7;</code>
     */
    @java.lang.Override
    public int getVOverlap() {
      return vOverlap_;
    }
@@ -33343,16 +30855,13 @@
     *方向正反
     * </pre>
     *
     * <code>uint32 mirror = 8;</code>
     * @return The mirror.
     * <code>optional uint32 mirror = 8;</code>
     */
    @java.lang.Override
    public int getMirror() {
      return mirror_;
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -33362,7 +30871,6 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < area_.size(); i++) {
@@ -33389,10 +30897,8 @@
      if (mirror_ != 0) {
        output.writeUInt32(8, mirror_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -33430,11 +30936,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(8, mirror_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -33445,24 +30951,24 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel) obj;
      if (!getAreaList()
          .equals(other.getAreaList())) return false;
      if (getServiceId()
          != other.getServiceId()) return false;
      if (getCameraId()
          != other.getCameraId()) return false;
      if (getIsModeling()
          != other.getIsModeling()) return false;
      if (getMode()
          != other.getMode()) return false;
      if (getHOverlap()
          != other.getHOverlap()) return false;
      if (getVOverlap()
          != other.getVOverlap()) return false;
      if (getMirror()
          != other.getMirror()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && getAreaList()
          .equals(other.getAreaList());
      result = result && (getServiceId()
          == other.getServiceId());
      result = result && (getCameraId()
          == other.getCameraId());
      result = result && (getIsModeling()
          == other.getIsModeling());
      result = result && (getMode()
          == other.getMode());
      result = result && (getHOverlap()
          == other.getHOverlap());
      result = result && (getVOverlap()
          == other.getVOverlap());
      result = result && (getMirror()
          == other.getMirror());
      return result;
    }
    @java.lang.Override
@@ -33471,7 +30977,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (getAreaCount() > 0) {
        hash = (37 * hash) + AREA_FIELD_NUMBER;
        hash = (53 * hash) + getAreaList().hashCode();
@@ -33495,17 +31001,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -33565,7 +31060,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -33573,7 +31067,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -33601,7 +31094,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_NormalModel_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_NormalModel_fieldAccessorTable
@@ -33625,7 +31117,6 @@
          getAreaFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (areaBuilder_ == null) {
@@ -33651,18 +31142,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_NormalModel_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel result = buildPartial();
        if (!result.isInitialized()) {
@@ -33671,12 +31159,12 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (areaBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            area_ = java.util.Collections.unmodifiableList(area_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
@@ -33691,43 +31179,37 @@
        result.hOverlap_ = hOverlap_;
        result.vOverlap_ = vOverlap_;
        result.mirror_ = mirror_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel)other);
@@ -33786,17 +31268,14 @@
        if (other.getMirror() != 0) {
          setMirror(other.getMirror());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -33819,7 +31298,7 @@
      private java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData> area_ =
        java.util.Collections.emptyList();
      private void ensureAreaIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          area_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData>(area_);
          bitField0_ |= 0x00000001;
         }
@@ -34120,7 +31599,7 @@
          areaBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder>(
                  area_,
                  ((bitField0_ & 0x00000001) != 0),
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          area_ = null;
@@ -34134,10 +31613,8 @@
       *建模平台编号:1=瞰景,2=大势,默认1
       * </pre>
       *
       * <code>uint32 serviceId = 2;</code>
       * @return The serviceId.
       * <code>optional uint32 serviceId = 2;</code>
       */
      @java.lang.Override
      public int getServiceId() {
        return serviceId_;
      }
@@ -34146,9 +31623,7 @@
       *建模平台编号:1=瞰景,2=大势,默认1
       * </pre>
       *
       * <code>uint32 serviceId = 2;</code>
       * @param value The serviceId to set.
       * @return This builder for chaining.
       * <code>optional uint32 serviceId = 2;</code>
       */
      public Builder setServiceId(int value) {
        
@@ -34161,8 +31636,7 @@
       *建模平台编号:1=瞰景,2=大势,默认1
       * </pre>
       *
       * <code>uint32 serviceId = 2;</code>
       * @return This builder for chaining.
       * <code>optional uint32 serviceId = 2;</code>
       */
      public Builder clearServiceId() {
        
@@ -34177,10 +31651,8 @@
       *相机编号
       * </pre>
       *
       * <code>uint32 cameraId = 3;</code>
       * @return The cameraId.
       * <code>optional uint32 cameraId = 3;</code>
       */
      @java.lang.Override
      public int getCameraId() {
        return cameraId_;
      }
@@ -34189,9 +31661,7 @@
       *相机编号
       * </pre>
       *
       * <code>uint32 cameraId = 3;</code>
       * @param value The cameraId to set.
       * @return This builder for chaining.
       * <code>optional uint32 cameraId = 3;</code>
       */
      public Builder setCameraId(int value) {
        
@@ -34204,8 +31674,7 @@
       *相机编号
       * </pre>
       *
       * <code>uint32 cameraId = 3;</code>
       * @return This builder for chaining.
       * <code>optional uint32 cameraId = 3;</code>
       */
      public Builder clearCameraId() {
        
@@ -34220,10 +31689,8 @@
       *是否实时建模:0=不,1=是
       * </pre>
       *
       * <code>uint32 isModeling = 4;</code>
       * @return The isModeling.
       * <code>optional uint32 isModeling = 4;</code>
       */
      @java.lang.Override
      public int getIsModeling() {
        return isModeling_;
      }
@@ -34232,9 +31699,7 @@
       *是否实时建模:0=不,1=是
       * </pre>
       *
       * <code>uint32 isModeling = 4;</code>
       * @param value The isModeling to set.
       * @return This builder for chaining.
       * <code>optional uint32 isModeling = 4;</code>
       */
      public Builder setIsModeling(int value) {
        
@@ -34247,8 +31712,7 @@
       *是否实时建模:0=不,1=是
       * </pre>
       *
       * <code>uint32 isModeling = 4;</code>
       * @return This builder for chaining.
       * <code>optional uint32 isModeling = 4;</code>
       */
      public Builder clearIsModeling() {
        
@@ -34263,10 +31727,8 @@
       *作业模式:1=倾斜,2=正摄
       * </pre>
       *
       * <code>uint32 mode = 5;</code>
       * @return The mode.
       * <code>optional uint32 mode = 5;</code>
       */
      @java.lang.Override
      public int getMode() {
        return mode_;
      }
@@ -34275,9 +31737,7 @@
       *作业模式:1=倾斜,2=正摄
       * </pre>
       *
       * <code>uint32 mode = 5;</code>
       * @param value The mode to set.
       * @return This builder for chaining.
       * <code>optional uint32 mode = 5;</code>
       */
      public Builder setMode(int value) {
        
@@ -34290,8 +31750,7 @@
       *作业模式:1=倾斜,2=正摄
       * </pre>
       *
       * <code>uint32 mode = 5;</code>
       * @return This builder for chaining.
       * <code>optional uint32 mode = 5;</code>
       */
      public Builder clearMode() {
        
@@ -34306,10 +31765,8 @@
       *横向重叠率
       * </pre>
       *
       * <code>uint32 hOverlap = 6;</code>
       * @return The hOverlap.
       * <code>optional uint32 hOverlap = 6;</code>
       */
      @java.lang.Override
      public int getHOverlap() {
        return hOverlap_;
      }
@@ -34318,9 +31775,7 @@
       *横向重叠率
       * </pre>
       *
       * <code>uint32 hOverlap = 6;</code>
       * @param value The hOverlap to set.
       * @return This builder for chaining.
       * <code>optional uint32 hOverlap = 6;</code>
       */
      public Builder setHOverlap(int value) {
        
@@ -34333,8 +31788,7 @@
       *横向重叠率
       * </pre>
       *
       * <code>uint32 hOverlap = 6;</code>
       * @return This builder for chaining.
       * <code>optional uint32 hOverlap = 6;</code>
       */
      public Builder clearHOverlap() {
        
@@ -34349,10 +31803,8 @@
       *纵向重叠率
       * </pre>
       *
       * <code>uint32 vOverlap = 7;</code>
       * @return The vOverlap.
       * <code>optional uint32 vOverlap = 7;</code>
       */
      @java.lang.Override
      public int getVOverlap() {
        return vOverlap_;
      }
@@ -34361,9 +31813,7 @@
       *纵向重叠率
       * </pre>
       *
       * <code>uint32 vOverlap = 7;</code>
       * @param value The vOverlap to set.
       * @return This builder for chaining.
       * <code>optional uint32 vOverlap = 7;</code>
       */
      public Builder setVOverlap(int value) {
        
@@ -34376,8 +31826,7 @@
       *纵向重叠率
       * </pre>
       *
       * <code>uint32 vOverlap = 7;</code>
       * @return This builder for chaining.
       * <code>optional uint32 vOverlap = 7;</code>
       */
      public Builder clearVOverlap() {
        
@@ -34392,10 +31841,8 @@
       *方向正反
       * </pre>
       *
       * <code>uint32 mirror = 8;</code>
       * @return The mirror.
       * <code>optional uint32 mirror = 8;</code>
       */
      @java.lang.Override
      public int getMirror() {
        return mirror_;
      }
@@ -34404,9 +31851,7 @@
       *方向正反
       * </pre>
       *
       * <code>uint32 mirror = 8;</code>
       * @param value The mirror to set.
       * @return This builder for chaining.
       * <code>optional uint32 mirror = 8;</code>
       */
      public Builder setMirror(int value) {
        
@@ -34419,8 +31864,7 @@
       *方向正反
       * </pre>
       *
       * <code>uint32 mirror = 8;</code>
       * @return This builder for chaining.
       * <code>optional uint32 mirror = 8;</code>
       */
      public Builder clearMirror() {
        
@@ -34428,16 +31872,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -34456,12 +31898,11 @@
    private static final com.google.protobuf.Parser<NormalModel>
        PARSER = new com.google.protobuf.AbstractParser<NormalModel>() {
      @java.lang.Override
      public NormalModel parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new NormalModel(input, extensionRegistry);
          return new NormalModel(input, extensionRegistry);
      }
    };
@@ -34474,7 +31915,6 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.NormalModel getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -34534,8 +31974,7 @@
     *建模平台编号:1=瞰景
     * </pre>
     *
     * <code>uint32 serviceId = 2;</code>
     * @return The serviceId.
     * <code>optional uint32 serviceId = 2;</code>
     */
    int getServiceId();
@@ -34544,8 +31983,7 @@
     *相机编号
     * </pre>
     *
     * <code>uint32 cameraId = 3;</code>
     * @return The cameraId.
     * <code>optional uint32 cameraId = 3;</code>
     */
    int getCameraId();
@@ -34554,8 +31992,7 @@
     *是否实时建模:0=不,1=是
     * </pre>
     *
     * <code>uint32 isModeling = 4;</code>
     * @return The isModeling.
     * <code>optional uint32 isModeling = 4;</code>
     */
    int getIsModeling();
  }
@@ -34566,42 +32003,32 @@
   *
   * Protobuf type {@code SurroundModel}
   */
  public static final class SurroundModel extends
  public  static final class SurroundModel extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:SurroundModel)
      SurroundModelOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use SurroundModel.newBuilder() to construct.
    private SurroundModel(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private SurroundModel() {
      area_ = java.util.Collections.emptyList();
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new SurroundModel();
      serviceId_ = 0;
      cameraId_ = 0;
      isModeling_ = 0;
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private SurroundModel(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
@@ -34610,8 +32037,14 @@
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                area_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData>();
                mutable_bitField0_ |= 0x00000001;
              }
@@ -34634,27 +32067,17 @@
              isModeling_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (com.google.protobuf.UninitializedMessageException e) {
        throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          area_ = java.util.Collections.unmodifiableList(area_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
@@ -34663,7 +32086,6 @@
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SurroundModel_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SurroundModel_fieldAccessorTable
@@ -34671,6 +32093,7 @@
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel.class, com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel.Builder.class);
    }
    private int bitField0_;
    public static final int AREA_FIELD_NUMBER = 1;
    private java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData> area_;
    /**
@@ -34680,7 +32103,6 @@
     *
     * <code>repeated .PointData area = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData> getAreaList() {
      return area_;
    }
@@ -34691,7 +32113,6 @@
     *
     * <code>repeated .PointData area = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder> 
        getAreaOrBuilderList() {
      return area_;
@@ -34703,7 +32124,6 @@
     *
     * <code>repeated .PointData area = 1;</code>
     */
    @java.lang.Override
    public int getAreaCount() {
      return area_.size();
    }
@@ -34714,7 +32134,6 @@
     *
     * <code>repeated .PointData area = 1;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData getArea(int index) {
      return area_.get(index);
    }
@@ -34725,7 +32144,6 @@
     *
     * <code>repeated .PointData area = 1;</code>
     */
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder getAreaOrBuilder(
        int index) {
      return area_.get(index);
@@ -34738,10 +32156,8 @@
     *建模平台编号:1=瞰景
     * </pre>
     *
     * <code>uint32 serviceId = 2;</code>
     * @return The serviceId.
     * <code>optional uint32 serviceId = 2;</code>
     */
    @java.lang.Override
    public int getServiceId() {
      return serviceId_;
    }
@@ -34753,10 +32169,8 @@
     *相机编号
     * </pre>
     *
     * <code>uint32 cameraId = 3;</code>
     * @return The cameraId.
     * <code>optional uint32 cameraId = 3;</code>
     */
    @java.lang.Override
    public int getCameraId() {
      return cameraId_;
    }
@@ -34768,16 +32182,13 @@
     *是否实时建模:0=不,1=是
     * </pre>
     *
     * <code>uint32 isModeling = 4;</code>
     * @return The isModeling.
     * <code>optional uint32 isModeling = 4;</code>
     */
    @java.lang.Override
    public int getIsModeling() {
      return isModeling_;
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
@@ -34787,7 +32198,6 @@
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < area_.size(); i++) {
@@ -34802,10 +32212,8 @@
      if (isModeling_ != 0) {
        output.writeUInt32(4, isModeling_);
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
@@ -34827,11 +32235,11 @@
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(4, isModeling_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
@@ -34842,16 +32250,16 @@
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel) obj;
      if (!getAreaList()
          .equals(other.getAreaList())) return false;
      if (getServiceId()
          != other.getServiceId()) return false;
      if (getCameraId()
          != other.getCameraId()) return false;
      if (getIsModeling()
          != other.getIsModeling()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
      boolean result = true;
      result = result && getAreaList()
          .equals(other.getAreaList());
      result = result && (getServiceId()
          == other.getServiceId());
      result = result && (getCameraId()
          == other.getCameraId());
      result = result && (getIsModeling()
          == other.getIsModeling());
      return result;
    }
    @java.lang.Override
@@ -34860,7 +32268,7 @@
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (19 * hash) + getDescriptorForType().hashCode();
      if (getAreaCount() > 0) {
        hash = (37 * hash) + AREA_FIELD_NUMBER;
        hash = (53 * hash) + getAreaList().hashCode();
@@ -34876,17 +32284,6 @@
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
@@ -34946,7 +32343,6 @@
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
@@ -34954,7 +32350,6 @@
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
@@ -34982,7 +32377,6 @@
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SurroundModel_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SurroundModel_fieldAccessorTable
@@ -35006,7 +32400,6 @@
          getAreaFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (areaBuilder_ == null) {
@@ -35024,18 +32417,15 @@
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_SurroundModel_descriptor;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel.getDefaultInstance();
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel result = buildPartial();
        if (!result.isInitialized()) {
@@ -35044,12 +32434,12 @@
        return result;
      }
      @java.lang.Override
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (areaBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            area_ = java.util.Collections.unmodifiableList(area_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
@@ -35060,43 +32450,37 @@
        result.serviceId_ = serviceId_;
        result.cameraId_ = cameraId_;
        result.isModeling_ = isModeling_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
        return (Builder) super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
          Object value) {
        return (Builder) super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
        return (Builder) super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
        return (Builder) super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel)other);
@@ -35143,17 +32527,14 @@
        if (other.getIsModeling() != 0) {
          setIsModeling(other.getIsModeling());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
@@ -35176,7 +32557,7 @@
      private java.util.List<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData> area_ =
        java.util.Collections.emptyList();
      private void ensureAreaIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          area_ = new java.util.ArrayList<com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData>(area_);
          bitField0_ |= 0x00000001;
         }
@@ -35477,7 +32858,7 @@
          areaBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointData.Builder, com.ard.tianyu.netty.protobuf.TelemetryDataPB.PointDataOrBuilder>(
                  area_,
                  ((bitField0_ & 0x00000001) != 0),
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          area_ = null;
@@ -35491,10 +32872,8 @@
       *建模平台编号:1=瞰景
       * </pre>
       *
       * <code>uint32 serviceId = 2;</code>
       * @return The serviceId.
       * <code>optional uint32 serviceId = 2;</code>
       */
      @java.lang.Override
      public int getServiceId() {
        return serviceId_;
      }
@@ -35503,9 +32882,7 @@
       *建模平台编号:1=瞰景
       * </pre>
       *
       * <code>uint32 serviceId = 2;</code>
       * @param value The serviceId to set.
       * @return This builder for chaining.
       * <code>optional uint32 serviceId = 2;</code>
       */
      public Builder setServiceId(int value) {
        
@@ -35518,8 +32895,7 @@
       *建模平台编号:1=瞰景
       * </pre>
       *
       * <code>uint32 serviceId = 2;</code>
       * @return This builder for chaining.
       * <code>optional uint32 serviceId = 2;</code>
       */
      public Builder clearServiceId() {
        
@@ -35534,10 +32910,8 @@
       *相机编号
       * </pre>
       *
       * <code>uint32 cameraId = 3;</code>
       * @return The cameraId.
       * <code>optional uint32 cameraId = 3;</code>
       */
      @java.lang.Override
      public int getCameraId() {
        return cameraId_;
      }
@@ -35546,9 +32920,7 @@
       *相机编号
       * </pre>
       *
       * <code>uint32 cameraId = 3;</code>
       * @param value The cameraId to set.
       * @return This builder for chaining.
       * <code>optional uint32 cameraId = 3;</code>
       */
      public Builder setCameraId(int value) {
        
@@ -35561,8 +32933,7 @@
       *相机编号
       * </pre>
       *
       * <code>uint32 cameraId = 3;</code>
       * @return This builder for chaining.
       * <code>optional uint32 cameraId = 3;</code>
       */
      public Builder clearCameraId() {
        
@@ -35577,10 +32948,8 @@
       *是否实时建模:0=不,1=是
       * </pre>
       *
       * <code>uint32 isModeling = 4;</code>
       * @return The isModeling.
       * <code>optional uint32 isModeling = 4;</code>
       */
      @java.lang.Override
      public int getIsModeling() {
        return isModeling_;
      }
@@ -35589,9 +32958,7 @@
       *是否实时建模:0=不,1=是
       * </pre>
       *
       * <code>uint32 isModeling = 4;</code>
       * @param value The isModeling to set.
       * @return This builder for chaining.
       * <code>optional uint32 isModeling = 4;</code>
       */
      public Builder setIsModeling(int value) {
        
@@ -35604,8 +32971,7 @@
       *是否实时建模:0=不,1=是
       * </pre>
       *
       * <code>uint32 isModeling = 4;</code>
       * @return This builder for chaining.
       * <code>optional uint32 isModeling = 4;</code>
       */
      public Builder clearIsModeling() {
        
@@ -35613,16 +32979,14 @@
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
        return this;
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
        return this;
      }
@@ -35641,12 +33005,11 @@
    private static final com.google.protobuf.Parser<SurroundModel>
        PARSER = new com.google.protobuf.AbstractParser<SurroundModel>() {
      @java.lang.Override
      public SurroundModel parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new SurroundModel(input, extensionRegistry);
          return new SurroundModel(input, extensionRegistry);
      }
    };
@@ -35659,8 +33022,1502 @@
      return PARSER;
    }
    @java.lang.Override
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.SurroundModel getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface UavInitInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:UavInitInfo)
      com.google.protobuf.MessageOrBuilder {
    /**
     * <pre>
     *无人机型号
     * </pre>
     *
     * <code>optional string uavModel = 1;</code>
     */
    java.lang.String getUavModel();
    /**
     * <pre>
     *无人机型号
     * </pre>
     *
     * <code>optional string uavModel = 1;</code>
     */
    com.google.protobuf.ByteString
        getUavModelBytes();
    /**
     * <pre>
     *无人机SN
     * </pre>
     *
     * <code>optional string uavSn = 2;</code>
     */
    java.lang.String getUavSn();
    /**
     * <pre>
     *无人机SN
     * </pre>
     *
     * <code>optional string uavSn = 2;</code>
     */
    com.google.protobuf.ByteString
        getUavSnBytes();
    /**
     * <pre>
     *无人机固件版本号
     * </pre>
     *
     * <code>optional string uavVersion = 3;</code>
     */
    java.lang.String getUavVersion();
    /**
     * <pre>
     *无人机固件版本号
     * </pre>
     *
     * <code>optional string uavVersion = 3;</code>
     */
    com.google.protobuf.ByteString
        getUavVersionBytes();
    /**
     * <pre>
     *挂载相机型号
     * </pre>
     *
     * <code>optional string ptModel = 4;</code>
     */
    java.lang.String getPtModel();
    /**
     * <pre>
     *挂载相机型号
     * </pre>
     *
     * <code>optional string ptModel = 4;</code>
     */
    com.google.protobuf.ByteString
        getPtModelBytes();
    /**
     * <pre>
     *挂载相机固件版本号
     * </pre>
     *
     * <code>optional string ptVersion = 5;</code>
     */
    java.lang.String getPtVersion();
    /**
     * <pre>
     *挂载相机固件版本号
     * </pre>
     *
     * <code>optional string ptVersion = 5;</code>
     */
    com.google.protobuf.ByteString
        getPtVersionBytes();
    /**
     * <pre>
     *挂载相机psdk日位置
     * </pre>
     *
     * <code>optional uint32 ptPosition = 6;</code>
     */
    int getPtPosition();
    /**
     * <pre>
     *模组固件版本号
     * </pre>
     *
     * <code>optional string moduleVersion = 7;</code>
     */
    java.lang.String getModuleVersion();
    /**
     * <pre>
     *模组固件版本号
     * </pre>
     *
     * <code>optional string moduleVersion = 7;</code>
     */
    com.google.protobuf.ByteString
        getModuleVersionBytes();
  }
  /**
   * <pre>
   *无人机初始化详情
   * </pre>
   *
   * Protobuf type {@code UavInitInfo}
   */
  public  static final class UavInitInfo extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:UavInitInfo)
      UavInitInfoOrBuilder {
    // Use UavInitInfo.newBuilder() to construct.
    private UavInitInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private UavInitInfo() {
      uavModel_ = "";
      uavSn_ = "";
      uavVersion_ = "";
      ptModel_ = "";
      ptVersion_ = "";
      ptPosition_ = 0;
      moduleVersion_ = "";
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
    }
    private UavInitInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      int mutable_bitField0_ = 0;
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!input.skipField(tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();
              uavModel_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();
              uavSn_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              uavVersion_ = s;
              break;
            }
            case 34: {
              java.lang.String s = input.readStringRequireUtf8();
              ptModel_ = s;
              break;
            }
            case 42: {
              java.lang.String s = input.readStringRequireUtf8();
              ptVersion_ = s;
              break;
            }
            case 48: {
              ptPosition_ = input.readUInt32();
              break;
            }
            case 58: {
              java.lang.String s = input.readStringRequireUtf8();
              moduleVersion_ = s;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_UavInitInfo_descriptor;
    }
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_UavInitInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo.class, com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo.Builder.class);
    }
    public static final int UAVMODEL_FIELD_NUMBER = 1;
    private volatile java.lang.Object uavModel_;
    /**
     * <pre>
     *无人机型号
     * </pre>
     *
     * <code>optional string uavModel = 1;</code>
     */
    public java.lang.String getUavModel() {
      java.lang.Object ref = uavModel_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        uavModel_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *无人机型号
     * </pre>
     *
     * <code>optional string uavModel = 1;</code>
     */
    public com.google.protobuf.ByteString
        getUavModelBytes() {
      java.lang.Object ref = uavModel_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        uavModel_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int UAVSN_FIELD_NUMBER = 2;
    private volatile java.lang.Object uavSn_;
    /**
     * <pre>
     *无人机SN
     * </pre>
     *
     * <code>optional string uavSn = 2;</code>
     */
    public java.lang.String getUavSn() {
      java.lang.Object ref = uavSn_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        uavSn_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *无人机SN
     * </pre>
     *
     * <code>optional string uavSn = 2;</code>
     */
    public com.google.protobuf.ByteString
        getUavSnBytes() {
      java.lang.Object ref = uavSn_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        uavSn_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int UAVVERSION_FIELD_NUMBER = 3;
    private volatile java.lang.Object uavVersion_;
    /**
     * <pre>
     *无人机固件版本号
     * </pre>
     *
     * <code>optional string uavVersion = 3;</code>
     */
    public java.lang.String getUavVersion() {
      java.lang.Object ref = uavVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        uavVersion_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *无人机固件版本号
     * </pre>
     *
     * <code>optional string uavVersion = 3;</code>
     */
    public com.google.protobuf.ByteString
        getUavVersionBytes() {
      java.lang.Object ref = uavVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        uavVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int PTMODEL_FIELD_NUMBER = 4;
    private volatile java.lang.Object ptModel_;
    /**
     * <pre>
     *挂载相机型号
     * </pre>
     *
     * <code>optional string ptModel = 4;</code>
     */
    public java.lang.String getPtModel() {
      java.lang.Object ref = ptModel_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        ptModel_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *挂载相机型号
     * </pre>
     *
     * <code>optional string ptModel = 4;</code>
     */
    public com.google.protobuf.ByteString
        getPtModelBytes() {
      java.lang.Object ref = ptModel_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ptModel_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int PTVERSION_FIELD_NUMBER = 5;
    private volatile java.lang.Object ptVersion_;
    /**
     * <pre>
     *挂载相机固件版本号
     * </pre>
     *
     * <code>optional string ptVersion = 5;</code>
     */
    public java.lang.String getPtVersion() {
      java.lang.Object ref = ptVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        ptVersion_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *挂载相机固件版本号
     * </pre>
     *
     * <code>optional string ptVersion = 5;</code>
     */
    public com.google.protobuf.ByteString
        getPtVersionBytes() {
      java.lang.Object ref = ptVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ptVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int PTPOSITION_FIELD_NUMBER = 6;
    private int ptPosition_;
    /**
     * <pre>
     *挂载相机psdk日位置
     * </pre>
     *
     * <code>optional uint32 ptPosition = 6;</code>
     */
    public int getPtPosition() {
      return ptPosition_;
    }
    public static final int MODULEVERSION_FIELD_NUMBER = 7;
    private volatile java.lang.Object moduleVersion_;
    /**
     * <pre>
     *模组固件版本号
     * </pre>
     *
     * <code>optional string moduleVersion = 7;</code>
     */
    public java.lang.String getModuleVersion() {
      java.lang.Object ref = moduleVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        moduleVersion_ = s;
        return s;
      }
    }
    /**
     * <pre>
     *模组固件版本号
     * </pre>
     *
     * <code>optional string moduleVersion = 7;</code>
     */
    public com.google.protobuf.ByteString
        getModuleVersionBytes() {
      java.lang.Object ref = moduleVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        moduleVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;
      memoizedIsInitialized = 1;
      return true;
    }
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (!getUavModelBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uavModel_);
      }
      if (!getUavSnBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, uavSn_);
      }
      if (!getUavVersionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, uavVersion_);
      }
      if (!getPtModelBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, ptModel_);
      }
      if (!getPtVersionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, ptVersion_);
      }
      if (ptPosition_ != 0) {
        output.writeUInt32(6, ptPosition_);
      }
      if (!getModuleVersionBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, moduleVersion_);
      }
    }
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (!getUavModelBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uavModel_);
      }
      if (!getUavSnBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, uavSn_);
      }
      if (!getUavVersionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, uavVersion_);
      }
      if (!getPtModelBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, ptModel_);
      }
      if (!getPtVersionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, ptVersion_);
      }
      if (ptPosition_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(6, ptPosition_);
      }
      if (!getModuleVersionBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, moduleVersion_);
      }
      memoizedSize = size;
      return size;
    }
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo)) {
        return super.equals(obj);
      }
      com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo other = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo) obj;
      boolean result = true;
      result = result && getUavModel()
          .equals(other.getUavModel());
      result = result && getUavSn()
          .equals(other.getUavSn());
      result = result && getUavVersion()
          .equals(other.getUavVersion());
      result = result && getPtModel()
          .equals(other.getPtModel());
      result = result && getPtVersion()
          .equals(other.getPtVersion());
      result = result && (getPtPosition()
          == other.getPtPosition());
      result = result && getModuleVersion()
          .equals(other.getModuleVersion());
      return result;
    }
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptorForType().hashCode();
      hash = (37 * hash) + UAVMODEL_FIELD_NUMBER;
      hash = (53 * hash) + getUavModel().hashCode();
      hash = (37 * hash) + UAVSN_FIELD_NUMBER;
      hash = (53 * hash) + getUavSn().hashCode();
      hash = (37 * hash) + UAVVERSION_FIELD_NUMBER;
      hash = (53 * hash) + getUavVersion().hashCode();
      hash = (37 * hash) + PTMODEL_FIELD_NUMBER;
      hash = (53 * hash) + getPtModel().hashCode();
      hash = (37 * hash) + PTVERSION_FIELD_NUMBER;
      hash = (53 * hash) + getPtVersion().hashCode();
      hash = (37 * hash) + PTPOSITION_FIELD_NUMBER;
      hash = (53 * hash) + getPtPosition();
      hash = (37 * hash) + MODULEVERSION_FIELD_NUMBER;
      hash = (53 * hash) + getModuleVersion().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * <pre>
     *无人机初始化详情
     * </pre>
     *
     * Protobuf type {@code UavInitInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:UavInitInfo)
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_UavInitInfo_descriptor;
      }
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_UavInitInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo.class, com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo.Builder.class);
      }
      // Construct using com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      public Builder clear() {
        super.clear();
        uavModel_ = "";
        uavSn_ = "";
        uavVersion_ = "";
        ptModel_ = "";
        ptVersion_ = "";
        ptPosition_ = 0;
        moduleVersion_ = "";
        return this;
      }
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.internal_static_UavInitInfo_descriptor;
      }
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo getDefaultInstanceForType() {
        return com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo.getDefaultInstance();
      }
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo build() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      public com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo buildPartial() {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo result = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo(this);
        result.uavModel_ = uavModel_;
        result.uavSn_ = uavSn_;
        result.uavVersion_ = uavVersion_;
        result.ptModel_ = ptModel_;
        result.ptVersion_ = ptVersion_;
        result.ptPosition_ = ptPosition_;
        result.moduleVersion_ = moduleVersion_;
        onBuilt();
        return result;
      }
      public Builder clone() {
        return (Builder) super.clone();
      }
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.setField(field, value);
      }
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo) {
          return mergeFrom((com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo other) {
        if (other == com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo.getDefaultInstance()) return this;
        if (!other.getUavModel().isEmpty()) {
          uavModel_ = other.uavModel_;
          onChanged();
        }
        if (!other.getUavSn().isEmpty()) {
          uavSn_ = other.uavSn_;
          onChanged();
        }
        if (!other.getUavVersion().isEmpty()) {
          uavVersion_ = other.uavVersion_;
          onChanged();
        }
        if (!other.getPtModel().isEmpty()) {
          ptModel_ = other.ptModel_;
          onChanged();
        }
        if (!other.getPtVersion().isEmpty()) {
          ptVersion_ = other.ptVersion_;
          onChanged();
        }
        if (other.getPtPosition() != 0) {
          setPtPosition(other.getPtPosition());
        }
        if (!other.getModuleVersion().isEmpty()) {
          moduleVersion_ = other.moduleVersion_;
          onChanged();
        }
        onChanged();
        return this;
      }
      public final boolean isInitialized() {
        return true;
      }
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private java.lang.Object uavModel_ = "";
      /**
       * <pre>
       *无人机型号
       * </pre>
       *
       * <code>optional string uavModel = 1;</code>
       */
      public java.lang.String getUavModel() {
        java.lang.Object ref = uavModel_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          uavModel_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *无人机型号
       * </pre>
       *
       * <code>optional string uavModel = 1;</code>
       */
      public com.google.protobuf.ByteString
          getUavModelBytes() {
        java.lang.Object ref = uavModel_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          uavModel_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *无人机型号
       * </pre>
       *
       * <code>optional string uavModel = 1;</code>
       */
      public Builder setUavModel(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
        uavModel_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *无人机型号
       * </pre>
       *
       * <code>optional string uavModel = 1;</code>
       */
      public Builder clearUavModel() {
        uavModel_ = getDefaultInstance().getUavModel();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *无人机型号
       * </pre>
       *
       * <code>optional string uavModel = 1;</code>
       */
      public Builder setUavModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        uavModel_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object uavSn_ = "";
      /**
       * <pre>
       *无人机SN
       * </pre>
       *
       * <code>optional string uavSn = 2;</code>
       */
      public java.lang.String getUavSn() {
        java.lang.Object ref = uavSn_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          uavSn_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *无人机SN
       * </pre>
       *
       * <code>optional string uavSn = 2;</code>
       */
      public com.google.protobuf.ByteString
          getUavSnBytes() {
        java.lang.Object ref = uavSn_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          uavSn_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *无人机SN
       * </pre>
       *
       * <code>optional string uavSn = 2;</code>
       */
      public Builder setUavSn(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
        uavSn_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *无人机SN
       * </pre>
       *
       * <code>optional string uavSn = 2;</code>
       */
      public Builder clearUavSn() {
        uavSn_ = getDefaultInstance().getUavSn();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *无人机SN
       * </pre>
       *
       * <code>optional string uavSn = 2;</code>
       */
      public Builder setUavSnBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        uavSn_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object uavVersion_ = "";
      /**
       * <pre>
       *无人机固件版本号
       * </pre>
       *
       * <code>optional string uavVersion = 3;</code>
       */
      public java.lang.String getUavVersion() {
        java.lang.Object ref = uavVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          uavVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *无人机固件版本号
       * </pre>
       *
       * <code>optional string uavVersion = 3;</code>
       */
      public com.google.protobuf.ByteString
          getUavVersionBytes() {
        java.lang.Object ref = uavVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          uavVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *无人机固件版本号
       * </pre>
       *
       * <code>optional string uavVersion = 3;</code>
       */
      public Builder setUavVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
        uavVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *无人机固件版本号
       * </pre>
       *
       * <code>optional string uavVersion = 3;</code>
       */
      public Builder clearUavVersion() {
        uavVersion_ = getDefaultInstance().getUavVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *无人机固件版本号
       * </pre>
       *
       * <code>optional string uavVersion = 3;</code>
       */
      public Builder setUavVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        uavVersion_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object ptModel_ = "";
      /**
       * <pre>
       *挂载相机型号
       * </pre>
       *
       * <code>optional string ptModel = 4;</code>
       */
      public java.lang.String getPtModel() {
        java.lang.Object ref = ptModel_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          ptModel_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *挂载相机型号
       * </pre>
       *
       * <code>optional string ptModel = 4;</code>
       */
      public com.google.protobuf.ByteString
          getPtModelBytes() {
        java.lang.Object ref = ptModel_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ptModel_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *挂载相机型号
       * </pre>
       *
       * <code>optional string ptModel = 4;</code>
       */
      public Builder setPtModel(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
        ptModel_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *挂载相机型号
       * </pre>
       *
       * <code>optional string ptModel = 4;</code>
       */
      public Builder clearPtModel() {
        ptModel_ = getDefaultInstance().getPtModel();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *挂载相机型号
       * </pre>
       *
       * <code>optional string ptModel = 4;</code>
       */
      public Builder setPtModelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ptModel_ = value;
        onChanged();
        return this;
      }
      private java.lang.Object ptVersion_ = "";
      /**
       * <pre>
       *挂载相机固件版本号
       * </pre>
       *
       * <code>optional string ptVersion = 5;</code>
       */
      public java.lang.String getPtVersion() {
        java.lang.Object ref = ptVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          ptVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *挂载相机固件版本号
       * </pre>
       *
       * <code>optional string ptVersion = 5;</code>
       */
      public com.google.protobuf.ByteString
          getPtVersionBytes() {
        java.lang.Object ref = ptVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ptVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *挂载相机固件版本号
       * </pre>
       *
       * <code>optional string ptVersion = 5;</code>
       */
      public Builder setPtVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
        ptVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *挂载相机固件版本号
       * </pre>
       *
       * <code>optional string ptVersion = 5;</code>
       */
      public Builder clearPtVersion() {
        ptVersion_ = getDefaultInstance().getPtVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *挂载相机固件版本号
       * </pre>
       *
       * <code>optional string ptVersion = 5;</code>
       */
      public Builder setPtVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        ptVersion_ = value;
        onChanged();
        return this;
      }
      private int ptPosition_ ;
      /**
       * <pre>
       *挂载相机psdk日位置
       * </pre>
       *
       * <code>optional uint32 ptPosition = 6;</code>
       */
      public int getPtPosition() {
        return ptPosition_;
      }
      /**
       * <pre>
       *挂载相机psdk日位置
       * </pre>
       *
       * <code>optional uint32 ptPosition = 6;</code>
       */
      public Builder setPtPosition(int value) {
        ptPosition_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *挂载相机psdk日位置
       * </pre>
       *
       * <code>optional uint32 ptPosition = 6;</code>
       */
      public Builder clearPtPosition() {
        ptPosition_ = 0;
        onChanged();
        return this;
      }
      private java.lang.Object moduleVersion_ = "";
      /**
       * <pre>
       *模组固件版本号
       * </pre>
       *
       * <code>optional string moduleVersion = 7;</code>
       */
      public java.lang.String getModuleVersion() {
        java.lang.Object ref = moduleVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          moduleVersion_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       *模组固件版本号
       * </pre>
       *
       * <code>optional string moduleVersion = 7;</code>
       */
      public com.google.protobuf.ByteString
          getModuleVersionBytes() {
        java.lang.Object ref = moduleVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          moduleVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       *模组固件版本号
       * </pre>
       *
       * <code>optional string moduleVersion = 7;</code>
       */
      public Builder setModuleVersion(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
        moduleVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *模组固件版本号
       * </pre>
       *
       * <code>optional string moduleVersion = 7;</code>
       */
      public Builder clearModuleVersion() {
        moduleVersion_ = getDefaultInstance().getModuleVersion();
        onChanged();
        return this;
      }
      /**
       * <pre>
       *模组固件版本号
       * </pre>
       *
       * <code>optional string moduleVersion = 7;</code>
       */
      public Builder setModuleVersionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        moduleVersion_ = value;
        onChanged();
        return this;
      }
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return this;
      }
      // @@protoc_insertion_point(builder_scope:UavInitInfo)
    }
    // @@protoc_insertion_point(class_scope:UavInitInfo)
    private static final com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo();
    }
    public static com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser<UavInitInfo>
        PARSER = new com.google.protobuf.AbstractParser<UavInitInfo>() {
      public UavInitInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
          return new UavInitInfo(input, extensionRegistry);
      }
    };
    public static com.google.protobuf.Parser<UavInitInfo> parser() {
      return PARSER;
    }
    @java.lang.Override
    public com.google.protobuf.Parser<UavInitInfo> getParserForType() {
      return PARSER;
    }
    public com.ard.tianyu.netty.protobuf.TelemetryDataPB.UavInitInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
@@ -35761,6 +34618,11 @@
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_SurroundModel_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_UavInitInfo_descriptor;
  private static final
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_UavInitInfo_fieldAccessorTable;
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
@@ -35770,129 +34632,140 @@
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\032TelemetryDataBuf-new.proto\"\336\004\n\rTelemet" +
      "ryData\022\013\n\003lng\030\001 \001(\001\022\013\n\003lat\030\002 \001(\001\022\020\n\010alti" +
      "tude\030\003 \001(\002\022\022\n\nultrasonic\030\004 \001(\002\022\r\n\005pitch\030" +
      "\005 \001(\002\022\014\n\004roll\030\006 \001(\002\022\013\n\003yaw\030\007 \001(\002\022\020\n\010airs" +
      "peed\030\010 \001(\002\022\020\n\010velocity\030\t \001(\002\022\021\n\ttimestam" +
      "p\030\n \001(\004\022\017\n\007ptpitch\030\013 \001(\002\022\016\n\006ptroll\030\014 \001(\002" +
      "\022\r\n\005ptyaw\030\r \001(\002\022\022\n\nzoomfactor\030\016 \001(\002\022\r\n\005b" +
      "oxSn\030\017 \001(\t\022\024\n\014batteryPower\030\020 \001(\t\022\026\n\016sate" +
      "lliteCount\030\021 \001(\r\022\016\n\006taskId\030\022 \001(\004\022\016\n\006rtkL" +
      "ng\030\023 \001(\001\022\016\n\006rtkLat\030\024 \001(\001\022\017\n\007rtkHFSL\030\025 \001(" +
      "\002\022\027\n\017rtkPositionInfo\030\026 \001(\r\022\023\n\013airFlyTime" +
      "s\030\027 \001(\r\022\026\n\016airFlyDistance\030\030 \001(\002\022\r\n\005uavSn" +
      "\030\031 \001(\t\022\020\n\010uavModel\030\032 \001(\t\022\021\n\thomeRange\030\033 " +
      "\001(\002\022\022\n\nflightMode\030\034 \001(\r\022\026\n\016targetDistanc" +
      "e\030\035 \001(\002\022\026\n\016predictFlyTime\030\036 \001(\r\022\025\n\rultra" +
      "sonicMax\030\037 \001(\002\022\025\n\rultrasonicMin\030  \001(\002\"6\n" +
      "\rTelemetryList\022%\n\rtelemetryList\030\001 \003(\0132\016." +
      "TelemetryData\"\271\004\n\nSignalInfo\022\014\n\004mode\030\001 \001" +
      "(\t\022\013\n\003mcc\030\002 \001(\t\022\013\n\003mnc\030\003 \001(\t\022\016\n\006cellid\030\004" +
      " \001(\t\022\014\n\004pcid\030\005 \001(\t\022\013\n\003tac\030\006 \001(\t\022\r\n\005arfcn" +
      "\030\007 \001(\t\022\014\n\004band\030\010 \001(\t\022\027\n\017nr_dl_bandwidth\030" +
      "\t \001(\t\022\014\n\004rsrp\030\n \001(\t\022\014\n\004rsrq\030\013 \001(\t\022\014\n\004sin" +
      "r\030\014 \001(\t\022\020\n\010tx_power\030\r \001(\t\022\016\n\006srxlev\030\016 \001(" +
      "\t\022\013\n\003cqi\030\017 \001(\t\022\016\n\006earfcn\030\020 \001(\t\022\025\n\rfreq_b" +
      "and_ind\030\021 \001(\t\022\024\n\014ul_bandwidth\030\022 \001(\t\022\024\n\014d" +
      "l_bandwidth\030\023 \001(\t\022\016\n\006is_tdd\030\024 \001(\t\022\014\n\004rss" +
      "i\030\025 \001(\t\022\023\n\013duplex_mode\030\026 \001(\t\022\013\n\003lng\030\027 \001(" +
      "\001\022\013\n\003lat\030\030 \001(\001\022\016\n\006height\030\031 \001(\002\022\021\n\ttimest" +
      "amp\030\032 \001(\r\022\020\n\010boxstate\030\033 \001(\r\022\013\n\003isp\030\034 \001(\t" +
      "\022\017\n\007tempMax\030\035 \001(\r\022\020\n\010prx_rsrp\030\036 \001(\t\022\020\n\010d" +
      "rx_rsrp\030\037 \001(\t\022\020\n\010rx2_rsrp\030  \001(\t\022\020\n\010rx3_r" +
      "srp\030! \001(\t\022\016\n\006box_sn\030\" \001(\t\"-\n\nSignalList\022" +
      "\037\n\nsignalInfo\030\001 \003(\0132\013.SignalInfo\"\246\002\n\010Uav" +
      "State\0225\n\025flightControllerState\030\001 \001(\0132\026.F" +
      "lightControllerState\022#\n\014batteryState\030\002 \001" +
      "(\0132\r.BatteryState\022\033\n\010ptzState\030\003 \001(\0132\t.Pt" +
      "zState\022!\n\013cameraState\030\004 \001(\0132\014.CameraStat" +
      "e\022#\n\014missionState\030\005 \001(\0132\r.MissionState\022\r" +
      "\n\005boxSn\030\006 \001(\t\022%\n\ravoidanceData\030\007 \001(\0132\016.A" +
      "voidanceData\022#\n\014hmsAlarmData\030\010 \003(\0132\r.Hms" +
      "AlarmData\"\340\002\n\025FlightControllerState\022\026\n\016s" +
      "atelliteCount\030\001 \001(\r\022\026\n\016gpsSignalLevel\030\002 " +
      "\001(\r\022\022\n\nflightMode\030\003 \001(\r\022\024\n\014flightStatus\030" +
      "\004 \001(\r\022\036\n\nstartPoint\030\005 \001(\0132\n.PointData\022\035\n" +
      "\thomePoint\030\006 \001(\0132\n.PointData\022\022\n\nhomeHeig" +
      "ht\030\007 \001(\005\022\020\n\010safeLine\030\010 \001(\r\022\024\n\014deviceStat" +
      "us\030\t \001(\r\022\024\n\014uwbNodeCount\030\n \001(\r\022\016\n\006rcMode" +
      "\030\013 \001(\t\022\033\n\023isEmergencyBrakeing\030\014 \001(\r\022\026\n\016o" +
      "utFlyAreaFlag\030\r \001(\r\022\027\n\017inNoFlyAreaFlag\030\016" +
      " \001(\r\"\253\001\n\014BatteryState\022\022\n\nbatteryNum\030\001 \001(" +
      "\r\022\024\n\014batteryPower\030\002 \001(\t\022\026\n\016batteryVoltag" +
      "e\030\003 \001(\t\022+\n\020firstBatteryInfo\030\004 \001(\0132\021.Batt" +
      "eryStateInfo\022,\n\021secondBatteryInfo\030\005 \001(\0132" +
      "\021.BatteryStateInfo\"\271\002\n\020BatteryStateInfo\022" +
      "\026\n\016isBatteryEmbed\030\001 \001(\r\022\036\n\026batteryCapaci" +
      "tyPercent\030\002 \001(\r\022\026\n\016currentVoltage\030\003 \001(\005\022" +
      "\027\n\017currentElectric\030\004 \001(\005\022\024\n\014fullCapacity" +
      "\030\005 \001(\r\022\030\n\020remainedCapacity\030\006 \001(\r\022\032\n\022batt" +
      "eryTemperature\030\007 \001(\002\022\021\n\tcellCount\030\010 \001(\r\022" +
      "\023\n\013batSOHState\030\t \001(\r\022\013\n\003sop\030\n \001(\r\022\021\n\thea" +
      "tState\030\013 \001(\r\022\020\n\010socState\030\014 \001(\r\022\026\n\016selfCh" +
      "eckError\030\r \001(\r\"H\n\010PtzState\022\r\n\005pitch\030\001 \001(" +
      "\002\022\014\n\004roll\030\002 \001(\002\022\013\n\003yaw\030\003 \001(\002\022\022\n\ngimbalMo" +
      "de\030\004 \001(\r\"\220\002\n\013CameraState\022\014\n\004mode\030\001 \001(\r\022\023" +
      "\n\013isRecording\030\002 \001(\r\022\026\n\016recordDuration\030\003 " +
      "\001(\r\022\016\n\006source\030\004 \001(\r\022\016\n\006camera\030\005 \001(\r\022\022\n\nz" +
      "oomfactor\030\006 \001(\002\022\r\n\005width\030\007 \001(\r\022\016\n\006height" +
      "\030\010 \001(\r\022\021\n\tframeRate\030\t \001(\r\022\021\n\tbitstream\030\n" +
      " \001(\r\022\033\n\023pointThermometrying\030\013 \001(\r\022\032\n\022are" +
      "aThermometrying\030\014 \001(\r\022\024\n\014laserRanging\030\r " +
      "\001(\r\"\277\002\n\014MissionState\022\017\n\007isPause\030\001 \001(\r\022\033\n" +
      "\023targetWaypointIndex\030\002 \001(\r\022\032\n\022isWaypoint" +
      "Finished\030\003 \001(\r\022\021\n\tpushVideo\030\004 \001(\r\022\016\n\006loc" +
      "k4g\030\005 \001(\r\022\020\n\010boxModel\030\006 \001(\r\022\017\n\007mapPlay\030\007" +
      " \001(\r\022\022\n\nloseAction\030\010 \001(\r\022\026\n\016isPointContr" +
      "ol\030\t \001(\r\022\024\n\014isUwbLanding\030\n \001(\r\022\026\n\016isPush" +
      "Videoing\030\013 \001(\r\022\022\n\nisDLanding\030\014 \001(\r\022\026\n\016pe" +
      "rceptionFlag\030\r \001(\r\022\031\n\021isPositionControl\030" +
      "\016 \001(\r\"\310\002\n\rAvoidanceData\022\022\n\ndownHealth\030\001 " +
      "\001(\r\022\014\n\004down\030\002 \001(\002\022\023\n\013frontHealth\030\003 \001(\r\022\r" +
      "\n\005front\030\004 \001(\002\022\023\n\013rightHealth\030\005 \001(\r\022\r\n\005ri" +
      "ght\030\006 \001(\002\022\022\n\nbackHealth\030\007 \001(\r\022\014\n\004back\030\010 " +
      "\001(\002\022\022\n\nleftHealth\030\t \001(\r\022\014\n\004left\030\n \001(\002\022\020\n" +
      "\010upHealth\030\013 \001(\r\022\n\n\002up\030\014 \001(\002\022!\n\031avoidance" +
      "EnableStatusDown\030\r \001(\r\022\037\n\027avoidanceEnabl" +
      "eStatusUp\030\016 \001(\r\022\'\n\037avoidanceEnableStatus" +
      "Horizontal\030\017 \001(\r\"J\n\014HmsAlarmData\022\017\n\007alar" +
      "mId\030\001 \001(\r\022\023\n\013reportLevel\030\002 \001(\r\022\024\n\014alarmM" +
      "ssInfo\030\003 \001(\t\"\366\002\n\014PlanLineData\022\026\n\016finishe" +
      "dAction\030\001 \001(\r\022\020\n\010maxSpeed\030\002 \001(\002\022\021\n\tautoS" +
      "peed\030\003 \001(\002\022\032\n\006points\030\004 \003(\0132\n.PointData\022\022" +
      "\n\nloseAction\030\005 \001(\r\022\022\n\nhomeHeight\030\006 \001(\r\022\030" +
      "\n\020isSaveEnergyMode\030\007 \001(\r\022\037\n\ttakePoint\030\010 " +
      "\001(\0132\014.HangarPoint\022\037\n\tlandPoint\030\t \001(\0132\014.H" +
      "angarPoint\022\035\n\tinterests\030\n \003(\0132\n.PointDat" +
      "a\022!\n\013normalModel\030\013 \001(\0132\014.NormalModel\022%\n\r" +
      "surroundModel\030\014 \001(\0132\016.SurroundModel\022 \n\014t" +
      "akeOffPoint\030\r \001(\0132\n.PointData\"\375\001\n\tPointD" +
      "ata\022\013\n\003lng\030\001 \001(\001\022\013\n\003lat\030\002 \001(\001\022\016\n\006height\030" +
      "\003 \001(\002\022\r\n\005speed\030\004 \001(\002\022\035\n\007actions\030\005 \003(\0132\014." +
      "PointAction\022\026\n\016flightPathMode\030\006 \001(\r\022\027\n\017d" +
      "ampingDistance\030\007 \001(\002\022\026\n\016safeGohomeFlag\030\010" +
      " \001(\r\022\023\n\013headingMode\030\t \001(\r\022\017\n\007heading\030\n \001" +
      "(\002\022\025\n\rinterestIndex\030\013 \001(\005\022\022\n\ngroupIndex\030" +
      "\014 \001(\r\"O\n\013PointAction\022\014\n\004type\030\001 \001(\r\022\r\n\005pa" +
      "ram\030\002 \001(\002\022\020\n\010waitTime\030\003 \001(\005\022\021\n\tspeakInfo" +
      "\030\004 \001(\t\"q\n\013HangarPoint\022\020\n\010hangarId\030\001 \001(\t\022" +
      "\021\n\thangarLng\030\002 \001(\001\022\021\n\thangarLat\030\003 \001(\001\022\024\n" +
      "\014alternateLng\030\004 \001(\001\022\024\n\014alternateLat\030\005 \001(" +
      "\001\"\242\001\n\013NormalModel\022\030\n\004area\030\001 \003(\0132\n.PointD" +
      "ata\022\021\n\tserviceId\030\002 \001(\r\022\020\n\010cameraId\030\003 \001(\r" +
      "\022\022\n\nisModeling\030\004 \001(\r\022\014\n\004mode\030\005 \001(\r\022\020\n\010hO" +
      "verlap\030\006 \001(\r\022\020\n\010vOverlap\030\007 \001(\r\022\016\n\006mirror" +
      "\030\010 \001(\r\"b\n\rSurroundModel\022\030\n\004area\030\001 \003(\0132\n." +
      "PointData\022\021\n\tserviceId\030\002 \001(\r\022\020\n\010cameraId" +
      "\030\003 \001(\r\022\022\n\nisModeling\030\004 \001(\rB.\n\033com.dji.ar" +
      "d.tianyu.protobufB\017TelemetryDataPBb\006prot" +
      "o3"
      "\n\026TelemetryDataBuf.proto\"\336\004\n\rTelemetryDa" +
      "ta\022\013\n\003lng\030\001 \001(\001\022\013\n\003lat\030\002 \001(\001\022\020\n\010altitude" +
      "\030\003 \001(\002\022\022\n\nultrasonic\030\004 \001(\002\022\r\n\005pitch\030\005 \001(" +
      "\002\022\014\n\004roll\030\006 \001(\002\022\013\n\003yaw\030\007 \001(\002\022\020\n\010airspeed" +
      "\030\010 \001(\002\022\020\n\010velocity\030\t \001(\002\022\021\n\ttimestamp\030\n " +
      "\001(\004\022\017\n\007ptpitch\030\013 \001(\002\022\016\n\006ptroll\030\014 \001(\002\022\r\n\005" +
      "ptyaw\030\r \001(\002\022\022\n\nzoomfactor\030\016 \001(\002\022\r\n\005boxSn" +
      "\030\017 \001(\t\022\024\n\014batteryPower\030\020 \001(\t\022\026\n\016satellit" +
      "eCount\030\021 \001(\r\022\016\n\006taskId\030\022 \001(\004\022\016\n\006rtkLng\030\023" +
      " \001(\001\022\016\n\006rtkLat\030\024 \001(\001\022\017\n\007rtkHFSL\030\025 \001(\002\022\027\n",
      "\017rtkPositionInfo\030\026 \001(\r\022\023\n\013airFlyTimes\030\027 " +
      "\001(\r\022\026\n\016airFlyDistance\030\030 \001(\002\022\r\n\005uavSn\030\031 \001" +
      "(\t\022\020\n\010uavModel\030\032 \001(\t\022\021\n\thomeRange\030\033 \001(\002\022" +
      "\022\n\nflightMode\030\034 \001(\r\022\026\n\016targetDistance\030\035 " +
      "\001(\002\022\026\n\016predictFlyTime\030\036 \001(\r\022\025\n\rultrasoni" +
      "cMax\030\037 \001(\002\022\025\n\rultrasonicMin\030  \001(\002\"6\n\rTel" +
      "emetryList\022%\n\rtelemetryList\030\001 \003(\0132\016.Tele" +
      "metryData\"\271\004\n\nSignalInfo\022\014\n\004mode\030\001 \001(\t\022\013" +
      "\n\003mcc\030\002 \001(\t\022\013\n\003mnc\030\003 \001(\t\022\016\n\006cellid\030\004 \001(\t" +
      "\022\014\n\004pcid\030\005 \001(\t\022\013\n\003tac\030\006 \001(\t\022\r\n\005arfcn\030\007 \001",
      "(\t\022\014\n\004band\030\010 \001(\t\022\027\n\017nr_dl_bandwidth\030\t \001(" +
      "\t\022\014\n\004rsrp\030\n \001(\t\022\014\n\004rsrq\030\013 \001(\t\022\014\n\004sinr\030\014 " +
      "\001(\t\022\020\n\010tx_power\030\r \001(\t\022\016\n\006srxlev\030\016 \001(\t\022\013\n" +
      "\003cqi\030\017 \001(\t\022\016\n\006earfcn\030\020 \001(\t\022\025\n\rfreq_band_" +
      "ind\030\021 \001(\t\022\024\n\014ul_bandwidth\030\022 \001(\t\022\024\n\014dl_ba" +
      "ndwidth\030\023 \001(\t\022\016\n\006is_tdd\030\024 \001(\t\022\014\n\004rssi\030\025 " +
      "\001(\t\022\023\n\013duplex_mode\030\026 \001(\t\022\013\n\003lng\030\027 \001(\001\022\013\n" +
      "\003lat\030\030 \001(\001\022\016\n\006height\030\031 \001(\002\022\021\n\ttimestamp\030" +
      "\032 \001(\r\022\020\n\010boxstate\030\033 \001(\r\022\013\n\003isp\030\034 \001(\t\022\017\n\007" +
      "tempMax\030\035 \001(\r\022\020\n\010prx_rsrp\030\036 \001(\t\022\020\n\010drx_r",
      "srp\030\037 \001(\t\022\020\n\010rx2_rsrp\030  \001(\t\022\020\n\010rx3_rsrp\030" +
      "! \001(\t\022\016\n\006box_sn\030\" \001(\t\"-\n\nSignalList\022\037\n\ns" +
      "ignalInfo\030\001 \003(\0132\013.SignalInfo\"\246\002\n\010UavStat" +
      "e\0225\n\025flightControllerState\030\001 \001(\0132\026.Fligh" +
      "tControllerState\022#\n\014batteryState\030\002 \001(\0132\r" +
      ".BatteryState\022\033\n\010ptzState\030\003 \001(\0132\t.PtzSta" +
      "te\022!\n\013cameraState\030\004 \001(\0132\014.CameraState\022#\n" +
      "\014missionState\030\005 \001(\0132\r.MissionState\022\r\n\005bo" +
      "xSn\030\006 \001(\t\022%\n\ravoidanceData\030\007 \001(\0132\016.Avoid" +
      "anceData\022#\n\014hmsAlarmData\030\010 \003(\0132\r.HmsAlar",
      "mData\"\340\002\n\025FlightControllerState\022\026\n\016satel" +
      "liteCount\030\001 \001(\r\022\026\n\016gpsSignalLevel\030\002 \001(\r\022" +
      "\022\n\nflightMode\030\003 \001(\r\022\024\n\014flightStatus\030\004 \001(" +
      "\r\022\036\n\nstartPoint\030\005 \001(\0132\n.PointData\022\035\n\thom" +
      "ePoint\030\006 \001(\0132\n.PointData\022\022\n\nhomeHeight\030\007" +
      " \001(\005\022\020\n\010safeLine\030\010 \001(\r\022\024\n\014deviceStatus\030\t" +
      " \001(\r\022\024\n\014uwbNodeCount\030\n \001(\r\022\016\n\006rcMode\030\013 \001" +
      "(\t\022\033\n\023isEmergencyBrakeing\030\014 \001(\r\022\026\n\016outFl" +
      "yAreaFlag\030\r \001(\r\022\027\n\017inNoFlyAreaFlag\030\016 \001(\r" +
      "\"\253\001\n\014BatteryState\022\022\n\nbatteryNum\030\001 \001(\r\022\024\n",
      "\014batteryPower\030\002 \001(\t\022\026\n\016batteryVoltage\030\003 " +
      "\001(\t\022+\n\020firstBatteryInfo\030\004 \001(\0132\021.BatteryS" +
      "tateInfo\022,\n\021secondBatteryInfo\030\005 \001(\0132\021.Ba" +
      "tteryStateInfo\"\271\002\n\020BatteryStateInfo\022\026\n\016i" +
      "sBatteryEmbed\030\001 \001(\r\022\036\n\026batteryCapacityPe" +
      "rcent\030\002 \001(\r\022\026\n\016currentVoltage\030\003 \001(\005\022\027\n\017c" +
      "urrentElectric\030\004 \001(\005\022\024\n\014fullCapacity\030\005 \001" +
      "(\r\022\030\n\020remainedCapacity\030\006 \001(\r\022\032\n\022batteryT" +
      "emperature\030\007 \001(\002\022\021\n\tcellCount\030\010 \001(\r\022\023\n\013b" +
      "atSOHState\030\t \001(\r\022\013\n\003sop\030\n \001(\r\022\021\n\theatSta",
      "te\030\013 \001(\r\022\020\n\010socState\030\014 \001(\r\022\026\n\016selfCheckE" +
      "rror\030\r \001(\r\"H\n\010PtzState\022\r\n\005pitch\030\001 \001(\002\022\014\n" +
      "\004roll\030\002 \001(\002\022\013\n\003yaw\030\003 \001(\002\022\022\n\ngimbalMode\030\004" +
      " \001(\r\"\220\002\n\013CameraState\022\014\n\004mode\030\001 \001(\r\022\023\n\013is" +
      "Recording\030\002 \001(\r\022\026\n\016recordDuration\030\003 \001(\r\022" +
      "\016\n\006source\030\004 \001(\r\022\016\n\006camera\030\005 \001(\r\022\022\n\nzoomf" +
      "actor\030\006 \001(\002\022\r\n\005width\030\007 \001(\r\022\016\n\006height\030\010 \001" +
      "(\r\022\021\n\tframeRate\030\t \001(\r\022\021\n\tbitstream\030\n \001(\r" +
      "\022\033\n\023pointThermometrying\030\013 \001(\r\022\032\n\022areaThe" +
      "rmometrying\030\014 \001(\r\022\024\n\014laserRanging\030\r \001(\r\"",
      "\277\002\n\014MissionState\022\017\n\007isPause\030\001 \001(\r\022\033\n\023tar" +
      "getWaypointIndex\030\002 \001(\r\022\032\n\022isWaypointFini" +
      "shed\030\003 \001(\r\022\021\n\tpushVideo\030\004 \001(\r\022\016\n\006lock4g\030" +
      "\005 \001(\r\022\020\n\010boxModel\030\006 \001(\r\022\017\n\007mapPlay\030\007 \001(\r" +
      "\022\022\n\nloseAction\030\010 \001(\r\022\026\n\016isPointControl\030\t" +
      " \001(\r\022\024\n\014isUwbLanding\030\n \001(\r\022\026\n\016isPushVide" +
      "oing\030\013 \001(\r\022\022\n\nisDLanding\030\014 \001(\r\022\026\n\016percep" +
      "tionFlag\030\r \001(\r\022\031\n\021isPositionControl\030\016 \001(" +
      "\r\"\310\002\n\rAvoidanceData\022\022\n\ndownHealth\030\001 \001(\r\022" +
      "\014\n\004down\030\002 \001(\002\022\023\n\013frontHealth\030\003 \001(\r\022\r\n\005fr",
      "ont\030\004 \001(\002\022\023\n\013rightHealth\030\005 \001(\r\022\r\n\005right\030" +
      "\006 \001(\002\022\022\n\nbackHealth\030\007 \001(\r\022\014\n\004back\030\010 \001(\002\022" +
      "\022\n\nleftHealth\030\t \001(\r\022\014\n\004left\030\n \001(\002\022\020\n\010upH" +
      "ealth\030\013 \001(\r\022\n\n\002up\030\014 \001(\002\022!\n\031avoidanceEnab" +
      "leStatusDown\030\r \001(\r\022\037\n\027avoidanceEnableSta" +
      "tusUp\030\016 \001(\r\022\'\n\037avoidanceEnableStatusHori" +
      "zontal\030\017 \001(\r\"J\n\014HmsAlarmData\022\017\n\007alarmId\030" +
      "\001 \001(\r\022\023\n\013reportLevel\030\002 \001(\r\022\024\n\014alarmMssIn" +
      "fo\030\003 \001(\t\"\366\002\n\014PlanLineData\022\026\n\016finishedAct" +
      "ion\030\001 \001(\r\022\020\n\010maxSpeed\030\002 \001(\002\022\021\n\tautoSpeed",
      "\030\003 \001(\002\022\032\n\006points\030\004 \003(\0132\n.PointData\022\022\n\nlo" +
      "seAction\030\005 \001(\r\022\022\n\nhomeHeight\030\006 \001(\r\022\030\n\020is" +
      "SaveEnergyMode\030\007 \001(\r\022\037\n\ttakePoint\030\010 \001(\0132" +
      "\014.HangarPoint\022\037\n\tlandPoint\030\t \001(\0132\014.Hanga" +
      "rPoint\022\035\n\tinterests\030\n \003(\0132\n.PointData\022!\n" +
      "\013normalModel\030\013 \001(\0132\014.NormalModel\022%\n\rsurr" +
      "oundModel\030\014 \001(\0132\016.SurroundModel\022 \n\014takeO" +
      "ffPoint\030\r \001(\0132\n.PointData\"\375\001\n\tPointData\022" +
      "\013\n\003lng\030\001 \001(\001\022\013\n\003lat\030\002 \001(\001\022\016\n\006height\030\003 \001(" +
      "\002\022\r\n\005speed\030\004 \001(\002\022\035\n\007actions\030\005 \003(\0132\014.Poin",
      "tAction\022\026\n\016flightPathMode\030\006 \001(\r\022\027\n\017dampi" +
      "ngDistance\030\007 \001(\002\022\026\n\016safeGohomeFlag\030\010 \001(\r" +
      "\022\023\n\013headingMode\030\t \001(\r\022\017\n\007heading\030\n \001(\002\022\025" +
      "\n\rinterestIndex\030\013 \001(\005\022\022\n\ngroupIndex\030\014 \001(" +
      "\r\"O\n\013PointAction\022\014\n\004type\030\001 \001(\r\022\r\n\005param\030" +
      "\002 \001(\002\022\020\n\010waitTime\030\003 \001(\005\022\021\n\tspeakInfo\030\004 \001" +
      "(\t\"q\n\013HangarPoint\022\020\n\010hangarId\030\001 \001(\t\022\021\n\th" +
      "angarLng\030\002 \001(\001\022\021\n\thangarLat\030\003 \001(\001\022\024\n\014alt" +
      "ernateLng\030\004 \001(\001\022\024\n\014alternateLat\030\005 \001(\001\"\242\001" +
      "\n\013NormalModel\022\030\n\004area\030\001 \003(\0132\n.PointData\022",
      "\021\n\tserviceId\030\002 \001(\r\022\020\n\010cameraId\030\003 \001(\r\022\022\n\n" +
      "isModeling\030\004 \001(\r\022\014\n\004mode\030\005 \001(\r\022\020\n\010hOverl" +
      "ap\030\006 \001(\r\022\020\n\010vOverlap\030\007 \001(\r\022\016\n\006mirror\030\010 \001" +
      "(\r\"b\n\rSurroundModel\022\030\n\004area\030\001 \003(\0132\n.Poin" +
      "tData\022\021\n\tserviceId\030\002 \001(\r\022\020\n\010cameraId\030\003 \001" +
      "(\r\022\022\n\nisModeling\030\004 \001(\r\"\221\001\n\013UavInitInfo\022\020" +
      "\n\010uavModel\030\001 \001(\t\022\r\n\005uavSn\030\002 \001(\t\022\022\n\nuavVe" +
      "rsion\030\003 \001(\t\022\017\n\007ptModel\030\004 \001(\t\022\021\n\tptVersio" +
      "n\030\005 \001(\t\022\022\n\nptPosition\030\006 \001(\r\022\025\n\rmoduleVer" +
      "sion\030\007 \001(\tB0\n\035com.ard.tianyu.netty.proto",
      "bufB\017TelemetryDataPBb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        });
        }, assigner);
    internal_static_TelemetryData_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_TelemetryData_fieldAccessorTable = new
@@ -36007,6 +34880,12 @@
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_SurroundModel_descriptor,
        new java.lang.String[] { "Area", "ServiceId", "CameraId", "IsModeling", });
    internal_static_UavInitInfo_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_UavInitInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_UavInitInfo_descriptor,
        new java.lang.String[] { "UavModel", "UavSn", "UavVersion", "PtModel", "PtVersion", "PtPosition", "ModuleVersion", });
  }
  // @@protoc_insertion_point(outer_class_scope)