Pu Zhibing
23 分钟以前 b554a106bc1b06e0320b642d16c31554ae558301
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/model/UPWarnMsgAdptInfo.java
@@ -70,8 +70,70 @@
   /**
    * 信息ID
    */
   @Field(type = FieldType.Text)
   private String infoId;
   /**
    * 驾驶员姓名长度
    */
   @Field(type = FieldType.Integer)
   private int infoId;
   private int driverLength;
   /**
    * 驾驶员姓名
    */
   @Field(type = FieldType.Text)
   private String driver;
   /**
    * 驾驶员驾照号码长度
    */
   @Field(type = FieldType.Integer)
   private int driverNoLength;
   /**
    * 驾驶员驾照号码
    */
   @Field(type = FieldType.Text)
   private String driverNo;
   /**
    * 报警级别 0x001:一级报警,0x002: 二级报警
    */
   @Field(type = FieldType.Integer)
   private int level;
   /**
    * 经度
    */
   @Field(type = FieldType.Integer)
   private int longitude;
   /**
    * 纬度
    */
   @Field(type = FieldType.Integer)
   private int latitude;
   /**
    * 海拔
    */
   @Field(type = FieldType.Integer)
   private int altitude;
   /**
    * 行车速度
    */
   @Field(type = FieldType.Integer)
   private int speed;
   /**
    * 行驶记录速度
    */
   @Field(type = FieldType.Integer)
   private int vec2;
   /**
    * 报警状态
    * 1:报警开始
    * 2:报警结束
    */
   @Field(type = FieldType.Integer)
   private int status;
   /**
    * 方向
    */
   @Field(type = FieldType.Integer)
   private int direction;
   /**
    * 报警数据长度
    */
@@ -82,21 +144,6 @@
    */
   @Field(type = FieldType.Text)
   private String infoContent;
   /**
    * 速度
    */
   @Field(type = FieldType.Integer)
   private Integer speed;
   /**
    * 经度
    */
   @Field(type = FieldType.Integer)
   private Integer longitude;
   /**
    * 纬度
    */
   @Field(type = FieldType.Integer)
   private Integer latitude;
   /**
    * 报警处理结果
    * 0x00:处理中
@@ -111,12 +158,17 @@
    */
   @Field(type = FieldType.Long)
   private long pushTime;
   /**
    * 抓拍图片
    */
   @Field(type = FieldType.Text)
   private String picUrl;
   
   /**
    * 解析报文
    */
   public UPWarnMsgAdptInfo decode(WarnMsg warnMsg) {
   public UPWarnMsgAdptInfo decode1(WarnMsg warnMsg) {
      try {
         byte[] data = warnMsg.getData();
         ByteBuf byteBuf = Unpooled.wrappedBuffer(data);
@@ -124,7 +176,7 @@
         this.vehicleColor = warnMsg.getVehicleColor();
         this.dataType = warnMsg.getDataType();
         this.dataLength = warnMsg.getDataLength();
         //报警信息来源
         this.warnSrc = byteBuf.readByte();
         //报警类型
@@ -135,7 +187,7 @@
         //报警时间
         this.warnTime = Long.parseLong(time, 16);
         //信息ID
         this.infoId = byteBuf.readInt();
         this.infoId = Integer.valueOf(byteBuf.readInt()).toString();
         //报警数据长度
         this.infoLength = byteBuf.readInt();
         //上报报警信息内容
@@ -145,4 +197,62 @@
      }
      return this;
   }
   /**
    * 解析报文(川标)
    */
   public UPWarnMsgAdptInfo decode2(WarnMsg warnMsg) {
      try {
         byte[] data = warnMsg.getData();
         ByteBuf byteBuf = Unpooled.wrappedBuffer(data);
         this.vehicleNo = warnMsg.getVehicleNo();
         this.vehicleColor = warnMsg.getVehicleColor();
         this.dataType = warnMsg.getDataType();
         this.dataLength = warnMsg.getDataLength();
         //报警信息来源
         this.warnSrc = byteBuf.readByte();
         //报警类型
         this.warnType = byteBuf.readShort();
         byte[] readableBytes = new byte[8];
         byteBuf.readBytes(readableBytes);
         String time = ByteArrayUtil.bytes2HexStr(readableBytes);
         //报警时间
         this.warnTime = Long.parseLong(time, 16);
         //团标扩展
         //信息ID
         this.infoId = Jtt809Util.readGBKString(byteBuf,32);
         //驾驶员姓名长度
         this.driverLength = byteBuf.readByte();
         //驾驶员姓名
         this.driver = Jtt809Util.readGBKString(byteBuf,this.driverLength);
         //驾驶员驾照号码长度
         this.driverNoLength = byteBuf.readByte();
         //驾驶员驾照号码
         this.driverNo = Jtt809Util.readGBKString(byteBuf,this.driverNoLength);
         //报警级别
         this.level = byteBuf.readByte();
         //经度
         this.longitude = byteBuf.readInt();
         //纬度
         this.latitude = byteBuf.readInt();
         //海拔高度
         this.altitude = byteBuf.readShort();
         //行车速度
         this.speed = byteBuf.readShort();
         //行驶记录速度
         this.vec2 = byteBuf.readShort();
         //报警状态
         this.status = byteBuf.readByte();
         //方向
         this.direction = byteBuf.readShort();
         //报警数据长度
         this.infoLength = byteBuf.readShort();
         //报警信息内容
         this.infoContent = Jtt809Util.readGBKString(byteBuf,this.infoLength);
      }catch (Exception e){
         e.printStackTrace();
      }
      return this;
   }
}