auto-sync
This commit is contained in:
parent
cd6abe183f
commit
bb62a7ce98
|
@ -35,9 +35,6 @@ EXTERN_ENGINE;
|
||||||
|
|
||||||
static histogram_s triggerCallback;
|
static histogram_s triggerCallback;
|
||||||
|
|
||||||
// we need this initial to have not_running at first invocation
|
|
||||||
static volatile efitime_t previousShaftEventTimeNt = (efitimems_t) -10 * US2NT(US_PER_SECOND_LL);
|
|
||||||
|
|
||||||
static Logging *logger;
|
static Logging *logger;
|
||||||
|
|
||||||
efitime_t getCrankEventCounter(DECLARE_ENGINE_PARAMETER_F) {
|
efitime_t getCrankEventCounter(DECLARE_ENGINE_PARAMETER_F) {
|
||||||
|
@ -94,6 +91,9 @@ void hwHandleShaftSignal(trigger_event_e signal) {
|
||||||
|
|
||||||
TriggerCentral::TriggerCentral() {
|
TriggerCentral::TriggerCentral() {
|
||||||
nowNt = 0;
|
nowNt = 0;
|
||||||
|
// we need this initial to have not_running at first invocation
|
||||||
|
previousShaftEventTimeNt = (efitimems_t) -10 * US2NT(US_PER_SECOND_LL);
|
||||||
|
|
||||||
memset(hwEventCounters, 0, sizeof(hwEventCounters));
|
memset(hwEventCounters, 0, sizeof(hwEventCounters));
|
||||||
clearCallbacks(&triggerListeneres);
|
clearCallbacks(&triggerListeneres);
|
||||||
triggerState.reset();
|
triggerState.reset();
|
||||||
|
|
|
@ -30,6 +30,7 @@ public:
|
||||||
void resetCounters();
|
void resetCounters();
|
||||||
TriggerState triggerState;
|
TriggerState triggerState;
|
||||||
efitick_t nowNt;
|
efitick_t nowNt;
|
||||||
|
volatile efitime_t previousShaftEventTimeNt;
|
||||||
private:
|
private:
|
||||||
IntListenerArray triggerListeneres;
|
IntListenerArray triggerListeneres;
|
||||||
int hwEventCounters[HW_EVENT_TYPES];
|
int hwEventCounters[HW_EVENT_TYPES];
|
||||||
|
|
|
@ -107,7 +107,7 @@ static void assertTriggerPosition(event_trigger_position_s *position, int eventI
|
||||||
assertEqualsM("angleOffset", angleOffset, position->angleOffset);
|
assertEqualsM("angleOffset", angleOffset, position->angleOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test1995FordInline6TriggerDecoder(void) {
|
void test1995FordInline6TriggerDecoder(void) {
|
||||||
printf("*************************************************** test1995FordInline6TriggerDecoder\r\n");
|
printf("*************************************************** test1995FordInline6TriggerDecoder\r\n");
|
||||||
|
|
||||||
assertEqualsM("triggerIndex ", 0, getTheAngle(FORD_INLINE_6_1995));
|
assertEqualsM("triggerIndex ", 0, getTheAngle(FORD_INLINE_6_1995));
|
||||||
|
@ -121,6 +121,10 @@ static void test1995FordInline6TriggerDecoder(void) {
|
||||||
|
|
||||||
assertEqualsM("triggerShapeSynchPointIndex", 0, shape->getTriggerShapeSynchPointIndex());
|
assertEqualsM("triggerShapeSynchPointIndex", 0, shape->getTriggerShapeSynchPointIndex());
|
||||||
|
|
||||||
|
// this is needed to have valid CLT and IAT. todo: extract method
|
||||||
|
initThermistors(NULL PASS_ENGINE_PARAMETER);
|
||||||
|
engine->updateSlowSensors(PASS_ENGINE_PARAMETER_F);
|
||||||
|
|
||||||
event_trigger_position_s position;
|
event_trigger_position_s position;
|
||||||
assertEqualsM("globalTriggerAngleOffset", 0, engineConfiguration->globalTriggerAngleOffset);
|
assertEqualsM("globalTriggerAngleOffset", 0, engineConfiguration->globalTriggerAngleOffset);
|
||||||
findTriggerPosition(&position, 0 PASS_ENGINE_PARAMETER);
|
findTriggerPosition(&position, 0 PASS_ENGINE_PARAMETER);
|
||||||
|
@ -132,14 +136,22 @@ static void test1995FordInline6TriggerDecoder(void) {
|
||||||
findTriggerPosition(&position, 360 PASS_ENGINE_PARAMETER);
|
findTriggerPosition(&position, 360 PASS_ENGINE_PARAMETER);
|
||||||
assertTriggerPosition(&position, 6, 0);
|
assertTriggerPosition(&position, 6, 0);
|
||||||
|
|
||||||
|
eth.initTriggerShapeAndRpmCalculator();
|
||||||
|
eth.engine.triggerCentral.addEventListener(mainTriggerCallback, "main loop", ð.engine);
|
||||||
|
|
||||||
|
eth.engine.periodicFastCallback(PASS_ENGINE_PARAMETER_F);
|
||||||
|
// eth.fireTriggerEvents(48);
|
||||||
|
// assertEquals(2000, eth.engine.rpmCalculator.rpmValue);
|
||||||
|
// eth.engine.periodicFastCallback(PASS_ENGINE_PARAMETER_F);
|
||||||
|
// eth.fireTriggerEvents(48);
|
||||||
|
|
||||||
IgnitionEventList *ecl = ð.ec2.ignitionEvents[0];
|
IgnitionEventList *ecl = ð.ec2.ignitionEvents[0];
|
||||||
assertEqualsM("ignition events size", 6, ecl->size);
|
assertEqualsM("ignition events size", 6, ecl->size);
|
||||||
assertEqualsM("event index", 0, ecl->elements[0].dwellPosition.eventIndex);
|
assertEqualsM("event index", 0, ecl->elements[0].dwellPosition.eventIndex);
|
||||||
assertEquals(0, ecl->elements[0].dwellPosition.angleOffset);
|
assertEqualsM("angle offset#1", 0, ecl->elements[0].dwellPosition.angleOffset);
|
||||||
|
|
||||||
assertEqualsM("event index", 10, ecl->elements[5].dwellPosition.eventIndex);
|
assertEqualsM("event index", 10, ecl->elements[5].dwellPosition.eventIndex);
|
||||||
assertEquals(0, ecl->elements[5].dwellPosition.angleOffset);
|
assertEqualsM("angle offset#2", 0, ecl->elements[5].dwellPosition.angleOffset);
|
||||||
|
|
||||||
TriggerState state;
|
TriggerState state;
|
||||||
|
|
||||||
|
@ -278,6 +290,7 @@ extern engine_pins_s enginePins;
|
||||||
|
|
||||||
void testRpmCalculator(void) {
|
void testRpmCalculator(void) {
|
||||||
printf("*************************************************** testRpmCalculator\r\n");
|
printf("*************************************************** testRpmCalculator\r\n");
|
||||||
|
timeNow = 0;
|
||||||
|
|
||||||
EngineTestHelper eth(FORD_INLINE_6_1995);
|
EngineTestHelper eth(FORD_INLINE_6_1995);
|
||||||
EXPAND_EngineTestHelper;
|
EXPAND_EngineTestHelper;
|
||||||
|
|
|
@ -10,5 +10,6 @@
|
||||||
|
|
||||||
void testTriggerDecoder(void);
|
void testTriggerDecoder(void);
|
||||||
void testRpmCalculator(void);
|
void testRpmCalculator(void);
|
||||||
|
void test1995FordInline6TriggerDecoder(void);
|
||||||
|
|
||||||
#endif /* TEST_TRIGGER_DECODER_H_ */
|
#endif /* TEST_TRIGGER_DECODER_H_ */
|
||||||
|
|
Loading…
Reference in New Issue