making either Matt or compiler or both happier

This commit is contained in:
rusefi 2019-01-05 00:11:17 -05:00
parent d80c1f0b1e
commit 19c410387d
16 changed files with 40 additions and 34 deletions

View File

@ -114,7 +114,7 @@ float AccelEnrichmemnt::getMaxDelta(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
floatms_t AccelEnrichmemnt::getTpsEnrichment(DECLARE_ENGINE_PARAMETER_SIGNATURE) { floatms_t AccelEnrichmemnt::getTpsEnrichment(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
int index = getMaxDeltaIndex(PASS_ENGINE_PARAMETER_SIGNATURE); int index = getMaxDeltaIndex(PASS_ENGINE_PARAMETER_SIGNATURE);
// FuelSchedule *fs = engine->engineConfiguration2->injectionEvents; // FuelSchedule *fs = engine->engineConfigurationPtr2->injectionEvents;
float tpsTo = cb.get(index); float tpsTo = cb.get(index);
float tpsFrom = cb.get(index - 1); float tpsFrom = cb.get(index - 1);
float d = tpsTo - tpsFrom; float d = tpsTo - tpsFrom;

View File

@ -187,7 +187,8 @@ void Engine::reset() {
injectionDuration = 0; injectionDuration = 0;
clutchDownState = clutchUpState = brakePedalState = false; clutchDownState = clutchUpState = brakePedalState = false;
memset(&m, 0, sizeof(m)); memset(&m, 0, sizeof(m));
config = NULL;
engineConfigurationPtr = NULL;
} }
FuelConsumptionState::FuelConsumptionState() { FuelConsumptionState::FuelConsumptionState() {
@ -369,13 +370,13 @@ void EngineState::updateTChargeK(int rpm, float tps DECLARE_ENGINE_PARAMETER_SUF
* so that we can prepare some helper structures * so that we can prepare some helper structures
*/ */
void Engine::preCalculate() { void Engine::preCalculate() {
sparkTable.preCalc(engineConfiguration->sparkDwellRpmBins, sparkTable.preCalc(engineConfigurationPtr->sparkDwellRpmBins,
engineConfiguration->sparkDwellValues); engineConfigurationPtr->sparkDwellValues);
#if ! EFI_UNIT_TEST #if ! EFI_UNIT_TEST
adcToVoltageInputDividerCoefficient = adcToVolts(1) * engineConfiguration->analogInputDividerCoefficient; adcToVoltageInputDividerCoefficient = adcToVolts(1) * engineConfigurationPtr->analogInputDividerCoefficient;
#else #else
adcToVoltageInputDividerCoefficient = engineConfiguration->analogInputDividerCoefficient; adcToVoltageInputDividerCoefficient = engineConfigurationPtr->analogInputDividerCoefficient;
#endif #endif
/** /**
@ -391,7 +392,7 @@ void Engine::preCalculate() {
void Engine::setConfig(persistent_config_s *config) { void Engine::setConfig(persistent_config_s *config) {
this->config = config; this->config = config;
engineConfiguration = &config->engineConfiguration; engineConfigurationPtr = &config->engineConfiguration;
memset(config, 0, sizeof(persistent_config_s)); memset(config, 0, sizeof(persistent_config_s));
engineState.warmupAfrPid.initPidClass(&config->engineConfiguration.warmupAfrPid); engineState.warmupAfrPid.initPidClass(&config->engineConfiguration.warmupAfrPid);
} }
@ -402,7 +403,7 @@ void Engine::printKnockState(void) {
void Engine::knockLogic(float knockVolts) { void Engine::knockLogic(float knockVolts) {
this->knockVolts = knockVolts; this->knockVolts = knockVolts;
knockNow = knockVolts > engineConfiguration->knockVThreshold; knockNow = knockVolts > engineConfigurationPtr->knockVThreshold;
/** /**
* KnockCount is directly proportional to the degrees of ignition * KnockCount is directly proportional to the degrees of ignition
* advance removed * advance removed
@ -419,7 +420,7 @@ void Engine::knockLogic(float knockVolts) {
if (knockNow) { if (knockNow) {
knockEver = true; knockEver = true;
timeOfLastKnockEvent = getTimeNowUs(); timeOfLastKnockEvent = getTimeNowUs();
if (knockCount < engineConfiguration->maxKnockSubDeg) if (knockCount < engineConfigurationPtr->maxKnockSubDeg)
knockCount++; knockCount++;
} else if (knockCount >= 1) { } else if (knockCount >= 1) {
knockCount--; knockCount--;

View File

@ -344,7 +344,10 @@ public:
RpmCalculator rpmCalculator; RpmCalculator rpmCalculator;
persistent_config_s *config; persistent_config_s *config;
engine_configuration_s *engineConfiguration; /**
* we use funny unique name to make sure that compiler is not confused between global variable and class member
*/
engine_configuration_s *engineConfigurationPtr;
/** /**
* this is about 'stopengine' command * this is about 'stopengine' command

View File

@ -288,6 +288,7 @@ static void setDefaultFsioParameters(engine_configuration_s *engineConfiguration
} }
void prepareVoidConfiguration(engine_configuration_s *engineConfiguration) { void prepareVoidConfiguration(engine_configuration_s *engineConfiguration) {
efiAssertVoid(OBD_PCM_Processor_Fault, engineConfiguration != NULL, "ec NULL");
memset(engineConfiguration, 0, sizeof(engine_configuration_s)); memset(engineConfiguration, 0, sizeof(engine_configuration_s));
board_configuration_s *boardConfiguration = &engineConfiguration->bc; board_configuration_s *boardConfiguration = &engineConfiguration->bc;

View File

@ -542,7 +542,7 @@ static void showFsioInfo(void) {
scheduleMsg(logger, "FSIO #%d [%s] at %s@%dHz value=%.2f", (i + 1), exp, scheduleMsg(logger, "FSIO #%d [%s] at %s@%dHz value=%.2f", (i + 1), exp,
hwPortname(boardConfiguration->fsioOutputPins[i]), boardConfiguration->fsioFrequency[i], hwPortname(boardConfiguration->fsioOutputPins[i]), boardConfiguration->fsioFrequency[i],
engine->fsioLastValue[i]); engine->fsioLastValue[i]);
// scheduleMsg(logger, "user-defined #%d value=%.2f", i, engine->engineConfiguration2->fsioLastValue[i]); // scheduleMsg(logger, "user-defined #%d value=%.2f", i, engine->engineConfigurationPtr2->fsioLastValue[i]);
showFsio(NULL, fsioLogics[i]); showFsio(NULL, fsioLogics[i]);
} }
} }

View File

@ -531,7 +531,7 @@ static void setFloat(const char *offsetStr, const char *valueStr) {
scheduleMsg(&logger, "invalid value [%s]", valueStr); scheduleMsg(&logger, "invalid value [%s]", valueStr);
return; return;
} }
float *ptr = (float *) (&((char *) engine->engineConfiguration)[offset]); float *ptr = (float *) (&((char *) engine->engineConfigurationPtr)[offset]);
*ptr = value; *ptr = value;
getFloat(offset); getFloat(offset);
} }

View File

@ -26,5 +26,5 @@ bool getAcToggle(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
* for now we are looking for a pull-up. High level means input switch is floating (which is OFF position) * for now we are looking for a pull-up. High level means input switch is floating (which is OFF position)
* low value means input is ground - which means ON. * low value means input is ground - which means ON.
*/ */
return getVoltageDivided("A/C", engine->engineConfiguration->acSwitchAdc) < 2.5; return getVoltageDivided("A/C", engine->engineConfigurationPtr->acSwitchAdc) < 2.5;
} }

View File

@ -87,13 +87,13 @@ extern TunerStudioOutputChannels tsOutputChannels;
//#endif //#endif
void startSimultaniousInjection(Engine *engine) { void startSimultaniousInjection(Engine *engine) {
for (int i = 0; i < engine->engineConfiguration->specs.cylindersCount; i++) { for (int i = 0; i < engine->engineConfigurationPtr->specs.cylindersCount; i++) {
enginePins.injectors[i].setHigh(); enginePins.injectors[i].setHigh();
} }
} }
static void endSimultaniousInjectionOnlyTogglePins(Engine *engine) { static void endSimultaniousInjectionOnlyTogglePins(Engine *engine) {
for (int i = 0; i < engine->engineConfiguration->specs.cylindersCount; i++) { for (int i = 0; i < engine->engineConfigurationPtr->specs.cylindersCount; i++) {
enginePins.injectors[i].setLow(); enginePins.injectors[i].setLow();
} }
} }

View File

@ -100,7 +100,7 @@ void initEngineEmulator(Logging *sharedLogger, Engine *engine) {
#if EFI_POTENTIOMETER #if EFI_POTENTIOMETER
#if HAL_USE_SPI || defined(__DOXYGEN__) #if HAL_USE_SPI || defined(__DOXYGEN__)
initPotentiometers(sharedLogger, &engine->engineConfiguration->bc); initPotentiometers(sharedLogger, &engine->engineConfigurationPtr->bc);
#endif /* HAL_USE_SPI */ #endif /* HAL_USE_SPI */
#endif /* EFI_POTENTIOMETER */ #endif /* EFI_POTENTIOMETER */

View File

@ -323,7 +323,7 @@ void showBor(void) {
void initHardware(Logging *l) { void initHardware(Logging *l) {
efiAssertVoid(CUSTOM_IH_STACK, getRemainingStack(chThdGetSelfX()) > 256, "init h"); efiAssertVoid(CUSTOM_IH_STACK, getRemainingStack(chThdGetSelfX()) > 256, "init h");
sharedLogger = l; sharedLogger = l;
engine_configuration_s *engineConfiguration = engine->engineConfiguration; engine_configuration_s *engineConfiguration = engine->engineConfigurationPtr;
efiAssertVoid(CUSTOM_EC_NULL, engineConfiguration!=NULL, "engineConfiguration"); efiAssertVoid(CUSTOM_EC_NULL, engineConfiguration!=NULL, "engineConfiguration");
board_configuration_s *boardConfiguration = &engineConfiguration->bc; board_configuration_s *boardConfiguration = &engineConfiguration->bc;

View File

@ -31,10 +31,11 @@ EngineTestHelper::EngineTestHelper(engine_type_e engineType) : engine (&persiste
schedulingQueue.clear(); schedulingQueue.clear();
enginePins.reset(); enginePins.reset();
Engine *engine = &this->engine;
engine_configuration_s *engineConfiguration = engine->engineConfiguration;
board_configuration_s * boardConfiguration = &persistentConfig.engineConfiguration.bc;
persistent_config_s *config = &persistentConfig; persistent_config_s *config = &persistentConfig;
Engine *engine = &this->engine;
engine->setConfig(config);
engine_configuration_s *engineConfiguration = engine->engineConfigurationPtr;
board_configuration_s * boardConfiguration = &persistentConfig.engineConfiguration.bc;
setCurveValue(config->cltFuelCorrBins, config->cltFuelCorr, CLT_CURVE_SIZE, -40, 1.5); setCurveValue(config->cltFuelCorrBins, config->cltFuelCorr, CLT_CURVE_SIZE, -40, 1.5);
setCurveValue(config->cltFuelCorrBins, config->cltFuelCorr, CLT_CURVE_SIZE, -30, 1.5); setCurveValue(config->cltFuelCorrBins, config->cltFuelCorr, CLT_CURVE_SIZE, -30, 1.5);
@ -57,7 +58,7 @@ EngineTestHelper::EngineTestHelper(engine_type_e engineType) : engine (&persiste
resetConfigurationExt(NULL, engineType PASS_ENGINE_PARAMETER_SUFFIX); resetConfigurationExt(NULL, engineType PASS_ENGINE_PARAMETER_SUFFIX);
prepareShapes(PASS_ENGINE_PARAMETER_SIGNATURE); prepareShapes(PASS_ENGINE_PARAMETER_SIGNATURE);
engine->engineConfiguration->mafAdcChannel = (adc_channel_e)TEST_MAF_CHANNEL; engine->engineConfigurationPtr->mafAdcChannel = (adc_channel_e)TEST_MAF_CHANNEL;
initThermistors(NULL PASS_ENGINE_PARAMETER_SUFFIX); initThermistors(NULL PASS_ENGINE_PARAMETER_SUFFIX);
// this is needed to have valid CLT and IAT. // this is needed to have valid CLT and IAT.
@ -76,8 +77,8 @@ void EngineTestHelper::fireRise(int delayMs) {
} }
void EngineTestHelper::firePrimaryTriggerRise() { void EngineTestHelper::firePrimaryTriggerRise() {
board_configuration_s * boardConfiguration = &engine.engineConfiguration->bc; board_configuration_s * boardConfiguration = &engine.engineConfigurationPtr->bc;
engine.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_RISING, &engine, engine.engineConfiguration, &persistentConfig, boardConfiguration); engine.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_RISING, &engine, engine.engineConfigurationPtr, &persistentConfig, boardConfiguration);
} }
void EngineTestHelper::fireFall(int delayMs) { void EngineTestHelper::fireFall(int delayMs) {
@ -86,8 +87,8 @@ void EngineTestHelper::fireFall(int delayMs) {
} }
void EngineTestHelper::firePrimaryTriggerFall() { void EngineTestHelper::firePrimaryTriggerFall() {
board_configuration_s * boardConfiguration = &engine.engineConfiguration->bc; board_configuration_s * boardConfiguration = &engine.engineConfigurationPtr->bc;
engine.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_FALLING, &engine, engine.engineConfiguration, &persistentConfig, boardConfiguration); engine.triggerCentral.handleShaftSignal(SHAFT_PRIMARY_FALLING, &engine, engine.engineConfigurationPtr, &persistentConfig, boardConfiguration);
} }
void EngineTestHelper::fireTriggerEventsWithDuration(int durationMs) { void EngineTestHelper::fireTriggerEventsWithDuration(int durationMs) {

View File

@ -78,7 +78,7 @@ class Engine;
* if engine is in scope * if engine is in scope
*/ */
#define EXPAND_Engine \ #define EXPAND_Engine \
engine_configuration_s *engineConfiguration = engine->engineConfiguration; \ engine_configuration_s *engineConfiguration = engine->engineConfigurationPtr; \
persistent_config_s *config = engine->config; \ persistent_config_s *config = engine->config; \
board_configuration_s *boardConfiguration = &engineConfiguration->bc; board_configuration_s *boardConfiguration = &engineConfiguration->bc;

View File

@ -32,8 +32,8 @@ void testCoastingFuelCut() {
// set cranking threshold // set cranking threshold
engineConfiguration->cranking.rpm = 999; engineConfiguration->cranking.rpm = 999;
// configure TPS // configure TPS
eth.engine.engineConfiguration->tpsMin = 0; eth.engine.engineConfigurationPtr->tpsMin = 0;
eth.engine.engineConfiguration->tpsMax = 10; eth.engine.engineConfigurationPtr->tpsMax = 10;
// basic engine setup // basic engine setup
setupSimpleTestEngineWithMafAndTT_ONE_trigger(&eth); setupSimpleTestEngineWithMafAndTT_ONE_trigger(&eth);

View File

@ -61,8 +61,8 @@ void testFuelMap(void) {
assertEqualsM("lag", 1.04, getInjectorLag(12 PASS_ENGINE_PARAMETER_SUFFIX)); assertEqualsM("lag", 1.04, getInjectorLag(12 PASS_ENGINE_PARAMETER_SUFFIX));
for (int i = 0; i < VBAT_INJECTOR_CURVE_SIZE; i++) { for (int i = 0; i < VBAT_INJECTOR_CURVE_SIZE; i++) {
eth.engine.engineConfiguration->injector.battLagCorrBins[i] = i; eth.engine.engineConfigurationPtr->injector.battLagCorrBins[i] = i;
eth.engine.engineConfiguration->injector.battLagCorr[i] = 0.5 + 2 * i; eth.engine.engineConfigurationPtr->injector.battLagCorr[i] = 0.5 + 2 * i;
} }
eth.engine.updateSlowSensors(PASS_ENGINE_PARAMETER_SIGNATURE); eth.engine.updateSlowSensors(PASS_ENGINE_PARAMETER_SIGNATURE);

View File

@ -258,8 +258,8 @@ void testStartupFuelPumping(void) {
engine->rpmCalculator.mockRpm = 0; engine->rpmCalculator.mockRpm = 0;
engine->engineConfiguration->tpsMin = 0; engine->engineConfigurationPtr->tpsMin = 0;
engine->engineConfiguration->tpsMax = 10; engine->engineConfigurationPtr->tpsMax = 10;
setMockTpsPosition(6); setMockTpsPosition(6);
sf.update(PASS_ENGINE_PARAMETER_SIGNATURE); sf.update(PASS_ENGINE_PARAMETER_SIGNATURE);
@ -834,7 +834,7 @@ void testFuelSchedulerBug299smallAndMedium(void) {
// { // {
// scheduling_s *ev = schedulingQueue.getForUnitText(9); // scheduling_s *ev = schedulingQueue.getForUnitText(9);
// assertEqualsM("rev cnt#4#2", 5, engine->rpmCalculator.getRevolutionCounter()); // assertEqualsM("rev cnt#4#2", 5, engine->rpmCalculator.getRevolutionCounter());
// assertTrueM("down 50", ev == &engine->engineConfiguration2->fuelActuators[2].signalPair[1].signalTimerDown); // assertTrueM("down 50", ev == &engine->engineConfigurationPtr2->fuelActuators[2].signalPair[1].signalTimerDown);
// } // }

View File

@ -35,7 +35,7 @@ static void fireEvent(EngineTestHelper *eth, bool isRise) {
// but for noise filtering, both edges should be processed, so we fire falling events too // but for noise filtering, both edges should be processed, so we fire falling events too
if (isRise) if (isRise)
eth->firePrimaryTriggerRise(); eth->firePrimaryTriggerRise();
else if (eth->engine.engineConfiguration->bc.useNoiselessTriggerDecoder) else if (eth->engine.engineConfigurationPtr->bc.useNoiselessTriggerDecoder)
eth->firePrimaryTriggerFall(); eth->firePrimaryTriggerFall();
} }