feat():更改工具类解析具体报文数据

master
Saisai Liu 2024-06-07 08:50:41 +08:00
parent cddc395cb9
commit 83b4aaff49
1 changed files with 142 additions and 90 deletions

View File

@ -2,12 +2,14 @@ package com.muyu.utils;
import com.muyu.domain.Vehicle; import com.muyu.domain.Vehicle;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
public class ConversionUtil { public class ConversionUtil {
/** /**
* 16 * 16
*
* @param s * @param s
* @return * @return
*/ */
@ -41,102 +43,152 @@ public class ConversionUtil {
String substring = hexStringToString.substring(1, hexStringToString.length() - 2); String substring = hexStringToString.substring(1, hexStringToString.length() - 2);
String vin = substring.substring(0, 17); // 车辆vin String vin = substring.substring(0, 17); // 车辆vin
String timestamp = substring.substring(17, 30); // 时间戳 String timestamp = substring.substring(17, 30); // 时间戳
String longitude = substring.substring(30, 40); // 经度 String longitude = substring.substring(30, 41); // 经度
String latitude = substring.substring(40, 50); // 纬度 String latitude = substring.substring(41, 51); // 纬度
String speed = substring.substring(50, 55); // 速度 String speed = substring.substring(51, 57); // 速度
String mileage = substring.substring(55, 65); // 总里程 String mileage = substring.substring(57, 68); // 总里程
String voltage = substring.substring(49, 53); // 总电压 String voltage = substring.substring(68, 74); // 总电压
String current = substring.substring(53, 57); // 总电流 String current = substring.substring(74, 79); // 总电流
String resistance = substring.substring(57, 61); // 绝缘电阻 String resistance = substring.substring(79, 88); // 绝缘电阻
String gear = substring.substring(61, 62); // 档位 String gear = substring.substring(88, 89); // 档位
String accelerationPedal = substring.substring(62, 63); // 加速踏板行程值 String accelerationPedal = substring.substring(89, 91); // 加速踏板行程值
String brakePedal = substring.substring(63, 64); // 制动踏板行程值 String brakePedal = substring.substring(91, 93); // 制动踏板行程值
String fuelConsumptionRate = substring.substring(64, 65); // 燃油消耗率 String fuelConsumptionRate = substring.substring(93, 98); // 燃料消耗率
String motorControllerTemperature = substring.substring(65, 67); // 电机控制器温度 String motorControllerTemperature = substring.substring(98, 104); // 电机控制器温度
String motorSpeed = substring.substring(67, 69); // 电机转速 String motorSpeed = substring.substring(104, 109); // 电机转速
String motoTorque = substring.substring(69, 71); //电机转矩 String motoTorque = substring.substring(109, 113); //电机转矩
String motorTemperature = substring.substring(71, 73); // 电机温度 String motorTemperature = substring.substring(113, 119); // 电机温度
String motorVoltage = substring.substring(73, 75); // 电机电压 String motorVoltage = substring.substring(119, 124); // 电机电压
String motorCurrent = substring.substring(75, 77); // 电机电流 String motorCurrent = substring.substring(124, 132); // 电机电流
String remainingBattery = substring.substring(77, 79); // 动力电池剩余电量SOC String remainingBattery = substring.substring(132, 138); // 动力电池剩余电量SOC
String maximumFeedbackPower = substring.substring(79, 81); // 当前状态允许的最大反馈功率 String maximumFeedbackPower = substring.substring(138, 144); // 当前状态允许的最大反馈功率
String maximumDischargePower = substring.substring(81, 83); // 当前状态允许的最大放电功率 String maximumDischargePower = substring.substring(144, 150); // 当前状态允许的最大放电功率
String selfCheckCounter = substring.substring(83,88); // 动力电池放电电流 String selfCheckCounter = substring.substring(150, 152); // BMS自检计数器
String totalBatteryVoltage = substring.substring(88, 90); // 动力电池负载端总电压V3 String totalBatteryCurrent = substring.substring(152, 157); // 动力电池充放电电流
String singleBatteryMaxVoltage = substring.substring(90, 92); // 单次最大电压 String totalBatteryVoltage = substring.substring(157, 163); // 动力电池负载端总电压V3
String singleBatteryMinVoltage = substring.substring(92, 94); // 单次最低电压 String singleBatteryMaxVoltage = substring.substring(163, 167); // 单次最大电压
String singleBatteryMaxTemperature = substring.substring(94, 96); // 单体电池最高温度 String singleBatteryMinVoltage = substring.substring(167, 171); // 单次最低电压
String singleBatteryMinTemperature = substring.substring(96, 98); // 单体电池最低温度 String singleBatteryMaxTemperature = substring.substring(171, 177); // 单体电池最高温度
String availableBatteryCapacity = substring.substring(98, 100); // 动力电池可用容量 String singleBatteryMinTemperature = substring.substring(177, 183); // 单体电池最低温度
String vehicleStatus = substring.substring(100, 101); // 车辆状态 String availableBatteryCapacity = substring.substring(183, 189); // 动力电池可用容量
String chargingStatus = substring.substring(101, 102); // 充电状态 String vehicleStatus = substring.substring(189, 190); // 车辆状态
String operatingStatus = substring.substring(102, 103); // 运行状态 String chargingStatus = substring.substring(190, 191); // 充电状态
String chargingEnergyStorageStatus = substring.substring(103, 104); // SOC String operatingStatus = substring.substring(191, 192); // 运行状态
String driveMotorStatus = substring.substring(104, 105); // 可充电储能装置工作状态 String chargingEnergyStorageStatus = substring.substring(192, 193); // SOC
String positionStatus = substring.substring(104, 105); // 定位是否有效 String driveMotorStatus = substring.substring(193, 194); // 可充电储能装置工作状态
String easStatus = substring.substring(104, 105); // EAS(汽车防盗系统)状态 String positionStatus = substring.substring(194, 195); // 定位是否有效
String ptcStatus = substring.substring(104, 105); // PTC(主动安全系统)状态 String easStatus = substring.substring(195, 196); // EAS(汽车防盗系统)状态
String epsStatus = substring.substring(104, 105); // EPS(电动助力系统)状态 String ptcStatus = substring.substring(196, 197); // PTC(主动安全系统)状态
String absStatus = substring.substring(104, 105); // ABS(防抱死)状态 String epsStatus = substring.substring(197, 198); // EPS(电动助力系统)状态
String mcuStatus = substring.substring(104, 105); // MCU(电机/逆变器)状态 String absStatus = substring.substring(198, 199); // ABS(防抱死)状态
String heatingStatus = substring.substring(104, 105); // 动力电池加热状态 String mcuStatus = substring.substring(199, 200); // MCU(电机/逆变器)状态
String batteryStatus = substring.substring(104, 105); // 动力电池当前状态 String heatingStatus = substring.substring(200, 201); // 动力电池加热状态
String batteryInsulationStatus = substring.substring(104, 105); // 动力电池保温状态 String batteryStatus = substring.substring(201, 202); // 动力电池当前状态
String dcdcStatus = substring.substring(104, 105); // DCDC(电力交换系统)状态 String batteryInsulationStatus = substring.substring(202, 203); // 动力电池保温状态
String chgStatus = substring.substring(104, 105); // CHG(充电机)状态 String dcdcStatus = substring.substring(203, 204); // DCDC(电力交换系统)状态
String chgStatus = substring.substring(204, 205); // CHG(充电机)状态
Vehicle vehicle = new Vehicle(); // Vehicle vehicle = new Vehicle(vin,
// timestamp,
// longitude,
// latitude,
// speed,
// mileage,
// voltage,
// current,
// resistance,
// gear,
// accelerationPedal,
// brakePedal,
// fuelConsumptionRate,
// motorControllerTemperature,
// motorSpeed,
// motoTorque,
// motorTemperature,
// motorVoltage,
// motorCurrent,
// remainingBattery,
// maximumFeedbackPower,
// maximumDischargePower,
// selfCheckCounter,
// totalBatteryCurrent,
// totalBatteryVoltage,
// singleBatteryMaxVoltage,
// singleBatteryMinVoltage,
// singleBatteryMaxTemperature,
// singleBatteryMinTemperature,
// availableBatteryCapacity,
// vehicleStatus,
// chargingStatus,
// operatingStatus,
// chargingEnergyStorageStatus,
// driveMotorStatus,
// positionStatus,
// easStatus,
// ptcStatus,
// epsStatus,
// absStatus,
// mcuStatus,
// heatingStatus,
// batteryStatus,
// batteryInsulationStatus,
// dcdcStatus,
// chgStatus);
System.out.println( System.out.println(
vin+"n\t"+ "车辆vin:" + vin + "\n\t" +
timestamp+"n\t"+ "时间戳:" + timestamp + "\n\t" +
longitude+"n\t"+ "经度:" + longitude + "\n\t" +
latitude+"n\t"+ "纬度:" + latitude + "\n\t" +
speed+"n\t"+ "速度:" + speed + "\n\t" +
mileage+"n\t"+ "总里程:" + mileage + "\n\t" +
voltage+"n\t"+ "总电压:" + voltage + "\n\t" +
current+"n\t"+ "总电流:" + current + "\n\t" +
resistance+"n\t"+ "绝缘电阻:" + resistance + "\n\t" +
gear+"n\t"+ "档位:" + gear + "\n\t" +
accelerationPedal+"n\t"+ "加速踏板行程值:" + accelerationPedal + "\n\t" +
brakePedal+"n\t"+ "制动踏板行程值:" + brakePedal + "\n\t" +
fuelConsumptionRate+"n\t"+ "燃料消耗率:" + fuelConsumptionRate + "\n\t" +
motorControllerTemperature+"n\t"+ "电机控制器温度:" + motorControllerTemperature + "\n\t" +
motorSpeed+"n\t"+ "电机转速:" + motorSpeed + "\n\t" +
motoTorque+"n\t"+ "电机转矩:" + motoTorque + "\n\t" +
motorTemperature+"n\t"+ "电机温度:" + motorTemperature + "\n\t" +
motorVoltage+"n\t"+ "电机电压:" + motorVoltage + "\n\t" +
motorCurrent+"n\t"+ "电机电流:" + motorCurrent + "\n\t" +
remainingBattery+"n\t"+ "动力电池剩余电量SOC:" + remainingBattery + "\n\t" +
maximumFeedbackPower+"n\t"+ "当前状态允许的最大反馈功率:" + maximumFeedbackPower + "\n\t" +
maximumDischargePower+"n\t"+ "当前状态允许的最大放电功率:" + maximumDischargePower + "\n\t" +
selfCheckCounter+"n\t"+ "BMS自检计数器:" + totalBatteryCurrent + "\n\t" +
totalBatteryVoltage+"n\t"+ "动力电池充放电电流:" + selfCheckCounter + "\n\t" +
singleBatteryMaxVoltage+"n\t"+ "动力电池负载端总电压V3:" + totalBatteryVoltage + "\n\t" +
singleBatteryMinVoltage+"n\t"+ "单次最大电压:" + singleBatteryMaxVoltage + "\n\t" +
singleBatteryMaxTemperature+"n\t"+ "单次最低电压:" + singleBatteryMinVoltage + "\n\t" +
singleBatteryMinTemperature+"n\t"+ "单体电池最高温度:" + singleBatteryMaxTemperature + "\n\t" +
availableBatteryCapacity+"n\t"+ "单体电池最低温度:" + singleBatteryMinTemperature + "\n\t" +
vehicleStatus+"\n\t"+ "动力电池可用容量:" + availableBatteryCapacity + "\n\t" +
chargingStatus+"\n\t"+ "车辆状态:" + vehicleStatus + "\n\t" +
operatingStatus+"\n\t"+ "充电状态:" + chargingStatus + "\n\t" +
chargingEnergyStorageStatus+"\n\t"+ "运行状态:" + operatingStatus + "\n\t" +
driveMotorStatus+"\n\t"+ "SOC:" + chargingEnergyStorageStatus + "\n\t" +
positionStatus+"\n\t"+ "可充电储能装置工作状态:" + driveMotorStatus + "\n\t" +
easStatus+"\n\t"+ "定位是否有效:" + positionStatus + "\n\t" +
ptcStatus+"\n\t"+ "EAS(汽车防盗系统)状态:" + easStatus + "\n\t" +
epsStatus+"\n\t"+ "PTC(主动安全系统)状态:" + ptcStatus + "\n\t" +
absStatus+"\n\t"+ "EPS(电动助力系统)状态:" + epsStatus + "\n\t" +
mcuStatus+"\n\t"+ "ABS(防抱死)状态:" + absStatus + "\n\t" +
heatingStatus+"\n\t"+ "MCU(电机/逆变器)状态:" + mcuStatus + "\n\t" +
batteryStatus+"\n\t"+ "动力电池加热状态:" + heatingStatus + "\n\t" +
batteryInsulationStatus+"\n\t"+ "动力电池当前状态:" + batteryStatus + "\n\t" +
dcdcStatus+"\n\t"+ "动力电池保温状态:" + batteryInsulationStatus + "\n\t" +
chgStatus+"\n\t" "DCDC(电力交换系统)状态:" + dcdcStatus + "\n\t" +
"CHG(充电机)状态:" + chgStatus + "\n\t"
); );
BigDecimal mileages = new BigDecimal(substring.substring(57, 68));
System.out.println("转换值"+mileages);
} }
/** /**
* 16string * 16string
*
* @param s * @param s
* @return * @return
*/ */