auto-sync

This commit is contained in:
rusEfi 2015-04-04 21:11:07 -05:00
parent 0733faa32c
commit 926ed358cf
19 changed files with 66 additions and 74 deletions

View File

@ -41,7 +41,7 @@ void setBmwE34(DECLARE_ENGINE_PARAMETER_F) {
engineConfiguration->ignMathCalculateAtIndex = 15; engineConfiguration->ignMathCalculateAtIndex = 15;
setConstantDwell(engineConfiguration, 3); // a bit shorter dwell setConstantDwell(3 PASS_ENGINE_PARAMETER); // a bit shorter dwell
engineConfiguration->useConstantDwellDuringCranking = true; engineConfiguration->useConstantDwellDuringCranking = true;
engineConfiguration->ignitionDwellForCrankingMs = 5; engineConfiguration->ignitionDwellForCrankingMs = 5;

View File

@ -376,7 +376,7 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_ENGINE_PARAMETER_F) {
engineConfiguration->bc.fsio_setting[0] = 0.2; engineConfiguration->bc.fsio_setting[0] = 0.2;
#if EFI_FSIO || defined(__DOXYGEN__) #if EFI_FSIO || defined(__DOXYGEN__)
boardConfiguration->fsio_setting[0] = 0.55; boardConfiguration->fsio_setting[0] = 0.55;
setFsioExt(engineConfiguration, 0, GPIOE_5, "0 fsio_setting", 400); setFsioExt(0, GPIOE_5, "0 fsio_setting", 400 PASS_ENGINE_PARAMETER);
#endif #endif
boardConfiguration->vehicleSpeedSensorInputPin = GPIOA_8; boardConfiguration->vehicleSpeedSensorInputPin = GPIOA_8;

View File

@ -19,10 +19,13 @@
#if EFI_SUPPORT_1995_FORD_INLINE_6 || defined(__DOXYGEN__) #if EFI_SUPPORT_1995_FORD_INLINE_6 || defined(__DOXYGEN__)
EXTERN_ENGINE;
/** /**
* @brief Default values for persistent properties * @brief Default values for persistent properties
*/ */
void setFordInline6(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration) { void setFordInline6(DECLARE_ENGINE_PARAMETER_F) {
board_configuration_s *boardConfiguration = &engineConfiguration->bc;
engineConfiguration->specs.cylindersCount = 6; engineConfiguration->specs.cylindersCount = 6;
setOperationMode(engineConfiguration, FOUR_STROKE_CAM_SENSOR); setOperationMode(engineConfiguration, FOUR_STROKE_CAM_SENSOR);
@ -36,7 +39,7 @@ void setFordInline6(engine_configuration_s *engineConfiguration, board_configura
/** /**
* 0.5ms dweel time just to be sure it would fit within camshaft revolution, dwell is not controlled by us anyway * 0.5ms dweel time just to be sure it would fit within camshaft revolution, dwell is not controlled by us anyway
*/ */
setConstantDwell(engineConfiguration, 0.5); setConstantDwell(0.5 PASS_ENGINE_PARAMETER);
/** /**
* We treat the trigger as 6/0 toothed wheel * We treat the trigger as 6/0 toothed wheel

View File

@ -10,6 +10,6 @@
#include "engine_configuration.h" #include "engine_configuration.h"
void setFordInline6(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration); void setFordInline6(DECLARE_ENGINE_PARAMETER_F);
#endif /* FORD_1995_INLINE_6_H_ */ #endif /* FORD_1995_INLINE_6_H_ */

View File

@ -77,7 +77,7 @@ void setMazda626EngineConfiguration(DECLARE_ENGINE_PARAMETER_F) {
#if EFI_FSIO || defined(__DOXYGEN__) #if EFI_FSIO || defined(__DOXYGEN__)
// backup main relay pin // backup main relay pin
setFsio(engineConfiguration, 0, GPIOE_6, "1"); setFsio(0, GPIOE_6, "1" PASS_ENGINE_PARAMETER);
#endif #endif
engineConfiguration->externalKnockSenseAdc = EFI_ADC_4; engineConfiguration->externalKnockSenseAdc = EFI_ADC_4;

View File

@ -88,7 +88,7 @@ void setMitsubishiConfiguration(DECLARE_ENGINE_PARAMETER_F) {
initEgoSensor(&engineConfiguration->afr, ES_Innovate_MTX_L); initEgoSensor(&engineConfiguration->afr, ES_Innovate_MTX_L);
#if EFI_FSIO || defined(__DOXYGEN__) #if EFI_FSIO || defined(__DOXYGEN__)
setFsio(engineConfiguration, 0, GPIOD_11, "rpm 5500 >"); setFsio(0, GPIOD_11, "rpm 5500 >" PASS_ENGINE_PARAMETER);
#endif #endif
} }

View File

@ -7,10 +7,12 @@
* @author Andrey Belomutskiy, (c) 2012-2015 * @author Andrey Belomutskiy, (c) 2012-2015
*/ */
#include "main.h" #include "engine.h"
#include "test_engine.h" #include "test_engine.h"
void setTestEngineConfiguration(engine_configuration_s *engineConfiguration) { EXTERN_ENGINE;
void setTestEngineConfiguration(DECLARE_ENGINE_PARAMETER_F) {
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; engineConfiguration->trigger.type = TT_TOOTHED_WHEEL;
trigger_config_s *triggerConfig = &engineConfiguration->trigger; trigger_config_s *triggerConfig = &engineConfiguration->trigger;
@ -20,7 +22,7 @@ void setTestEngineConfiguration(engine_configuration_s *engineConfiguration) {
setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR); setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR);
engineConfiguration->ignitionMode = IM_ONE_COIL; engineConfiguration->ignitionMode = IM_ONE_COIL;
setConstantDwell(engineConfiguration, 3); // 50% duty cycle @ 5000 rpm setConstantDwell(3 PASS_ENGINE_PARAMETER); // 50% duty cycle @ 5000 rpm
board_configuration_s *bc = &engineConfiguration->bc; board_configuration_s *bc = &engineConfiguration->bc;
bc->malfunctionIndicatorPin = GPIO_UNASSIGNED; bc->malfunctionIndicatorPin = GPIO_UNASSIGNED;

View File

@ -9,6 +9,6 @@
#include "engine_configuration.h" #include "engine_configuration.h"
void setTestEngineConfiguration(engine_configuration_s *engineConfiguration); void setTestEngineConfiguration(DECLARE_ENGINE_PARAMETER_F);
#endif /* TEST_ENGINE_H_ */ #endif /* TEST_ENGINE_H_ */

View File

@ -97,7 +97,7 @@ void incrementGlobalConfigurationVersion(void) {
/** /**
* @brief Sets the same dwell time across the whole getRpm() range * @brief Sets the same dwell time across the whole getRpm() range
*/ */
void setConstantDwell(engine_configuration_s *engineConfiguration, float dwellMs) { void setConstantDwell(float dwellMs DECLARE_ENGINE_PARAMETER_S) {
for (int i = 0; i < DWELL_CURVE_SIZE; i++) { for (int i = 0; i < DWELL_CURVE_SIZE; i++) {
engineConfiguration->sparkDwellBins[i] = 1000 * i; engineConfiguration->sparkDwellBins[i] = 1000 * i;
engineConfiguration->sparkDwell[i] = dwellMs; engineConfiguration->sparkDwell[i] = dwellMs;
@ -199,7 +199,7 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_F) {
engineConfiguration->injector.battLagCorr[i] = 0; // zero extra time by default engineConfiguration->injector.battLagCorr[i] = 0; // zero extra time by default
} }
setConstantDwell(engineConfiguration, 4); // 4ms is global default dwell setConstantDwell(4 PASS_ENGINE_PARAMETER); // 4ms is global default dwell
engineConfiguration->useConstantDwellDuringCranking = false; engineConfiguration->useConstantDwellDuringCranking = false;
setFuelLoadBin(1.2, 4.4 PASS_ENGINE_PARAMETER); setFuelLoadBin(1.2, 4.4 PASS_ENGINE_PARAMETER);
@ -637,7 +637,7 @@ void resetConfigurationExt(Logging * logger, engine_type_e engineType DECLARE_EN
break; break;
#if EFI_SUPPORT_1995_FORD_INLINE_6 || defined(__DOXYGEN__) #if EFI_SUPPORT_1995_FORD_INLINE_6 || defined(__DOXYGEN__)
case FORD_INLINE_6_1995: case FORD_INLINE_6_1995:
setFordInline6(engineConfiguration, boardConfiguration); setFordInline6(PASS_ENGINE_PARAMETER_F);
break; break;
#endif /* EFI_SUPPORT_1995_FORD_INLINE_6 */ #endif /* EFI_SUPPORT_1995_FORD_INLINE_6 */
case GY6_139QMB: case GY6_139QMB:
@ -686,7 +686,7 @@ void resetConfigurationExt(Logging * logger, engine_type_e engineType DECLARE_EN
setBmwE34(PASS_ENGINE_PARAMETER_F); setBmwE34(PASS_ENGINE_PARAMETER_F);
break; break;
case TEST_ENGINE: case TEST_ENGINE:
setTestEngineConfiguration(engineConfiguration); setTestEngineConfiguration(PASS_ENGINE_PARAMETER_F);
break; break;
case SACHS: case SACHS:
setSachs(engineConfiguration); setSachs(engineConfiguration);

View File

@ -50,7 +50,7 @@ void setMap(fuel_table_t table, float value);
void setWholeFuelMap(float value DECLARE_ENGINE_PARAMETER_S); void setWholeFuelMap(float value DECLARE_ENGINE_PARAMETER_S);
void setFuelTablesLoadBin(float minValue, float maxValue DECLARE_ENGINE_PARAMETER_S); void setFuelTablesLoadBin(float minValue, float maxValue DECLARE_ENGINE_PARAMETER_S);
void setWholeTimingTable(float value DECLARE_ENGINE_PARAMETER_S); void setWholeTimingTable(float value DECLARE_ENGINE_PARAMETER_S);
void setConstantDwell(engine_configuration_s *engineConfiguration, float dwellMs); void setConstantDwell(float dwellMs DECLARE_ENGINE_PARAMETER_S);
void printFloatArray(const char *prefix, float array[], int size); void printFloatArray(const char *prefix, float array[], int size);
void incrementGlobalConfigurationVersion(void); void incrementGlobalConfigurationVersion(void);

View File

@ -115,7 +115,7 @@ static void setFsioPin(const char *indexStr, const char *pinName) {
} }
#endif #endif
void setFsioExt(engine_configuration_s *engineConfiguration, int index, brain_pin_e pin, const char * exp, int freq) { void setFsioExt(int index, brain_pin_e pin, const char * exp, int freq DECLARE_ENGINE_PARAMETER_S) {
board_configuration_s *boardConfiguration = &engineConfiguration->bc; board_configuration_s *boardConfiguration = &engineConfiguration->bc;
boardConfiguration->fsioPins[index] = pin; boardConfiguration->fsioPins[index] = pin;
@ -127,8 +127,8 @@ void setFsioExt(engine_configuration_s *engineConfiguration, int index, brain_pi
boardConfiguration->fsioFrequency[index] = freq; boardConfiguration->fsioFrequency[index] = freq;
} }
void setFsio(engine_configuration_s *engineConfiguration, int index, brain_pin_e pin, const char * exp) { void setFsio(int index, brain_pin_e pin, const char * exp DECLARE_ENGINE_PARAMETER_S) {
setFsioExt(engineConfiguration, index, pin, exp, NO_PWM); setFsioExt(index, pin, exp, NO_PWM PASS_ENGINE_PARAMETER);
} }
void applyFsioConfiguration(DECLARE_ENGINE_PARAMETER_F) { void applyFsioConfiguration(DECLARE_ENGINE_PARAMETER_F) {

View File

@ -30,8 +30,8 @@
#define FAN_CONTROL_LOGIC "fan coolant fan_off_setting > & coolant fan_on_setting > OR" #define FAN_CONTROL_LOGIC "fan coolant fan_off_setting > & coolant fan_on_setting > OR"
float getLEValue(Engine *engine, calc_stack_t *s, le_action_e action); float getLEValue(Engine *engine, calc_stack_t *s, le_action_e action);
void setFsio(engine_configuration_s *engineConfiguration, int index, brain_pin_e pin, const char * exp); void setFsio(int index, brain_pin_e pin, const char * exp DECLARE_ENGINE_PARAMETER_S);
void setFsioExt(engine_configuration_s *engineConfiguration, int index, brain_pin_e pin, const char * exp, int freq); void setFsioExt(int index, brain_pin_e pin, const char * exp, int freq DECLARE_ENGINE_PARAMETER_S);
void initFsioImpl(Logging *sharedLogger, Engine *engine); void initFsioImpl(Logging *sharedLogger, Engine *engine);
void runFsio(void); void runFsio(void);

View File

@ -17,6 +17,7 @@ EngineTestHelper::EngineTestHelper(engine_type_e engineType) : engine (&persiste
ec = &persistentConfig.engineConfiguration; ec = &persistentConfig.engineConfiguration;
engineConfiguration = ec; engineConfiguration = ec;
persistent_config_s *config = &persistentConfig;
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -40, 1.5); setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -40, 1.5);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -30, 1.5); setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -30, 1.5);
@ -48,9 +49,9 @@ EngineTestHelper::EngineTestHelper(engine_type_e engineType) : engine (&persiste
void EngineTestHelper::fireTriggerEvents() { void EngineTestHelper::fireTriggerEvents() {
for (int i = 0; i < 24; i++) { for (int i = 0; i < 24; i++) {
timeNow += 5000; // 5ms timeNow += 5000; // 5ms
triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP, &engine, engine.engineConfiguration); triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP, &engine, engine.engineConfiguration, &persistentConfig);
timeNow += 5000; timeNow += 5000;
triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN, &engine, engine.engineConfiguration); triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN, &engine, engine.engineConfiguration, &persistentConfig);
} }
} }

View File

@ -38,10 +38,14 @@ typedef int bool_t;
class Engine; class Engine;
#endif #endif
#define DECLARE_ENGINE_PARAMETER_F Engine *engine, engine_configuration_s *engineConfiguration #define DECLARE_ENGINE_PARAMETER_F Engine *engine, engine_configuration_s *engineConfiguration, persistent_config_s *config
#define DECLARE_ENGINE_PARAMETER_S , Engine *engine, engine_configuration_s *engineConfiguration #define DECLARE_ENGINE_PARAMETER_S , Engine *engine, engine_configuration_s *engineConfiguration, persistent_config_s *config
#define PASS_ENGINE_PARAMETER_F engine, engineConfiguration #define PASS_ENGINE_PARAMETER_F engine, engineConfiguration, config
#define PASS_ENGINE_PARAMETER , engine, engineConfiguration #define PASS_ENGINE_PARAMETER , engine, engineConfiguration, config
#define EXPAND_EngineTestHelper Engine *engine = &eth.engine; \
engine_configuration_s *engineConfiguration = engine->engineConfiguration; \
persistent_config_s *config = engine->config;
#define CONFIG(x) engineConfiguration->x #define CONFIG(x) engineConfiguration->x
#define ENGINE(x) engine->x #define ENGINE(x) engine->x

View File

@ -17,8 +17,7 @@
void testIgnitionPlanning(void) { void testIgnitionPlanning(void) {
printf("*************************************************** testIgnitionPlanning\r\n"); printf("*************************************************** testIgnitionPlanning\r\n");
EngineTestHelper eth(FORD_ESCORT_GT); EngineTestHelper eth(FORD_ESCORT_GT);
Engine * engine = &eth.engine; EXPAND_EngineTestHelper;
engine_configuration_s *engineConfiguration = engine->engineConfiguration;
assertEquals(IM_BATCH, engineConfiguration->injectionMode); assertEquals(IM_BATCH, engineConfiguration->injectionMode);
} }

View File

@ -21,12 +21,9 @@ extern float testMafValue;
void testMafFuelMath(void) { void testMafFuelMath(void) {
printf("*************************************************** testMafFuelMath\r\n"); printf("*************************************************** testMafFuelMath\r\n");
EngineTestHelper eth(FORD_ASPIRE_1996); EngineTestHelper eth(FORD_ASPIRE_1996);
EXPAND_EngineTestHelper;
Engine *engine = &eth.engine;
engine_configuration_s *engineConfiguration = engine->engineConfiguration;
engineConfiguration->algorithm = LM_REAL_MAF; engineConfiguration->algorithm = LM_REAL_MAF;
engineConfiguration->injector.flow = 200; engineConfiguration->injector.flow = 200;
setMap(engineConfiguration->afrTable, 13); setMap(engineConfiguration->afrTable, 13);
@ -40,6 +37,7 @@ void testFuelMap(void) {
printf("Setting up FORD_ASPIRE_1996\r\n"); printf("Setting up FORD_ASPIRE_1996\r\n");
EngineTestHelper eth(FORD_ASPIRE_1996); EngineTestHelper eth(FORD_ASPIRE_1996);
EXPAND_EngineTestHelper;
printf("Filling fuel map\r\n"); printf("Filling fuel map\r\n");
for (int k = 0; k < FUEL_LOAD_COUNT; k++) { for (int k = 0; k < FUEL_LOAD_COUNT; k++) {
@ -56,12 +54,8 @@ void testFuelMap(void) {
printf("*************************************************** initThermistors\r\n"); printf("*************************************************** initThermistors\r\n");
Engine *engine = &eth.engine;
engine_configuration_s *engineConfiguration = engine->engineConfiguration;
initThermistors(NULL PASS_ENGINE_PARAMETER); initThermistors(NULL PASS_ENGINE_PARAMETER);
printf("*** getInjectorLag\r\n"); printf("*** getInjectorLag\r\n");
assertEquals(1.0, getInjectorLag(12 PASS_ENGINE_PARAMETER)); assertEquals(1.0, getInjectorLag(12 PASS_ENGINE_PARAMETER));
@ -171,9 +165,7 @@ void testAngleResolver(void) {
printf("*************************************************** testAngleResolver\r\n"); printf("*************************************************** testAngleResolver\r\n");
EngineTestHelper eth(FORD_ASPIRE_1996); EngineTestHelper eth(FORD_ASPIRE_1996);
Engine *engine = &eth.engine; EXPAND_EngineTestHelper;
engine_configuration_s *engineConfiguration = eth.engine.engineConfiguration;
engineConfiguration->globalTriggerAngleOffset = 175; engineConfiguration->globalTriggerAngleOffset = 175;
assertTrue(engine->engineConfiguration2!=NULL); assertTrue(engine->engineConfiguration2!=NULL);

View File

@ -20,8 +20,7 @@ static IdleValveState is;
void testIdleController(void) { void testIdleController(void) {
print("******************************************* testIdleController\r\n"); print("******************************************* testIdleController\r\n");
EngineTestHelper eth(FORD_INLINE_6_1995); EngineTestHelper eth(FORD_INLINE_6_1995);
Engine *engine = &eth.engine; EXPAND_EngineTestHelper;
engine_configuration_s *engineConfiguration = engine->engineConfiguration;
engineConfiguration->targetIdleRpm = 1200; engineConfiguration->targetIdleRpm = 1200;

View File

@ -13,8 +13,7 @@
void testSpeedDensity(void) { void testSpeedDensity(void) {
printf("*************************************************** testSpeedDensity\r\n"); printf("*************************************************** testSpeedDensity\r\n");
EngineTestHelper eth(FORD_INLINE_6_1995); EngineTestHelper eth(FORD_INLINE_6_1995);
Engine *engine = &eth.engine; EXPAND_EngineTestHelper;
engine_configuration_s *engineConfiguration = engine->engineConfiguration;
eth.ec->trigger.customTotalToothCount = 8; eth.ec->trigger.customTotalToothCount = 8;
eth.initTriggerShapeAndRpmCalculator(); eth.initTriggerShapeAndRpmCalculator();

View File

@ -43,9 +43,8 @@ void sendOutConfirmation(char *value, int i) {
int getTheAngle(engine_type_e engineType) { int getTheAngle(engine_type_e engineType) {
EngineTestHelper eth(engineType); EngineTestHelper eth(engineType);
EXPAND_EngineTestHelper;
Engine *engine = &eth.engine;
engine_configuration_s *engineConfiguration = eth.ec;
initDataStructures(PASS_ENGINE_PARAMETER_F); initDataStructures(PASS_ENGINE_PARAMETER_F);
TriggerShape * shape = &eth.engine.triggerShape; TriggerShape * shape = &eth.engine.triggerShape;
@ -59,6 +58,7 @@ static void testDodgeNeonDecoder(void) {
assertEqualsM("trigger zero index", 8, getTheAngle(DODGE_NEON_1995)); assertEqualsM("trigger zero index", 8, getTheAngle(DODGE_NEON_1995));
EngineTestHelper eth(DODGE_NEON_1995); EngineTestHelper eth(DODGE_NEON_1995);
EXPAND_EngineTestHelper;
engine_configuration_s *ec = eth.ec; engine_configuration_s *ec = eth.ec;
TriggerShape * shape = &eth.engine.triggerShape; TriggerShape * shape = &eth.engine.triggerShape;
@ -116,9 +116,7 @@ static void test1995FordInline6TriggerDecoder(void) {
initTriggerDecoder(); initTriggerDecoder();
EngineTestHelper eth(FORD_INLINE_6_1995); EngineTestHelper eth(FORD_INLINE_6_1995);
EXPAND_EngineTestHelper;
engine_configuration_s *engineConfiguration = eth.engine.engineConfiguration;
Engine *engine = &eth.engine;
TriggerShape * shape = &eth.engine.triggerShape; TriggerShape * shape = &eth.engine.triggerShape;
@ -181,9 +179,8 @@ void testFordAspire(void) {
assertEquals(4, getTheAngle(FORD_ASPIRE_1996)); assertEquals(4, getTheAngle(FORD_ASPIRE_1996));
EngineTestHelper eth(FORD_ASPIRE_1996); EngineTestHelper eth(FORD_ASPIRE_1996);
EXPAND_EngineTestHelper;
Engine *engine = &eth.engine;
engine_configuration_s *engineConfiguration = eth.ec;
assertEquals(4, eth.engine.triggerShape.getTriggerShapeSynchPointIndex()); assertEquals(4, eth.engine.triggerShape.getTriggerShapeSynchPointIndex());
assertEquals(800, engineConfiguration->fuelRpmBins[0]); assertEquals(800, engineConfiguration->fuelRpmBins[0]);
@ -209,9 +206,9 @@ void testMazdaMianaNbDecoder(void) {
printf("*************************************************** testMazdaMianaNbDecoder\r\n"); printf("*************************************************** testMazdaMianaNbDecoder\r\n");
EngineTestHelper eth(MAZDA_MIATA_NB); EngineTestHelper eth(MAZDA_MIATA_NB);
EXPAND_EngineTestHelper;
engine_configuration_s *ec = eth.ec; engine_configuration_s *ec = eth.ec;
Engine *engine = &eth.engine;
engine_configuration_s *engineConfiguration = ec;
TriggerShape * shape = &eth.engine.triggerShape; TriggerShape * shape = &eth.engine.triggerShape;
assertEquals(11, shape->getTriggerShapeSynchPointIndex()); assertEquals(11, shape->getTriggerShapeSynchPointIndex());
@ -294,9 +291,9 @@ static void testTriggerDecoder2(const char *msg, engine_type_e type, int synchPo
printf("*************************************************** %s\r\n", msg); printf("*************************************************** %s\r\n", msg);
EngineTestHelper eth(type); EngineTestHelper eth(type);
EXPAND_EngineTestHelper;
engine_configuration_s *ec = eth.ec; engine_configuration_s *ec = eth.ec;
engine_configuration_s * engineConfiguration = eth.engineConfiguration;
Engine *engine = &eth.engine;
initSpeedDensity(PASS_ENGINE_PARAMETER_F); initSpeedDensity(PASS_ENGINE_PARAMETER_F);
@ -321,12 +318,10 @@ extern int mockTps;
static void testStartupFuelPumping(void) { static void testStartupFuelPumping(void) {
EngineTestHelper eth(FORD_INLINE_6_1995); EngineTestHelper eth(FORD_INLINE_6_1995);
EXPAND_EngineTestHelper;
StartupFuelPumping sf; StartupFuelPumping sf;
Engine * engine = &eth.engine;
engine_configuration_s *engineConfiguration = engine->engineConfiguration;
engine->rpmCalculator.mockRpm = 0; engine->rpmCalculator.mockRpm = 0;
engine->engineConfiguration->tpsMin = 0; engine->engineConfiguration->tpsMin = 0;
@ -365,15 +360,13 @@ static void testRpmCalculator(void) {
printf("*************************************************** testRpmCalculator\r\n"); printf("*************************************************** testRpmCalculator\r\n");
EngineTestHelper eth(FORD_INLINE_6_1995); EngineTestHelper eth(FORD_INLINE_6_1995);
EXPAND_EngineTestHelper;
assertEquals(720, eth.engine.engineConfiguration->engineCycle); assertEquals(720, eth.engine.engineConfiguration->engineCycle);
assertEquals(720, eth.ec->engineCycle); assertEquals(720, eth.ec->engineCycle);
efiAssertVoid(eth.engine.engineConfiguration!=NULL, "null config in engine"); efiAssertVoid(eth.engine.engineConfiguration!=NULL, "null config in engine");
Engine *engine = &eth.engine;
engine_configuration_s *engineConfiguration = &eth.persistentConfig.engineConfiguration;
initThermistors(NULL PASS_ENGINE_PARAMETER); initThermistors(NULL PASS_ENGINE_PARAMETER);
engine->updateSlowSensors(); engine->updateSlowSensors();
@ -401,7 +394,7 @@ static void testRpmCalculator(void) {
prepareTimingMap(PASS_ENGINE_PARAMETER_F); prepareTimingMap(PASS_ENGINE_PARAMETER_F);
timeNow += 5000; // 5ms timeNow += 5000; // 5ms
eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP, &eth.engine, eth.ec); eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP PASS_ENGINE_PARAMETER);
assertEqualsM("index #2", 0, eth.triggerCentral.triggerState.getCurrentIndex()); assertEqualsM("index #2", 0, eth.triggerCentral.triggerState.getCurrentIndex());
assertEqualsM("queue size", 6, schedulingQueue.size()); assertEqualsM("queue size", 6, schedulingQueue.size());
assertEqualsM("ev 1", 246444, schedulingQueue.getForUnitText(0)->momentX); assertEqualsM("ev 1", 246444, schedulingQueue.getForUnitText(0)->momentX);
@ -409,11 +402,11 @@ static void testRpmCalculator(void) {
schedulingQueue.clear(); schedulingQueue.clear();
timeNow += 5000; timeNow += 5000;
eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN, &eth.engine, eth.ec); eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN PASS_ENGINE_PARAMETER);
timeNow += 5000; // 5ms timeNow += 5000; // 5ms
eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP, &eth.engine, eth.ec); eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP PASS_ENGINE_PARAMETER);
timeNow += 5000; timeNow += 5000;
eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN, &eth.engine, eth.ec); eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN PASS_ENGINE_PARAMETER);
assertEqualsM("index #3", 3, eth.triggerCentral.triggerState.getCurrentIndex()); assertEqualsM("index #3", 3, eth.triggerCentral.triggerState.getCurrentIndex());
assertEqualsM("queue size 3", 6, schedulingQueue.size()); assertEqualsM("queue size 3", 6, schedulingQueue.size());
assertEqualsM("ev 3", 259777, schedulingQueue.getForUnitText(0)->momentX); assertEqualsM("ev 3", 259777, schedulingQueue.getForUnitText(0)->momentX);
@ -423,24 +416,24 @@ static void testRpmCalculator(void) {
schedulingQueue.clear(); schedulingQueue.clear();
timeNow += 5000; timeNow += 5000;
eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN, &eth.engine, eth.ec); eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN PASS_ENGINE_PARAMETER);
timeNow += 5000; // 5ms timeNow += 5000; // 5ms
eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP, &eth.engine, eth.ec); eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP PASS_ENGINE_PARAMETER);
timeNow += 5000; // 5ms timeNow += 5000; // 5ms
eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP, &eth.engine, eth.ec); eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP PASS_ENGINE_PARAMETER);
assertEqualsM("index #4", 6, eth.triggerCentral.triggerState.getCurrentIndex()); assertEqualsM("index #4", 6, eth.triggerCentral.triggerState.getCurrentIndex());
assertEqualsM("queue size 4", 6, schedulingQueue.size()); assertEqualsM("queue size 4", 6, schedulingQueue.size());
assertEqualsM("4/0", 273111, schedulingQueue.getForUnitText(0)->momentX); assertEqualsM("4/0", 273111, schedulingQueue.getForUnitText(0)->momentX);
schedulingQueue.clear(); schedulingQueue.clear();
timeNow += 5000; timeNow += 5000;
eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN, &eth.engine, eth.ec); eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN PASS_ENGINE_PARAMETER);
assertEqualsM("queue size 5", 0, schedulingQueue.size()); assertEqualsM("queue size 5", 0, schedulingQueue.size());
// assertEqualsM("5/1", 284500, schedulingQueue.getForUnitText(0)->momentUs); // assertEqualsM("5/1", 284500, schedulingQueue.getForUnitText(0)->momentUs);
schedulingQueue.clear(); schedulingQueue.clear();
timeNow += 5000; // 5ms timeNow += 5000; // 5ms
eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP, &eth.engine, eth.ec); eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP PASS_ENGINE_PARAMETER);
assertEqualsM("queue size 6", 6, schedulingQueue.size()); assertEqualsM("queue size 6", 6, schedulingQueue.size());
assertEqualsM("6/0", 286444, schedulingQueue.getForUnitText(0)->momentX); assertEqualsM("6/0", 286444, schedulingQueue.getForUnitText(0)->momentX);
assertEqualsM("6/1", 285944, schedulingQueue.getForUnitText(1)->momentX); assertEqualsM("6/1", 285944, schedulingQueue.getForUnitText(1)->momentX);
@ -448,12 +441,12 @@ static void testRpmCalculator(void) {
schedulingQueue.clear(); schedulingQueue.clear();
timeNow += 5000; timeNow += 5000;
eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN, &eth.engine, eth.ec); eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN PASS_ENGINE_PARAMETER);
assertEqualsM("queue size 7", 0, schedulingQueue.size()); assertEqualsM("queue size 7", 0, schedulingQueue.size());
schedulingQueue.clear(); schedulingQueue.clear();
timeNow += 5000; // 5ms timeNow += 5000; // 5ms
eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP, &eth.engine, eth.ec); eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP PASS_ENGINE_PARAMETER);
assertEqualsM("queue size 8", 6, schedulingQueue.size()); assertEqualsM("queue size 8", 6, schedulingQueue.size());
assertEqualsM("8/0", 299777, schedulingQueue.getForUnitText(0)->momentX); assertEqualsM("8/0", 299777, schedulingQueue.getForUnitText(0)->momentX);
assertEqualsM("8/1", 299277, schedulingQueue.getForUnitText(1)->momentX); assertEqualsM("8/1", 299277, schedulingQueue.getForUnitText(1)->momentX);
@ -462,12 +455,12 @@ static void testRpmCalculator(void) {
schedulingQueue.clear(); schedulingQueue.clear();
timeNow += 5000; timeNow += 5000;
eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN, &eth.engine, eth.ec); eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_DOWN PASS_ENGINE_PARAMETER);
assertEqualsM("queue size 9", 0, schedulingQueue.size()); assertEqualsM("queue size 9", 0, schedulingQueue.size());
schedulingQueue.clear(); schedulingQueue.clear();
timeNow += 5000; // 5ms timeNow += 5000; // 5ms
eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP, &eth.engine, eth.ec); eth.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_UP PASS_ENGINE_PARAMETER);
assertEqualsM("queue size 10", 0, schedulingQueue.size()); assertEqualsM("queue size 10", 0, schedulingQueue.size());
schedulingQueue.clear(); schedulingQueue.clear();
} }