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; // 错误信息 private String path_id_saved; // 存储的路径ID /** * 带参数的构造函数 * @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 错误信息 * @param path_id_saved 存储的路径ID */ 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, String path_id_saved) { 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; this.path_id_saved = path_id_saved; } public Integer getBattery_level() { return battery_level; } public void setBattery_level(Integer battery_level) { this.battery_level = battery_level; } public Double getBattery_voltage() { return battery_voltage; } public void setBattery_voltage(Double battery_voltage) { this.battery_voltage = battery_voltage; } public String getOperation_mode() { return operation_mode; } public void setOperation_mode(String operation_mode) { this.operation_mode = operation_mode; } public String getMotor_status() { return motor_status; } public void setMotor_status(String motor_status) { this.motor_status = motor_status; } public String getBlade_status() { return blade_status; } public void setBlade_status(String blade_status) { this.blade_status = blade_status; } public Integer getBlade_height() { return blade_height; } public void setBlade_height(Integer blade_height) { this.blade_height = blade_height; } public Integer getSelf_check_status() { return self_check_status; } public void setSelf_check_status(Integer self_check_status) { this.self_check_status = self_check_status; } public Integer getError_code() { return error_code; } public void setError_code(Integer error_code) { this.error_code = error_code; } public String getError_message() { return error_message; } public void setError_message(String error_message) { this.error_message = error_message; } public String getPath_id_saved() { return path_id_saved; } public void setPath_id_saved(String path_id_saved) { this.path_id_saved = path_id_saved; } } /** * 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; // 差分参考基站标号 } public String getMsg_id() { return msg_id; } public void setMsg_id(String msg_id) { this.msg_id = msg_id; } public Long getTimestamp() { return timestamp; } public void setTimestamp(Long timestamp) { this.timestamp = timestamp; } public String getDevice_id() { return device_id; } public void setDevice_id(String device_id) { this.device_id = device_id; } public String getData_type() { return data_type; } public void setData_type(String data_type) { this.data_type = data_type; } public IMUData getImu_data() { return imu_data; } public void setImu_data(IMUData imu_data) { this.imu_data = imu_data; } public StatusInfo getStatus() { return status; } public void setStatus(StatusInfo status) { this.status = status; } public GGAData getGgaData() { return ggaData; } public void setGgaData(GGAData ggaData) { this.ggaData = ggaData; } }