mirror of https://github.com/rusefi/rusefi-1.git
refactoring trigger sync layer
This commit is contained in:
parent
c07bd06dec
commit
5138d5c3c8
|
@ -124,7 +124,7 @@ gap=1.43/0.71
|
||||||
|
|
||||||
// these values only work well for 'useFronOnly' mode!!!
|
// these values only work well for 'useFronOnly' mode!!!
|
||||||
s->setTriggerSynchronizationGap2(0.75, 1.5);
|
s->setTriggerSynchronizationGap2(0.75, 1.5);
|
||||||
s->setSecondTriggerSynchronizationGap2(0.65, 1.25);
|
s->setTriggerSynchronizationGap3(1, 0.65, 1.25);
|
||||||
|
|
||||||
float EPS_ANGLE = 0.3;
|
float EPS_ANGLE = 0.3;
|
||||||
|
|
||||||
|
|
|
@ -108,7 +108,7 @@ void initializeSubaru7_6(TriggerShape *s DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
s->addEvent2(720, T_PRIMARY, TV_FALL PASS_ENGINE_PARAMETER_SUFFIX);
|
s->addEvent2(720, T_PRIMARY, TV_FALL PASS_ENGINE_PARAMETER_SUFFIX);
|
||||||
|
|
||||||
s->setTriggerSynchronizationGap2(4.9, 9);
|
s->setTriggerSynchronizationGap2(4.9, 9);
|
||||||
s->setSecondTriggerSynchronizationGap2(0.6, 1.25);
|
s->setTriggerSynchronizationGap3(1, 0.6, 1.25);
|
||||||
|
|
||||||
s->isSynchronizationNeeded = true;
|
s->isSynchronizationNeeded = true;
|
||||||
|
|
||||||
|
|
|
@ -440,37 +440,38 @@ void setToothedWheelConfiguration(TriggerShape *s, int total, int skipped,
|
||||||
}
|
}
|
||||||
|
|
||||||
void TriggerShape::setTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo) {
|
void TriggerShape::setTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo) {
|
||||||
|
setTriggerSynchronizationGap3(0, syncRatioFrom, syncRatioTo);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TriggerShape::setTriggerSynchronizationGap3(int index, float syncRatioFrom, float syncRatioTo) {
|
||||||
isSynchronizationNeeded = true;
|
isSynchronizationNeeded = true;
|
||||||
this->syncronizationRatioFrom[0] = syncRatioFrom;
|
this->syncronizationRatioFrom[index] = syncRatioFrom;
|
||||||
this->syncronizationRatioTo[0] = syncRatioTo;
|
this->syncronizationRatioTo[index] = syncRatioTo;
|
||||||
this->syncRatioAvg = (int)efiRound((syncRatioFrom + syncRatioTo) * 0.5f, 1.0f);
|
if (index == 0) {
|
||||||
|
// we have a special case here - only sync with one gap has this feature
|
||||||
|
this->syncRatioAvg = (int)efiRound((syncRatioFrom + syncRatioTo) * 0.5f, 1.0f);
|
||||||
|
}
|
||||||
|
|
||||||
#if EFI_UNIT_TEST || defined(__DOXYGEN__)
|
#if EFI_UNIT_TEST || defined(__DOXYGEN__)
|
||||||
if (printTriggerDebug) {
|
if (printTriggerDebug) {
|
||||||
printf("setTriggerSynchronizationGap2 %.2f %.2f\r\n", syncRatioFrom, syncRatioTo);
|
printf("setTriggerSynchronizationGap3 %d %.2f %.2f\r\n", index, syncRatioFrom, syncRatioTo);
|
||||||
}
|
}
|
||||||
#endif /* EFI_UNIT_TEST */
|
#endif /* EFI_UNIT_TEST */
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TriggerShape::setTriggerSynchronizationGap(float syncRatio) {
|
void TriggerShape::setTriggerSynchronizationGap(float syncRatio) {
|
||||||
setTriggerSynchronizationGap2(syncRatio * 0.75f, syncRatio * 1.25f);
|
setTriggerSynchronizationGap3(0, syncRatio * 0.75f, syncRatio * 1.25f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TriggerShape::setSecondTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo) {
|
void TriggerShape::setSecondTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo) {
|
||||||
isSynchronizationNeeded = true;
|
setTriggerSynchronizationGap3(1, syncRatioFrom, syncRatioTo);
|
||||||
this->syncronizationRatioFrom[1] = syncRatioFrom;
|
|
||||||
this->syncronizationRatioTo[1] = syncRatioTo;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TriggerShape::setThirdTriggerSynchronizationGap(float syncRatio) {
|
void TriggerShape::setThirdTriggerSynchronizationGap(float syncRatio) {
|
||||||
setThirdTriggerSynchronizationGap2(syncRatio * 0.75f, syncRatio * 1.25f);
|
setTriggerSynchronizationGap3(2, syncRatio * 0.75f, syncRatio * 1.25f);
|
||||||
}
|
|
||||||
|
|
||||||
void TriggerShape::setThirdTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo) {
|
|
||||||
isSynchronizationNeeded = true;
|
|
||||||
this->syncronizationRatioFrom[2] = syncRatioFrom;
|
|
||||||
this->syncronizationRatioTo[2] = syncRatioTo;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TriggerShape::setSecondTriggerSynchronizationGap(float syncRatio) {
|
void TriggerShape::setSecondTriggerSynchronizationGap(float syncRatio) {
|
||||||
setSecondTriggerSynchronizationGap2(syncRatio * 0.75f, syncRatio * 1.25f);
|
setTriggerSynchronizationGap3(1, syncRatio * 0.75f, syncRatio * 1.25f);
|
||||||
}
|
}
|
||||||
|
|
|
@ -178,11 +178,11 @@ public:
|
||||||
|
|
||||||
void initialize(operation_mode_e operationMode, bool needSecondTriggerInput);
|
void initialize(operation_mode_e operationMode, bool needSecondTriggerInput);
|
||||||
void setTriggerSynchronizationGap(float syncRatio);
|
void setTriggerSynchronizationGap(float syncRatio);
|
||||||
|
void setTriggerSynchronizationGap3(int index, float syncRatioFrom, float syncRatioTo);
|
||||||
void setTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo);
|
void setTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo);
|
||||||
void setSecondTriggerSynchronizationGap(float syncRatio);
|
void setSecondTriggerSynchronizationGap(float syncRatio);
|
||||||
void setSecondTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo);
|
void setSecondTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo);
|
||||||
void setThirdTriggerSynchronizationGap(float syncRatio);
|
void setThirdTriggerSynchronizationGap(float syncRatio);
|
||||||
void setThirdTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo);
|
|
||||||
/**
|
/**
|
||||||
* this one is per CRANKshaft revolution
|
* this one is per CRANKshaft revolution
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue