auto-sync

This commit is contained in:
rusEfi 2014-11-29 23:03:06 -06:00
parent b9c2e7a107
commit 4afecfc1e8
10 changed files with 54 additions and 33 deletions

View File

@ -198,8 +198,8 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat
engineConfiguration->vbattDividerCoeff = ((float) (8.2 + 33)) / 8.2 * 2;
// Frankenso low out #1: PE6
// Frankenso low out #2: PE5 coolant fan relay
// Frankenso low out #3: PD7
// Frankenso low out #2: PE5
// Frankenso low out #3: PD7 coolant fan relay
// Frankenso low out #4: PC13 idle valve solenoid
// Frankenso low out #5: PE3 fuel pump relay
// Frankenso low out #6: PE4
@ -210,7 +210,7 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat
// Frankenso low out #11: PB8 injector #1
// Frankenso low out #12: PB7 injector #4
boardConfiguration->fanPin = GPIOE_6;
boardConfiguration->fanPin = GPIOD_7;
boardConfiguration->injectionPins[0] = GPIOB_8;
boardConfiguration->injectionPins[1] = GPIOB_9;
@ -246,12 +246,13 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat
engineConfiguration->map.sensor.hwChannel = EFI_ADC_0;
boardConfiguration->adcHwChannelEnabled[0] = ADC_FAST; // ADC0 - PA0 - MAP
boardConfiguration->adcHwChannelEnabled[1] = ADC_SLOW; // TPS
boardConfiguration->adcHwChannelEnabled[1] = ADC_SLOW;
boardConfiguration->adcHwChannelEnabled[4] = ADC_SLOW;
boardConfiguration->adcHwChannelEnabled[11] = ADC_SLOW; // IAT
boardConfiguration->adcHwChannelEnabled[12] = ADC_SLOW; // CLT
boardConfiguration->adcHwChannelEnabled[13] = ADC_SLOW; // AFR
boardConfiguration->adcHwChannelEnabled[14] = ADC_SLOW; // VBatt
boardConfiguration->adcHwChannelEnabled[15] = ADC_SLOW; // TPS

View File

@ -126,18 +126,18 @@ void setDefaultConfiguration(engine_configuration_s *engineConfiguration, board_
engineConfiguration->cltFuelCorr[i] = 1; // this correction is a multiplier
}
// 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, -20, 1.42);
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -10, 1.36);
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 0, 1.28);
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 10, 1.19);
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 20, 1.12);
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 30, 1.10);
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 40, 1.06);
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 50, 1.06);
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 60, 1.03);
// setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 70, 1.01);
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, -20, 1.42);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -10, 1.36);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 0, 1.28);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 10, 1.19);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 20, 1.12);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 30, 1.10);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 40, 1.06);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 50, 1.06);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 60, 1.03);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 70, 1.01);
for (int i = 0; i < VBAT_INJECTOR_CURVE_SIZE; i++) {
engineConfiguration->battInjectorLagCorrBins[i] = 12 - VBAT_INJECTOR_CURVE_SIZE / 2 + i;
@ -170,7 +170,6 @@ void setDefaultConfiguration(engine_configuration_s *engineConfiguration, board_
engineConfiguration->rpmHardLimit = 7000;
engineConfiguration->crankingSettings.crankingRpm = 550;
engineConfiguration->crankingFuelCoef[0] = 5; // base cranking fuel adjustment coefficient
engineConfiguration->crankingFuelBins[0] = -20; // temperature in C
engineConfiguration->crankingFuelCoef[1] = 3.7;

View File

@ -153,6 +153,8 @@ static void fanRelayControl(void) {
}
if (isCurrentlyOn != newValue) {
if (isRunningBenchTest())
return; // let's not mess with bench testing
scheduleMsg(&logger, "FAN relay: %s", newValue ? "ON" : "OFF");
setOutputPinValue(FAN_RELAY, newValue);
}
@ -209,6 +211,8 @@ static void setPinState(io_pin_e ioPin, LEElement *element, Engine *engine) {
} else {
int value = calc.getValue2(element, engine);
if (value != getOutputPinValue(ioPin)) {
if (isRunningBenchTest())
return; // let's not mess with bench testing
scheduleMsg(&logger, "setting %s %s", getIo_pin_e(ioPin), boolToString(value));
setOutputPinValue(ioPin, value);
}

View File

@ -33,7 +33,6 @@
static Logging logger;
EXTERN_ENGINE;
extern board_configuration_s *boardConfiguration;
static bool_t isRunningBench = false;
@ -49,14 +48,10 @@ void assertCylinderId(int cylinderId, const char *msg) {
// we are here only in case of a fatal issue - at this point it is fine to make some blocking i-o
//scheduleSimpleMsg(&logger, "cid=", cylinderId);
print("ERROR [%s] cid=%d\r\n", msg, cylinderId);
efiAssertVoid(FALSE, "Cylinder ID");
efiAssertVoid(false, "Cylinder ID");
}
}
///**
// * This method schedules asynchronous fuel squirt
// */
/**
* @param cylinderId - from 1 to NUMBER_OF_CYLINDERS
*/
@ -138,7 +133,7 @@ static void fanbench(Engine *engine) {
brainPin = boardConfiguration->fanPin;
pinX = FAN_RELAY;
delayMs = 1000;
delayMs = 0;
onTime = 3000;
offTime = 0;
count = 1;
@ -150,7 +145,7 @@ static void fuelpumpbench(void) {
brainPin = boardConfiguration->fuelPumpPin;
pinX = FUEL_PUMP_RELAY;
delayMs = 1000;
delayMs = 0;
onTime = 3000;
offTime = 0;
count = 1;

View File

@ -1,5 +1,5 @@
// This file was generated by Version2Header
// Wed Nov 26 17:54:29 EST 2014
// Sat Nov 29 23:31:29 EST 2014
#ifndef VCS_VERSION
#define VCS_VERSION "5615"
#define VCS_VERSION "5638"
#endif

View File

@ -18,6 +18,22 @@ EngineTestHelper::EngineTestHelper(engine_type_e engineType) {
engine.engineConfiguration = &persistentConfig.engineConfiguration;
ec2.engineConfiguration = &persistentConfig.engineConfiguration;
engine_configuration_s *engineConfiguration = ec;
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, -20, 1.42);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, -10, 1.36);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 0, 1.28);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 10, 1.19);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 20, 1.12);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 30, 1.10);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 40, 1.06);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 50, 1.06);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 60, 1.03);
setTableValue(engineConfiguration->cltFuelCorrBins, engineConfiguration->cltFuelCorr, CLT_CURVE_SIZE, 70, 1.01);
engine.engineConfiguration2 = &ec2;
prepareFuelMap(engine.engineConfiguration);

