diff --git a/firmware/config/boards/kinetis/config/gen_config.sh b/firmware/config/boards/kinetis/config/gen_config.sh index e4bc45ded1..d805bf53fc 100644 --- a/firmware/config/boards/kinetis/config/gen_config.sh +++ b/firmware/config/boards/kinetis/config/gen_config.sh @@ -5,6 +5,8 @@ cd ../../../.. pwd +sh gen_signature.sh kin + java \ -DSystemOut.name=gen_config_kinetis_board \ -cp ../java_tools/ConfigDefinition.jar \ @@ -29,6 +31,7 @@ java \ -ts_output_name rusefi_kinetis.ini \ -c_defines config/boards/kinetis/config/controllers/algo/rusefi_generated.h \ -c_destination config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h \ + -signature tunerstudio/signature_kin.txt \ -prepend config/boards/kinetis/config/rusefi_config_kinetis.txt \ -prepend config/boards/kinetis/config/tunerstudio/kinetis_prefix.txt diff --git a/firmware/gen_config.sh b/firmware/gen_config.sh index 019adf76d2..fd84e10231 100644 --- a/firmware/gen_config.sh +++ b/firmware/gen_config.sh @@ -11,6 +11,8 @@ rm gen_config_board.log mkdir build +sh gen_signature.sh all + java -DSystemOut.name=gen_config \ -Drusefi.generator.lazyfile.enabled=true \ -jar ../java_tools/ConfigDefinition.jar \ @@ -29,6 +31,7 @@ java -DSystemOut.name=gen_config \ -c_fsio_names controllers/generated/fsio_names.def \ -c_fsio_strings controllers/generated/fsio_strings.def \ -java_destination ../java_console/models/src/com/rusefi/config/generated/Fields.java \ + -signature tunerstudio/signature_all.txt \ -romraider_destination ../java_console/rusefi.xml [ $? -eq 0 ] || (echo "ERROR generating"; exit $?) @@ -41,9 +44,11 @@ else cp -v tunerstudio/rusefi_microrusefi.ini $TS_PATH/dev_mre/projectCfg/mainController.ini fi -for BOARD in "microrusefi" "frankenso" "prometheus" "proteus"; do - sh gen_config_board.sh $BOARD - [ $? -eq 0 ] || (echo "ERROR generating $BOARD"; exit $?) +for BOARD in "microrusefi mre" "frankenso fra" "prometheus pth" "proteus pro"; do + BOARD_NAME="${BOARD% *}" + BOARD_SHORT_NAME="${BOARD#* }" + sh gen_config_board.sh $BOARD_NAME $BOARD_SHORT_NAME + [ $? -eq 0 ] || (echo "ERROR generating $BOARD_NAME $BOARD_SHORT_NAME"; exit $?) done cd config/boards/kinetis/config diff --git a/firmware/gen_config_board.sh b/firmware/gen_config_board.sh index b60706b672..0c27a5f3be 100644 --- a/firmware/gen_config_board.sh +++ b/firmware/gen_config_board.sh @@ -11,8 +11,11 @@ if [ -z "$1" ]; then fi BOARDNAME=$1 +SHORT_BOARDNAME=$2 -echo "BOARDNAME=${BOARDNAME}" +echo "BOARDNAME=${BOARDNAME} SHORT_BOARDNAME=${SHORT_BOARDNAME}" + +sh gen_signature.sh ${SHORT_BOARDNAME} java -DSystemOut.name=gen_config_board \ -Drusefi.generator.lazyfile.enabled=true \ @@ -34,6 +37,7 @@ java -DSystemOut.name=gen_config_board \ -cache tunerstudio/cache/${BOARDNAME} \ -firing_order controllers/algo/firing_order.h \ -ts_output_name rusefi_${BOARDNAME}.ini \ + -signature tunerstudio/signature_${SHORT_BOARDNAME}.txt \ -prepend tunerstudio/${BOARDNAME}_prefix.txt \ -prepend config/boards/${BOARDNAME}/prepend.txt diff --git a/firmware/gen_signature.sh b/firmware/gen_signature.sh new file mode 100644 index 0000000000..a225bf734c --- /dev/null +++ b/firmware/gen_signature.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +SHORT_BOARDNAME=$1 + +echo "Generating signature for ${SHORT_BOARDNAME}" + +# generate a unique signature +date=$(date +"%Y.%m.%d") +echo "#define SIGNATURE_DATE $date" > tunerstudio/signature_${SHORT_BOARDNAME}.txt +echo "#define SIGNATURE_BOARD ${SHORT_BOARDNAME}" >> tunerstudio/signature_${SHORT_BOARDNAME}.txt + +nanosec=$(date +"%N") +nanosec=${nanosec#0} # numbers starting from 0 can be treated as octal numbers +hash=$(($nanosec % 2147483648)) +echo "#define SIGNATURE_HASH $hash" >> tunerstudio/signature_${SHORT_BOARDNAME}.txt + +exit 0 diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 308e3b0448..0f80f78aad 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -22,8 +22,7 @@ ! each field is declared as ! type name;comment - -#define TS_SIGNATURE "rusEFI v1.2020.4" +#define TS_SIGNATURE "rusEFI @@SIGNATURE_DATE@@.@@SIGNATURE_BOARD@@.@@SIGNATURE_HASH@@" ! ! this is here so that rusEfi console can access it, too