package Mqttmessage.Entity;
|
|
|
import lombok.AllArgsConstructor;
|
import lombok.Data;
|
import lombok.NoArgsConstructor;
|
|
@Data
|
@NoArgsConstructor
|
@AllArgsConstructor
|
public class GPSData{
|
// JSON中的原始字段
|
private String msg_id; // 消息唯一标识
|
private Long timestamp; // 时间戳(毫秒)
|
private String device_id; // 设备编号
|
private String data_type; // 数据类型
|
private String gps_raw; // 原始GPS数据
|
|
// IMU数据内部类
|
private IMUData imu_data;
|
|
// 状态数据(新协议格式)
|
private StatusInfo status;
|
|
// NMEA GGA解析结果(可选,根据需要添加)
|
private GGAData ggaData;
|
|
/**
|
* 获取原始GPS数据
|
* @return 原始GPS数据字符串
|
*/
|
public String getGps_raw() {
|
return gps_raw;
|
}
|
|
/**
|
* 设置原始GPS数据
|
* @param gps_raw 原始GPS数据字符串
|
*/
|
public void setGps_raw(String gps_raw) {
|
this.gps_raw = gps_raw;
|
}
|
|
|
|
|
|
/**
|
* IMU数据内部类(简化版,只包含角度信息)
|
*/
|
@Data
|
@NoArgsConstructor
|
public static class IMUData {
|
private Double roll; // 横滚角 角度
|
private Double pitch; // 俯仰角 角度
|
private Double yaw; // 偏航角 角度
|
|
/**
|
* 带参数的构造函数
|
* @param roll 横滚角 角度
|
* @param pitch 俯仰角 角度
|
* @param yaw 偏航角 角度
|
*/
|
public IMUData(Double roll, Double pitch, Double yaw) {
|
this.roll = roll;
|
this.pitch = pitch;
|
this.yaw = yaw;
|
}
|
}
|
|
/**
|
* 状态信息内部类(与StatusData中的StatusInfo保持一致)
|
*/
|
@Data
|
@NoArgsConstructor
|
public static class StatusInfo {
|
private Integer battery_level; // 电池电量百分比
|
private Double battery_voltage; // 电池电压
|
private String operation_mode; // 操作模式:manual, auto, emergency_stop
|
private String motor_status; // 电机状态:stopped, running, error
|
private String blade_status; // 刀片状态:stopped, rotating
|
private Integer blade_height; // 刀盘高度 厘米
|
private Integer self_check_status; // 自检状态:1-完成,0-未完成
|
private Integer error_code; // 错误代码
|
private String error_message; // 错误信息
|
|
/**
|
* 带参数的构造函数
|
* @param battery_level 电池电量百分比
|
* @param battery_voltage 电池电压
|
* @param operation_mode 操作模式:manual, auto, emergency_stop
|
* @param motor_status 电机状态:stopped, running, error
|
* @param blade_status 刀片状态:stopped, rotating
|
* @param blade_height 刀盘高度 厘米
|
* @param self_check_status 自检状态:1-完成,0-未完成
|
* @param error_code 错误代码
|
* @param error_message 错误信息
|
*/
|
public StatusInfo(Integer battery_level, Double battery_voltage, String operation_mode,
|
String motor_status, String blade_status, Integer blade_height,
|
Integer self_check_status, Integer error_code, String error_message) {
|
this.battery_level = battery_level;
|
this.battery_voltage = battery_voltage;
|
this.operation_mode = operation_mode;
|
this.motor_status = motor_status;
|
this.blade_status = blade_status;
|
this.blade_height = blade_height;
|
this.self_check_status = self_check_status;
|
this.error_code = error_code;
|
this.error_message = error_message;
|
}
|
}
|
|
/**
|
* GGA数据解析类(可选,用于存储解析后的GGA数据)
|
*/
|
@Data
|
@NoArgsConstructor
|
@AllArgsConstructor
|
public static class GGAData {
|
private String utcTime; // UTC时间
|
private String latitude; // 纬度(原始度分格式)
|
private String latitudeDir; // 纬度方向
|
private String longitude; // 经度(原始度分格式)
|
private String longitudeDir;// 经度方向
|
private Integer gpsQuality; // GPS质量指示
|
private Integer satellites; // 使用的卫星数量
|
private Double hdop; // 水平精度因子
|
private Double altitude; // 海拔高度
|
private String altitudeUnit;// 海拔高度单位
|
private Double geoidSep; // 大地水准面分离
|
private String geoidSepUnit;// 大地水准面分离单位
|
private String age; // 差分GPS数据期限
|
private String stationId; // 差分参考基站标号
|
}
|
}
|