88 #define SUBARU76_CRANK_PULSE0(cycle) \
89 s->addEvent720((180 * (cycle)) + 63 - width, TriggerValue::RISE, TriggerWheel::T_SECONDARY); \
90 s->addEvent720((180 * (cycle)) + 63, TriggerValue::FALL, TriggerWheel::T_SECONDARY)
93 #define SUBARU76_CRANK_PULSE1(cycle) \
94 s->addEvent720((180 * (cycle)) + 95 - width, TriggerValue::RISE, TriggerWheel::T_SECONDARY); \
95 s->addEvent720((180 * (cycle)) + 95, TriggerValue::FALL, TriggerWheel::T_SECONDARY)
98 #define SUBARU76_CRANK_PULSE2(cycle) \
99 s->addEvent720((180 * (cycle)) + 150 - width, TriggerValue::RISE, TriggerWheel::T_SECONDARY); \
100 s->addEvent720((180 * (cycle)) + 150, TriggerValue::FALL, TriggerWheel::T_SECONDARY)
102 #define SUBARU76_CAM_PULSE(cycle, offset) \
103 s->addEvent720((180 * (cycle)) + (offset) - width, TriggerValue::RISE, TriggerWheel::T_PRIMARY); \
104 s->addEvent720((180 * (cycle)) + (offset), TriggerValue::FALL, TriggerWheel::T_PRIMARY)
107 SUBARU76_CAM_PULSE(0, +15);
109 if (withCrankWheel) {
110 SUBARU76_CRANK_PULSE0(0);
111 SUBARU76_CRANK_PULSE1(0);
112 SUBARU76_CRANK_PULSE2(0);
116 SUBARU76_CAM_PULSE(1, 0);
118 if (withCrankWheel) {
119 SUBARU76_CRANK_PULSE0(1);
120 SUBARU76_CRANK_PULSE1(1);
121 SUBARU76_CRANK_PULSE2(1);
125 SUBARU76_CAM_PULSE(2, -15);
128 SUBARU76_CAM_PULSE(2, 0);
131 SUBARU76_CAM_PULSE(2, +15);
133 if (withCrankWheel) {
134 SUBARU76_CRANK_PULSE0(2);
135 SUBARU76_CRANK_PULSE1(2);
136 SUBARU76_CRANK_PULSE2(2);
140 SUBARU76_CAM_PULSE(3, 0);
142 if (withCrankWheel) {
143 SUBARU76_CRANK_PULSE0(3);
144 SUBARU76_CRANK_PULSE1(3);
145 SUBARU76_CRANK_PULSE2(3);
149 SUBARU76_CAM_PULSE(4, 0);
166 const float width = 1;
167 const float offset = 720 - (3 * 180 + 20);
171 #define SUBARU76_CAMONLY_PULSE(cyl, subtooth) \
172 s->addEventAngle(offset + (180 * (cyl)) + 20 + (15 * (subtooth)) - width, TriggerValue::RISE, TriggerWheel::T_PRIMARY); \
173 s->addEventAngle(offset + (180 * (cyl)) + 20 + (15 * (subtooth)), TriggerValue::FALL, TriggerWheel::T_PRIMARY)
177 SUBARU76_CAMONLY_PULSE(0, -1);
178 SUBARU76_CAMONLY_PULSE(0, 0);
179 SUBARU76_CAMONLY_PULSE(0, +1);
183 SUBARU76_CAMONLY_PULSE(1, 0);
187 SUBARU76_CAMONLY_PULSE(2, 0);
188 SUBARU76_CAMONLY_PULSE(2, +1);
192 SUBARU76_CAMONLY_PULSE(3, 0);
278#define SVX_CRANK_1 TriggerWheel::T_SECONDARY
280#define SVX_CAM TriggerWheel::T_PRIMARY
282#define CRANK_1_FALL(n) (20.0 + offset + 30.0 * (n))
283#define CRANK_1_RISE(n) (CRANK_1_FALL(n) - width)
285#define SUBARU_SVX_CRANK1_PULSE(n) \
286 s->addEventAngle(CRANK_1_RISE(n), TriggerValue::RISE, SVX_CRANK_1); \
287 s->addEventAngle(CRANK_1_FALL(n), TriggerValue::FALL, SVX_CRANK_1)
290 float cam_offset = (10.0 + 30.0 + 30.0 + 30.0) - 90.0;
291#define SUBARU_SVX_CAM_PULSE(n) \
292 s->addEvent720(CRANK_1_RISE(n) + cam_offset, TriggerValue::RISE, SVX_CAM); \
293 s->addEvent720(CRANK_1_FALL(n) + cam_offset, TriggerValue::FALL, SVX_CAM)
298 float crank_2_offset = (10.0 + 30.0 + 30.0) - (55.0 + 1.0);
300 #define SUBARU_SVX_CRANK2_PULSE(n) \
301 s->addEvent720(CRANK_1_RISE(n) + crank_2_offset, TriggerValue::RISE, SVX_CRANK_2); \
302 s->addEvent720(CRANK_1_FALL(n) + crank_2_offset, TriggerValue::FALL, SVX_CRANK_2)
304 #define SUBARU_SVX_CRANK2_PULSE(n) (void)(n)
317 SUBARU_SVX_CRANK1_PULSE(n);
319 SUBARU_SVX_CRANK1_PULSE(n);
321 SUBARU_SVX_CRANK2_PULSE(n);
323 SUBARU_SVX_CRANK1_PULSE(n);
325 SUBARU_SVX_CRANK1_PULSE(n);
328 SUBARU_SVX_CRANK1_PULSE(n);
330 SUBARU_SVX_CAM_PULSE(n);
332 SUBARU_SVX_CRANK1_PULSE(n);
334 SUBARU_SVX_CRANK2_PULSE(n);
336 SUBARU_SVX_CRANK1_PULSE(n);
338 SUBARU_SVX_CRANK2_PULSE(n);
340 SUBARU_SVX_CRANK1_PULSE(n);
343 SUBARU_SVX_CRANK2_PULSE(n);
345 SUBARU_SVX_CRANK1_PULSE(n);
347 SUBARU_SVX_CRANK1_PULSE(n);
349 SUBARU_SVX_CRANK2_PULSE(n);
351 SUBARU_SVX_CRANK1_PULSE(n);
353 SUBARU_SVX_CRANK2_PULSE(n);
355 SUBARU_SVX_CRANK1_PULSE(n);
360 SUBARU_SVX_CRANK1_PULSE(n);
362 SUBARU_SVX_CRANK1_PULSE(n);
364 SUBARU_SVX_CRANK2_PULSE(n);
366 SUBARU_SVX_CRANK1_PULSE(n);
368 SUBARU_SVX_CRANK1_PULSE(n);
371 SUBARU_SVX_CRANK1_PULSE(n);
373 SUBARU_SVX_CRANK1_PULSE(n);
375 SUBARU_SVX_CRANK2_PULSE(n);
377 SUBARU_SVX_CRANK1_PULSE(n);
379 SUBARU_SVX_CRANK2_PULSE(n);
381 SUBARU_SVX_CRANK1_PULSE(n);
384 SUBARU_SVX_CRANK2_PULSE(n);
386 SUBARU_SVX_CRANK1_PULSE(n);
388 SUBARU_SVX_CRANK1_PULSE(n);
390 SUBARU_SVX_CRANK2_PULSE(n);
392 SUBARU_SVX_CRANK1_PULSE(n);
394 SUBARU_SVX_CRANK2_PULSE(n);
396 SUBARU_SVX_CRANK1_PULSE(n);
403#undef SUBARU_SVX_CRANK1_PULSE
404#undef SUBARU_SVX_CRANK2_PULSE
405#undef SUBARU_SVX_CAM_PULSE