package com.ruoyi.dataInterchange.model;
|
|
import io.netty.buffer.ByteBuf;
|
import lombok.Data;
|
import org.springframework.data.elasticsearch.annotations.Field;
|
import org.springframework.data.elasticsearch.annotations.FieldType;
|
|
/**
|
* 车辆定位信息
|
*
|
* @author zhibing.pu
|
* @Date 2025/2/24 11:56
|
*/
|
@Data
|
public class GnssData {
|
/**
|
* 定位信息是否使用国家测绘局批准的地图表米插件进行加密
|
* 加密标识
|
* 1:已加密
|
* 0:未加密
|
*/
|
@Field(type = FieldType.Integer)
|
private int encrypt;
|
/**
|
* 日月年
|
*/
|
@Field(type = FieldType.Integer)
|
private int date;
|
/**
|
* 时分秒
|
*/
|
@Field(type = FieldType.Integer)
|
private int time;
|
/**
|
* 经度
|
*/
|
@Field(type = FieldType.Integer)
|
private int lon;
|
/**
|
* 纬度
|
*/
|
@Field(type = FieldType.Integer)
|
private int lat;
|
/**
|
* 速度
|
*/
|
@Field(type = FieldType.Integer)
|
private int vec1;
|
/**
|
* 行驶记录速度
|
*/
|
@Field(type = FieldType.Integer)
|
private int vec2;
|
/**
|
* 车辆当前总里程数
|
*/
|
@Field(type = FieldType.Integer)
|
private int vec3;
|
/**
|
* 方向
|
*/
|
@Field(type = FieldType.Integer)
|
private int direction;
|
/**
|
* 海拔高度
|
*/
|
@Field(type = FieldType.Integer)
|
private int altitude;
|
/**
|
* 车辆状态
|
*/
|
@Field(type = FieldType.Integer)
|
private int state;
|
/**
|
* 报警状态
|
*/
|
@Field(type = FieldType.Integer)
|
private int alarm;
|
|
/**
|
* 解析报文
|
*/
|
public GnssData decode(ByteBuf byteBuf) {
|
this.encrypt = byteBuf.readByte();
|
this.date = byteBuf.readInt();
|
ByteBuf byteBuf1 = byteBuf.readBytes(3);
|
StringBuilder t = new StringBuilder();
|
for (int i = 0; i < 3; i++) {
|
t.append(byteBuf1.getByte(i));
|
}
|
this.time = Integer.valueOf(t.toString());
|
this.lon = byteBuf.readInt();
|
this.lat = byteBuf.readInt();
|
this.vec1 = byteBuf.readShort();
|
this.vec2 = byteBuf.readShort();
|
this.vec3 = byteBuf.readInt();
|
this.direction = byteBuf.readShort();
|
this.altitude = byteBuf.readShort();
|
this.state = byteBuf.readInt();
|
this.alarm = byteBuf.readInt();
|
return this;
|
}
|
}
|