only: NICE! these values actually mean something!

This commit is contained in:
Andrey 2024-02-28 22:53:44 -05:00
parent ef0269e674
commit b04b6a9251
5 changed files with 18 additions and 4 deletions

View File

@ -12,7 +12,7 @@ void setDefaultCranking() {
// Ignition
engineConfiguration->ignitionDwellForCrankingMs = DEFAULT_CRANKING_DWELL_MS;
engineConfiguration->crankingTimingAngle = 6;
engineConfiguration->crankingTimingAngle = DEFAULT_CRANKING_ANGLE;
// IAC
engineConfiguration->crankingIACposition = 50;

View File

@ -12,6 +12,7 @@ void setGdiWallWetting();
void setInline4();
#define DEFAULT_CRANKING_DWELL_MS 6
#define DEFAULT_CRANKING_ANGLE 6
void setPPSInputs(adc_channel_e pps1, adc_channel_e pps2);
void setPPSCalibration(float primaryUp, float primaryDown, float secondaryUp, float secondaryDown);

View File

@ -302,7 +302,7 @@ scheduling_s * EngineTestHelper::assertEvent5(const char *msg, int index, void *
scheduling_s *event = executor->getForUnitTest(index);
assertEqualsM4(msg, " callback up/down", (void*)event->action.getCallback() == (void*) callback, 1);
efitimeus_t start = getTimeNowUs();
assertEqualsM4(msg, " timestamp", expectedTimestamp, event->momentX - start);
assertEqualsM2(msg, expectedTimestamp, event->momentX - start, /*1us precision to address rounding etc*/1);
return event;
}

View File

@ -38,6 +38,13 @@ public:
// convert ms time to angle at current RPM
angle_t timeToAngle(float timeMs);
float angleToTimeUs(angle_t angle) {
return angle * engine.rpmCalculator.oneDegreeUs;
}
float angleToTimeMs(angle_t angle) {
return US2MS(angleToTimeUs(angle));
}
warningBuffer_t *recentWarnings();
int getWarningCounter();

View File

@ -10,6 +10,8 @@
TEST(issues, issueOneCylinderSpecialCase968) {
EngineTestHelper eth(engine_type_e::GY6_139QMB);
angle_t timing = 4;
engineConfiguration->crankingTimingAngle = timing;
setTable(config->injectionPhase, -180.0f);
engineConfiguration->isFasterEngineSpinUpEnabled = false;
engine->tdcMarkEnabled = false;
@ -29,10 +31,14 @@ TEST(issues, issueOneCylinderSpecialCase968) {
eth.fireTriggerEvents2(/* count */ 1, 50 /* ms */);
eth.assertRpm(600, "RPM");
ASSERT_EQ(engine->triggerCentral.currentEngineDecodedPhase, 90 + Gy6139_globalTriggerAngleOffset);
ASSERT_EQ(engine->engineState.timingAdvance[0], timing);
angle_t expectedAngle = 180 - Gy6139_globalTriggerAngleOffset + timing;
int expectedDeltaTimeUs = eth.angleToTimeUs(expectedAngle);
ASSERT_EQ( 2, engine->executor.size()) << "first revolution(s)";
eth.assertEvent5("spark up#0", 0, (void*)turnSparkPinHigh, -45167);
eth.assertEvent5("spark down#0", 1, (void*)fireSparkAndPrepareNextSchedule, -45167 + 1000 * DEFAULT_CRANKING_DWELL_MS);
eth.assertEvent5("spark up#0", 0, (void*)turnSparkPinHigh, -expectedDeltaTimeUs - MS2US(DEFAULT_CRANKING_DWELL_MS));
eth.assertEvent5("spark down#0", 1, (void*)fireSparkAndPrepareNextSchedule, -expectedDeltaTimeUs);
eth.fireTriggerEvents2(/* count */ 1, 50 /* ms */);