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; */ }