From 04a5a3985837443d66050a33b69c55ce19c5902f Mon Sep 17 00:00:00 2001 From: rusefi Date: Sat, 11 Apr 2020 22:08:04 -0400 Subject: [PATCH] documentation --- .../boards/kinetis/config/!gen_config.bat | 1 + .../controllers/algo/rusefi_generated.h | 2 +- .../controllers/generated/rusefi_generated.h | 2 +- firmware/gen_config.bat | 1 + firmware/gen_config_board.bat | 1 + java_tools/ConfigDefinition.jar | Bin 154604 -> 157547 bytes .../src/com/rusefi/ConfigDefinition.java | 14 ++++++++++---- .../src/com/rusefi/VariableRegistry.java | 2 +- 8 files changed, 16 insertions(+), 7 deletions(-) diff --git a/firmware/config/boards/kinetis/config/!gen_config.bat b/firmware/config/boards/kinetis/config/!gen_config.bat index b0f6b90c8f..c15b5d6509 100644 --- a/firmware/config/boards/kinetis/config/!gen_config.bat +++ b/firmware/config/boards/kinetis/config/!gen_config.bat @@ -25,6 +25,7 @@ java ^ -jar ../java_tools/ConfigDefinition.jar ^ -definition integration/rusefi_config.txt ^ -ts_destination tunerstudio ^ + -tool kineris_gen_config.bat ^ -with_c_defines false ^ -initialize_to_zero false ^ -ts_output_name rusefi_kinetis.ini ^ diff --git a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h index e6b8c4738c..597141c96c 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h @@ -1,5 +1,5 @@ // -// was generated automatically by rusEfi tool ConfigDefinition.jar based on integration/rusefi_config.txt +// was generated automatically by rusEfi tool ConfigDefinition.jar based on (unknown script)integration/rusefi_config.txt // #define absoluteFuelPressure_offset 76 diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index affc184d97..082c86176b 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -1,5 +1,5 @@ // -// was generated automatically by rusEfi tool ConfigDefinition.jar based on integration\rusefi_config.txt +// was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt // #define absoluteFuelPressure_offset 76 diff --git a/firmware/gen_config.bat b/firmware/gen_config.bat index f1dc9d66c0..4be42cbce6 100644 --- a/firmware/gen_config.bat +++ b/firmware/gen_config.bat @@ -18,6 +18,7 @@ java -DSystemOut.name=gen_config ^ -ts_destination tunerstudio ^ -with_c_defines false ^ -initialize_to_zero false ^ + -tool gen_config.bat ^ -c_defines controllers\generated\rusefi_generated.h ^ -c_destination controllers\generated\engine_configuration_generated_structures.h ^ -c_fsio_constants controllers\generated\fsio_enums_generated.def ^ diff --git a/firmware/gen_config_board.bat b/firmware/gen_config_board.bat index d2389f9f59..6b7a4b882c 100644 --- a/firmware/gen_config_board.bat +++ b/firmware/gen_config_board.bat @@ -29,6 +29,7 @@ java -DSystemOut.name=gen_config_board ^ java -DSystemOut.name=gen_config_board ^ -jar ../java_tools/ConfigDefinition.jar ^ -definition integration\rusefi_config.txt ^ + -tool gen_config.bat ^ -ts_destination tunerstudio ^ -ts_output_name rusefi_%BOARDNAME%.ini ^ -prepend tunerstudio/%BOARDNAME%_prefix.txt ^ diff --git a/java_tools/ConfigDefinition.jar b/java_tools/ConfigDefinition.jar index c6e15c8e746b3ebe5a316d159ae12c0e27803c3a..9ecb4d887bad6e85652b802440c5ffcb2a39c34d 100644 GIT binary patch delta 30862 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 delta 28116 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 H_`&`U2cD&T diff --git a/java_tools/configuration_definition/src/com/rusefi/ConfigDefinition.java b/java_tools/configuration_definition/src/com/rusefi/ConfigDefinition.java index 9257d537c4..6acd0c282e 100644 --- a/java_tools/configuration_definition/src/com/rusefi/ConfigDefinition.java +++ b/java_tools/configuration_definition/src/com/rusefi/ConfigDefinition.java @@ -20,9 +20,9 @@ import java.util.List; @SuppressWarnings("StringConcatenationInsideStringBufferAppend") public class ConfigDefinition { public static final String EOL = "\n"; - public static final String GENERATED_AUTOMATICALLY_TAG = LazyFile.LAZY_FILE_TAG + "ConfigDefinition.jar based on "; public static String MESSAGE; + public static String TOOL = "(unknown script)"; private static final String ROM_RAIDER_XML_TEMPLATE = "rusefi_template.xml"; public static final String KEY_DEFINITION = "-definition"; private static final String KEY_ROM_INPUT = "-romraider"; @@ -42,6 +42,10 @@ public class ConfigDefinition { public static boolean needZeroInit = true; public static String definitionInputFile = null; + public static String getGeneratedAutomaticallyTag() { + return LazyFile.LAZY_FILE_TAG + "ConfigDefinition.jar based on " + TOOL + " "; + } + public static void main(String[] args) throws IOException { try { doJob(args); @@ -81,7 +85,9 @@ public class ConfigDefinition { for (int i = 0; i < args.length - 1; i += 2) { String key = args[i]; - if (key.equals(KEY_DEFINITION)) { + if (key.equals("-tool")) { + ConfigDefinition.TOOL = args[i + 1]; + } else if (key.equals(KEY_DEFINITION)) { definitionInputFile = args[i + 1]; } else if (key.equals(KEY_TS_DESTINATION)) { tsPath = args[i + 1]; @@ -116,7 +122,7 @@ public class ConfigDefinition { } } - MESSAGE = GENERATED_AUTOMATICALLY_TAG + definitionInputFile + " " + new Date(); + MESSAGE = getGeneratedAutomaticallyTag() + definitionInputFile + " " + new Date(); SystemOut.println("Reading from " + definitionInputFile); @@ -214,7 +220,7 @@ public class ConfigDefinition { SystemOut.println("Reading from " + inputFileName); SystemOut.println("Writing to " + outputFileName); - VariableRegistry.INSTANCE.put("generator_message", ConfigDefinition.GENERATED_AUTOMATICALLY_TAG + new Date()); + VariableRegistry.INSTANCE.put("generator_message", ConfigDefinition.getGeneratedAutomaticallyTag() + new Date()); File inputFile = new File(inputFileName); diff --git a/java_tools/configuration_definition/src/com/rusefi/VariableRegistry.java b/java_tools/configuration_definition/src/com/rusefi/VariableRegistry.java index ece519d34b..c39729375a 100644 --- a/java_tools/configuration_definition/src/com/rusefi/VariableRegistry.java +++ b/java_tools/configuration_definition/src/com/rusefi/VariableRegistry.java @@ -101,7 +101,7 @@ public class VariableRegistry extends TreeMap { SystemOut.println("Writing to " + fileName); LazyFile cHeader = new LazyFile(fileName); - cHeader.write("//\n// " + ConfigDefinition.GENERATED_AUTOMATICALLY_TAG + ConfigDefinition.definitionInputFile + "\n//\n\n"); + cHeader.write("//\n// " + ConfigDefinition.getGeneratedAutomaticallyTag() + ConfigDefinition.definitionInputFile + "\n//\n\n"); cHeader.write(getDefinesSection()); cHeader.close(); }