16 return operationMode ==
TWO_STROKE ? 360 : FOUR_STROKE_ENGINE_CYCLE;
23 float toothWidth,
float offset,
float engineCycle,
float filterLeft,
float filterRight) {
27 float oneTooth = engineCycle / totalTeethCount;
29 for (
int i = 0; i < totalTeethCount - skippedCount - 1; i++) {
30 float angleDown = oneTooth * (i + (1 - toothWidth));
31 float angleUp = oneTooth * (i + 1);
36 float angleDown = oneTooth * (totalTeethCount - skippedCount - 1 + (1 - toothWidth));
44 if (totalTeethCount <= 0) {
58 if (totalTeethCount > 6 && skippedCount > 0) {
67 NO_LEFT_FILTER, NO_RIGHT_FILTER);
87 const float crankW = 360 / 3 / 2;
123 float engineCycle = FOUR_STROKE_ENGINE_CYCLE;
128 float toothWidth = 3 / 20.0;
131 NO_LEFT_FILTER, 720 - 39);
154 for (
size_t i = 0; i < 2; i++) {
163 float width = 360 / count;
void firmwareError(ObdCode code, const char *fmt,...)
@ CUSTOM_OBD_TRIGGER_WAVEFORM
@ FOUR_STROKE_TWELVE_TIMES_CRANK_SENSOR
@ FOUR_STROKE_THREE_TIMES_CRANK_SENSOR
@ FOUR_STROKE_CRANK_SENSOR
@ FOUR_STROKE_SIX_TIMES_CRANK_SENSOR
void configure3ToothCrank(TriggerWaveform *s)
void configureQuickStartSenderWheel(TriggerWaveform *s)
void configureKawaKX450F(TriggerWaveform *s)
void configureOnePlusOne(TriggerWaveform *s)
void configure12ToothCrank(TriggerWaveform *s)
angle_t getEngineCycle(operation_mode_e operationMode)
void addSkippedToothTriggerEvents(TriggerWheel wheel, TriggerWaveform *s, int totalTeethCount, int skippedCount, float toothWidth, float offset, float engineCycle, float filterLeft, float filterRight)
static void commonSymmetrical(TriggerWaveform *s, int count)
void initializeSkippedToothTrigger(TriggerWaveform *s, int totalTeethCount, int skippedCount, operation_mode_e operationMode, SyncEdge syncEdge)
void configure3_1_cam(TriggerWaveform *s)
void configure6ToothCrank(TriggerWaveform *s)