NetworkingCar/src/main/java/com/muyu/vehicle/model/VehicleData.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;
*/
}