diff --git a/firmware/config/boards/hellen/alphax-2chan/board_configuration.cpp b/firmware/config/boards/hellen/alphax-2chan/board_configuration.cpp index 7e6e867218..bd9e38d24b 100644 --- a/firmware/config/boards/hellen/alphax-2chan/board_configuration.cpp +++ b/firmware/config/boards/hellen/alphax-2chan/board_configuration.cpp @@ -133,8 +133,8 @@ void setBoardDefaultConfiguration() { // "required" hardware is done - set some reasonable defaults setupDefaultSensorInputs(); - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK diff --git a/firmware/config/boards/hellen/alphax-4chan/board_configuration.cpp b/firmware/config/boards/hellen/alphax-4chan/board_configuration.cpp index 7a5a8a3388..9d77e214dc 100644 --- a/firmware/config/boards/hellen/alphax-4chan/board_configuration.cpp +++ b/firmware/config/boards/hellen/alphax-4chan/board_configuration.cpp @@ -179,8 +179,8 @@ void setBoardDefaultConfiguration() { // "required" hardware is done - set some reasonable defaults setupDefaultSensorInputs(); - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK diff --git a/firmware/config/boards/hellen/alphax-8chan/board_configuration.cpp b/firmware/config/boards/hellen/alphax-8chan/board_configuration.cpp index be7ed8ec14..30c8a31a58 100644 --- a/firmware/config/boards/hellen/alphax-8chan/board_configuration.cpp +++ b/firmware/config/boards/hellen/alphax-8chan/board_configuration.cpp @@ -184,8 +184,8 @@ void setBoardDefaultConfiguration() { // "required" hardware is done - set some reasonable defaults setupDefaultSensorInputs(); - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK diff --git a/firmware/config/boards/hellen/harley81/board_configuration.cpp b/firmware/config/boards/hellen/harley81/board_configuration.cpp index f8ce17ec73..cc763667ad 100644 --- a/firmware/config/boards/hellen/harley81/board_configuration.cpp +++ b/firmware/config/boards/hellen/harley81/board_configuration.cpp @@ -137,8 +137,8 @@ void setBoardDefaultConfiguration() { // "required" hardware is done - set some reasonable defaults setupDefaultSensorInputs(); - engineConfiguration->specs.cylindersCount = 2; - engineConfiguration->specs.firingOrder = FO_1_2; + engineConfiguration->cylindersCount = 2; + engineConfiguration->firingOrder = FO_1_2; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK diff --git a/firmware/config/boards/hellen/hellen-nb1/board_configuration.cpp b/firmware/config/boards/hellen/hellen-nb1/board_configuration.cpp index 29c900dd44..6f20054410 100644 --- a/firmware/config/boards/hellen/hellen-nb1/board_configuration.cpp +++ b/firmware/config/boards/hellen/hellen-nb1/board_configuration.cpp @@ -108,8 +108,8 @@ void setBoardDefaultConfiguration() { // "required" hardware is done - set some reasonable defaults setupDefaultSensorInputs(); - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK diff --git a/firmware/config/boards/hellen/hellen121vag/board_configuration.cpp b/firmware/config/boards/hellen/hellen121vag/board_configuration.cpp index c19608fd91..0fedb6e2fe 100644 --- a/firmware/config/boards/hellen/hellen121vag/board_configuration.cpp +++ b/firmware/config/boards/hellen/hellen121vag/board_configuration.cpp @@ -133,8 +133,8 @@ void setBoardDefaultConfiguration() { strcpy(engineConfiguration->engineMake, ENGINE_MAKE_VAG); strcpy(engineConfiguration->engineCode, "base"); - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK diff --git a/firmware/config/boards/hellen/hellen128/board_configuration.cpp b/firmware/config/boards/hellen/hellen128/board_configuration.cpp index 3273e247ed..8f1ced1a96 100644 --- a/firmware/config/boards/hellen/hellen128/board_configuration.cpp +++ b/firmware/config/boards/hellen/hellen128/board_configuration.cpp @@ -173,9 +173,9 @@ void setBoardDefaultConfiguration() { // "required" hardware is done - set some reasonable defaults setupDefaultSensorInputs(); - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; - engineConfiguration->specs.displacement = 2.295f; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; + engineConfiguration->displacement = 2.295f; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK engineConfiguration->crankingInjectionMode = IM_SEQUENTIAL; diff --git a/firmware/config/boards/hellen/hellen154hyundai/board_configuration.cpp b/firmware/config/boards/hellen/hellen154hyundai/board_configuration.cpp index e2589cc833..50b9f29421 100644 --- a/firmware/config/boards/hellen/hellen154hyundai/board_configuration.cpp +++ b/firmware/config/boards/hellen/hellen154hyundai/board_configuration.cpp @@ -179,9 +179,9 @@ void setBoardDefaultConfiguration() { engineConfiguration->injectorCompensationMode = ICM_FixedRailPressure; - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; - engineConfiguration->specs.displacement = 1.998; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; + engineConfiguration->displacement = 1.998; strcpy(engineConfiguration->engineMake, ENGINE_MAKE_Hyundai); strcpy(engineConfiguration->engineCode, "Theta II"); engineConfiguration->globalTriggerAngleOffset = 90; diff --git a/firmware/config/boards/hellen/hellen64_miataNA6_94/board_configuration.cpp b/firmware/config/boards/hellen/hellen64_miataNA6_94/board_configuration.cpp index a163dc9d9f..31d9151c24 100644 --- a/firmware/config/boards/hellen/hellen64_miataNA6_94/board_configuration.cpp +++ b/firmware/config/boards/hellen/hellen64_miataNA6_94/board_configuration.cpp @@ -109,8 +109,8 @@ void setBoardDefaultConfiguration() { // "required" hardware is done - set some reasonable defaults setupDefaultSensorInputs(); - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK diff --git a/firmware/config/boards/hellen/hellen72/board_configuration.cpp b/firmware/config/boards/hellen/hellen72/board_configuration.cpp index 3f5fd9f4f7..1fd612f3af 100644 --- a/firmware/config/boards/hellen/hellen72/board_configuration.cpp +++ b/firmware/config/boards/hellen/hellen72/board_configuration.cpp @@ -125,8 +125,8 @@ void setBoardDefaultConfiguration() { // "required" hardware is done - set some reasonable defaults setupDefaultSensorInputs(); - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK diff --git a/firmware/config/boards/hellen/hellen81/board_configuration.cpp b/firmware/config/boards/hellen/hellen81/board_configuration.cpp index dc1e7d4aeb..347f420d79 100644 --- a/firmware/config/boards/hellen/hellen81/board_configuration.cpp +++ b/firmware/config/boards/hellen/hellen81/board_configuration.cpp @@ -122,8 +122,8 @@ void setBoardDefaultConfiguration() { // "required" hardware is done - set some reasonable defaults setupDefaultSensorInputs(); - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK diff --git a/firmware/config/boards/hellen/hellenNA8_96/board_configuration.cpp b/firmware/config/boards/hellen/hellenNA8_96/board_configuration.cpp index 7926dc735e..0f95dc3e53 100644 --- a/firmware/config/boards/hellen/hellenNA8_96/board_configuration.cpp +++ b/firmware/config/boards/hellen/hellenNA8_96/board_configuration.cpp @@ -111,8 +111,8 @@ void setBoardDefaultConfiguration() { // "required" hardware is done - set some reasonable defaults setupDefaultSensorInputs(); - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK diff --git a/firmware/config/boards/microrusefi/board_configuration.cpp b/firmware/config/boards/microrusefi/board_configuration.cpp index 0fc3d8c7b3..39a8c0e59f 100644 --- a/firmware/config/boards/microrusefi/board_configuration.cpp +++ b/firmware/config/boards/microrusefi/board_configuration.cpp @@ -195,8 +195,8 @@ void setBoardDefaultConfiguration() { // Don't enable expansion header SPI by default engineConfiguration->is_enabled_spi_3 = false; - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; diff --git a/firmware/config/boards/prometheus/board_configuration.cpp b/firmware/config/boards/prometheus/board_configuration.cpp index 81c32782f5..48aecc779e 100644 --- a/firmware/config/boards/prometheus/board_configuration.cpp +++ b/firmware/config/boards/prometheus/board_configuration.cpp @@ -17,8 +17,8 @@ static bool is469 = false; static void setPrometheusDefaults() { - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; @@ -26,7 +26,7 @@ static void setPrometheusDefaults() { engineConfiguration->globalTriggerAngleOffset = 114; // the end of 19th tooth? - engineConfiguration->specs.displacement = 1.645; + engineConfiguration->displacement = 1.645; engineConfiguration->injector.flow = 200; engineConfiguration->cranking.baseFuel = 25; // ??? diff --git a/firmware/config/boards/proteus/board_configuration.cpp b/firmware/config/boards/proteus/board_configuration.cpp index a160b2b210..0636e7f0b7 100644 --- a/firmware/config/boards/proteus/board_configuration.cpp +++ b/firmware/config/boards/proteus/board_configuration.cpp @@ -161,8 +161,8 @@ void setBoardDefaultConfiguration() { // "required" hardware is done - set some reasonable defaults setupDefaultSensorInputs(); - engineConfiguration->specs.cylindersCount = 8; - engineConfiguration->specs.firingOrder = FO_1_8_7_2_6_5_4_3; + engineConfiguration->cylindersCount = 8; + engineConfiguration->firingOrder = FO_1_8_7_2_6_5_4_3; engineConfiguration->enableSoftwareKnock = true; diff --git a/firmware/config/engines/GY6_139QMB.cpp b/firmware/config/engines/GY6_139QMB.cpp index 9b6e44b7ab..a525cff149 100644 --- a/firmware/config/engines/GY6_139QMB.cpp +++ b/firmware/config/engines/GY6_139QMB.cpp @@ -23,13 +23,13 @@ void setGy6139qmbDefaultEngineConfiguration() { setTargetRpmCurve(2000); engineConfiguration->analogInputDividerCoefficient = 1; engineConfiguration->globalTriggerAngleOffset = 45; - engineConfiguration->specs.displacement = 0.072; // 72cc - engineConfiguration->specs.cylindersCount = 1; + engineConfiguration->displacement = 0.072; // 72cc + engineConfiguration->cylindersCount = 1; setCrankOperationMode(); // this is related to 'setDefaultBaseEngine' having 'skippedWheelOnCam = true' which is a weird fact by itself engineConfiguration->skippedWheelOnCam = false; - engineConfiguration->specs.firingOrder = FO_1; + engineConfiguration->firingOrder = FO_1; /** * We treat the trigger as 8-1 toothed wheel diff --git a/firmware/config/engines/bmw_m73.cpp b/firmware/config/engines/bmw_m73.cpp index 11caa28e46..0eb6078d39 100644 --- a/firmware/config/engines/bmw_m73.cpp +++ b/firmware/config/engines/bmw_m73.cpp @@ -89,11 +89,11 @@ void m73engine() { // 13641435991 injector engineConfiguration->injector.flow = 180; // cc/min, who knows if this number is real - no good source of info - engineConfiguration->specs.cylindersCount = 12; - engineConfiguration->specs.displacement = 5.4; + engineConfiguration->cylindersCount = 12; + engineConfiguration->displacement = 5.4; strcpy(engineConfiguration->engineMake, ENGINE_MAKE_BMW); strcpy(engineConfiguration->engineCode, "M73"); - engineConfiguration->specs.firingOrder = FO_1_7_5_11_3_9_6_12_2_8_4_10; + engineConfiguration->firingOrder = FO_1_7_5_11_3_9_6_12_2_8_4_10; engineConfiguration->fuelAlgorithm = LM_ALPHA_N; engineConfiguration->canNbcType = CAN_BUS_NBC_NONE; diff --git a/firmware/config/engines/bmw_m73_mre.cpp b/firmware/config/engines/bmw_m73_mre.cpp index 9ca19e5d00..bbf6b47166 100644 --- a/firmware/config/engines/bmw_m73_mre.cpp +++ b/firmware/config/engines/bmw_m73_mre.cpp @@ -72,9 +72,9 @@ void setEngineBMW_M73_microRusEfi() { strcpy(engineConfiguration->vehicleName, "microRusEFIx2"); engineConfiguration->globalTriggerAngleOffset = 90; - engineConfiguration->specs.cylindersCount = 6; - engineConfiguration->specs.displacement = 5.4 / 2; - engineConfiguration->specs.firingOrder = FO_1_5_3_6_2_4; + engineConfiguration->cylindersCount = 6; + engineConfiguration->displacement = 5.4 / 2; + engineConfiguration->firingOrder = FO_1_5_3_6_2_4; engineConfiguration->ignitionMode = IM_ONE_COIL; diff --git a/firmware/config/engines/chevrolet_camaro_4.cpp b/firmware/config/engines/chevrolet_camaro_4.cpp index 45f1b1ce11..08970f4de5 100644 --- a/firmware/config/engines/chevrolet_camaro_4.cpp +++ b/firmware/config/engines/chevrolet_camaro_4.cpp @@ -19,11 +19,11 @@ void setCamaro4() { setAlgorithm(LM_SPEED_DENSITY); - engineConfiguration->specs.displacement = 5.7; - engineConfiguration->specs.cylindersCount = 8; + engineConfiguration->displacement = 5.7; + engineConfiguration->cylindersCount = 8; strcpy(engineConfiguration->engineMake, ENGINE_MAKE_GM); - engineConfiguration->specs.firingOrder = FO_1_8_7_2_6_5_4_3; + engineConfiguration->firingOrder = FO_1_8_7_2_6_5_4_3; engineConfiguration->triggerInputPins[0] = Gpio::A5; engineConfiguration->triggerInputPins[1] = Gpio::C6; diff --git a/firmware/config/engines/citroenBerlingoTU3JP.cpp b/firmware/config/engines/citroenBerlingoTU3JP.cpp index e8c69b56d5..05d78457a1 100644 --- a/firmware/config/engines/citroenBerlingoTU3JP.cpp +++ b/firmware/config/engines/citroenBerlingoTU3JP.cpp @@ -21,9 +21,9 @@ void setCitroenBerlingoTU3JPConfiguration() { setCrankOperationMode(); engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2; engineConfiguration->globalTriggerAngleOffset = 114; - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.displacement = 1.360; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->displacement = 1.360; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->ignitionMode = IM_WASTED_SPARK; engineConfiguration->injectionMode = IM_BATCH; engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; diff --git a/firmware/config/engines/custom_engine.cpp b/firmware/config/engines/custom_engine.cpp index b82b93f619..2e1173fd1a 100644 --- a/firmware/config/engines/custom_engine.cpp +++ b/firmware/config/engines/custom_engine.cpp @@ -143,7 +143,7 @@ void setFrankensoConfiguration() { /** * We want to initialize all outputs for test */ - engineConfiguration->specs.cylindersCount = 12; + engineConfiguration->cylindersCount = 12; #else /* EFI_PWM_TESTER */ engineConfiguration->injectionPins[4] = Gpio::Unassigned; engineConfiguration->injectionPins[5] = Gpio::Unassigned; @@ -174,8 +174,8 @@ void setFrankensoBoardTestConfiguration() { engineConfiguration->triggerSimulatorFrequency = 300; engineConfiguration->cranking.rpm = 100; - engineConfiguration->specs.cylindersCount = 12; - engineConfiguration->specs.firingOrder = FO_1_7_5_11_3_9_6_12_2_8_4_10; + engineConfiguration->cylindersCount = 12; + engineConfiguration->firingOrder = FO_1_7_5_11_3_9_6_12_2_8_4_10; // set ignition_mode 1 engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; @@ -351,8 +351,8 @@ void setL9779TestConfiguration() { // todo: remove this? this was used to play with "secret" red boards prior to MRE reality // set engine_type 59 void setTle8888TestConfiguration() { - engineConfiguration->specs.cylindersCount = 8; - engineConfiguration->specs.firingOrder = FO_1_8_7_2_6_5_4_3; + engineConfiguration->cylindersCount = 8; + engineConfiguration->firingOrder = FO_1_8_7_2_6_5_4_3; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; engineConfiguration->crankingInjectionMode = IM_SEQUENTIAL; @@ -482,8 +482,8 @@ static void mreBoardOldTest() { // TPS tps1_1AdcChannel EFI_ADC_13 - engineConfiguration->specs.cylindersCount = 10; - engineConfiguration->specs.firingOrder = FO_1_10_9_4_3_6_5_8_7_2; + engineConfiguration->cylindersCount = 10; + engineConfiguration->firingOrder = FO_1_10_9_4_3_6_5_8_7_2; // red LED #1 engineConfiguration->ignitionPins[1 - 1] = Gpio::D4; @@ -584,8 +584,8 @@ end * set engine_type 42 */ void proteusBoardTest() { - engineConfiguration->specs.cylindersCount = 12; - engineConfiguration->specs.firingOrder = FO_1_2_3_4_5_6_7_8_9_10_11_12; + engineConfiguration->cylindersCount = 12; + engineConfiguration->firingOrder = FO_1_2_3_4_5_6_7_8_9_10_11_12; engineConfiguration->triggerSimulatorFrequency = 600; engineConfiguration->injector.flow = 4.6; // longer blink @@ -670,8 +670,8 @@ void mreBCM() { void mreBoardNewTest() { mreBoardOldTest(); - engineConfiguration->specs.cylindersCount = 12; - engineConfiguration->specs.firingOrder = FO_1_2_3_4_5_6_7_8_9_10_11_12; + engineConfiguration->cylindersCount = 12; + engineConfiguration->firingOrder = FO_1_2_3_4_5_6_7_8_9_10_11_12; engineConfiguration->injector.flow = 5; // longer blink @@ -783,8 +783,8 @@ void setBoschHDEV_5_injectors() { * set engine_type 107 */ void setRotary() { - engineConfiguration->specs.cylindersCount = 2; - engineConfiguration->specs.firingOrder = FO_1_2; + engineConfiguration->cylindersCount = 2; + engineConfiguration->firingOrder = FO_1_2; engineConfiguration->trigger.type = TT_36_2_2_2; // todo: fix UI to make this possible via TS diff --git a/firmware/config/engines/dodge_neon.cpp b/firmware/config/engines/dodge_neon.cpp index f721827243..720c38e67a 100644 --- a/firmware/config/engines/dodge_neon.cpp +++ b/firmware/config/engines/dodge_neon.cpp @@ -53,7 +53,7 @@ void setDodgeNeon1995EngineConfiguration() { // set ignition_mode 2 engineConfiguration->ignitionMode = IM_WASTED_SPARK; // set_firing_order 2 - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->firingOrder = FO_1_3_4_2; // set global_trigger_offset_angle 497 engineConfiguration->globalTriggerAngleOffset = 497; @@ -111,8 +111,8 @@ void setDodgeNeonNGCEngineConfiguration() { engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; engineConfiguration->injectionMode = IM_SEQUENTIAL; engineConfiguration->ignitionMode = IM_WASTED_SPARK; - engineConfiguration->specs.displacement = 1.996; - engineConfiguration->specs.cylindersCount = 4; + engineConfiguration->displacement = 1.996; + engineConfiguration->cylindersCount = 4; /** * 77C diff --git a/firmware/config/engines/dodge_ram.cpp b/firmware/config/engines/dodge_ram.cpp index cc04a424c9..0305f17a01 100644 --- a/firmware/config/engines/dodge_ram.cpp +++ b/firmware/config/engines/dodge_ram.cpp @@ -20,9 +20,9 @@ void setDodgeRam1996() { engineConfiguration->map.sensor.type = MT_DODGE_NEON_2003; //Base engine setting - engineConfiguration->specs.cylindersCount = 8; - engineConfiguration->specs.firingOrder = FO_1_8_4_3_6_5_7_2; - engineConfiguration->specs.displacement = 5.2; + engineConfiguration->cylindersCount = 8; + engineConfiguration->firingOrder = FO_1_8_4_3_6_5_7_2; + engineConfiguration->displacement = 5.2; // set global_trigger_offset_angle -50 engineConfiguration->globalTriggerAngleOffset = -50; diff --git a/firmware/config/engines/ford_1995_inline_6.cpp b/firmware/config/engines/ford_1995_inline_6.cpp index 5f5b38a52d..fa63ee8b34 100644 --- a/firmware/config/engines/ford_1995_inline_6.cpp +++ b/firmware/config/engines/ford_1995_inline_6.cpp @@ -19,12 +19,12 @@ * @brief Default values for persistent properties */ void setFordInline6() { - engineConfiguration->specs.cylindersCount = 6; + engineConfiguration->cylindersCount = 6; setCamOperationMode(); engineConfiguration->ignitionMode = IM_ONE_COIL; - engineConfiguration->specs.firingOrder = FO_1_5_3_6_2_4; + engineConfiguration->firingOrder = FO_1_5_3_6_2_4; engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; engineConfiguration->injectionMode = IM_BATCH; engineConfiguration->twoWireBatchInjection = true; diff --git a/firmware/config/engines/ford_aspire.cpp b/firmware/config/engines/ford_aspire.cpp index 5dadc54019..0072d8362e 100644 --- a/firmware/config/engines/ford_aspire.cpp +++ b/firmware/config/engines/ford_aspire.cpp @@ -59,12 +59,12 @@ void setFordAspireEngineConfiguration() { // engineConfiguration->ignitionPinMode = OM_INVERTED; - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.displacement = 1.3; + engineConfiguration->cylindersCount = 4; + engineConfiguration->displacement = 1.3; // Denso 195500-2110 engineConfiguration->injector.flow = 119.8; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->globalTriggerAngleOffset = 175; setDefaultAspireMaps(); diff --git a/firmware/config/engines/ford_festiva.cpp b/firmware/config/engines/ford_festiva.cpp index eeff9e3743..3375b2d191 100644 --- a/firmware/config/engines/ford_festiva.cpp +++ b/firmware/config/engines/ford_festiva.cpp @@ -71,7 +71,7 @@ void setFordEscortGt() { setDensoTODO(config); engineConfiguration->globalFuelCorrection = 0.75; - engineConfiguration->specs.displacement = 1.839; + engineConfiguration->displacement = 1.839; setAlgorithm(LM_SPEED_DENSITY); static const uint16_t veRpmBins[] = diff --git a/firmware/config/engines/gm_ls_4.cpp b/firmware/config/engines/gm_ls_4.cpp index 7cdf39962e..54173dc542 100644 --- a/firmware/config/engines/gm_ls_4.cpp +++ b/firmware/config/engines/gm_ls_4.cpp @@ -19,10 +19,10 @@ void setGmLs4() { engineConfiguration->injectorCompensationMode = ICM_FixedRailPressure; engineConfiguration->injector.flow = 440; - engineConfiguration->specs.cylindersCount = 8; + engineConfiguration->cylindersCount = 8; setLeftRightBanksNeedBetterName(); - engineConfiguration->specs.firingOrder = FO_1_8_7_2_6_5_4_3; - engineConfiguration->specs.displacement = 6.2; + engineConfiguration->firingOrder = FO_1_8_7_2_6_5_4_3; + engineConfiguration->displacement = 6.2; engineConfiguration->etbIdleThrottleRange = 15; diff --git a/firmware/config/engines/honda_600.cpp b/firmware/config/engines/honda_600.cpp index c7e9968b6b..0a825ba3b4 100644 --- a/firmware/config/engines/honda_600.cpp +++ b/firmware/config/engines/honda_600.cpp @@ -36,10 +36,10 @@ void setHonda600() { // set global_trigger_offset_angle 540 engineConfiguration->globalTriggerAngleOffset = 540; - engineConfiguration->specs.cylindersCount = 4; + engineConfiguration->cylindersCount = 4; engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; engineConfiguration->injectionMode = IM_SEQUENTIAL; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->cranking.rpm = 800; // engineConfiguration->ignitionMode = IM_WASTED_SPARK; //IM_INDIVIDUAL_COILS; diff --git a/firmware/config/engines/honda_k_dbc.cpp b/firmware/config/engines/honda_k_dbc.cpp index 8c89f6b9c8..d191f7c789 100644 --- a/firmware/config/engines/honda_k_dbc.cpp +++ b/firmware/config/engines/honda_k_dbc.cpp @@ -12,9 +12,9 @@ #endif // HW_PROTEUS void setHondaK() { - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.displacement = 2.4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->displacement = 2.4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->engineSyncCam = SC_Exhaust_First; engineConfiguration->trigger.type = TT_HONDA_K_CRANK_12_1; engineConfiguration->globalTriggerAngleOffset = 675; diff --git a/firmware/config/engines/mazda_miata.cpp b/firmware/config/engines/mazda_miata.cpp index cce81c5a74..c77cd12ed4 100644 --- a/firmware/config/engines/mazda_miata.cpp +++ b/firmware/config/engines/mazda_miata.cpp @@ -109,8 +109,8 @@ void common079721_2351() { engineConfiguration->engineChartSize = 300; - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->fuelPumpPin = Gpio::Unassigned; // fuel pump is not controlled by ECU on this engine @@ -142,7 +142,7 @@ void common079721_2351() { */ void setFrankensteinMiata1996() { commonMiataNa(); - engineConfiguration->specs.displacement = 1.839; + engineConfiguration->displacement = 1.839; #if IGN_LOAD_COUNT == DEFAULT_IGN_LOAD_COUNT copyTable(config->ignitionTable, miataNA8_maf_advance_table); diff --git a/firmware/config/engines/mazda_miata_1_6.cpp b/firmware/config/engines/mazda_miata_1_6.cpp index bdb8c36a37..3217a86d4c 100644 --- a/firmware/config/engines/mazda_miata_1_6.cpp +++ b/firmware/config/engines/mazda_miata_1_6.cpp @@ -74,9 +74,9 @@ static const uint8_t mapBased16IgnitionTable[16][16] = { void miataNAcommonEngineSettings() { // Base engine - engineConfiguration->specs.displacement = 1.6; - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->displacement = 1.6; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->rpmHardLimit = 7200; @@ -331,7 +331,7 @@ void setMiata94_MAP_MRE() { #endif /* BOARD_TLE8888_COUNT */ engineConfiguration->injectionMode = IM_SEQUENTIAL; - engineConfiguration->specs.displacement = 1.8; + engineConfiguration->displacement = 1.8; strcpy(engineConfiguration->engineMake, ENGINE_MAKE_MAZDA); strcpy(engineConfiguration->engineCode, "94"); @@ -348,7 +348,7 @@ void setHellenNA94() { */ engineConfiguration->injector.flow = 254; - engineConfiguration->specs.displacement = 1.8; + engineConfiguration->displacement = 1.8; engineConfiguration->injectionMode = IM_SEQUENTIAL; engineConfiguration->map.sensor.type = MT_MPX4250; diff --git a/firmware/config/engines/mazda_miata_na8.cpp b/firmware/config/engines/mazda_miata_na8.cpp index 71225cdeb5..f6e92684fc 100644 --- a/firmware/config/engines/mazda_miata_na8.cpp +++ b/firmware/config/engines/mazda_miata_na8.cpp @@ -48,7 +48,7 @@ static void commonNA8() { engineConfiguration->crankingTimingAngle = 6; engineConfiguration->ignitionDwellForCrankingMs = 4; - engineConfiguration->specs.displacement = 1.839; + engineConfiguration->displacement = 1.839; strcpy(engineConfiguration->engineMake, ENGINE_MAKE_MAZDA); strcpy(engineConfiguration->engineCode, "NA8"); diff --git a/firmware/config/engines/mazda_miata_vvt.cpp b/firmware/config/engines/mazda_miata_vvt.cpp index e55bca4d96..95ee6ef0e2 100644 --- a/firmware/config/engines/mazda_miata_vvt.cpp +++ b/firmware/config/engines/mazda_miata_vvt.cpp @@ -237,9 +237,9 @@ static void setMazdaMiataNbInjectorLag() { */ static void setCommonMazdaNB() { // Base engine - engineConfiguration->specs.displacement = 1.839; - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->displacement = 1.839; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->rpmHardLimit = 7200; diff --git a/firmware/config/engines/mercedes.cpp b/firmware/config/engines/mercedes.cpp index 9b6ebc9edb..daecf95259 100644 --- a/firmware/config/engines/mercedes.cpp +++ b/firmware/config/engines/mercedes.cpp @@ -31,14 +31,14 @@ void setHellenMercedes128_4_cyl() { // is this M104 or M112 or both? void setHellenMercedes128_6_cyl() { common(); - engineConfiguration->specs.cylindersCount = 6; + engineConfiguration->cylindersCount = 6; // 1-4-2-5-3-6 M104 - engineConfiguration->specs.firingOrder = FO_1_4_3_6_2_5; // M112 + engineConfiguration->firingOrder = FO_1_4_3_6_2_5; // M112 } // M113 void setHellenMercedes128_8_cyl() { common(); - engineConfiguration->specs.cylindersCount = 8; - engineConfiguration->specs.firingOrder = FO_1_5_4_2_6_3_7_8; + engineConfiguration->cylindersCount = 8; + engineConfiguration->firingOrder = FO_1_5_4_2_6_3_7_8; } diff --git a/firmware/config/engines/mitsubishi.cpp b/firmware/config/engines/mitsubishi.cpp index 66b7641964..a008e188a3 100644 --- a/firmware/config/engines/mitsubishi.cpp +++ b/firmware/config/engines/mitsubishi.cpp @@ -17,12 +17,12 @@ void setMitsubishiConfiguration() { engineConfiguration->trigger.type = TT_MITSUBISHI_4G93; // same trigger as 4G63? - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.displacement = 1.800; + engineConfiguration->cylindersCount = 4; + engineConfiguration->displacement = 1.800; // set ignition_mode 2 engineConfiguration->ignitionMode = IM_WASTED_SPARK; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->firingOrder = FO_1_3_4_2; // set global_trigger_offset_angle 671 engineConfiguration->globalTriggerAngleOffset = 671; diff --git a/firmware/config/engines/nissan_vq.cpp b/firmware/config/engines/nissan_vq.cpp index ee8e078c83..8df032ce4f 100644 --- a/firmware/config/engines/nissan_vq.cpp +++ b/firmware/config/engines/nissan_vq.cpp @@ -15,9 +15,9 @@ void setHellen121nissanQR() { engineConfiguration->trigger.type = TT_NISSAN_QR25; - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; - engineConfiguration->specs.displacement = 2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; + engineConfiguration->displacement = 2; strcpy(engineConfiguration->engineCode, "QR"); engineConfiguration->camInputs[1 * CAMS_PER_BANK] = Gpio::Unassigned; @@ -38,9 +38,9 @@ void setHellen121nissanVQ() { setNissanMAF0031(config); - engineConfiguration->specs.cylindersCount = 6; - engineConfiguration->specs.firingOrder = FO_1_2_3_4_5_6; - engineConfiguration->specs.displacement = 4; + engineConfiguration->cylindersCount = 6; + engineConfiguration->firingOrder = FO_1_2_3_4_5_6; + engineConfiguration->displacement = 4; strcpy(engineConfiguration->engineCode, "VQ"); engineConfiguration->vvtMode[0] = VVT_NISSAN_VQ; @@ -72,7 +72,7 @@ void setHellen121nissanAltimaN16() { // https://en.wikipedia.org/wiki/Nissan_QG_engine // https://en.wikipedia.org/wiki/N-VCT setHellen121nissanQR(); - engineConfiguration->specs.displacement = 1.8; + engineConfiguration->displacement = 1.8; strcpy(engineConfiguration->engineCode, "N16"); } diff --git a/firmware/config/engines/sachs.cpp b/firmware/config/engines/sachs.cpp index f720c3875f..27bbe5b215 100644 --- a/firmware/config/engines/sachs.cpp +++ b/firmware/config/engines/sachs.cpp @@ -14,11 +14,11 @@ void setSachs() { - engineConfiguration->specs.displacement = 0.1; // 100cc - engineConfiguration->specs.cylindersCount = 1; + engineConfiguration->displacement = 0.1; // 100cc + engineConfiguration->cylindersCount = 1; setTwoStrokeOperationMode(); - engineConfiguration->specs.firingOrder = FO_1; + engineConfiguration->firingOrder = FO_1; engineConfiguration->engineChartSize = 400; setEgoSensor(ES_Innovate_MTX_L); diff --git a/firmware/config/engines/subaru.cpp b/firmware/config/engines/subaru.cpp index 964c3b72a2..ec1223df98 100644 --- a/firmware/config/engines/subaru.cpp +++ b/firmware/config/engines/subaru.cpp @@ -40,11 +40,11 @@ void setSubaruEJ18_MRE() { // engineConfiguration->isDoubleSolenoidIdle = true; - engineConfiguration->specs.displacement = 1.8; + engineConfiguration->displacement = 1.8; strcpy(engineConfiguration->engineMake, ENGINE_MAKE_SUBARU); strcpy(engineConfiguration->engineCode, "EJ18"); - engineConfiguration->specs.firingOrder = FO_1_3_2_4; + engineConfiguration->firingOrder = FO_1_3_2_4; engineConfiguration->injectionMode = IM_SEQUENTIAL; engineConfiguration->ignitionMode = IM_WASTED_SPARK; @@ -67,9 +67,9 @@ void setSubaruEG33Defaults() { engineConfiguration->trigger.type = TT_SUBARU_SVX; - engineConfiguration->specs.cylindersCount = 6; + engineConfiguration->cylindersCount = 6; setLeftRightBanksNeedBetterName(); - engineConfiguration->specs.firingOrder = FO_1_6_3_2_5_4; + engineConfiguration->firingOrder = FO_1_6_3_2_5_4; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; @@ -80,7 +80,7 @@ void setSubaruEG33Defaults() { engineConfiguration->fuelAlgorithm = LM_REAL_MAF; - engineConfiguration->specs.displacement = 3.30; + engineConfiguration->displacement = 3.30; engineConfiguration->injector.flow = 250; engineConfiguration->cranking.baseFuel = 5; // ??? diff --git a/firmware/config/engines/toyota_jzs147.cpp b/firmware/config/engines/toyota_jzs147.cpp index 727d47c926..5dede3b74d 100644 --- a/firmware/config/engines/toyota_jzs147.cpp +++ b/firmware/config/engines/toyota_jzs147.cpp @@ -26,9 +26,9 @@ static void common2jz() { setFrankensoConfiguration(); // default pinout - engineConfiguration->specs.displacement = 3.0; - engineConfiguration->specs.cylindersCount = 6; - engineConfiguration->specs.firingOrder = FO_1_5_3_6_2_4; + engineConfiguration->displacement = 3.0; + engineConfiguration->cylindersCount = 6; + engineConfiguration->firingOrder = FO_1_5_3_6_2_4; // set ignition_mode 1 engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; diff --git a/firmware/config/engines/vw.cpp b/firmware/config/engines/vw.cpp index 32ac55dee7..d5dc88ff09 100644 --- a/firmware/config/engines/vw.cpp +++ b/firmware/config/engines/vw.cpp @@ -32,8 +32,8 @@ void setVwAba() { //Base engine setting - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.displacement = 2.0; + engineConfiguration->cylindersCount = 4; + engineConfiguration->displacement = 2.0; engineConfiguration->injector.flow = 320; // 30lb/h // set algorithm 3 setAlgorithm(LM_SPEED_DENSITY); @@ -61,27 +61,27 @@ void setVwAba() { } void setHellen121Vag_5_cyl() { - engineConfiguration->specs.cylindersCount = 5; - engineConfiguration->specs.displacement = 2.5; - engineConfiguration->specs.firingOrder = FO_1_2_4_5_3; + engineConfiguration->cylindersCount = 5; + engineConfiguration->displacement = 2.5; + engineConfiguration->firingOrder = FO_1_2_4_5_3; } void setHellen121Vag_vr6_cyl() { - engineConfiguration->specs.cylindersCount = 6; - engineConfiguration->specs.firingOrder = FO_1_5_3_6_2_4; + engineConfiguration->cylindersCount = 6; + engineConfiguration->firingOrder = FO_1_5_3_6_2_4; } void setHellen121Vag_v6_cyl() { - engineConfiguration->specs.cylindersCount = 6; - engineConfiguration->specs.displacement = 2.7; + engineConfiguration->cylindersCount = 6; + engineConfiguration->displacement = 2.7; engineConfiguration->camInputs[1 * CAMS_PER_BANK] = Gpio::A7; // 87a - engineConfiguration->specs.firingOrder = FO_1_4_3_6_2_5; + engineConfiguration->firingOrder = FO_1_4_3_6_2_5; } void setHellen121Vag_8_cyl() { - engineConfiguration->specs.cylindersCount = 8; - engineConfiguration->specs.displacement = 4.2; - engineConfiguration->specs.firingOrder = FO_1_5_4_8_6_3_7_2; + engineConfiguration->cylindersCount = 8; + engineConfiguration->displacement = 4.2; + engineConfiguration->firingOrder = FO_1_5_4_8_6_3_7_2; } diff --git a/firmware/config/engines/vw_b6.cpp b/firmware/config/engines/vw_b6.cpp index 94e5984475..d7a59aaf18 100644 --- a/firmware/config/engines/vw_b6.cpp +++ b/firmware/config/engines/vw_b6.cpp @@ -26,8 +26,8 @@ static void commonPassatB6() { engineConfiguration->idlePidRpmDeadZone = 500; engineConfiguration->idleMode = IM_AUTO; - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->isPhaseSyncRequiredForIgnition = true; engineConfiguration->disableEtbWhenEngineStopped = true; diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index 20f32275c6..f7f52b7b34 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -164,7 +164,7 @@ static void printEngineSnifferPinMappings() { printOutPin(PROTOCOL_WA_CHANNEL_2, engineConfiguration->logicAnalyzerPins[1]); #endif /* EFI_LOGIC_ANALYZER */ - int cylCount = minI(engineConfiguration->specs.cylindersCount, MAX_CYLINDER_COUNT); + int cylCount = minI(engineConfiguration->cylindersCount, MAX_CYLINDER_COUNT); for (int i = 0; i < cylCount; i++) { printOutPin(enginePins.coils[i].getShortName(), engineConfiguration->ignitionPins[i]); printOutPin(enginePins.trailingCoils[i].getShortName(), engineConfiguration->trailingCoilPins[i]); diff --git a/firmware/controllers/algo/airmass/maf_airmass.cpp b/firmware/controllers/algo/airmass/maf_airmass.cpp index 73afe70cec..a8a12c2efa 100644 --- a/firmware/controllers/algo/airmass/maf_airmass.cpp +++ b/firmware/controllers/algo/airmass/maf_airmass.cpp @@ -56,7 +56,7 @@ AirmassResult MafAirmass::getAirmassImpl(float massAirFlow, int rpm) const { // Now we have to divide among cylinders - on a 4 stroke, half of the cylinders happen every revolution // This math is floating point to work properly on engines with odd cylinder count - float halfCylCount = engineConfiguration->specs.cylindersCount / 2.0f; + float halfCylCount = engineConfiguration->cylindersCount / 2.0f; mass_t cylinderAirmass = airPerRevolution / halfCylCount; diff --git a/firmware/controllers/algo/airmass/speed_density_airmass.cpp b/firmware/controllers/algo/airmass/speed_density_airmass.cpp index c1b3b365c7..50499d2a61 100644 --- a/firmware/controllers/algo/airmass/speed_density_airmass.cpp +++ b/firmware/controllers/algo/airmass/speed_density_airmass.cpp @@ -36,7 +36,7 @@ AirmassResult SpeedDensityAirmass::getAirmass(float rpm, float map) { float SpeedDensityAirmass::getAirflow(float rpm, float map) { auto airmassResult = getAirmass(rpm, map); - float massPerCycle = airmassResult.CylinderAirmass * engineConfiguration->specs.cylindersCount; + float massPerCycle = airmassResult.CylinderAirmass * engineConfiguration->cylindersCount; if (!engineConfiguration->twoStroke) { // 4 stroke engines only do a half cycle per rev diff --git a/firmware/controllers/algo/airmass/speed_density_base.cpp b/firmware/controllers/algo/airmass/speed_density_base.cpp index e61d0ec186..0ed6ce9669 100644 --- a/firmware/controllers/algo/airmass/speed_density_base.cpp +++ b/firmware/controllers/algo/airmass/speed_density_base.cpp @@ -24,6 +24,6 @@ mass_t idealGasLaw(float volume, float pressure, float temperature) { } /*static*/ mass_t SpeedDensityBase::getAirmassImpl(float ve, float manifoldPressure, float temperature) { - mass_t cycleAir = ve * idealGasLaw(engineConfiguration->specs.displacement, manifoldPressure, temperature); - return cycleAir / engineConfiguration->specs.cylindersCount; + mass_t cycleAir = ve * idealGasLaw(engineConfiguration->displacement, manifoldPressure, temperature); + return cycleAir / engineConfiguration->cylindersCount; } diff --git a/firmware/controllers/algo/defaults/default_base_engine.cpp b/firmware/controllers/algo/defaults/default_base_engine.cpp index 49b3082fe0..af230cf0fb 100644 --- a/firmware/controllers/algo/defaults/default_base_engine.cpp +++ b/firmware/controllers/algo/defaults/default_base_engine.cpp @@ -15,16 +15,16 @@ static void setDefaultAlternatorParameters() { /* Cylinder to bank mapping */ void setLeftRightBanksNeedBetterName() { - for (size_t i = 0; i < engineConfiguration->specs.cylindersCount; i++) { + for (size_t i = 0; i < engineConfiguration->cylindersCount; i++) { engineConfiguration->cylinderBankSelect[i] = i % 2; } } void setDefaultBaseEngine() { // Base Engine Settings - engineConfiguration->specs.cylindersCount = 4; - engineConfiguration->specs.displacement = 2; - engineConfiguration->specs.firingOrder = FO_1_3_4_2; + engineConfiguration->cylindersCount = 4; + engineConfiguration->displacement = 2; + engineConfiguration->firingOrder = FO_1_3_4_2; // todo: extract constant in instant_rpm_calculator.h? engineConfiguration->instantRpmRange = 90; diff --git a/firmware/controllers/algo/engine2.cpp b/firmware/controllers/algo/engine2.cpp index 374fa31e5d..8b896b5349 100644 --- a/firmware/controllers/algo/engine2.cpp +++ b/firmware/controllers/algo/engine2.cpp @@ -167,7 +167,7 @@ void EngineState::periodicFastCallback() { } // Now apply that to per-cylinder fueling and timing - for (size_t i = 0; i < engineConfiguration->specs.cylindersCount; i++) { + for (size_t i = 0; i < engineConfiguration->cylindersCount; i++) { uint8_t bankIndex = engineConfiguration->cylinderBankSelect[i]; auto bankTrim =engine->stftCorrection[bankIndex]; auto cylinderTrim = getCylinderFuelTrim(i, rpm, fuelLoad); diff --git a/firmware/controllers/algo/event_registry.h b/firmware/controllers/algo/event_registry.h index e72f404b0f..1e298ed463 100644 --- a/firmware/controllers/algo/event_registry.h +++ b/firmware/controllers/algo/event_registry.h @@ -66,7 +66,7 @@ public: */ int sparkId = 0; /** - * [0, specs.cylindersCount) + * [0, cylindersCount) */ int cylinderIndex = 0; int8_t cylinderNumber = 0; diff --git a/firmware/controllers/algo/fuel_math.cpp b/firmware/controllers/algo/fuel_math.cpp index aa50ee57b5..e2c0ae735e 100644 --- a/firmware/controllers/algo/fuel_math.cpp +++ b/firmware/controllers/algo/fuel_math.cpp @@ -188,7 +188,7 @@ static float getBaseFuelMass(int rpm) { engine->engineState.fuelingLoad = airmass.EngineLoadPercent; engine->engineState.ignitionLoad = engine->fuelComputer.getLoadOverride(airmass.EngineLoadPercent, engineConfiguration->ignOverrideMode); - auto gramPerCycle = airmass.CylinderAirmass * engineConfiguration->specs.cylindersCount; + auto gramPerCycle = airmass.CylinderAirmass * engineConfiguration->cylindersCount; auto gramPerMs = rpm == 0 ? 0 : gramPerCycle / getEngineCycleDuration(rpm); // convert g/s -> kg/h @@ -243,7 +243,7 @@ int getNumberOfInjections(injection_mode_e mode) { switch (mode) { case IM_SIMULTANEOUS: case IM_SINGLE_POINT: - return engineConfiguration->specs.cylindersCount; + return engineConfiguration->cylindersCount; case IM_BATCH: return 2; case IM_SEQUENTIAL: @@ -259,7 +259,7 @@ float getInjectionModeDurationMultiplier() { switch (mode) { case IM_SIMULTANEOUS: { - auto cylCount = engineConfiguration->specs.cylindersCount; + auto cylCount = engineConfiguration->cylindersCount; if (cylCount == 0) { // we can end up here during configuration reset @@ -430,8 +430,8 @@ float getCrankingFuel(float baseFuel) { * Should we bother caching 'getStandardAirCharge' result or can we afford to run the math every time we calculate fuel? */ float getStandardAirCharge() { - float totalDisplacement = engineConfiguration->specs.displacement; - float cylDisplacement = totalDisplacement / engineConfiguration->specs.cylindersCount; + float totalDisplacement = engineConfiguration->displacement; + float cylDisplacement = totalDisplacement / engineConfiguration->cylindersCount; // Calculation of 100% VE air mass in g/cyl - 1 cylinder filling at 1.204/L // 101.325kpa, 20C diff --git a/firmware/controllers/bench_test.cpp b/firmware/controllers/bench_test.cpp index fc6e711178..088ac3c682 100644 --- a/firmware/controllers/bench_test.cpp +++ b/firmware/controllers/bench_test.cpp @@ -139,7 +139,7 @@ static void pinbench(float startdelay, float ontime, float offtime, int iteratio /*==========================================================================*/ static void doRunFuelInjBench(size_t humanIndex, float delay, float onTime, float offTime, int count) { - if (humanIndex < 1 || humanIndex > engineConfiguration->specs.cylindersCount) { + if (humanIndex < 1 || humanIndex > engineConfiguration->cylindersCount) { efiPrintf("Invalid index: %d", humanIndex); return; } @@ -148,7 +148,7 @@ static void doRunFuelInjBench(size_t humanIndex, float delay, float onTime, floa } static void doRunSparkBench(size_t humanIndex, float delay, float onTime, float offTime, int count) { - if (humanIndex < 1 || humanIndex > engineConfiguration->specs.cylindersCount) { + if (humanIndex < 1 || humanIndex > engineConfiguration->cylindersCount) { efiPrintf("Invalid index: %d", humanIndex); return; } diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index 64a9ab2b95..d741dae83a 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -476,8 +476,8 @@ void commonInitEngineController() { // Returns false if there's an obvious problem with the loaded configuration bool validateConfig() { - if (engineConfiguration->specs.cylindersCount > MAX_CYLINDER_COUNT) { - firmwareError(OBD_PCM_Processor_Fault, "Invalid cylinder count: %d", engineConfiguration->specs.cylindersCount); + if (engineConfiguration->cylindersCount > MAX_CYLINDER_COUNT) { + firmwareError(OBD_PCM_Processor_Fault, "Invalid cylinder count: %d", engineConfiguration->cylindersCount); return false; } diff --git a/firmware/controllers/engine_cycle/fuel_schedule.cpp b/firmware/controllers/engine_cycle/fuel_schedule.cpp index 95cdcbd0a7..0ad612fbe0 100644 --- a/firmware/controllers/engine_cycle/fuel_schedule.cpp +++ b/firmware/controllers/engine_cycle/fuel_schedule.cpp @@ -153,7 +153,7 @@ bool FuelSchedule::addFuelEventsForCylinder(int i) { injectorIndex = getCylinderId(i) - 1; } else if (mode == IM_BATCH) { // Loop over the first half of the firing order twice - injectorIndex = i % (engineConfiguration->specs.cylindersCount / 2); + injectorIndex = i % (engineConfiguration->cylindersCount / 2); } else { firmwareError(CUSTOM_OBD_UNEXPECTED_INJECTION_MODE, "Unexpected injection mode %d", mode); injectorIndex = 0; @@ -168,7 +168,7 @@ bool FuelSchedule::addFuelEventsForCylinder(int i) { // Compute the position of this cylinder's twin in the firing order // Each injector gets fired as a primary (the same as sequential), but also // fires the injector 360 degrees later in the firing order. - int secondOrder = (i + (engineConfiguration->specs.cylindersCount / 2)) % engineConfiguration->specs.cylindersCount; + int secondOrder = (i + (engineConfiguration->cylindersCount / 2)) % engineConfiguration->cylindersCount; int secondIndex = getCylinderId(secondOrder) - 1; secondOutput = &enginePins.injectors[secondIndex]; } else { @@ -188,7 +188,7 @@ bool FuelSchedule::addFuelEventsForCylinder(int i) { } void FuelSchedule::addFuelEvents() { - for (size_t cylinderIndex = 0; cylinderIndex < engineConfiguration->specs.cylindersCount; cylinderIndex++) { + for (size_t cylinderIndex = 0; cylinderIndex < engineConfiguration->cylindersCount; cylinderIndex++) { bool result = addFuelEventsForCylinder(cylinderIndex); if (!result) { @@ -207,7 +207,7 @@ void FuelSchedule::onTriggerTooth(int rpm, efitick_t nowNt, float currentPhase, return; } - for (size_t i = 0; i < engineConfiguration->specs.cylindersCount; i++) { + for (size_t i = 0; i < engineConfiguration->cylindersCount; i++) { elements[i].onTriggerTooth(rpm, nowNt, currentPhase, nextPhase); } } diff --git a/firmware/controllers/engine_cycle/high_pressure_fuel_pump.cpp b/firmware/controllers/engine_cycle/high_pressure_fuel_pump.cpp index bf33f76faf..bc50cd495f 100644 --- a/firmware/controllers/engine_cycle/high_pressure_fuel_pump.cpp +++ b/firmware/controllers/engine_cycle/high_pressure_fuel_pump.cpp @@ -70,7 +70,7 @@ angle_t HpfpLobe::findNextLobe() { // As a percent of the full pump stroke float HpfpQuantity::calcFuelPercent(int rpm) { float fuel_requested_cc_per_cycle = - engine->engineState.injectionMass[0] * (1.f / fuelDensity) * engineConfiguration->specs.cylindersCount; + engine->engineState.injectionMass[0] * (1.f / fuelDensity) * engineConfiguration->cylindersCount; float fuel_requested_cc_per_lobe = fuel_requested_cc_per_cycle / engineConfiguration->hpfpCamLobes; return 100.f * fuel_requested_cc_per_lobe / engineConfiguration->hpfpPumpVolume + diff --git a/firmware/controllers/engine_cycle/map_averaging.cpp b/firmware/controllers/engine_cycle/map_averaging.cpp index dce4cf88f1..65720c5733 100644 --- a/firmware/controllers/engine_cycle/map_averaging.cpp +++ b/firmware/controllers/engine_cycle/map_averaging.cpp @@ -175,8 +175,8 @@ void refreshMapAveragingPreCalc() { angle_t offsetAngle = engine->triggerCentral.triggerFormDetails.eventAngles[engineConfiguration->mapAveragingSchedulingAtIndex]; efiAssertVoid(CUSTOM_ERR_MAP_AVG_OFFSET, !cisnan(offsetAngle), "offsetAngle"); - for (size_t i = 0; i < engineConfiguration->specs.cylindersCount; i++) { - angle_t cylinderOffset = getEngineCycle(getEngineRotationState()->getOperationMode()) * i / engineConfiguration->specs.cylindersCount; + for (size_t i = 0; i < engineConfiguration->cylindersCount; i++) { + angle_t cylinderOffset = getEngineCycle(getEngineRotationState()->getOperationMode()) * i / engineConfiguration->cylindersCount; efiAssertVoid(CUSTOM_ERR_MAP_CYL_OFFSET, !cisnan(cylinderOffset), "cylinderOffset"); // part of this formula related to specific cylinder offset is never changing - we can // move the loop into start-up calculation and not have this loop as part of periodic calculation @@ -187,7 +187,7 @@ void refreshMapAveragingPreCalc() { } engine->engineState.mapAveragingDuration = interpolate2d(rpm, c->samplingWindowBins, c->samplingWindow); } else { - for (size_t i = 0; i < engineConfiguration->specs.cylindersCount; i++) { + for (size_t i = 0; i < engineConfiguration->cylindersCount; i++) { engine->engineState.mapAveragingStart[i] = NAN; } engine->engineState.mapAveragingDuration = NAN; @@ -217,7 +217,7 @@ void mapAveragingTriggerCallback( } // todo: this could be pre-calculated - int samplingCount = engineConfiguration->measureMapOnlyInOneCylinder ? 1 : engineConfiguration->specs.cylindersCount; + int samplingCount = engineConfiguration->measureMapOnlyInOneCylinder ? 1 : engineConfiguration->cylindersCount; for (int i = 0; i < samplingCount; i++) { angle_t samplingStart = engine->engineState.mapAveragingStart[i]; diff --git a/firmware/controllers/engine_cycle/spark_logic.cpp b/firmware/controllers/engine_cycle/spark_logic.cpp index c34d40f40b..ef93f4ad92 100644 --- a/firmware/controllers/engine_cycle/spark_logic.cpp +++ b/firmware/controllers/engine_cycle/spark_logic.cpp @@ -65,11 +65,11 @@ static int getIgnitionPinForIndex(int cylinderIndex, ignition_mode_e ignitionMod case IM_ONE_COIL: return 0; case IM_WASTED_SPARK: { - if (engineConfiguration->specs.cylindersCount == 1) { + if (engineConfiguration->cylindersCount == 1) { // we do not want to divide by zero return 0; } - return cylinderIndex % (engineConfiguration->specs.cylindersCount / 2); + return cylinderIndex % (engineConfiguration->cylindersCount / 2); } case IM_INDIVIDUAL_COILS: return cylinderIndex; @@ -108,7 +108,7 @@ static void prepareCylinderIgnitionSchedule(angle_t dwellAngleDuration, floatms_ // If wasted spark, find the paired coil in addition to "main" output for this cylinder if (ignitionMode == IM_WASTED_SPARK) { - int secondIndex = index + engineConfiguration->specs.cylindersCount / 2; + int secondIndex = index + engineConfiguration->cylindersCount / 2; int secondCoilIndex = ID2INDEX(getCylinderId(secondIndex)); secondOutput = &enginePins.coils[secondCoilIndex]; assertPinAssigned(secondOutput); @@ -394,9 +394,9 @@ void initializeIgnitionActions() { list->isReady = false; return; } - efiAssertVoid(CUSTOM_ERR_6592, engineConfiguration->specs.cylindersCount > 0, "cylindersCount"); + efiAssertVoid(CUSTOM_ERR_6592, engineConfiguration->cylindersCount > 0, "cylindersCount"); - for (size_t cylinderIndex = 0; cylinderIndex < engineConfiguration->specs.cylindersCount; cylinderIndex++) { + for (size_t cylinderIndex = 0; cylinderIndex < engineConfiguration->cylindersCount; cylinderIndex++) { list->elements[cylinderIndex].cylinderIndex = cylinderIndex; prepareCylinderIgnitionSchedule(dwellAngle, sparkDwell, &list->elements[cylinderIndex]); } @@ -417,7 +417,7 @@ static void prepareIgnitionSchedule() { float maxAllowedDwellAngle = (int) (getEngineCycle(operationMode) / 2); // the cast is about making Coverity happy if (getCurrentIgnitionMode() == IM_ONE_COIL) { - maxAllowedDwellAngle = getEngineCycle(operationMode) / engineConfiguration->specs.cylindersCount / 1.1; + maxAllowedDwellAngle = getEngineCycle(operationMode) / engineConfiguration->cylindersCount / 1.1; } if (engine->ignitionState.dwellAngle == 0) { @@ -459,7 +459,7 @@ void onTriggerEventSparkLogic(int rpm, efitick_t edgeTimestamp, float currentPha // scheduleSimpleMsg(&logger, "eventId spark ", eventIndex); if (engine->ignitionEvents.isReady) { - for (size_t i = 0; i < engineConfiguration->specs.cylindersCount; i++) { + for (size_t i = 0; i < engineConfiguration->cylindersCount; i++) { IgnitionEvent *event = &engine->ignitionEvents.elements[i]; if (!isPhaseInRange(event->dwellAngle, currentPhase, nextPhase)) { @@ -499,9 +499,9 @@ void onTriggerEventSparkLogic(int rpm, efitick_t edgeTimestamp, float currentPha int getNumberOfSparks(ignition_mode_e mode) { switch (mode) { case IM_ONE_COIL: - return engineConfiguration->specs.cylindersCount; + return engineConfiguration->cylindersCount; case IM_TWO_COILS: - return engineConfiguration->specs.cylindersCount / 2; + return engineConfiguration->cylindersCount / 2; case IM_INDIVIDUAL_COILS: return 1; case IM_WASTED_SPARK: diff --git a/firmware/controllers/limp_manager.cpp b/firmware/controllers/limp_manager.cpp index c38c4d47f1..3a5e43767c 100644 --- a/firmware/controllers/limp_manager.cpp +++ b/firmware/controllers/limp_manager.cpp @@ -21,7 +21,7 @@ static bool noFiringUntilVvtSync(vvt_mode_e vvtMode) { // Odd cylinder count engines don't work properly with wasted spark, so wait for full sync (so that sequential works) // See https://github.com/rusefi/rusefi/issues/4195 for the issue to properly support this case - if (engineConfiguration->specs.cylindersCount > 1 && engineConfiguration->specs.cylindersCount % 2 == 1) { + if (engineConfiguration->cylindersCount > 1 && engineConfiguration->cylindersCount % 2 == 1) { return true; } diff --git a/firmware/controllers/math/engine_math.cpp b/firmware/controllers/math/engine_math.cpp index 4e247035fd..89613d92c1 100644 --- a/firmware/controllers/math/engine_math.cpp +++ b/firmware/controllers/math/engine_math.cpp @@ -166,7 +166,7 @@ static const uint8_t order_1_14_9_4_7_12_15_6_13_8_3_16_11_2_5_10[] = {1, 14, 9, static size_t getFiringOrderLength() { - switch (engineConfiguration->specs.firingOrder) { + switch (engineConfiguration->firingOrder) { case FO_1: return 1; // 2 cylinder @@ -227,14 +227,14 @@ static size_t getFiringOrderLength() { return 16; default: - firmwareError(CUSTOM_OBD_UNKNOWN_FIRING_ORDER, "Invalid firing order: %d", engineConfiguration->specs.firingOrder); + firmwareError(CUSTOM_OBD_UNKNOWN_FIRING_ORDER, "Invalid firing order: %d", engineConfiguration->firingOrder); } return 1; } static const uint8_t* getFiringOrderTable() { - switch (engineConfiguration->specs.firingOrder) { + switch (engineConfiguration->firingOrder) { case FO_1: return order_1; // 2 cylinder @@ -319,7 +319,7 @@ static const uint8_t* getFiringOrderTable() return order_1_14_9_4_7_12_15_6_13_8_3_16_11_2_5_10; default: - firmwareError(CUSTOM_OBD_UNKNOWN_FIRING_ORDER, "Invalid firing order: %d", engineConfiguration->specs.firingOrder); + firmwareError(CUSTOM_OBD_UNKNOWN_FIRING_ORDER, "Invalid firing order: %d", engineConfiguration->firingOrder); } return NULL; @@ -336,7 +336,7 @@ size_t getCylinderId(size_t index) { firmwareError(CUSTOM_FIRING_LENGTH, "fol %d", firingOrderLength); return 1; } - if (engineConfiguration->specs.cylindersCount != firingOrderLength) { + if (engineConfiguration->cylindersCount != firingOrderLength) { // May 2020 this somehow still happens with functional tests, maybe race condition? firmwareError(CUSTOM_OBD_WRONG_FIRING_ORDER, "Wrong cyl count for firing order, expected %d cylinders", firingOrderLength); return 1; @@ -384,7 +384,7 @@ ignition_mode_e getCurrentIgnitionMode() { #if EFI_SHAFT_POSITION_INPUT // In spin-up cranking mode we don't have full phase sync info yet, so wasted spark mode is better // However, only do this on even cylinder count engines: odd cyl count doesn't fire at all - if (ignitionMode == IM_INDIVIDUAL_COILS && (engineConfiguration->specs.cylindersCount % 2 == 0)) { + if (ignitionMode == IM_INDIVIDUAL_COILS && (engineConfiguration->cylindersCount % 2 == 0)) { bool missingPhaseInfoForSequential = !engine->triggerCentral.triggerState.hasSynchronizedPhase(); @@ -421,7 +421,7 @@ void prepareOutputSignals() { angle_t getCylinderAngle(uint8_t cylinderIndex, uint8_t cylinderNumber) { // base = position of this cylinder in the firing order. // We get a cylinder every n-th of an engine cycle where N is the number of cylinders - auto base = engine->engineState.engineCycle * cylinderIndex / engineConfiguration->specs.cylindersCount; + auto base = engine->engineState.engineCycle * cylinderIndex / engineConfiguration->cylindersCount; // Plus or minus any adjustment if this is an odd-fire engine auto adjustment = engineConfiguration->timing_offset_cylinder[cylinderNumber]; diff --git a/firmware/controllers/math/speed_density.cpp b/firmware/controllers/math/speed_density.cpp index a1d5fb1a6e..4cc099fe97 100644 --- a/firmware/controllers/math/speed_density.cpp +++ b/firmware/controllers/math/speed_density.cpp @@ -47,7 +47,7 @@ float IFuelComputer::getTChargeCoefficient(int rpm, float tps) { constexpr floatms_t gramsPerMsToKgPerHour = (3600.0f * 1000.0f) / 1000.0f; // We're actually using an 'old' airMass calculated for the previous cycle, but it's ok, we're not having any self-excitaton issues - floatms_t airMassForEngine = sdAirMassInOneCylinder * engineConfiguration->specs.cylindersCount; + floatms_t airMassForEngine = sdAirMassInOneCylinder * engineConfiguration->cylindersCount; // airMass is in grams per 1 cycle for 1 cyl. Convert it to airFlow in kg/h for the engine. // And if the engine is stopped (0 rpm), then airFlow is also zero (avoiding NaN division) floatms_t airFlow = (rpm == 0) ? 0 : airMassForEngine * gramsPerMsToKgPerHour / getEngineCycleDuration(rpm); diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index 5b5694f2de..3841d0e97c 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -65,7 +65,7 @@ static void setAlgorithmInt(int value) { } static void setFiringOrder(int value) { - engineConfiguration->specs.firingOrder = (firing_order_e) value; + engineConfiguration->firingOrder = (firing_order_e) value; } static void setRpmHardLimit(int value) { @@ -500,7 +500,7 @@ static void enableOrDisable(const char *param, bool isEnabled) { engineConfiguration->isCylinderCleanupEnabled = isEnabled; } else { efiPrintf("unexpected [%s]", param); - return; // well, MISRA would not like this 'return' here :( + return; } efiPrintf("[%s] %s", param, isEnabled ? "enabled" : "disabled"); } diff --git a/firmware/controllers/system/efi_gpio.cpp b/firmware/controllers/system/efi_gpio.cpp index 8da3f10504..ca4d776039 100644 --- a/firmware/controllers/system/efi_gpio.cpp +++ b/firmware/controllers/system/efi_gpio.cpp @@ -292,7 +292,7 @@ void EnginePins::startAuxValves() { void EnginePins::startIgnitionPins() { #if EFI_PROD_CODE - for (size_t i = 0; i < engineConfiguration->specs.cylindersCount; i++) { + for (size_t i = 0; i < engineConfiguration->cylindersCount; i++) { NamedOutputPin *trailingOutput = &enginePins.trailingCoils[i]; if (isPinOrModeChanged(trailingCoilPins[i], ignitionPinMode)) { trailingOutput->initPin(trailingOutput->name, engineConfiguration->trailingCoilPins[i], engineConfiguration->ignitionPinMode); @@ -309,7 +309,7 @@ void EnginePins::startIgnitionPins() { void EnginePins::startInjectionPins() { #if EFI_PROD_CODE // todo: should we move this code closer to the injection logic? - for (size_t i = 0; i < engineConfiguration->specs.cylindersCount; i++) { + for (size_t i = 0; i < engineConfiguration->cylindersCount; i++) { NamedOutputPin *output = &enginePins.injectors[i]; if (isPinOrModeChanged(injectionPins[i], injectionPinMode)) { output->initPin(output->name, engineConfiguration->injectionPins[i], diff --git a/firmware/controllers/system/injection_gpio.cpp b/firmware/controllers/system/injection_gpio.cpp index 205e330a72..a9e05ccc30 100644 --- a/firmware/controllers/system/injection_gpio.cpp +++ b/firmware/controllers/system/injection_gpio.cpp @@ -13,14 +13,14 @@ extern bool printFuelDebug; void startSimultaneousInjection(void*) { efitick_t nowNt = getTimeNowNt(); - for (size_t i = 0; i < engineConfiguration->specs.cylindersCount; i++) { + for (size_t i = 0; i < engineConfiguration->cylindersCount; i++) { enginePins.injectors[i].open(nowNt); } } void endSimultaneousInjectionOnlyTogglePins() { efitick_t nowNt = getTimeNowNt(); - for (size_t i = 0; i < engineConfiguration->specs.cylindersCount; i++) { + for (size_t i = 0; i < engineConfiguration->cylindersCount; i++) { enginePins.injectors[i].close(nowNt); } } diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 6fd3040137..e7cb83f864 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -459,7 +459,6 @@ ThermistorConf iat; int launchTimingRetard;;"deg", 1, 0, -180, 180, 2 float knockBandCustom;We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override;"kHz", 1, 0, 0, 20, 2 -struct_no_prefix specs_s uint16_t autoscale displacement;Engine displacement in litres;"L", 0.001, 0, 0, 65, 3 uint32_t cylindersCount;Number of cylinder the engine has.;"", 1, 0, 1, @@MAX_CYLINDER_COUNT@@, 0 @@ -472,10 +471,9 @@ uint32_t cylindersCount;Number of cylinder the engine has.;"", 1, 0, 1, @@MAX_CY custom firing_order_e 1 bits, U08, @OFFSET@, [0:5], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1-2-3-4-5-6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "1-6-3-2-5-4", "1-10-9-4-3-6-5-8-7_2", "1-7-5-11-3-9-6-12-2-8-4-10", "1-7-4-10-2-8-6-12-3-9-5-11", "1-4-3-2", "1-12-5-8-3-10-6-7-2-11-4-9", "1-2-7-8-4-5-6-3", "1-3-7-2-6-5-4-8", "1-2-3-4-5-6-7-8-9", "INVALID", "1-2-3-4-5-6-7-8-9-10-11-12", "1-3-2", "1-2-3-4-5-6-7-8", "1-5-4-8-6-3-7-2", "1-4-3-6-2-5", "1-8-7-3-6-5-4-2", "1-6-2-4-3-5", "1-6-5-4-3-2", "1-4-5-2-3-6", "fo32", "fo33", "fo34", "fo35", "fo36", "fo37" firing_order_e firingOrder; -end_struct - specs_s specs - float cylinderBore;Cylinder diameter in mm.;"mm", 1, 0, 0, 20000, 2 + +float cylinderBore;Cylinder diameter in mm.;"mm", 1, 0, 0, 20000, 2 #define engine_load_mode_e_enum "Speed Density", "MAF Air Charge", "Alpha-N", "Lua" diff --git a/unit_tests/engine_test_helper.cpp b/unit_tests/engine_test_helper.cpp index 5705f2b095..975e983af3 100644 --- a/unit_tests/engine_test_helper.cpp +++ b/unit_tests/engine_test_helper.cpp @@ -355,7 +355,7 @@ void setupSimpleTestEngineWithMaf(EngineTestHelper *eth, injection_mode_e inject Engine *engine = ð->engine; engineConfiguration->isIgnitionEnabled = false; // let's focus on injection - engineConfiguration->specs.cylindersCount = 4; + engineConfiguration->cylindersCount = 4; // a bit of flexibility - the mode may be changed by some tests engineConfiguration->injectionMode = injectionMode; // set cranking mode (it's used by getCurrentInjectionMode()) diff --git a/unit_tests/tests/ignition_injection/test_fuel_math.cpp b/unit_tests/tests/ignition_injection/test_fuel_math.cpp index 0db8b9b5b0..58dfdc38fc 100644 --- a/unit_tests/tests/ignition_injection/test_fuel_math.cpp +++ b/unit_tests/tests/ignition_injection/test_fuel_math.cpp @@ -13,25 +13,25 @@ TEST(FuelMath, getStandardAirCharge) { EngineTestHelper eth(TEST_ENGINE); // Miata 1839cc 4cyl - engineConfiguration->specs.displacement = 1.839f; - engineConfiguration->specs.cylindersCount = 4; + engineConfiguration->displacement = 1.839f; + engineConfiguration->cylindersCount = 4; EXPECT_FLOAT_EQ(0.5535934f, getStandardAirCharge()); // LS 5.3 liter v8 - engineConfiguration->specs.displacement = 5.327f; - engineConfiguration->specs.cylindersCount = 8; + engineConfiguration->displacement = 5.327f; + engineConfiguration->cylindersCount = 8; EXPECT_FLOAT_EQ(0.80179232f, getStandardAirCharge()); // Chainsaw - single cylinder 32cc - engineConfiguration->specs.displacement = 0.032f; - engineConfiguration->specs.cylindersCount = 1; + engineConfiguration->displacement = 0.032f; + engineConfiguration->cylindersCount = 1; EXPECT_FLOAT_EQ(0.038531788f, getStandardAirCharge()); // Leopard 1 47.666 liter v12 - engineConfiguration->specs.displacement = 47.666f; - engineConfiguration->specs.cylindersCount = 12; + engineConfiguration->displacement = 47.666f; + engineConfiguration->cylindersCount = 12; EXPECT_FLOAT_EQ(4.782959f, getStandardAirCharge()); } @@ -39,8 +39,8 @@ TEST(FuelMath, getStandardAirCharge) { TEST(AirmassModes, AlphaNNormal) { EngineTestHelper eth(TEST_ENGINE); // 4 cylinder 4 liter = easy math - engineConfiguration->specs.displacement = 4.0f; - engineConfiguration->specs.cylindersCount = 4; + engineConfiguration->displacement = 4.0f; + engineConfiguration->cylindersCount = 4; StrictMock veTable; diff --git a/unit_tests/tests/ignition_injection/test_ignition_scheduling.cpp b/unit_tests/tests/ignition_injection/test_ignition_scheduling.cpp index 304f6bf91b..e662cd6d97 100644 --- a/unit_tests/tests/ignition_injection/test_ignition_scheduling.cpp +++ b/unit_tests/tests/ignition_injection/test_ignition_scheduling.cpp @@ -56,8 +56,8 @@ TEST(ignition, trailingSpark) { .WillRepeatedly(Return(AirmassResult{0.1008f, 50.0f})); setupSimpleTestEngineWithMafAndTT_ONE_trigger(ð); - engineConfiguration->specs.cylindersCount = 1; - engineConfiguration->specs.firingOrder = FO_1; + engineConfiguration->cylindersCount = 1; + engineConfiguration->firingOrder = FO_1; engineConfiguration->isInjectionEnabled = false; engineConfiguration->isIgnitionEnabled = true; diff --git a/unit_tests/tests/test_hpfp.cpp b/unit_tests/tests/test_hpfp.cpp index 6c101aaed8..e1f5853c4b 100755 --- a/unit_tests/tests/test_hpfp.cpp +++ b/unit_tests/tests/test_hpfp.cpp @@ -53,7 +53,7 @@ TEST(HPFP, Lobe) { TEST(HPFP, InjectionReplacementFuel) { EngineTestHelper eth(TEST_ENGINE); - engineConfiguration->specs.cylindersCount = 4; + engineConfiguration->cylindersCount = 4; engineConfiguration->hpfpCamLobes = 4; engine->engineState.injectionMass[0] = 0.05 /* cc/cyl */ * fuelDensity; engineConfiguration->hpfpPumpVolume = 0.2; // cc/lobe @@ -71,11 +71,11 @@ TEST(HPFP, InjectionReplacementFuel) { EXPECT_FLOAT_EQ(math.calcFuelPercent(1000), 50 * 1.333333333f); // More cylinders! - engineConfiguration->specs.cylindersCount = 6; + engineConfiguration->cylindersCount = 6; EXPECT_FLOAT_EQ(math.calcFuelPercent(1000), 50 * 2.); // Ooops we maxed out // Compensation testing - engineConfiguration->specs.cylindersCount = + engineConfiguration->cylindersCount = engineConfiguration->hpfpCamLobes; // Make math easier for (int i = 0; i < HPFP_COMPENSATION_SIZE; i++) { // one bin every 1000 RPM @@ -106,7 +106,7 @@ TEST(HPFP, InjectionReplacementFuel) { TEST(HPFP, PI) { EngineTestHelper eth(TEST_ENGINE); - engineConfiguration->specs.cylindersCount = 4; + engineConfiguration->cylindersCount = 4; engineConfiguration->hpfpCamLobes = 4; engine->engineState.injectionMass[0] = 0.05 /* cc/cyl */ * fuelDensity; engineConfiguration->hpfpPumpVolume = 0.2; // cc/lobe @@ -163,7 +163,7 @@ TEST(HPFP, PI) { TEST(HPFP, Angle) { EngineTestHelper eth(TEST_ENGINE); - engineConfiguration->specs.cylindersCount = 4; + engineConfiguration->cylindersCount = 4; engineConfiguration->hpfpCamLobes = 4; engine->engineState.injectionMass[0] = 0.05 /* cc/cyl */ * fuelDensity; engineConfiguration->hpfpPumpVolume = 0.2; // cc/lobe @@ -209,7 +209,7 @@ TEST(HPFP, Angle) { TEST(HPFP, Schedule) { EngineTestHelper eth(TEST_ENGINE); - engineConfiguration->specs.cylindersCount = 4; + engineConfiguration->cylindersCount = 4; engineConfiguration->hpfpCamLobes = 4; engineConfiguration->hpfpPumpVolume = 0.2; // cc/lobe diff --git a/unit_tests/tests/test_hpfp_integrated.cpp b/unit_tests/tests/test_hpfp_integrated.cpp index ee680a0d32..b415d9b6a9 100644 --- a/unit_tests/tests/test_hpfp_integrated.cpp +++ b/unit_tests/tests/test_hpfp_integrated.cpp @@ -12,7 +12,7 @@ TEST(HPFP, IntegratedSchedule) { engineConfiguration->hpfpValvePin = Gpio::A2; // arbitrary }); - engineConfiguration->specs.cylindersCount = 4; + engineConfiguration->cylindersCount = 4; engineConfiguration->hpfpCamLobes = 3; engineConfiguration->hpfpPumpVolume = 0.2; // cc/lobe diff --git a/unit_tests/tests/trigger/test_trigger_decoder.cpp b/unit_tests/tests/trigger/test_trigger_decoder.cpp index 708f59d213..b36b42e60e 100644 --- a/unit_tests/tests/trigger/test_trigger_decoder.cpp +++ b/unit_tests/tests/trigger/test_trigger_decoder.cpp @@ -969,7 +969,7 @@ TEST(big, testSparkReverseOrderBug319) { engine->tdcMarkEnabled = false; engineConfiguration->isInjectionEnabled = false; - engineConfiguration->specs.cylindersCount = 4; + engineConfiguration->cylindersCount = 4; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; setConstantDwell(45);