507 lines
10 KiB
Java
507 lines
10 KiB
Java
package com.muyu.vehicle.model;
|
|
|
|
|
|
import com.muyu.domain.Vehicle;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.Builder;
|
|
import lombok.Data;
|
|
import lombok.NoArgsConstructor;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
/**
|
|
* @author 牧鱼
|
|
* @Classname VehicleData
|
|
* @Description 车辆模拟数据对象
|
|
* @Date 2021/8/5
|
|
*/
|
|
@Data
|
|
@Builder
|
|
@NoArgsConstructor
|
|
@AllArgsConstructor
|
|
public class VehicleData {
|
|
/**
|
|
* VIN
|
|
*/
|
|
private String vin;
|
|
/**
|
|
* 行驶路线
|
|
*/
|
|
private String drivingRoute;
|
|
|
|
/**
|
|
* 经度
|
|
*/
|
|
private String longitude;
|
|
|
|
/**
|
|
* 维度
|
|
*/
|
|
private String latitude;
|
|
|
|
/**
|
|
* 速度
|
|
*/
|
|
private String speed;
|
|
|
|
/**
|
|
* 里程
|
|
*/
|
|
private BigDecimal mileage;
|
|
|
|
/**
|
|
* 总电压
|
|
*/
|
|
private String voltage;
|
|
|
|
/**
|
|
* 总电流
|
|
*/
|
|
private String current;
|
|
|
|
/**
|
|
* 绝缘电阻
|
|
*/
|
|
private String resistance;
|
|
|
|
/**
|
|
* 档位
|
|
*/
|
|
private String gear;
|
|
|
|
/**
|
|
* 加速踏板行程值
|
|
*/
|
|
private String accelerationPedal;
|
|
|
|
/**
|
|
* 制动踏板行程值
|
|
*/
|
|
private String brakePedal;
|
|
|
|
/**
|
|
* 燃料消耗率
|
|
*/
|
|
private String fuelConsumptionRate;
|
|
|
|
/**
|
|
* 电机控制器温度
|
|
*/
|
|
private String motorControllerTemperature;
|
|
|
|
/**
|
|
* 电机转速
|
|
*/
|
|
private String motorSpeed;
|
|
|
|
/**
|
|
* 电机转矩
|
|
*/
|
|
private String motorTorque;
|
|
|
|
/**
|
|
* 电机温度
|
|
*/
|
|
private String motorTemperature;
|
|
|
|
/**
|
|
* 电机电压
|
|
*/
|
|
private String motorVoltage;
|
|
|
|
/**
|
|
* 电机电流
|
|
*/
|
|
private String motorCurrent;
|
|
|
|
/**
|
|
* 动力电池剩余电量SOC
|
|
*/
|
|
private BigDecimal remainingBattery;
|
|
|
|
/**
|
|
* 电池总容量
|
|
*/
|
|
private BigDecimal batteryLevel;
|
|
|
|
/**
|
|
* 当前状态允许的最大反馈功率
|
|
*/
|
|
private String maximumFeedbackPower;
|
|
|
|
/**
|
|
* 当前状态允许最大放电功率
|
|
*/
|
|
private String maximumDischargePower;
|
|
|
|
/**
|
|
* BMS自检计数器
|
|
*/
|
|
private String selfCheckCounter;
|
|
|
|
/**
|
|
* 动力电池充放电电流
|
|
*/
|
|
private String totalBatteryCurrent;
|
|
|
|
/**
|
|
* 动力电池负载端总电压V3
|
|
*/
|
|
private String totalBatteryVoltage;
|
|
|
|
/**
|
|
* 单次最大电压
|
|
*/
|
|
private String singleBatteryMaxVoltage;
|
|
|
|
/**
|
|
* 单体电池最低电压
|
|
*/
|
|
private String singleBatteryMinVoltage;
|
|
|
|
/**
|
|
* 单体电池最高温度
|
|
*/
|
|
private String singleBatteryMaxTemperature;
|
|
|
|
/**
|
|
* 单体电池最低温度
|
|
*/
|
|
private String singleBatteryMinTemperature;
|
|
|
|
/**
|
|
* 动力电池可用容量
|
|
*/
|
|
private String availableBatteryCapacity;
|
|
|
|
/**
|
|
* 车辆状态
|
|
*/
|
|
private int vehicleStatus;
|
|
|
|
/**
|
|
* 充电状态
|
|
*/
|
|
private int chargingStatus;
|
|
|
|
/**
|
|
* 运行状态
|
|
*/
|
|
private int operatingStatus;
|
|
|
|
/**
|
|
* SOC
|
|
*/
|
|
private int socStatus;
|
|
|
|
/**
|
|
* 可充电储能装置工作状态
|
|
*/
|
|
private int chargingEnergyStorageStatus;
|
|
|
|
/**
|
|
* 驱动电机状态
|
|
*/
|
|
private int driveMotorStatus;
|
|
|
|
/**
|
|
* 定位是否有效
|
|
*/
|
|
private int positionStatus;
|
|
|
|
/**
|
|
* EAS(汽车防盗系统)状态
|
|
*/
|
|
private int easStatus;
|
|
|
|
/**
|
|
* PTC(电动加热器)状态
|
|
*/
|
|
private int ptcStatus;
|
|
|
|
/**
|
|
* EPS(电动助力系统)状态
|
|
*/
|
|
private int epsStatus;
|
|
|
|
/**
|
|
* ABS(防抱死)状态
|
|
*/
|
|
private int absStatus;
|
|
|
|
/**
|
|
* MCU(电机/逆变器)状态
|
|
*/
|
|
private int mcuStatus;
|
|
|
|
/**
|
|
* 动力电池加热状态
|
|
*/
|
|
private int heatingStatus;
|
|
|
|
/**
|
|
* 动力电池当前状态
|
|
*/
|
|
private int batteryStatus;
|
|
|
|
/**
|
|
* 动力电池保温状态
|
|
*/
|
|
private int batteryInsulationStatus;
|
|
|
|
/**
|
|
* DCDC(电力交换系统)状态
|
|
*/
|
|
private int dcdcStatus;
|
|
|
|
/**
|
|
* CHG(充电机)状态
|
|
*/
|
|
private int chgStatus;
|
|
|
|
/**
|
|
* 车辆状态 报文
|
|
*/
|
|
private String vehicleStatusMsg;
|
|
/**
|
|
* 智能硬件 报文
|
|
*/
|
|
private String smartHardwareMsg;
|
|
/**
|
|
* 电池报文
|
|
*/
|
|
private String batteryMsg;
|
|
|
|
public String getMsg(){
|
|
StringBuilder sb = new StringBuilder();
|
|
//第一位VIN
|
|
sb.append(vin);
|
|
//第二位经度 longitude latitude
|
|
sb.append(getValue(longitude ,11));
|
|
//第三位维度 longitude latitude
|
|
sb.append(getValue(latitude ,10));
|
|
//车速
|
|
sb.append(getValue(speed,6));
|
|
//总里程
|
|
sb.append(getValue(mileage.toString(),11));
|
|
// 总电压
|
|
sb.append(getValue(voltage,6));
|
|
//总电流
|
|
sb.append(getValue(current,5));
|
|
//绝缘电阻 79 - 87
|
|
sb.append(getValue(resistance,9));
|
|
//档位
|
|
sb.append(gear);
|
|
// 加速踏板行程值
|
|
sb.append(getValue(accelerationPedal,2));
|
|
// 制动踏板行程值
|
|
sb.append(getValue(brakePedal,2));
|
|
// 燃料消耗率
|
|
sb.append(getValue(fuelConsumptionRate,5));
|
|
//电机控制器温度
|
|
sb.append(getValue(motorControllerTemperature,6));
|
|
//电机转速
|
|
sb.append(getValue(motorSpeed,5));
|
|
//点击转矩
|
|
sb.append(getValue(motorTorque,4));
|
|
//电机温度
|
|
sb.append(getValue(motorTemperature,6));
|
|
//电机电压
|
|
sb.append(getValue(motorVoltage,5));
|
|
//电机电流
|
|
sb.append(getValue(motorCurrent,8));
|
|
//动力电池剩余电量SOC
|
|
sb.append(getValue(remainingBattery.toString(),6));
|
|
//当前状态允许的最大反馈功率
|
|
sb.append(getValue(maximumFeedbackPower,6));
|
|
//当前状态允许最大放电功率
|
|
sb.append(getValue(maximumDischargePower,6));
|
|
//BMS自检计数器
|
|
sb.append(getValue(selfCheckCounter,2));
|
|
//动力电池充放电电流
|
|
sb.append(getValue(totalBatteryCurrent,5));
|
|
//动力电池负载端总电压V3
|
|
sb.append(getValue(totalBatteryVoltage,6));
|
|
//单次最大电压
|
|
sb.append(getValue(singleBatteryMaxVoltage,4));
|
|
//单体电池最低电压
|
|
sb.append(getValue(singleBatteryMinVoltage,4));
|
|
//单体电池最高温度
|
|
sb.append(getValue(singleBatteryMaxTemperature,6));
|
|
//单体电池最低温度
|
|
sb.append(getValue(singleBatteryMinTemperature,6));
|
|
//动力电池可用容量
|
|
sb.append(getValue(availableBatteryCapacity,6));
|
|
//车辆状态
|
|
sb.append(vehicleStatus);
|
|
//充电状态
|
|
sb.append(chargingStatus);
|
|
//运行状态
|
|
sb.append(operatingStatus);
|
|
//SOC
|
|
sb.append(socStatus);
|
|
//可充电储能装置工作状态
|
|
sb.append(chargingEnergyStorageStatus);
|
|
//驱动电机状态
|
|
sb.append(driveMotorStatus);
|
|
//定位是否有效
|
|
sb.append(positionStatus);
|
|
//EAS
|
|
sb.append(easStatus);
|
|
//PTC
|
|
sb.append(ptcStatus);
|
|
//EPS
|
|
sb.append(epsStatus);
|
|
//ABS
|
|
sb.append(absStatus);
|
|
//MCU
|
|
sb.append(mcuStatus);
|
|
//动力电池加热状态
|
|
sb.append(heatingStatus);
|
|
//动力电池当前状态
|
|
sb.append(batteryStatus);
|
|
//动力电池保温状态
|
|
sb.append(batteryInsulationStatus);
|
|
//DCDC
|
|
sb.append(dcdcStatus);
|
|
//CHG
|
|
sb.append(chgStatus);
|
|
return sb.toString();
|
|
}
|
|
|
|
public String getValue(String val , int valLength){
|
|
int length = val.length();
|
|
if (length > valLength){
|
|
return val.substring( 0 , valLength);
|
|
}
|
|
val = val + "0".repeat(valLength - length);
|
|
return val;
|
|
}
|
|
|
|
/**
|
|
* 汽车对象构造企业VIN
|
|
* @param vehicle 汽车对象
|
|
* @return 汽车数据对象
|
|
*/
|
|
public static VehicleData vehicleBuild (Vehicle vehicle) {
|
|
return VehicleData.builder()
|
|
.vin(vehicle.getVin())
|
|
.remainingBattery(vehicle.getRemainingBattery())
|
|
.batteryLevel(vehicle.getBatteryLevel())
|
|
.mileage(vehicle.getTotalMileage())
|
|
.build();
|
|
}
|
|
|
|
/**
|
|
VIN
|
|
vin;
|
|
行驶路线
|
|
drivingRoute;
|
|
经度
|
|
longitude;
|
|
维度
|
|
latitude;
|
|
速度
|
|
speed;
|
|
里程
|
|
mileage;
|
|
总电压
|
|
voltage;
|
|
总电流
|
|
current;
|
|
绝缘电阻
|
|
resistance;
|
|
档位
|
|
gear;
|
|
加速踏板行程值
|
|
accelerationPedal;
|
|
制动踏板行程值
|
|
brakePedal;
|
|
燃料消耗率
|
|
fuelConsumptionRate;
|
|
*/
|
|
|
|
/**
|
|
电机控制器温度
|
|
motorControllerTemperature;
|
|
电机转速
|
|
motorSpeed;
|
|
电机转矩
|
|
motorTorque;
|
|
电机温度
|
|
motorTemperature;
|
|
电机电压
|
|
motorVoltage;
|
|
电机电流
|
|
motorCurrent;
|
|
*/
|
|
|
|
/**
|
|
动力电池剩余电量SOC
|
|
remainingBattery;
|
|
当前状态允许的最大反馈功率
|
|
maximumFeedbackPower;
|
|
当前状态允许最大放电功率
|
|
maximumDischargePower;
|
|
BMS自检计数器
|
|
selfCheckCounter;
|
|
动力电池充放电电流
|
|
totalBatteryCurrent;
|
|
动力电池负载端总电压V3
|
|
totalBatteryVoltage;
|
|
单次最大电压
|
|
singleBatteryMaxVoltage;
|
|
单体电池最低电压
|
|
singleBatteryMinVoltage;
|
|
单体电池最高温度
|
|
singleBatteryMaxTemperature;
|
|
单体电池最低温度
|
|
singleBatteryMinTemperature;
|
|
动力电池可用容量
|
|
availableBatteryCapacity;
|
|
*/
|
|
|
|
/**
|
|
车辆状态
|
|
vehicleStatus;
|
|
充电状态
|
|
chargingStatus;
|
|
运行状态
|
|
operatingStatus;
|
|
SOC
|
|
socStatus;
|
|
可充电储能装置工作状态
|
|
chargingEnergyStorageStatus;
|
|
驱动电机状态
|
|
driveMotorStatus;
|
|
定位是否有效
|
|
positionStatus;
|
|
*/
|
|
|
|
/**
|
|
EAS(汽车防盗系统)状态
|
|
easStatus;
|
|
PTC(电动加热器)状态
|
|
ptcStatus;
|
|
EPS(电动助力系统)状态
|
|
epsStatus;
|
|
ABS(防抱死)状态
|
|
absStatus;
|
|
MCU(电机/逆变器)状态
|
|
mcuStatus;
|
|
*/
|
|
|
|
/**
|
|
动力电池加热状态
|
|
heatingStatus;
|
|
动力电池当前状态
|
|
batteryStatus;
|
|
动力电池保温状态
|
|
batteryInsulationStatus;
|
|
DCDC(电力交换系统)状态
|
|
dcdcStatus;
|
|
CHG(充电机)状态
|
|
chgStatus;
|
|
*/
|
|
}
|