14 {
16
18
19 {
23
25
26 msg[6] = 0;
27 msg[7] = 0;
28 }
29
30
31 {
33
35
37
39
40 msg[6] = 0;
41 msg[7] = 0;
42 }
43
44#if EFI_ENGINE_CONTROL
45
46 {
48
51
52 msg[2] = 0x00;
53 msg[3] = 0x00;
54
56 int16_t ignAngle = ((timing > 360 ? timing - 720 : timing) * 10);
57 msg.setShortValueMsb(ignAngle, 4);
58 }
59#endif
60
61
62 {
64 msg[0] = 0x00;
65 msg[1] = 0x00;
66 msg[2] = 0x00;
67 msg[3] = 0x00;
68 msg[4] = 0x00;
69 msg[5] = 0x00;
70 msg[6] = 0x00;
71 msg[7] = 0x00;
72 }
73
74
75 {
77 msg[0] = 0x00;
78 msg[1] = 0x00;
79 msg[2] = 0x00;
80 msg[3] = 0x00;
81 msg[4] = 0x00;
82 msg[5] = 0x00;
83 msg[6] = 0x00;
84 msg[7] = 0x00;
85 }
86
87
88 {
90 msg[0] = 0x00;
91 msg[1] = 0x00;
92 msg[2] = 0x00;
93 msg[3] = 0x00;
94 msg[4] = 0x00;
95 msg[5] = 0x00;
96 msg[6] = 0x00;
97 msg[7] = 0x00;
98 }
99
100
101 {
103 msg[0] = 0x00;
104 msg[1] = 0x00;
105 msg[2] = 0x00;
106 msg[3] = 0x00;
107 msg[4] = 0x00;
108 msg[5] = 0x00;
109 msg[6] = 0x00;
110 msg[7] = 0x00;
111 }
112
113
114 {
116 msg[0] = 0x00;
117 msg[1] = 0x00;
118 }
119
120
121 {
123 msg[0] = 0x00;
124 msg[1] = 0x00;
126 msg[4] = 0x00;
127 msg[5] = 0x00;
128 }
129 }
130
132
133
134 {
136
137 msg[0] = 0x00;
138 msg[1] = 0x00;
139
140 msg[2] = 0x00;
141 msg[3] = 0x00 ;
142 }
143
144
145 {
147
149
151
152 msg[4] = 0x00;
153 msg[5] = 0x00;
154
155 msg[6] = 0x00;
156 msg[7] = 0x00;
157 }
158
159#if EFI_SHAFT_POSITION_INPUT
160
161 {
163
165
167
168 msg[4] = 0x00;
169 msg[5] = 0x00;
170
171 msg[6] = 0x00;
172 msg[7] = 0x00;
173 }
174#endif
175
176
177
178 {
180
182 msg.setShortValueMsb(knock100, 0);
183
184 msg.setShortValueMsb(knock100, 2);
185 }
186
187
188 {
190
191 msg[0] = 0x00;
192 msg[1] = 0x00;
193
194 msg[2] = 0x00;
195 msg[3] = 0x00;
196
197 msg[4] = 0x00;
198 msg[5] = 0x00;
199
200 msg[6] = 0x00;
201 msg[7] = 0x00;
202 }
203
204
205 {
207
209 msg.setShortValueMsb(vehicleSpeed10, 0);
210
211 msg.setShortValueMsb(vehicleSpeed10, 2);
212
213 msg.setShortValueMsb(vehicleSpeed10, 4);
214
215 msg.setShortValueMsb(vehicleSpeed10, 6);
216 }
217
218
219 {
221
222 msg[0] = 0x00;
223 msg[1] = 0x00;
224 msg[2] = 0x00;
225 msg[3] = 0x00;
226
227 msg[4] = 0x00;
228 msg[5] = 0x00;
229
230 msg[6] = 0x00;
231 msg[7] = 0x00;
232 }
233
234
235 {
237
238 msg[0] = 0x00;
239 msg[1] = 0x00;
240
241 msg[2] = 0x00;
242 msg[3] = 0x00;
243
244 msg[4] = 0x00;
245 msg[5] = 0x00;
246
247 msg[6] = 0x00;
248 msg[7] = 0x00;
249 }
250
251
252 {
254
255 msg[0] = 0x00;
256 msg[1] = 0x00;
257
258 msg[2] = 0x00;
259 msg[3] = 0x00;
260 }
261
262
263 {
265
267 msg.setShortValueMsb(vehicleSpeed10, 0);
268
269 msg[2] = 0x00;
270 msg[3] = 0x00;
271
272 msg[4] = 0x00;
273 msg[5] = 0x00;
274
275 msg[6] = 0x00;
276 msg[7] = 0x00;
277 }
278
279
280 {
282 msg[0] = 0x00;
283 msg[1] = 0x00;
284 msg[2] = 0x00;
285 msg[3] = 0x00;
286 msg[4] = 0x00;
287 msg[5] = 0x00;
288 msg[6] = 0x00;
289 msg[7] = 0x00;
290 }
291
292
293 {
295 msg[0] = 0x00;
296 msg[1] = 0x00;
297 msg[2] = 0x00;
298 msg[3] = 0x00;
299 msg[4] = 0x00;
300 msg[5] = 0x00;
301 msg[6] = 0x00;
302 msg[7] = 0x00;
303 }
304
305
306 {
308 msg[0] = 0x00;
309 msg[1] = 0x00;
310 msg[2] = 0x00;
311 msg[3] = 0x00;
312 msg[4] = 0x00;
313 msg[5] = 0x00;
314 msg[6] = 0x00;
315 msg[7] = 0x00;
316 }
317
318
319 {
321 msg[0] = 0x00;
322 msg[1] = 0x00;
323 msg[2] = 0x00;
324 msg[3] = 0x00;
325 msg[4] = 0x00;
326 msg[5] = 0x00;
327 msg[6] = 0x00;
328 msg[7] = 0x00;
329 }
330
331
332 {
334 msg[0] = 0x00;
335 msg[1] = 0x00;
336 msg[2] = 0x00;
337 msg[3] = 0x00;
338 msg[4] = 0x00;
339 msg[5] = 0x00;
340 msg[6] = 0x00;
341 msg[7] = 0x00;
342 }
343
344
345 {
347 msg[0] = 0x00;
348 msg[1] = 0x00;
349 msg[2] = 0x00;
350 msg[3] = 0x00;
351 msg[4] = 0x00;
352 msg[5] = 0x00;
353 msg[6] = 0x00;
354 msg[7] = 0x00;
355 }
356
357
358 {
360 msg[0] = 0x00;
361 msg[1] = 0x00;
362 msg[2] = 0x00;
363 msg[3] = 0x00;
364 msg[4] = 0x00;
365 msg[5] = 0x00;
366
367 msg[6] = 0x00;
369 }
370
371
372 {
374 msg[0] = 0x00;
375 msg[1] = 0x00;
376 msg[2] = 0x00;
377 msg[3] = 0x00;
378 msg[4] = 0x00;
379 msg[5] = 0x00;
380 msg[6] = 0x00;
381 msg[7] = 0x00;
382 }
383 }
384
386
387
388 {
390
391 msg[0] = 0x00;
392 msg[1] = 0x00;
393
394 msg[2] = 0x00;
395 msg[3] = 0x00;
396 }
397
398
399 {
401
403
404 msg[2] = 0x00;
405 msg[3] = 0x00;
406
407 msg[4] = 0x00;
408 msg[5] = 0x00;
409
411 }
412
413
414 {
416
418
420
422
424 }
425
426
427 {
429
430 msg[0] = 0x00;
431 msg[1] = 0x00;
432
433 msg[2] = 0x00;
434 msg[3] = 0x00;
435
436 msg[4] = 0x00;
437 msg[5] = 0x00;
438
439 msg[6] = 0x00;
440 msg[7] = 0x00;
441 }
442
443
444 {
446
447 msg[0] = 0x00;
448 msg[1] = 0x00;
449
450 msg[2] = 0x00;
451 msg[3] = 0x00;
452
453 msg[4] = 0x00;
454 msg[5] = 0x00;
455
456 msg[6] = 0x00;
457 msg[7] = 0x00;
458 }
459
460
461 {
463
464 msg[0] = 0x00;
465 msg[1] = 0x00;
466
467 msg[2] = 0x00;
468 msg[3] = 0x00;
469
470 msg[4] = 0x00;
471 msg[5] = 0x00;
472
473 msg[6] = 0x00;
474 msg[7] = 0x00;
475 }
476 }
477
479
480 {
482
484
486
488
489 msg[6] = 0x00;
490 msg[7] = 0x00;
491 }
492
493
494 {
496
497 msg[0] = 0x00;
498 msg[1] = 0x00;
499
500 msg[2] = 0x00;
501 msg[3] = 0x00;
502
504 }
505
506
507 {
509
511 }
512
513
514 {
516
517 msg[0] = 0x00;
518 msg[1] = 0x00;
519
520 msg[2] = 0x00;
521 msg[3] = 0x00;
522
523 msg[4] = 0x00;
524 msg[5] = 0x00;
525
526 msg[6] = 0x00;
527 msg[7] = 0x00;
528 }
529
530
531 {
533 msg[0] = 0x00;
535 msg.setBit(1, 2);
536 }
538 msg.setBit(1, 1);
539 }
540#if EFI_LAUNCH_CONTROL
542 msg.setBit(2, 7);
543 }
545 msg.setBit(2, 6);
546 }
547#endif
549 msg.setBit(3, 5);
550 }
552 msg.setBit(3, 4);
553 }
555 msg.setBit(3, 1);
556 }
558 msg.setBit(3, 0);
559 }
560
561 msg[4] = 0x00;
562 msg[5] = 0x00;
563 msg[6] = 0x00;
565 msg.setBit(7, 6);
566 }
567 }
568
569 }
570}
bool isInterval(CanInterval interval)
TriggerCentral triggerCentral
LaunchControlBase launchController
constexpr auto & module()
RegisteredOutputPin fanRelay
RegisteredOutputPin fanRelay2
angle_t timingAdvance[MAX_CYLINDER_COUNT]
bool getLogicValue() const
virtual SensorResult get() const =0
static float getOrZero(SensorType type)
PrimaryTriggerDecoder triggerState
int getHwEventCounter(int index) const
uint32_t totalTriggerErrorCounter
static EngineAccessor engine
static constexpr engine_configuration_s * engineConfiguration
percent_t getInjectorDutyCycle(float rpm)
m_knockLevel("Knock: Current level", SensorCategory.SENSOR_INPUTS, FieldType.INT, 996, 1.0, 0.0, 0.0, "Volts")
can_baudrate_e canBaudRate