From 5dd19eedcde66a5e67d3e2c68715c335c8267dcf Mon Sep 17 00:00:00 2001 From: rouchen <3133657697@qq.com> Date: Sat, 8 Jun 2024 12:01:06 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BF=AE=E6=94=B9=E6=8A=A5=E6=96=87?= =?UTF-8?q?=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/muyu/utils/ConversionUtil.java | 251 +++++++++++------- .../java/com/muyu/vehicle/MessageData.java | 215 +++++++++++++++ 2 files changed, 366 insertions(+), 100 deletions(-) create mode 100644 src/main/java/com/muyu/vehicle/MessageData.java diff --git a/src/main/java/com/muyu/utils/ConversionUtil.java b/src/main/java/com/muyu/utils/ConversionUtil.java index 9c5c304..11d69de 100644 --- a/src/main/java/com/muyu/utils/ConversionUtil.java +++ b/src/main/java/com/muyu/utils/ConversionUtil.java @@ -1,5 +1,7 @@ package com.muyu.utils; +import com.muyu.vehicle.MessageData; +import com.muyu.vehicle.VehicleData; import lombok.extern.log4j.Log4j2; import java.nio.charset.StandardCharsets; @@ -32,7 +34,7 @@ public class ConversionUtil { // System.out.println(strToSixteen); // System.out.println(strToSixteen.replace(" ", "").length()); - String hexStr = "7E 48 58 49 54 48 58 55 51 52 32 54 55 43 30 58 33 55 31 37 31 37 35 38 39 32 35 37 35 35 31 31 31 36 2e 37 36 34 36 35 30 30 33 39 2e 35 37 34 38 38 30 30 32 37 30 2e 30 30 32 30 2e 33 35 30 30 30 30 30 30 32 37 36 30 30 30 38 30 30 30 30 32 32 30 38 30 30 30 30 30 44 31 30 30 30 39 2e 30 30 30 33 32 30 30 30 30 34 34 37 34 39 37 38 36 30 31 30 39 30 30 30 32 32 32 30 30 35 32 38 34 30 30 30 30 37 35 38 38 34 2e 33 32 30 30 30 30 31 33 30 30 30 30 31 31 34 30 30 30 30 36 39 39 30 30 30 34 30 30 30 33 30 30 30 35 30 30 30 30 30 35 30 30 30 30 30 32 33 30 30 30 30 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 11 7E"; +// String hexStr = "7E 48 58 49 54 48 58 55 51 52 32 54 55 43 30 58 33 55 31 37 31 37 35 38 39 32 35 37 35 35 31 31 31 36 2e 37 36 34 36 35 30 30 33 39 2e 35 37 34 38 38 30 30 32 37 30 2e 30 30 32 30 2e 33 35 30 30 30 30 30 30 32 37 36 30 30 30 38 30 30 30 30 32 32 30 38 30 30 30 30 30 44 31 30 30 30 39 2e 30 30 30 33 32 30 30 30 30 34 34 37 34 39 37 38 36 30 31 30 39 30 30 30 32 32 32 30 30 35 32 38 34 30 30 30 30 37 35 38 38 34 2e 33 32 30 30 30 30 31 33 30 30 30 30 31 31 34 30 30 30 30 36 39 39 30 30 30 34 30 30 30 33 30 30 30 35 30 30 30 30 30 35 30 30 30 30 30 32 33 30 30 30 30 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 11 7E"; String hexStringToString = hexStringToString(args); System.out.println(args); System.out.println(args.length()); @@ -43,234 +45,283 @@ public class ConversionUtil { log.error("substring:{}",substring.length()); //vin String vin = substring.substring(0,17); - log.error("length:{}",vin.length()); - log.error("vin:{}",vin); +// log.error("length:{}",vin.length()); +// log.error("vin:{}",vin); //时间戳 String timestamp = substring.substring(17,30); - log.error("length:{}",timestamp.length()); - log.error("timestamp:{}",timestamp); - //经度 +// log.error("length:{}",timestamp.length()); +// log.error("timestamp:{}",timestamp); +// //经度 String longitude = substring.substring(30, 41); - log.error("length:{}",longitude.length()); - log.error("longitude:{}",longitude); - //维度 +// log.error("length:{}",longitude.length()); +// log.error("longitude:{}",longitude); +// //维度 String latitude = substring.substring(41, 51); - log.error("length:{}",latitude.length()); - log.error("latitude:{}",latitude); - //车速 +// log.error("length:{}",latitude.length()); +// log.error("latitude:{}",latitude); +// //车速 String speed = substring.substring(51, 57); int length = speed.length(); - log.error("length:{}",length); - log.info("speed:{}",speed); +// log.error("length:{}",length); +// log.info("speed:{}",speed); //总里程 String mileage = substring.substring(57, 68); - log.error("length:{}",mileage.length()); - log.error("mileage:{}",mileage); +// log.error("length:{}",mileage.length()); +// log.error("mileage:{}",mileage); //总电压 String dischargeVoltage = substring.substring(68, 74); - log.error("length:{}",dischargeVoltage.length()); - log.error("dischargeVoltage:{}",dischargeVoltage); +// log.error("length:{}",dischargeVoltage.length()); +// log.error("dischargeVoltage:{}",dischargeVoltage); //总电流 String dischargeCurrent = substring.substring(74, 79); - log.error("length:{}",dischargeCurrent.length()); - log.error("dischargeCurrent:{}",dischargeCurrent); +// log.error("length:{}",dischargeCurrent.length()); +// log.error("dischargeCurrent:{}",dischargeCurrent); //绝缘电阻 String insulationResistance = substring.substring(79, 88); - log.error("length:{}",insulationResistance.length()); - log.error("insulationResistance:{}",insulationResistance); - //档位 +// log.error("length:{}",insulationResistance.length()); +// log.error("insulationResistance:{}",insulationResistance); +// //档位 String gear = substring.substring(88, 89); - log.error("length:{}",gear.length()); - log.error("gear:{}",gear); +// log.error("length:{}",gear.length()); +// log.error("gear:{}",gear); //加速踏板行程值 String accelerationPedal = substring.substring(89, 91); - log.error("length:{}",accelerationPedal.length()); - log.error("accelerationPedal:{}",accelerationPedal); +// log.error("length:{}",accelerationPedal.length()); +// log.error("accelerationPedal:{}",accelerationPedal); //制动踏板行程值 String brakePedal = substring.substring(91, 93); - log.error("length:{}",brakePedal.length()); - log.error("brakePedal:{}",brakePedal); +// log.error("length:{}",brakePedal.length()); +// log.error("brakePedal:{}",brakePedal); //燃料消耗率 String fuelConsumption = substring.substring(93, 98); - log.error("length:{}",fuelConsumption.length()); - log.error("fuelConsumption:{}",fuelConsumption); +// log.error("length:{}",fuelConsumption.length()); +// log.error("fuelConsumption:{}",fuelConsumption); //////////////// //电机控制器温度 String motorControllerTemperature = substring.substring(98, 104); - log.error("length:{}",motorControllerTemperature.length()); - log.error("motorControllerTemperature:{}",motorControllerTemperature); +// log.error("length:{}",motorControllerTemperature.length()); +// log.error("motorControllerTemperature:{}",motorControllerTemperature); //电机转速 String motorSpeed = substring.substring(104, 109); - log.error("length:{}",motorSpeed.length()); - log.error("motorSpeed:{}",motorSpeed); +// log.error("length:{}",motorSpeed.length()); +// log.error("motorSpeed:{}",motorSpeed); //电机转矩 String motorTorque = substring.substring(109, 113); - log.error("length:{}",motorTorque.length()); - log.error("motorTorque:{}",motorTorque); + // log.error("length:{}",motorTorque.length()); + // log.error("motorTorque:{}",motorTorque); //电机温度 String motorTemperature = substring.substring(113, 119); - log.error("length:{}",motorTemperature.length()); - log.error("motorTemperature:{}",motorTemperature); + // log.error("length:{}",motorTemperature.length()); + // log.error("motorTemperature:{}",motorTemperature); //电机电压 String motorVoltage = substring.substring(119, 124); - log.error("length:{}",motorVoltage.length()); - log.error("motorVoltage:{}",motorVoltage); +// log.error("length:{}",motorVoltage.length()); +// log.error("motorVoltage:{}",motorVoltage); //电机电流 String motorCurrent = substring.substring(124, 132); - log.error("length:{}",motorCurrent.length()); - log.error("motorCurrent:{}",motorCurrent); +// log.error("length:{}",motorCurrent.length()); +// log.error("motorCurrent:{}",motorCurrent); //动力电池剩余电量SOC String powerBattery = substring.substring(132, 138); - log.error("length:{}",powerBattery.length()); - log.error("powerBattery:{}",powerBattery); +// log.error("length:{}",powerBattery.length()); +// log.error("powerBattery:{}",powerBattery); //当前状态允许的最大反馈功率 String maxFeedbackPower = substring.substring(138, 144); - log.error("length:{}",maxFeedbackPower.length()); - log.error("maxFeedbackPower:{}",maxFeedbackPower); +// log.error("length:{}",maxFeedbackPower.length()); +// log.error("maxFeedbackPower:{}",maxFeedbackPower); //当前状态允许最大放电功率 String maxDischargePower = substring.substring(144, 150); - log.error("length:{}",maxDischargePower.length()); - log.error("maxDischargePower:{}",maxDischargePower); +// log.error("length:{}",maxDischargePower.length()); +// log.error("maxDischargePower:{}",maxDischargePower); //BMS自检计数器 String bmsSelfCheck = substring.substring(150, 152); - log.error("length:{}",bmsSelfCheck.length()); - log.error("bmsSelfCheck:{}",bmsSelfCheck); +// log.error("length:{}",bmsSelfCheck.length()); +// log.error("bmsSelfCheck:{}",bmsSelfCheck); //动力电池充放电电流 String powerBatteryCurrent = substring.substring(152, 157); - log.error("length:{}",powerBatteryCurrent.length()); - log.error("powerBatteryCurrent:{}",powerBatteryCurrent); +// log.error("length:{}",powerBatteryCurrent.length()); +// log.error("powerBatteryCurrent:{}",powerBatteryCurrent); //动力电池负载端总电压V3 String powerBatteryV3 = substring.substring(157, 163); - log.error("length:{}",powerBatteryV3.length()); - log.error("powerBatteryV3:{}",powerBatteryV3); +// log.error("length:{}",powerBatteryV3.length()); +// log.error("powerBatteryV3:{}",powerBatteryV3); //单次最大电压 String maxVoltage = substring.substring(163, 167); - log.error("length:{}",maxVoltage.length()); - log.error("maxVoltage:{}",maxVoltage); +// log.error("length:{}",maxVoltage.length()); +// log.error("maxVoltage:{}",maxVoltage); //单体电池最低电压 String minVoltage = substring.substring(167, 171); - log.error("length:{}",minVoltage.length()); - log.error("minVoltage:{}",minVoltage); +// log.error("length:{}",minVoltage.length()); +// log.error("minVoltage:{}",minVoltage); //单体电池最高温度 String maxTemperature = substring.substring(171, 177); - log.error("length:{}",maxTemperature.length()); - log.error("maxTemperature:{}",maxTemperature); +// log.error("length:{}",maxTemperature.length()); +// log.error("maxTemperature:{}",maxTemperature); //单体电池最低温度 String minTemperature = substring.substring(177, 183); - log.error("length:{}",minTemperature.length()); - log.error("minTemperature:{}",minTemperature); +// log.error("length:{}",minTemperature.length()); +// log.error("minTemperature:{}",minTemperature); //动力电池可用容量 String availableCapacity = substring.substring(183, 189); - log.error("length:{}",availableCapacity.length()); - log.error("availableCapacity:{}",availableCapacity); +// log.error("length:{}",availableCapacity.length()); +// log.error("availableCapacity:{}",availableCapacity); //车辆状态 String vehicleStatus = substring.substring(189, 190); - log.error("length:{}",vehicleStatus.length()); - log.error("vehicleStatus:{}",vehicleStatus); +// log.error("length:{}",vehicleStatus.length()); +// log.error("vehicleStatus:{}",vehicleStatus); //充电状态 String chargeStatus = substring.substring(190, 191); - log.error("length:{}",chargeStatus.length()); - log.error("chargeStatus:{}",chargeStatus); +// log.error("length:{}",chargeStatus.length()); +// log.error("chargeStatus:{}",chargeStatus); //运行状态 String runStatus = substring.substring(191, 192); - log.error("length:{}",runStatus.length()); - log.error("runStatus:{}",runStatus); +// log.error("length:{}",runStatus.length()); +// log.error("runStatus:{}",runStatus); //SOC String soc = substring.substring(192, 193); - log.error("length:{}",soc.length()); - log.error("soc:{}",soc); +// log.error("length:{}",soc.length()); +// log.error("soc:{}",soc); //可充电储能装置工作状态 String chargeWorkStatus = substring.substring(193, 194); - log.error("length:{}",chargeWorkStatus.length()); - log.error("chargeWorkStatus:{}",chargeWorkStatus); +// log.error("length:{}",chargeWorkStatus.length()); +// log.error("chargeWorkStatus:{}",chargeWorkStatus); //驱动电机状态 String driveMotorStatus = substring.substring(194, 195); - log.error("length:{}",driveMotorStatus.length()); - log.error("driveMotorStatus:{}",driveMotorStatus); +// log.error("length:{}",driveMotorStatus.length()); +// log.error("driveMotorStatus:{}",driveMotorStatus); //定位是否有效 String location = substring.substring(195, 196); - log.error("length:{}",location.length()); - log.error("location:{}",location); +// log.error("length:{}",location.length()); +// log.error("location:{}",location); //EAS String eas = substring.substring(196, 197); - log.error("length:{}",eas.length()); - log.error("eas:{}",eas); +// log.error("length:{}",eas.length()); +// log.error("eas:{}",eas); //PTC String ptc = substring.substring(197, 198); - log.error("length:{}",ptc.length()); - log.error("ptc:{}",ptc); +// log.error("length:{}",ptc.length()); +// log.error("ptc:{}",ptc); //EPS String eps = substring.substring(198, 199); - log.error("length:{}",eps.length()); - log.error("eps:{}",eps); +// log.error("length:{}",eps.length()); +// log.error("eps:{}",eps); //ABS String abs = substring.substring(199, 200); - log.error("length:{}",abs.length()); - log.error("abs:{}",abs); +// log.error("length:{}",abs.length()); +// log.error("abs:{}",abs); //MCU String mcu = substring.substring(200, 201); - log.error("length:{}",mcu.length()); - log.error("mcu:{}",mcu); +// log.error("length:{}",mcu.length()); +// log.error("mcu:{}",mcu); //动力电池加热状态 String powerBatteryHeating = substring.substring(201, 202); - log.error("length:{}",powerBatteryHeating.length()); - log.error("powerBatteryHeating:{}",powerBatteryHeating); +// log.error("length:{}",powerBatteryHeating.length()); +// log.error("powerBatteryHeating:{}",powerBatteryHeating); //动力电池当前状态 String powerBatteryCurrentStatus = substring.substring(202, 203); - log.error("length:{}",powerBatteryCurrentStatus.length()); - log.error("powerBatteryCurrentStatus:{}",powerBatteryCurrentStatus); +// log.error("length:{}",powerBatteryCurrentStatus.length()); +// log.error("powerBatteryCurrentStatus:{}",powerBatteryCurrentStatus); //动力电池保温状态 String powerBatteryHeat = substring.substring(203, 204); - log.error("length:{}",powerBatteryHeat.length()); - log.error("powerBatteryHeat:{}",powerBatteryHeat); +// log.error("length:{}",powerBatteryHeat.length()); +// log.error("powerBatteryHeat:{}",powerBatteryHeat); //DCDC String dcdc = substring.substring(204, 205); - log.error("length:{}",dcdc.length()); - log.error("dcdc:{}",dcdc); +// log.error("length:{}",dcdc.length()); +// log.error("dcdc:{}",dcdc); //CHG String chg = substring.substring(205, 206); - log.error("length:{}",chg.length()); - log.error("chg:{}",chg); - +// log.error("length:{}",chg.length()); +// log.error("chg:{}",chg); + MessageData build = MessageData.builder() + .vin(vin) + .timestamp(timestamp) + .longitude(longitude) + .latitude(latitude) + .speed(speed) + .mileage(mileage) + .dischargeVoltage(dischargeVoltage) + .dischargeCurrent(dischargeCurrent) + .insulationResistance(insulationResistance) + .gear(gear) + .accelerationPedal(accelerationPedal) + .brakePedal(brakePedal) + .fuelConsumption(fuelConsumption) + .motorControllerTemperature(motorControllerTemperature) + .motorSpeed(motorSpeed) + .motorTorque(motorTorque) + .motorTemperature(motorTemperature) + .motorVoltage(motorVoltage) + .motorCurrent(motorCurrent) + .powerBattery(powerBattery) + .maxFeedbackPower(maxFeedbackPower) + .maxDischargePower(maxDischargePower) + .bmsSelfCheck(bmsSelfCheck) + .powerBatteryCurrent(powerBatteryCurrent) + .powerBatteryV3(powerBatteryV3) + .maxVoltage(maxVoltage) + .minVoltage(minVoltage) + .maxTemperature(maxTemperature) + .minTemperature(minTemperature) + .availableCapacity(availableCapacity) + .vehicleStatus(vehicleStatus) + .chargeStatus(chargeStatus) + .runStatus(runStatus) + .soc(soc) + .chargeWorkStatus(chargeWorkStatus) + .driveMotorStatus(driveMotorStatus) + .location(location) + .eas(eas) + .ptc(ptc) + .eps(eps) + .abs(abs) + .mcu(mcu) + .powerBatteryHeating(powerBatteryHeating) + .powerBatteryCurrentStatus(powerBatteryCurrentStatus) + .powerBatteryHeat(powerBatteryHeat) + .dcdc(dcdc) + .chg(chg) + .build(); + log.error("报文解析:{}",build); System.out.println(hexStringToString.length()); } diff --git a/src/main/java/com/muyu/vehicle/MessageData.java b/src/main/java/com/muyu/vehicle/MessageData.java new file mode 100644 index 0000000..54c5643 --- /dev/null +++ b/src/main/java/com/muyu/vehicle/MessageData.java @@ -0,0 +1,215 @@ +package com.muyu.vehicle; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 报文对象 MessageData + * + * @author Yangle + * Date 2024/6/7 17:15 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class MessageData { + + + /** + *vin + */ + private String vin; + /** + *时间戳 + */ + private String timestamp; + /** + *经度 + */ + private String longitude; + /** + *维度 + */ + private String latitude; + /** + *车速 + */ + private String speed; + /** + *总里程 + */ + private String mileage; + /** + *总电压 + */ + private String dischargeVoltage; + /** + *总电流 + */ + private String dischargeCurrent; + /** + *绝缘电阻 + */ + private String insulationResistance; + /** + *档位 + */ + private String gear; + /** + *加速踏板行程值 + */ + private String accelerationPedal; + /** + *制动踏板行程值 + */ + private String brakePedal; + /** + *燃料消耗率 + */ + private String fuelConsumption; + /** + *电机控制器温度 + */ + private String motorControllerTemperature; + /** + *电机转速 + */ + private String motorSpeed; + /** + *电机转矩 + */ + private String motorTorque; + /** + *电机温度 + */ + private String motorTemperature; + /** + *电机电压 + */ + private String motorVoltage; + /** + *电机电流 + */ + private String motorCurrent; + /** + *动力电池剩余电量SOC + */ + private String powerBattery; + /** + *当前状态允许的最大反馈功率 + */ + private String maxFeedbackPower; + /** + *当前状态允许最大放电功率 + */ + private String maxDischargePower; + /** + *BMS自检计数器 + */ + private String bmsSelfCheck; + /** + *动力电池充放电电流 + */ + private String powerBatteryCurrent; + /** + *动力电池负载端总电压V3 + */ + private String powerBatteryV3; + /** + *单次最大电压 + */ + private String maxVoltage; + /** + *单体电池最低电压 + */ + private String minVoltage; + /** + *单体电池最高温度 + */ + private String maxTemperature; + /** + *单体电池最低温度 + */ + private String minTemperature; + /** + *动力电池可用容量 + */ + private String availableCapacity; + /** + *车辆状态 + */ + private String vehicleStatus; + /** + *充电状态 + */ + private String chargeStatus; + /** + *运行状态 + */ + private String runStatus; + /** + *SOC + */ + private String soc; + /** + *可充电储能装置工作状态 + */ + private String chargeWorkStatus; + /** + *驱动电机状态 + */ + private String driveMotorStatus; + /** + *定位是否有效 + */ + private String location; + /** + *EAS + */ + private String eas; + /** + *PTC + */ + private String ptc; + /** + *EPS + */ + private String eps; + /** + *ABS + */ + private String abs; + /** + *MCU + */ + private String mcu; + /** + *动力电池加热状态 + */ + private String powerBatteryHeating; + /** + *动力电池当前状态 + */ + private String powerBatteryCurrentStatus; + /** + *动力电池保温状态 + */ + private String powerBatteryHeat; + /** + *DCDC + */ + private String dcdc; + /** + *CHG + */ + private String chg; + + + + + + +}