View File

@ -50,14 +50,14 @@ uint64_t getTimeNowNt(void) {
return getTimeNowUs() * US_TO_NT_MULTIPLIER;
}
void assertEqualsM(const char *msg, float expected, float actual) {
void assertEqualsM2(const char *msg, float expected, float actual, float EPS) {
if (cisnan(actual) && !cisnan(expected)) {
printf("Assert failed: %s %.4f while expected %.4f\r\n", msg, actual, expected);
exit(-1);
}
float delta = absF(actual - expected);
if (delta > 0.0001) {
if (delta > EPS) {
printf("delta: %.7f\r\n", delta);
printf("Unexpected: %s %.4f while expected %.4f\r\n", msg, actual, expected);
exit(-1);
@ -65,6 +65,11 @@ void assertEqualsM(const char *msg, float expected, float actual) {
printf("Validated %s: %f\r\n", msg, expected);
}
void assertEqualsM(const char *msg, float expected, float actual) {
assertEqualsM2(msg, expected, actual, 0.0001);
}
void assertEquals(float expected, float actual) {
assertEqualsM("", expected, actual);
}

View File

@ -39,6 +39,7 @@ void print(const char *fmt, ...);
#define chDbgCheck(x, y) chDbgAssert(x, y, NULL)
void assertEqualsM2(const char *msg, float expected, float actual, float EPS);
void assertEqualsM(const char *msg, float expected, float actual);
void assertEquals(float expected, float actual);
void assertTrue(float actual);

View File

@ -59,7 +59,7 @@ void testFuelMap(void) {
// because all the correction tables are zero
printf("*************************************************** getRunningFuel 1\r\n");
float baseFuel = getBaseTableFuel(eth.engine.engineConfiguration, 5, getEngineLoadT(PASS_ENGINE_PARAMETER_F));
assertEqualsM("base fuel", 5.0, getRunningFuel(baseFuel, 5 PASS_ENGINE_PARAMETER));
assertEqualsM("base fuel", 5.05, getRunningFuel(baseFuel, 5 PASS_ENGINE_PARAMETER));
printf("*************************************************** setting IAT table\r\n");
for (int i = 0; i < IAT_CURVE_SIZE; i++) {

View File

@ -432,7 +432,7 @@ static void testRpmCalculator(void) {
assertEqualsM("queue size 3", 6, schedulingQueue.size());
assertEqualsM("ev 3", 259777, schedulingQueue.getForUnitText(0)->momentX);
assertEquals(259277, schedulingQueue.getForUnitText(1)->momentX);
assertEqualsM("ev 5", 261333, schedulingQueue.getForUnitText(2)->momentX);
assertEqualsM2("ev 5", 261362, schedulingQueue.getForUnitText(2)->momentX, 2);
assertEqualsM("3/3", 258333, schedulingQueue.getForUnitText(3)->momentX);
schedulingQueue.clear();
@ -458,7 +458,7 @@ static void testRpmCalculator(void) {
assertEqualsM("queue size 6", 6, schedulingQueue.size());
assertEqualsM("6/0", 286444, schedulingQueue.getForUnitText(0)->momentX);
assertEqualsM("6/1", 285944, schedulingQueue.getForUnitText(1)->momentX);
assertEqualsM("6/2", 288000, schedulingQueue.getForUnitText(2)->momentX);
assertEqualsM2("6/2", 288029, schedulingQueue.getForUnitText(2)->momentX, 1);
schedulingQueue.clear();
timeNow += 5000;
@ -471,7 +471,7 @@ static void testRpmCalculator(void) {
assertEqualsM("queue size 8", 6, schedulingQueue.size());
assertEqualsM("8/0", 299777, schedulingQueue.getForUnitText(0)->momentX);
assertEqualsM("8/1", 299277, schedulingQueue.getForUnitText(1)->momentX);
assertEqualsM("8/2", 301333, schedulingQueue.getForUnitText(2)->momentX);
assertEqualsM2("8/2", 301362, schedulingQueue.getForUnitText(2)->momentX, 1);
assertEqualsM("8/3", 298333, schedulingQueue.getForUnitText(3)->momentX);
schedulingQueue.clear();