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 java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
public class ConversionUtil {
/**
* 16
*
* @param s
* @return
*/
@ -22,7 +24,7 @@ public class ConversionUtil {
return sb.toString();
}
public static void main (String[] args) {
public static void main(String[] args) {
// String str = "<?xml version=\"1.0\"?>\n" +
// "<monitorRoot type=\"param\"><synchronizeSyptom event=\"0\" initial=\"true\"><Action_ECG><Rhythm>Sinus</Rhythm><HR>80</HR><EMD>No Change</EMD><Conduct>0</Conduct></Action_ECG><Action_Osat value=\"94\" isRelativePercent=\"false\"/><Action_BP isRelativePercent=\"false\"><Shrink value=\"120\"/><Stretch value=\"80\"/></Action_BP><Action_Resp breathType=\"Normal\" value=\"14\" isRelativePercent=\"false\"/><Action_etCO2 value=\"34\" isRelativePercent=\"false\"/><Action_Temperature value=\"35.2\"/><Action_CVP value=\"6.0\"/><Action_PAPDia value=\"10\"/><Action_PAPSys value=\"25\"/><Action_WP value=\"9\"/></synchronizeSyptom></monitorRoot>";
// String strToSixteen = strToSixteen(str);
@ -41,102 +43,152 @@ public class ConversionUtil {
String substring = hexStringToString.substring(1, hexStringToString.length() - 2);
String vin = substring.substring(0, 17); // 车辆vin
String timestamp = substring.substring(17, 30); // 时间戳
String longitude = substring.substring(30, 40); // 经度
String latitude = substring.substring(40, 50); // 纬度
String speed = substring.substring(50, 55); // 速度
String mileage = substring.substring(55, 65); // 总里程
String voltage = substring.substring(49, 53); // 总电压
String current = substring.substring(53, 57); // 总电流
String resistance = substring.substring(57, 61); // 绝缘电阻
String gear = substring.substring(61, 62); // 档位
String accelerationPedal = substring.substring(62, 63); // 加速踏板行程值
String brakePedal = substring.substring(63, 64); // 制动踏板行程值
String fuelConsumptionRate = substring.substring(64, 65); // 燃油消耗率
String motorControllerTemperature = substring.substring(65, 67); // 电机控制器温度
String motorSpeed = substring.substring(67, 69); // 电机转速
String motoTorque = substring.substring(69, 71); //电机转矩
String motorTemperature = substring.substring(71, 73); // 电机温度
String motorVoltage = substring.substring(73, 75); // 电机电压
String motorCurrent = substring.substring(75, 77); // 电机电流
String remainingBattery = substring.substring(77, 79); // 动力电池剩余电量SOC
String maximumFeedbackPower = substring.substring(79, 81); // 当前状态允许的最大反馈功率
String maximumDischargePower = substring.substring(81, 83); // 当前状态允许的最大放电功率
String selfCheckCounter = substring.substring(83,88); // 动力电池放电电流
String totalBatteryVoltage = substring.substring(88, 90); // 动力电池负载端总电压V3
String singleBatteryMaxVoltage = substring.substring(90, 92); // 单次最大电压
String singleBatteryMinVoltage = substring.substring(92, 94); // 单次最低电压
String singleBatteryMaxTemperature = substring.substring(94, 96); // 单体电池最高温度
String singleBatteryMinTemperature = substring.substring(96, 98); // 单体电池最低温度
String availableBatteryCapacity = substring.substring(98, 100); // 动力电池可用容量
String vehicleStatus = substring.substring(100, 101); // 车辆状态
String chargingStatus = substring.substring(101, 102); // 充电状态
String operatingStatus = substring.substring(102, 103); // 运行状态
String chargingEnergyStorageStatus = substring.substring(103, 104); // SOC
String driveMotorStatus = substring.substring(104, 105); // 可充电储能装置工作状态
String positionStatus = substring.substring(104, 105); // 定位是否有效
String easStatus = substring.substring(104, 105); // EAS(汽车防盗系统)状态
String ptcStatus = substring.substring(104, 105); // PTC(主动安全系统)状态
String epsStatus = substring.substring(104, 105); // EPS(电动助力系统)状态
String absStatus = substring.substring(104, 105); // ABS(防抱死)状态
String mcuStatus = substring.substring(104, 105); // MCU(电机/逆变器)状态
String heatingStatus = substring.substring(104, 105); // 动力电池加热状态
String batteryStatus = substring.substring(104, 105); // 动力电池当前状态
String batteryInsulationStatus = substring.substring(104, 105); // 动力电池保温状态
String dcdcStatus = substring.substring(104, 105); // DCDC(电力交换系统)状态
String chgStatus = substring.substring(104, 105); // CHG(充电机)状态
String longitude = substring.substring(30, 41); // 经度
String latitude = substring.substring(41, 51); // 纬度
String speed = substring.substring(51, 57); // 速度
String mileage = substring.substring(57, 68); // 总里程
String voltage = substring.substring(68, 74); // 总电压
String current = substring.substring(74, 79); // 总电流
String resistance = substring.substring(79, 88); // 绝缘电阻
String gear = substring.substring(88, 89); // 档位
String accelerationPedal = substring.substring(89, 91); // 加速踏板行程值
String brakePedal = substring.substring(91, 93); // 制动踏板行程值
String fuelConsumptionRate = substring.substring(93, 98); // 燃料消耗率
String motorControllerTemperature = substring.substring(98, 104); // 电机控制器温度
String motorSpeed = substring.substring(104, 109); // 电机转速
String motoTorque = substring.substring(109, 113); //电机转矩
String motorTemperature = substring.substring(113, 119); // 电机温度
String motorVoltage = substring.substring(119, 124); // 电机电压
String motorCurrent = substring.substring(124, 132); // 电机电流
String remainingBattery = substring.substring(132, 138); // 动力电池剩余电量SOC
String maximumFeedbackPower = substring.substring(138, 144); // 当前状态允许的最大反馈功率
String maximumDischargePower = substring.substring(144, 150); // 当前状态允许的最大放电功率
String selfCheckCounter = substring.substring(150, 152); // BMS自检计数器
String totalBatteryCurrent = substring.substring(152, 157); // 动力电池充放电电流
String totalBatteryVoltage = substring.substring(157, 163); // 动力电池负载端总电压V3
String singleBatteryMaxVoltage = substring.substring(163, 167); // 单次最大电压
String singleBatteryMinVoltage = substring.substring(167, 171); // 单次最低电压
String singleBatteryMaxTemperature = substring.substring(171, 177); // 单体电池最高温度
String singleBatteryMinTemperature = substring.substring(177, 183); // 单体电池最低温度
String availableBatteryCapacity = substring.substring(183, 189); // 动力电池可用容量
String vehicleStatus = substring.substring(189, 190); // 车辆状态
String chargingStatus = substring.substring(190, 191); // 充电状态
String operatingStatus = substring.substring(191, 192); // 运行状态
String chargingEnergyStorageStatus = substring.substring(192, 193); // SOC
String driveMotorStatus = substring.substring(193, 194); // 可充电储能装置工作状态
String positionStatus = substring.substring(194, 195); // 定位是否有效
String easStatus = substring.substring(195, 196); // EAS(汽车防盗系统)状态
String ptcStatus = substring.substring(196, 197); // PTC(主动安全系统)状态
String epsStatus = substring.substring(197, 198); // EPS(电动助力系统)状态
String absStatus = substring.substring(198, 199); // ABS(防抱死)状态
String mcuStatus = substring.substring(199, 200); // MCU(电机/逆变器)状态
String heatingStatus = substring.substring(200, 201); // 动力电池加热状态
String batteryStatus = substring.substring(201, 202); // 动力电池当前状态
String batteryInsulationStatus = substring.substring(202, 203); // 动力电池保温状态
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(
vin+"n\t"+
timestamp+"n\t"+
longitude+"n\t"+
latitude+"n\t"+
speed+"n\t"+
mileage+"n\t"+
voltage+"n\t"+
current+"n\t"+
resistance+"n\t"+
gear+"n\t"+
accelerationPedal+"n\t"+
brakePedal+"n\t"+
fuelConsumptionRate+"n\t"+
motorControllerTemperature+"n\t"+
motorSpeed+"n\t"+
motoTorque+"n\t"+
motorTemperature+"n\t"+
motorVoltage+"n\t"+
motorCurrent+"n\t"+
remainingBattery+"n\t"+
maximumFeedbackPower+"n\t"+
maximumDischargePower+"n\t"+
selfCheckCounter+"n\t"+
totalBatteryVoltage+"n\t"+
singleBatteryMaxVoltage+"n\t"+
singleBatteryMinVoltage+"n\t"+
singleBatteryMaxTemperature+"n\t"+
singleBatteryMinTemperature+"n\t"+
availableBatteryCapacity+"n\t"+
vehicleStatus+"\n\t"+
chargingStatus+"\n\t"+
operatingStatus+"\n\t"+
chargingEnergyStorageStatus+"\n\t"+
driveMotorStatus+"\n\t"+
positionStatus+"\n\t"+
easStatus+"\n\t"+
ptcStatus+"\n\t"+
epsStatus+"\n\t"+
absStatus+"\n\t"+
mcuStatus+"\n\t"+
heatingStatus+"\n\t"+
batteryStatus+"\n\t"+
batteryInsulationStatus+"\n\t"+
dcdcStatus+"\n\t"+
chgStatus+"\n\t"
"车辆vin:" + vin + "\n\t" +
"时间戳:" + timestamp + "\n\t" +
"经度:" + longitude + "\n\t" +
"纬度:" + latitude + "\n\t" +
"速度:" + speed + "\n\t" +
"总里程:" + mileage + "\n\t" +
"总电压:" + voltage + "\n\t" +
"总电流:" + current + "\n\t" +
"绝缘电阻:" + resistance + "\n\t" +
"档位:" + gear + "\n\t" +
"加速踏板行程值:" + accelerationPedal + "\n\t" +
"制动踏板行程值:" + brakePedal + "\n\t" +
"燃料消耗率:" + fuelConsumptionRate + "\n\t" +
"电机控制器温度:" + motorControllerTemperature + "\n\t" +
"电机转速:" + motorSpeed + "\n\t" +
"电机转矩:" + motoTorque + "\n\t" +
"电机温度:" + motorTemperature + "\n\t" +
"电机电压:" + motorVoltage + "\n\t" +
"电机电流:" + motorCurrent + "\n\t" +
"动力电池剩余电量SOC:" + remainingBattery + "\n\t" +
"当前状态允许的最大反馈功率:" + maximumFeedbackPower + "\n\t" +
"当前状态允许的最大放电功率:" + maximumDischargePower + "\n\t" +
"BMS自检计数器:" + totalBatteryCurrent + "\n\t" +
"动力电池充放电电流:" + selfCheckCounter + "\n\t" +
"动力电池负载端总电压V3:" + totalBatteryVoltage + "\n\t" +
"单次最大电压:" + singleBatteryMaxVoltage + "\n\t" +
"单次最低电压:" + singleBatteryMinVoltage + "\n\t" +
"单体电池最高温度:" + singleBatteryMaxTemperature + "\n\t" +
"单体电池最低温度:" + singleBatteryMinTemperature + "\n\t" +
"动力电池可用容量:" + availableBatteryCapacity + "\n\t" +
"车辆状态:" + vehicleStatus + "\n\t" +
"充电状态:" + chargingStatus + "\n\t" +
"运行状态:" + operatingStatus + "\n\t" +
"SOC:" + chargingEnergyStorageStatus + "\n\t" +
"可充电储能装置工作状态:" + driveMotorStatus + "\n\t" +
"定位是否有效:" + positionStatus + "\n\t" +
"EAS(汽车防盗系统)状态:" + easStatus + "\n\t" +
"PTC(主动安全系统)状态:" + ptcStatus + "\n\t" +
"EPS(电动助力系统)状态:" + epsStatus + "\n\t" +
"ABS(防抱死)状态:" + absStatus + "\n\t" +
"MCU(电机/逆变器)状态:" + mcuStatus + "\n\t" +
"动力电池加热状态:" + heatingStatus + "\n\t" +
"动力电池当前状态:" + batteryStatus + "\n\t" +
"动力电池保温状态:" + batteryInsulationStatus + "\n\t" +
"DCDC(电力交换系统)状态:" + dcdcStatus + "\n\t" +
"CHG(充电机)状态:" + chgStatus + "\n\t"
);
BigDecimal mileages = new BigDecimal(substring.substring(57, 68));
System.out.println("转换值"+mileages);
}
/**
* 16string
*
* @param s
* @return
*/