| Line | Branch | Decision | Exec | Source |
|---|---|---|---|---|
| 1 | // file hellen_logic.h | |||
| 2 | ||||
| 3 | #pragma once | |||
| 4 | ||||
| 5 | #include "../../board_id/boards_id.h" | |||
| 6 | ||||
| 7 | void hellenWbo(); | |||
| 8 | ||||
| 9 | void setHellenMegaEnPin(bool enableBoardOnStartUp = true); | |||
| 10 | void setHellenEnPin(Gpio pin, bool enableBoardOnStartUp = true); | |||
| 11 | void setHellen64MegaEnPin(); | |||
| 12 | bool isBoardWithPowerManagement(); | |||
| 13 | bool getHellenBoardEnabled(); | |||
| 14 | void hellenEnableEn(const char *msg = ""); | |||
| 15 | void hellenDisableEn(const char *msg = ""); | |||
| 16 | void hellenDisableEnSilently(); // this version is called by fatal error handler meaning no OS access | |||
| 17 | ||||
| 18 | void hellenBoardStandBy(); | |||
| 19 | void hellenMegaSdWithAccelerometer(); | |||
| 20 | void hellenMegaModule(); | |||
| 21 | void hellenMegaAccelerometerPreInitCS2Pin(); | |||
| 22 | void configureHellenCanTerminator(); | |||
| 23 | ||||
| 24 | void setHellenCan(); | |||
| 25 | void setHellenCan2(); | |||
| 26 | void setHellen64Can(); | |||
| 27 | ||||
| 28 | void setHellenAnalogDividers(); | |||
| 29 | void setHellenVbatt(); | |||
| 30 | ||||
| 31 | int detectHellenBoardId(); | |||
| 32 | void detectHellenBoardType(); | |||
| 33 | ||||
| 34 | ObdCode boardGetAnalogDiagnostic(); | |||
| 35 | ||||
| 36 | #pragma GCC diagnostic push | |||
| 37 | #pragma GCC diagnostic ignored "-Wunused-function" | |||
| 38 | ✗ | static void enableHellenSpi1() { | ||
| 39 | ✗ | engineConfiguration->spi1mosiPin = Gpio::H_SPI1_MOSI; | ||
| 40 | ✗ | engineConfiguration->spi1misoPin = Gpio::H_SPI1_MISO; | ||
| 41 | ✗ | engineConfiguration->spi1sckPin = Gpio::H_SPI1_SCK; | ||
| 42 | ✗ | engineConfiguration->is_enabled_spi_1 = true; | ||
| 43 | ✗ | } | ||
| 44 | ||||
| 45 | ✗ | static void setHellenSdCardSpi1Hardware() { | ||
| 46 | ✗ | engineConfiguration->sdCardCsPin = Gpio::H_SPI1_CS1; | ||
| 47 | ✗ | engineConfiguration->sdCardSpiDevice = SPI_DEVICE_1; | ||
| 48 | ✗ | enableHellenSpi1(); | ||
| 49 | ✗ | } | ||
| 50 | ||||
| 51 | ✗ | static void enableHellenSpi3() { | ||
| 52 | ✗ | engineConfiguration->spi3mosiPin = H_SPI3_MOSI; | ||
| 53 | ✗ | engineConfiguration->spi3misoPin = H_SPI3_MISO; | ||
| 54 | ✗ | engineConfiguration->spi3sckPin = H_SPI3_SCK; | ||
| 55 | ✗ | engineConfiguration->is_enabled_spi_3 = true; | ||
| 56 | ✗ | } | ||
| 57 | ||||
| 58 | ✗ | static void setHellenSdCardSpi3NoCS() { | ||
| 59 | ✗ | engineConfiguration->isSdCardEnabled = true; | ||
| 60 | ✗ | engineConfiguration->sdCardSpiDevice = SPI_DEVICE_3; | ||
| 61 | ✗ | enableHellenSpi3(); | ||
| 62 | ✗ | } | ||
| 63 | ||||
| 64 | ✗ | static void setAccelerometerSpi() { | ||
| 65 | /* accelerometer SPI is shared with SD card SPI on mm144 */ | |||
| 66 | ✗ | engineConfiguration->accelerometerSpiDevice = SPI_DEVICE_1; | ||
| 67 | ✗ | engineConfiguration->accelerometerCsPin = Gpio::H_SPI1_CS2; | ||
| 68 | ✗ | } | ||
| 69 | ||||
| 70 | ✗ | static void setHellen64SdCardSpi() { | ||
| 71 | ✗ | engineConfiguration->isSdCardEnabled = true; | ||
| 72 | ✗ | engineConfiguration->sdCardSpiDevice = SPI_DEVICE_3; | ||
| 73 | ✗ | engineConfiguration->spi3mosiPin = Gpio::MM64_SPI3_MOSI; | ||
| 74 | ✗ | engineConfiguration->spi3misoPin = Gpio::MM64_SPI3_MISO; | ||
| 75 | ✗ | engineConfiguration->spi3sckPin = Gpio::MM64_SPI3_SCK; | ||
| 76 | ✗ | engineConfiguration->is_enabled_spi_3 = true; | ||
| 77 | ✗ | engineConfiguration->sdCardCsPin = Gpio::MM64_SPI3_CS; | ||
| 78 | ✗ | } | ||
| 79 | ||||
| 80 | ✗ | static void enableHellenSpi2() { | ||
| 81 | ✗ | engineConfiguration->is_enabled_spi_2 = true; | ||
| 82 | ✗ | engineConfiguration->spi2mosiPin = H_SPI2_MOSI; | ||
| 83 | ✗ | engineConfiguration->spi2misoPin = H_SPI2_MISO; | ||
| 84 | ✗ | engineConfiguration->spi2sckPin = H_SPI2_SCK; | ||
| 85 | ✗ | } | ||
| 86 | ||||
| 87 | inline void setHellenSdCardSpi2() { | |||
| 88 | enableHellenSpi2(); | |||
| 89 | engineConfiguration->sdCardSpiDevice = SPI_DEVICE_2; | |||
| 90 | engineConfiguration->sdCardCsPin = H_SPI2_CS; | |||
| 91 | } | |||
| 92 | ||||
| 93 | inline void setHellenSdCardSpi3() { | |||
| 94 | setHellenSdCardSpi3NoCS(); | |||
| 95 | engineConfiguration->sdCardCsPin = H_SPI3_CS; | |||
| 96 | } | |||
| 97 | ||||
| 98 | // *pullups* files CLT R211 IAT R213 | |||
| 99 | #define HELLEN_DEFAULT_AT_PULLUP 4700 | |||
| 100 | ||||
| 101 | inline void setDefaultHellenAtPullUps(float pullup = HELLEN_DEFAULT_AT_PULLUP) { | |||
| 102 | engineConfiguration->clt.config.bias_resistor = pullup; | |||
| 103 | engineConfiguration->iat.config.bias_resistor = pullup; | |||
| 104 | engineConfiguration->auxTempSensor1.config.bias_resistor = pullup; | |||
| 105 | engineConfiguration->auxTempSensor2.config.bias_resistor = pullup; | |||
| 106 | } | |||
| 107 | ||||
| 108 | inline void setHellenMMbaro() { | |||
| 109 | engineConfiguration->lps25BaroSensorScl = Gpio::B10; | |||
| 110 | engineConfiguration->lps25BaroSensorSda = Gpio::B11; | |||
| 111 | } | |||
| 112 | #pragma GCC diagnostic pop | |||
| 113 |