diff --git a/firmware/config/boards/atlas/prepend.txt b/firmware/config/boards/atlas/prepend.txt index 787227bf91..a0b0fc96ab 100644 --- a/firmware/config/boards/atlas/prepend.txt +++ b/firmware/config/boards/atlas/prepend.txt @@ -3,5 +3,3 @@ ! Atlas is guaranteed dual bank flash, so there's no delay when sending the burn command. ! All commands should complete effectively instantly. #define TS_BLOCK_READ_TIMEOUT 250 - -#define BLOCKING_FACTOR 1500 diff --git a/firmware/config/boards/nucleo_f767/prepend.txt b/firmware/config/boards/nucleo_f767/prepend.txt index 1615a2926b..e69de29bb2 100644 --- a/firmware/config/boards/nucleo_f767/prepend.txt +++ b/firmware/config/boards/nucleo_f767/prepend.txt @@ -1 +0,0 @@ -#define BLOCKING_FACTOR 1500 diff --git a/firmware/config/boards/proteus/prepend.txt b/firmware/config/boards/proteus/prepend.txt index e13a2547d7..79c6dda983 100644 --- a/firmware/config/boards/proteus/prepend.txt +++ b/firmware/config/boards/proteus/prepend.txt @@ -23,4 +23,3 @@ #define show_Proteus_presets true #define LUA_SCRIPT_SIZE 12000 -#define BLOCKING_FACTOR 1500 diff --git a/firmware/console/binary/tunerstudio_commands.cpp b/firmware/console/binary/tunerstudio_commands.cpp index 74a4018213..ea946b3065 100644 --- a/firmware/console/binary/tunerstudio_commands.cpp +++ b/firmware/console/binary/tunerstudio_commands.cpp @@ -42,6 +42,9 @@ static Timer requestPeriodTimer; * Gauges refresh */ void TunerStudio::cmdOutputChannels(TsChannelBase* tsChannel, uint16_t offset, uint16_t count) { + // Assert that the entire output channels block will fit in a single TS transaction + static_assert(BLOCKING_FACTOR >= TS_TOTAL_OUTPUT_SIZE + 10); + if (offset + count > TS_TOTAL_OUTPUT_SIZE) { efiPrintf("TS: Version Mismatch? Too much outputs requested %d/%d/%d", offset, count, sizeof(TunerStudioOutputChannels)); @@ -49,10 +52,8 @@ void TunerStudio::cmdOutputChannels(TsChannelBase* tsChannel, uint16_t offset, u return; } - if (offset < BLOCKING_FACTOR) { - engine->outputChannels.outputRequestPeriod - = 1e6 * requestPeriodTimer.getElapsedSecondsAndReset(getTimeNowNt()); - } + engine->outputChannels.outputRequestPeriod + = 1e6 * requestPeriodTimer.getElapsedSecondsAndReset(getTimeNowNt()); tsState.outputChannelsCommandCounter++; updateTunerStudioState(); diff --git a/firmware/console/usb_console.cpp b/firmware/console/usb_console.cpp index b8048f9405..57eeb2f4a7 100644 --- a/firmware/console/usb_console.cpp +++ b/firmware/console/usb_console.cpp @@ -6,7 +6,6 @@ #include "thread_controller.h" #include "tunerstudio.h" - // Assert that the USB tx/rx buffers are large enough to fit one full packet static_assert(SERIAL_USB_BUFFERS_SIZE >= BLOCKING_FACTOR + 10); diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 277009c6b3..4f4d66d3e5 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -106,7 +106,7 @@ struct_no_prefix persistent_config_s struct_no_prefix engine_configuration_s -#define BLOCKING_FACTOR 750 +#define BLOCKING_FACTOR 1400 #define SENT_INPUT_COUNT 1