puzhibing
3 天以前 4ad32c37e3317fb6cb7cbfb034b53d3220c27db4
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,34 +158,101 @@
    */
   @Field(type = FieldType.Long)
   private long pushTime;
   /**
    * 抓拍图片
    */
   @Field(type = FieldType.Text)
   private String picUrl;
   
   /**
    * 解析报文
    */
   public UPWarnMsgAdptInfo decode(WarnMsg warnMsg) {
      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 = byteBuf.readInt();
      //报警数据长度
      this.infoLength = byteBuf.readInt();
      //上报报警信息内容
      this.infoContent = Jtt809Util.readGBKString(byteBuf, this.infoLength);
   public UPWarnMsgAdptInfo decode1(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 = Integer.valueOf(byteBuf.readInt()).toString();
         //报警数据长度
         this.infoLength = byteBuf.readInt();
         //上报报警信息内容
         this.infoContent = Jtt809Util.readGBKString(byteBuf, this.infoLength);
      }catch (Exception e){
         e.printStackTrace();
      }
      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;
   }
}