From ea7413a2a4067e8e6a0d507e98a6ea6266217d22 Mon Sep 17 00:00:00 2001 From: Andrey Date: Fri, 9 Sep 2022 02:13:17 -0400 Subject: [PATCH] E38 --- .../hellen-gm-e67/board_configuration.cpp | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/firmware/config/boards/hellen/hellen-gm-e67/board_configuration.cpp b/firmware/config/boards/hellen/hellen-gm-e67/board_configuration.cpp index 1ff47088bf..cd0305f418 100644 --- a/firmware/config/boards/hellen/hellen-gm-e67/board_configuration.cpp +++ b/firmware/config/boards/hellen/hellen-gm-e67/board_configuration.cpp @@ -181,4 +181,35 @@ void setBoardDefaultConfiguration() { engineConfiguration->clutchDownPinMode = PI_PULLDOWN; engineConfiguration->launchActivationMode = CLUTCH_INPUT_LAUNCH; // ? engineConfiguration->malfunctionIndicatorPin = Gpio::G4; //1E - Check Engine Light + + strncpy(config->luaScript, R"( + +function getBitRange(data, bitIndex, bitWidth) + byteIndex = bitIndex >> 3 + shift = bitIndex - byteIndex * 8 + value = data[1 + byteIndex] + if (shift + bitWidth > 8) then + value = value + data[2 + byteIndex] * 256 + end + mask = (1 << bitWidth) - 1 + return (value >> shift) & mask +end + +IGN_STATUS = 0x1f1 + +setTickRate(100) + +function canIgnStatus(bus, id, dlc, data) + crankingBits = getBitRange(data, 2, 2) + local isCranking = (crankingBits == 2) + print('crankingBits ' .. crankingBits .. ', isCranking ' .. isCranking) +end + +canRxAdd(IGN_STATUS, canIgnStatus) + + +function onTick() +end + + )", efi::size(config->luaScript)); }