|
@@ -85,35 +85,6 @@ public class VehicleService {
|
|
String par = FileUtil.read(parTemplate);
|
|
String par = FileUtil.read(parTemplate);
|
|
log.info("saveVehicle() par文件内容为:" + vehiclePO);
|
|
log.info("saveVehicle() par文件内容为:" + vehiclePO);
|
|
log.info("saveVehicle() 车辆模型对象为:" + vehiclePO);
|
|
log.info("saveVehicle() 车辆模型对象为:" + vehiclePO);
|
|
- String replace1 = par.replaceAll("wheelCenterToTop", vehiclePO.getWheelCenterToTop());
|
|
|
|
- String replace2 = replace1.replaceAll("wheelCenterToGround", vehiclePO.getWheelCenterToGround());
|
|
|
|
- String replace3 = replace2.replaceAll("centroidToFrontWheelCenter", vehiclePO.getCentroidToFrontWheelCenter());
|
|
|
|
- String replace4 = replace3.replaceAll("wheelbase", vehiclePO.getWheelbase().toString());
|
|
|
|
- String replace5 = replace4.replaceAll("sprungMass", vehiclePO.getSprungMass());
|
|
|
|
- String replace6 = replace5.replaceAll("vehicleWidth", vehiclePO.getVehicleWidth());
|
|
|
|
- String replace7 = replace6.replaceAll("rotationalInertiaX", vehiclePO.getRotationalInertiaX());
|
|
|
|
- String replace8 = replace7.replaceAll("rotationalInertiaY", vehiclePO.getRotationalInertiaY());
|
|
|
|
- String replace9 = replace8.replaceAll("effectiveRollingRadius", vehiclePO.getFrontLeftWheelEffectiveRollingRadius());
|
|
|
|
- String replace10 = replace9.replaceAll("rollingResistanceCoefficient", vehiclePO.getFrontLeftWheelRollingResistanceCoefficient());
|
|
|
|
- String replace11 = replace10.replaceAll("freeRadius", vehiclePO.getFrontLeftWheelFreeRadius());
|
|
|
|
- String replace12 = replace11.replaceAll("relationCurvePositiveMomentAndSideslipAngle", convertArrayToTable(vehiclePO.getFrontLeftWheelRelationCurvePositiveMomentAndSideslipAngle()));
|
|
|
|
- String replace13 = replace12.replaceAll("relationCurveLateralForceAndSideslipAngle", convertArrayToTable(vehiclePO.getFrontLeftWheelRelationCurveLateralForceAndSideslipAngle()));
|
|
|
|
- String replace14 = replace13.replaceAll("relationCurveLongitudinalForceAndSideslipAngle", convertArrayToTable(vehiclePO.getFrontLeftWheelRelationCurveLongitudinalForceAndSideslipAngle()));
|
|
|
|
- String replace15 = replace14.replaceAll("frontWheelSuspensionKinematicsCoefficient", vehiclePO.getFrontWheelSuspensionKinematicsCoefficient());
|
|
|
|
- String replace16 = replace15.replaceAll("rearWheelSuspensionKinematicsCoefficient", vehiclePO.getRearWheelSuspensionKinematicsCoefficient());
|
|
|
|
- String replace17 = replace16.replaceAll("rearWheelUnsprungMass", vehiclePO.getRearWheelUnsprungMass());
|
|
|
|
- String replace18 = replace17.replaceAll("frontWheelTrackWidth", vehiclePO.getFrontWheelTrackWidth());
|
|
|
|
- String replace19 = replace18.replaceAll("rearWheelTrackWidth", vehiclePO.getRearWheelTrackWidth());
|
|
|
|
- String replace20 = replace19.replaceAll("windwardArea", vehiclePO.getWindwardArea());
|
|
|
|
- String replace21 = replace20.replaceAll("airDensity", vehiclePO.getAirDensity());
|
|
|
|
- String replace22 = replace21.replaceAll("engineCrankshaftMomentInertia", vehiclePO.getEngineCrankshaftMomentInertia());
|
|
|
|
- String replace23 = replace22.replaceAll("idleSpeed", vehiclePO.getIdleSpeed());
|
|
|
|
- String replace24 = replace23.replaceAll("relationCurveEngineTorqueSpeedAndThrottleOpening", convertArrayToTable(vehiclePO.getRelationCurveEngineTorqueSpeedAndThrottleOpening()));
|
|
|
|
- String replace25 = replace24.replaceAll("momentInertiaInputShaft", vehiclePO.getMomentInertiaInputShaft());
|
|
|
|
- String replace26 = replace25.replaceAll("momentInertiaOutputShaft", vehiclePO.getMomentInertiaOutputShaft());
|
|
|
|
- String replace27 = replace26.replaceAll("finalDriveRatio", vehiclePO.getFinalDriveRatio());
|
|
|
|
- String replace28 = replace27.replaceAll("transmissionEfficiency", vehiclePO.getTransmissionEfficiency());
|
|
|
|
-
|
|
|
|
List<String> gearRatio = vehiclePO.getGearRatio();
|
|
List<String> gearRatio = vehiclePO.getGearRatio();
|
|
StringBuilder gearRatioString = new StringBuilder();
|
|
StringBuilder gearRatioString = new StringBuilder();
|
|
for (int i = 0; i < gearRatio.size(); i++) {
|
|
for (int i = 0; i < gearRatio.size(); i++) {
|
|
@@ -128,8 +99,6 @@ public class VehicleService {
|
|
gearRatioString.append("R_GEAR_TR ").append(gearRatio.get(i)).append(System.lineSeparator());
|
|
gearRatioString.append("R_GEAR_TR ").append(gearRatio.get(i)).append(System.lineSeparator());
|
|
gearRatioString.append("*R_GEAR_TR(").append(i - 1).append(") ").append(gearRatio.get(i)).append(System.lineSeparator());
|
|
gearRatioString.append("*R_GEAR_TR(").append(i - 1).append(") ").append(gearRatio.get(i)).append(System.lineSeparator());
|
|
}
|
|
}
|
|
- String replace29 = replace28.replaceAll("gearRatio", gearRatioString.toString());
|
|
|
|
-
|
|
|
|
List<String> inertia = vehiclePO.getInertia();
|
|
List<String> inertia = vehiclePO.getInertia();
|
|
StringBuilder inertiaString = new StringBuilder();
|
|
StringBuilder inertiaString = new StringBuilder();
|
|
for (int i = 0; i < inertia.size(); i++) {
|
|
for (int i = 0; i < inertia.size(); i++) {
|
|
@@ -145,8 +114,6 @@ public class VehicleService {
|
|
inertiaString.append("ITR ").append(inertia.get(i)).append(System.lineSeparator());
|
|
inertiaString.append("ITR ").append(inertia.get(i)).append(System.lineSeparator());
|
|
inertiaString.append("*ITR(").append(i - 1).append(") ").append(inertia.get(i)).append(System.lineSeparator());
|
|
inertiaString.append("*ITR(").append(i - 1).append(") ").append(inertia.get(i)).append(System.lineSeparator());
|
|
}
|
|
}
|
|
- String replace30 = replace29.replaceAll("inertia", inertiaString.toString());
|
|
|
|
-
|
|
|
|
List<String> driving = vehiclePO.getDriving();
|
|
List<String> driving = vehiclePO.getDriving();
|
|
StringBuilder drivingString = new StringBuilder();
|
|
StringBuilder drivingString = new StringBuilder();
|
|
for (int i = 0; i < driving.size(); i++) {
|
|
for (int i = 0; i < driving.size(); i++) {
|
|
@@ -161,8 +128,6 @@ public class VehicleService {
|
|
drivingString.append("R_EFF_TR_F ").append(driving.get(i)).append(System.lineSeparator());
|
|
drivingString.append("R_EFF_TR_F ").append(driving.get(i)).append(System.lineSeparator());
|
|
drivingString.append("*R_EFF_TR_F(").append(i - 1).append(") ").append(driving.get(i)).append(System.lineSeparator());
|
|
drivingString.append("*R_EFF_TR_F(").append(i - 1).append(") ").append(driving.get(i)).append(System.lineSeparator());
|
|
}
|
|
}
|
|
- String replace31 = replace30.replaceAll("driving", drivingString.toString());
|
|
|
|
-
|
|
|
|
List<String> coasting = vehiclePO.getDriving();
|
|
List<String> coasting = vehiclePO.getDriving();
|
|
StringBuilder coastingString = new StringBuilder();
|
|
StringBuilder coastingString = new StringBuilder();
|
|
for (int i = 0; i < coasting.size(); i++) {
|
|
for (int i = 0; i < coasting.size(); i++) {
|
|
@@ -177,36 +142,62 @@ public class VehicleService {
|
|
coastingString.append("R_EFF_TR_R ").append(coasting.get(i)).append(System.lineSeparator());
|
|
coastingString.append("R_EFF_TR_R ").append(coasting.get(i)).append(System.lineSeparator());
|
|
coastingString.append("*R_EFF_TR_R(").append(i - 1).append(") ").append(coasting.get(i)).append(System.lineSeparator());
|
|
coastingString.append("*R_EFF_TR_R(").append(i - 1).append(") ").append(coasting.get(i)).append(System.lineSeparator());
|
|
}
|
|
}
|
|
- String replace32 = replace31.replaceAll("coasting", coastingString.toString());
|
|
|
|
- String replace33 = replace32.replaceAll("shiftTime", vehiclePO.getShiftTime());
|
|
|
|
-
|
|
|
|
- String replace34 = replace33.replaceAll("shiftTimeUp12", convertArrayToTable(vehiclePO.getShiftTimeUp12()));
|
|
|
|
- String replace35 = replace34.replaceAll("shiftTimeDown12", convertArrayToTable(vehiclePO.getShiftTimeDown12()));
|
|
|
|
-
|
|
|
|
- String replace36 = replace35.replaceAll("shiftTimeUp23", convertArrayToTable(vehiclePO.getShiftTimeUp23()));
|
|
|
|
- String replace37 = replace36.replaceAll("shiftTimeDown23", convertArrayToTable(vehiclePO.getShiftTimeDown23()));
|
|
|
|
-
|
|
|
|
- String replace38 = replace37.replaceAll("shiftTimeUp34", convertArrayToTable(vehiclePO.getShiftTimeUp34()));
|
|
|
|
- String replace39 = replace38.replaceAll("shiftTimeDown34", convertArrayToTable(vehiclePO.getShiftTimeDown34()));
|
|
|
|
-
|
|
|
|
- String replace40 = replace39.replaceAll("shiftTimeUp45", convertArrayToTable(vehiclePO.getShiftTimeUp45()));
|
|
|
|
- String replace41 = replace40.replaceAll("shiftTimeDown45", convertArrayToTable(vehiclePO.getShiftTimeDown45()));
|
|
|
|
-
|
|
|
|
- String replace42 = replace41.replaceAll("shiftTimeUp56", convertArrayToTable(vehiclePO.getShiftTimeUp56()));
|
|
|
|
- String replace43 = replace42.replaceAll("shiftTimeDown56", convertArrayToTable(vehiclePO.getShiftTimeDown56()));
|
|
|
|
-
|
|
|
|
- // 制动力矩不再区分左右,前轮使用前左,后轮使用后左
|
|
|
|
- String replace44 = replace43.replaceAll("frontLeftWheelBrakingTorque", vehiclePO.getFrontLeftWheelBrakingTorque());
|
|
|
|
- String replace45 = replace44.replaceAll("frontRightWheelBrakingTorque", vehiclePO.getFrontLeftWheelBrakingTorque());
|
|
|
|
- String replace46 = replace45.replaceAll("rearLeftWheelBrakingTorque", vehiclePO.getRearLeftWheelBrakingTorque());
|
|
|
|
- String replace47 = replace46.replaceAll("rearRightWheelBrakingTorque", vehiclePO.getRearLeftWheelBrakingTorque());
|
|
|
|
- String replace48 = replace47.replaceAll("steeringGearRatio", vehiclePO.getSteeringGearRatio());
|
|
|
|
- String replace49 = replace48.replaceAll("relationCurveRightWheelAngleAndSteeringGearOutput", convertArrayToTable(vehiclePO.getRelationCurveRightWheelAngleAndSteeringGearOutput()));
|
|
|
|
- String replace50 = replace49.replaceAll("relationCurveLeftWheelAngleAndSteeringGearOutput", convertArrayToTable(vehiclePO.getRelationCurveLeftWheelAngleAndSteeringGearOutput()));
|
|
|
|
String parFileName = StringUtil.getRandomEightBitUUID() + ".par";
|
|
String parFileName = StringUtil.getRandomEightBitUUID() + ".par";
|
|
String localParFilePath = parTemp + parFileName;
|
|
String localParFilePath = parTemp + parFileName;
|
|
String minioParFilePath = "/model/" + parFileName;
|
|
String minioParFilePath = "/model/" + parFileName;
|
|
- FileUtil.writeStringToLocalFile(replace50, localParFilePath);
|
|
|
|
|
|
+ FileUtil.writeStringToLocalFile(
|
|
|
|
+ par.replaceAll("wheelCenterToTop", vehiclePO.getWheelCenterToTop())
|
|
|
|
+ .replaceAll("wheelCenterToGround", vehiclePO.getWheelCenterToGround())
|
|
|
|
+ .replaceAll("centroidToFrontWheelCenter", vehiclePO.getCentroidToFrontWheelCenter())
|
|
|
|
+ .replaceAll("centroidToGround", vehiclePO.getCentroidToGround())
|
|
|
|
+ .replaceAll("wheelbase", vehiclePO.getWheelbase().toString())
|
|
|
|
+ .replaceAll("sprungMass", vehiclePO.getSprungMass())
|
|
|
|
+ .replaceAll("vehicleWidth", vehiclePO.getVehicleWidth())
|
|
|
|
+ .replaceAll("rotationalInertiaX", vehiclePO.getRotationalInertiaX())
|
|
|
|
+ .replaceAll("rotationalInertiaY", vehiclePO.getRotationalInertiaY())
|
|
|
|
+ .replaceAll("effectiveRollingRadius", vehiclePO.getFrontLeftWheelEffectiveRollingRadius())
|
|
|
|
+ .replaceAll("rollingResistanceCoefficient", vehiclePO.getFrontLeftWheelRollingResistanceCoefficient())
|
|
|
|
+ .replaceAll("freeRadius", vehiclePO.getFrontLeftWheelFreeRadius())
|
|
|
|
+ .replaceAll("relationCurvePositiveMomentAndSideslipAngle", convertArrayToTableWithoutHead(vehiclePO.getFrontLeftWheelRelationCurvePositiveMomentAndSideslipAngle()))
|
|
|
|
+ .replaceAll("relationCurveLateralForceAndSideslipAngle", convertArrayToTableWithoutHead(vehiclePO.getFrontLeftWheelRelationCurveLateralForceAndSideslipAngle()))
|
|
|
|
+ .replaceAll("relationCurveLongitudinalForceAndSideslipAngle", convertArrayToTableWithoutHead(vehiclePO.getFrontLeftWheelRelationCurveLongitudinalForceAndSideslipAngle()))
|
|
|
|
+ .replaceAll("frontWheelSuspensionKinematicsCoefficient", vehiclePO.getFrontWheelSuspensionKinematicsCoefficient())
|
|
|
|
+ .replaceAll("rearWheelSuspensionKinematicsCoefficient", vehiclePO.getRearWheelSuspensionKinematicsCoefficient())
|
|
|
|
+ .replaceAll("rearWheelUnsprungMass", vehiclePO.getRearWheelUnsprungMass())
|
|
|
|
+ .replaceAll("frontWheelTrackWidth", vehiclePO.getFrontWheelTrackWidth())
|
|
|
|
+ .replaceAll("rearWheelTrackWidth", vehiclePO.getRearWheelTrackWidth())
|
|
|
|
+ .replaceAll("windwardArea", vehiclePO.getWindwardArea())
|
|
|
|
+ .replaceAll("airDensity", vehiclePO.getAirDensity())
|
|
|
|
+ .replaceAll("engineCrankshaftMomentInertia", vehiclePO.getEngineCrankshaftMomentInertia())
|
|
|
|
+ .replaceAll("idleSpeed", vehiclePO.getIdleSpeed())
|
|
|
|
+ .replaceAll("relationCurveEngineTorqueSpeedAndThrottleOpening", convertArrayToTableWithoutHead(vehiclePO.getRelationCurveEngineTorqueSpeedAndThrottleOpening()))
|
|
|
|
+ .replaceAll("momentInertiaInputShaft", vehiclePO.getMomentInertiaInputShaft())
|
|
|
|
+ .replaceAll("momentInertiaOutputShaft", vehiclePO.getMomentInertiaOutputShaft())
|
|
|
|
+ .replaceAll("finalDriveRatio", vehiclePO.getFinalDriveRatio())
|
|
|
|
+ .replaceAll("transmissionEfficiency", vehiclePO.getTransmissionEfficiency())
|
|
|
|
+ .replaceAll("gearRatio", gearRatioString.toString())
|
|
|
|
+ .replaceAll("inertia", inertiaString.toString())
|
|
|
|
+ .replaceAll("driving", drivingString.toString())
|
|
|
|
+ .replaceAll("coasting", coastingString.toString())
|
|
|
|
+ .replace("shiftTimeSource", vehiclePO.getShiftTime()) // 换第一个
|
|
|
|
+ .replaceAll("shiftTimeUp12", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeUp12()))
|
|
|
|
+ .replaceAll("shiftTimeDown12", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeDown12()))
|
|
|
|
+ .replaceAll("shiftTimeUp23", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeUp23()))
|
|
|
|
+ .replaceAll("shiftTimeDown23", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeDown23()))
|
|
|
|
+ .replaceAll("shiftTimeUp34", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeUp34()))
|
|
|
|
+ .replaceAll("shiftTimeDown34", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeDown34()))
|
|
|
|
+ .replaceAll("shiftTimeUp45", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeUp45()))
|
|
|
|
+ .replaceAll("shiftTimeDown45", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeDown45()))
|
|
|
|
+ .replaceAll("shiftTimeUp56", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeUp56()))
|
|
|
|
+ .replaceAll("shiftTimeDown56", convertArrayToTableWithoutHead(vehiclePO.getShiftTimeDown56())) // 制动力矩不再区分左右,前轮使用前左,后轮使用后左
|
|
|
|
+ .replaceAll("frontLeftWheelBrakingTorque", vehiclePO.getFrontLeftWheelBrakingTorque())
|
|
|
|
+ .replaceAll("frontRightWheelBrakingTorque", vehiclePO.getFrontLeftWheelBrakingTorque())
|
|
|
|
+ .replaceAll("rearLeftWheelBrakingTorque", vehiclePO.getRearLeftWheelBrakingTorque())
|
|
|
|
+ .replaceAll("rearRightWheelBrakingTorque", vehiclePO.getRearLeftWheelBrakingTorque())
|
|
|
|
+ .replaceAll("steeringGearRatio", vehiclePO.getSteeringGearRatio())
|
|
|
|
+ .replaceAll("relationCurveRightWheelAngleAndSteeringGearOutput", convertArrayToTableWithoutHead(vehiclePO.getRelationCurveRightWheelAngleAndSteeringGearOutput()))
|
|
|
|
+ .replaceAll("relationCurveLeftWheelAngleAndSteeringGearOutput", convertArrayToTableWithoutHead(vehiclePO.getRelationCurveLeftWheelAngleAndSteeringGearOutput()))
|
|
|
|
+ , localParFilePath);
|
|
fileDownService.uploadLocalFile(localParFilePath, minioParFilePath);
|
|
fileDownService.uploadLocalFile(localParFilePath, minioParFilePath);
|
|
vehiclePO.setParFilePath(minioParFilePath);
|
|
vehiclePO.setParFilePath(minioParFilePath);
|
|
}
|
|
}
|
|
@@ -539,14 +530,32 @@ public class VehicleService {
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
- public String convertArrayToTable(List<List<String>> array) {
|
|
|
|
|
|
+ public String convertArrayToTable(List<List<String>> lines) {
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
- for (List<String> strings : array) {
|
|
|
|
- stringBuilder.append(strings.get(0));
|
|
|
|
- for (int i = 1; i < strings.size(); i++) {
|
|
|
|
- stringBuilder.append(",").append(strings.get(i));
|
|
|
|
|
|
+ for (int i = 0; i < lines.size(); i++) {
|
|
|
|
+ List<String> words = lines.get(i);
|
|
|
|
+ stringBuilder.append(words.get(0));
|
|
|
|
+ for (int j = 1; i < words.size(); i++) {
|
|
|
|
+ stringBuilder.append(",").append(words.get(j));
|
|
|
|
+ }
|
|
|
|
+ if (i != lines.size() - 1) {
|
|
|
|
+ stringBuilder.append(System.lineSeparator());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return stringBuilder.toString();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public String convertArrayToTableWithoutHead(List<List<String>> lines) {
|
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
|
+ for (int i = 1; i < lines.size(); i++) {
|
|
|
|
+ List<String> words = lines.get(i);
|
|
|
|
+ stringBuilder.append(words.get(0));
|
|
|
|
+ for (int j = 1; j < words.size(); j++) {
|
|
|
|
+ stringBuilder.append(",").append(words.get(j));
|
|
|
|
+ }
|
|
|
|
+ if (i != lines.size() - 1) {
|
|
|
|
+ stringBuilder.append(System.lineSeparator());
|
|
}
|
|
}
|
|
- stringBuilder.append(System.lineSeparator());
|
|
|
|
}
|
|
}
|
|
return stringBuilder.toString();
|
|
return stringBuilder.toString();
|
|
}
|
|
}
|