From bc811f3d9d9a024a120f5ecc9876314a639eab7d Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sun, 25 Feb 2024 00:05:23 -0500 Subject: [PATCH] EPIC: Improve toolset for default tune canned tune generation #4871 --- firmware/config/engines/hyundai.cpp | 1 + .../controllers/algo/defaults/default_base_engine.cpp | 2 +- .../src/main/java/com/rusefi/tools/tune/CurveData.java | 6 +++--- .../src/main/java/com/rusefi/tools/tune/TableData.java | 8 ++++++-- .../src/main/java/com/rusefi/tools/tune/TuneCanTool.java | 5 +++-- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/firmware/config/engines/hyundai.cpp b/firmware/config/engines/hyundai.cpp index 15c90085ac..f75beb75e7 100644 --- a/firmware/config/engines/hyundai.cpp +++ b/firmware/config/engines/hyundai.cpp @@ -43,6 +43,7 @@ void setHyundaiPb() { engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL_60_2; engineConfiguration->globalTriggerAngleOffset = 90; + engineConfiguration->enableSoftwareKnock = true; engineConfiguration->etbIdleThrottleRange = 6.0; engineConfiguration->totalGearsCount = 5; diff --git a/firmware/controllers/algo/defaults/default_base_engine.cpp b/firmware/controllers/algo/defaults/default_base_engine.cpp index cd2fda575b..c754646c8d 100644 --- a/firmware/controllers/algo/defaults/default_base_engine.cpp +++ b/firmware/controllers/algo/defaults/default_base_engine.cpp @@ -46,7 +46,7 @@ static void setDefaultHPFP() { #endif // todo: would be nice for unit tests to be happy about these defaults -#if EFI_PROD_CODE +#if EFI_PROD_CODE || EFI_SIMULATOR engineConfiguration->hpfpPumpVolume = 0.290; #endif engineConfiguration->hpfpMinAngle = 10; diff --git a/java_tools/tune-tools/src/main/java/com/rusefi/tools/tune/CurveData.java b/java_tools/tune-tools/src/main/java/com/rusefi/tools/tune/CurveData.java index b253468120..4965be1c69 100644 --- a/java_tools/tune-tools/src/main/java/com/rusefi/tools/tune/CurveData.java +++ b/java_tools/tune-tools/src/main/java/com/rusefi/tools/tune/CurveData.java @@ -43,12 +43,12 @@ public class CurveData implements HoHo { return null; ArrayIniField field = (ArrayIniField) iniField; int curveSize = field.getRows(); - BufferedReader r = TS2C.readAndScroll(msqFileName, curveName + "\"", TS2C.fileFactory); float[] curveValues = new float[curveSize]; - try { + try (BufferedReader r = TS2C.readAndScroll(msqFileName, curveName + "\"", TS2C.fileFactory)) { readAxle(curveValues, r); } catch (NumberFormatException e) { - throw new IllegalStateException("While " + curveName, e); + // we read potentially old tune using current IniFileModel, curve dimension might not match + System.err.println("[NumberFormatException] while " + curveName); } return new CurveData(curveName, curveValues); diff --git a/java_tools/tune-tools/src/main/java/com/rusefi/tools/tune/TableData.java b/java_tools/tune-tools/src/main/java/com/rusefi/tools/tune/TableData.java index d26856ef9a..50ced55323 100644 --- a/java_tools/tune-tools/src/main/java/com/rusefi/tools/tune/TableData.java +++ b/java_tools/tune-tools/src/main/java/com/rusefi/tools/tune/TableData.java @@ -46,8 +46,12 @@ public class TableData implements HoHo { table[rowIndex] = new float[columns]; } - BufferedReader reader = TS2C.readAndScroll(msqFileName, tableName, factory); - readTable(table, reader, rows, columns); + try (BufferedReader reader = TS2C.readAndScroll(msqFileName, tableName, factory)) { + readTable(table, reader, rows, columns); + } catch (IllegalStateException e) { + // we read potentially old tune using current IniFileModel, curve dimension might not match + System.err.println("[IllegalStateException] while " + tableName); + } return new TableData(rows, columns, table, tableName); } diff --git a/java_tools/tune-tools/src/main/java/com/rusefi/tools/tune/TuneCanTool.java b/java_tools/tune-tools/src/main/java/com/rusefi/tools/tune/TuneCanTool.java index aae878029f..2ecbf00c50 100644 --- a/java_tools/tune-tools/src/main/java/com/rusefi/tools/tune/TuneCanTool.java +++ b/java_tools/tune-tools/src/main/java/com/rusefi/tools/tune/TuneCanTool.java @@ -125,9 +125,10 @@ public class TuneCanTool { } String fileName = REPORTS_OUTPUT_FOLDER + "/" + vehicleName + ".md"; - log.info("Writing to " + fileName); + File outputFile = new File(fileName); + log.info("Writing to " + outputFile.getAbsolutePath()); - try (FileWriter w = new FileWriter(fileName)) { + try (FileWriter w = new FileWriter(outputFile)) { w.append("# " + vehicleName + "\n\n"); w.append("// canned tune " + cannedComment + "\n\n");