49static const uint8_t
order_1_7_5_11_3_9_6_12_2_8_4_10[] = {1, 7, 5, 11, 3, 9, 6, 12, 2, 8, 4, 10};
50static const uint8_t
order_1_7_4_10_2_8_6_12_3_9_5_11[] = {1, 7, 4, 10, 2, 8, 6, 12, 3, 9, 5, 11};
51static const uint8_t
order_1_12_5_8_3_10_6_7_2_11_4_9[] = {1, 12, 5, 8, 3, 10, 6, 7, 2, 11, 4, 9};
52static const uint8_t
order_1_2_3_4_5_6_7_8_9_10_11_12[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
55static const uint8_t
order_1_14_9_4_7_12_15_6_13_8_3_16_11_2_5_10[] = {1, 14, 9, 4, 7, 12, 15, 6, 13, 8, 3, 16, 11, 2, 5, 10};
91 case FO_1_8_4_3_6_5_7_2:
92 case FO_1_8_7_2_6_5_4_3:
93 case FO_1_5_4_2_6_3_7_8:
94 case FO_1_2_7_8_4_5_6_3:
95 case FO_1_3_7_2_6_5_4_8:
96 case FO_1_2_3_4_5_6_7_8:
97 case FO_1_5_4_8_6_3_7_2:
98 case FO_1_8_7_3_6_5_4_2:
99 case FO_1_5_4_8_3_7_2_6:
100 case FO_1_8_6_2_7_3_4_5:
104 case FO_1_2_3_4_5_6_7_8_9:
108 case FO_1_10_9_4_3_6_5_8_7_2:
109 case FO_1_6_5_10_2_7_3_8_4_9:
113 case FO_1_7_5_11_3_9_6_12_2_8_4_10:
114 case FO_1_7_4_10_2_8_6_12_3_9_5_11:
115 case FO_1_12_5_8_3_10_6_7_2_11_4_9:
116 case FO_1_2_3_4_5_6_7_8_9_10_11_12:
119 case FO_1_14_9_4_7_12_15_6_13_8_3_16_11_2_5_10:
172 case FO_1_8_4_3_6_5_7_2:
174 case FO_1_8_7_2_6_5_4_3:
176 case FO_1_5_4_2_6_3_7_8:
178 case FO_1_2_7_8_4_5_6_3:
180 case FO_1_3_7_2_6_5_4_8:
182 case FO_1_2_3_4_5_6_7_8:
184 case FO_1_5_4_8_6_3_7_2:
186 case FO_1_8_7_3_6_5_4_2:
188 case FO_1_5_4_8_3_7_2_6:
190 case FO_1_8_6_2_7_3_4_5:
194 case FO_1_2_3_4_5_6_7_8_9:
199 case FO_1_10_9_4_3_6_5_8_7_2:
201 case FO_1_6_5_10_2_7_3_8_4_9:
205 case FO_1_7_5_11_3_9_6_12_2_8_4_10:
207 case FO_1_7_4_10_2_8_6_12_3_9_5_11:
209 case FO_1_12_5_8_3_10_6_7_2_11_4_9:
211 case FO_1_2_3_4_5_6_7_8_9_10_11_12:
215 case FO_1_14_9_4_7_12_15_6_13_8_3_16_11_2_5_10:
232 if (firingOrderLength < 1 || firingOrderLength > MAX_CYLINDER_COUNT) {
242 if (index >= firingOrderLength) {
249 return firingOrderTable[index] - 1;
264 if (firingOrderTable) {
265 for (
size_t i = 0; i < firingOrderLength; i++) {
266 if (firingOrderTable[i] == prevCylinderId) {
267 return firingOrderTable[(i + 1) % firingOrderLength];
static constexpr engine_configuration_s * engineConfiguration
bool warning(ObdCode code, const char *fmt,...)
void firmwareError(ObdCode code, const char *fmt,...)
static const uint8_t order_1_5_4_8_6_3_7_2[]
static const uint8_t order_1_THEN_3_THEN_4_THEN2[]
static const uint8_t order_1_4_5_2_3_6[]
static const uint8_t order_1_6_3_2_5_4[]
static const uint8_t order_1_THEN_4_THEN_2_THEN_5_THEN_3_THEN_6[]
static const uint8_t order_1_8_7_3_6_5_4_2[]
static const uint8_t order_1_THEN_4_THEN_3_THEN2[]
static const uint8_t order_1_THEN_2_THEN_4_THEN3[]
static const uint8_t order_1[]
static const uint8_t order_1_10_9_4_3_6_5_8_7_2[]
static const uint8_t order_1_5_4_8_3_7_2_6[]
size_t getNextFiringCylinderId(size_t prevCylinderId)
static const uint8_t order_1_2_3_4_5_6_7_8_9[]
static const uint8_t order_1_3_7_2_6_5_4_8[]
static const uint8_t order_1_6_2_4_3_5[]
static const uint8_t order_1_3_2[]
static const uint8_t order_1_2_3_4_5_6_7_8[]
static const uint8_t order_1_6_5_10_2_7_3_8_4_9[]
static const uint8_t order_1_5_4_2_6_3_7_8[]
static const uint8_t order_1_2_7_8_4_5_6_3[]
static const uint8_t order_1_4_3_6_2_5[]
static const uint8_t order_1_THEN_3_THEN_2_THEN4[]
static const uint8_t order_1_8_7_2_6_5_4_3[]
static const uint8_t order_1_8_6_2_7_3_4_5[]
static const uint8_t order_1_THEN_2_THEN_3_THEN_4_THEN_5_THEN_6[]
static const uint8_t order_1_14_9_4_7_12_15_6_13_8_3_16_11_2_5_10[]
static const uint8_t order_1_2_3[]
static const uint8_t order_1_2_3_4_5_6_7_8_9_10_11_12[]
static const uint8_t order_1_6_5_4_3_2[]
static const uint8_t order_1_2_4_5_3[]
static const uint8_t * getFiringOrderTable()
static const uint8_t order_1_8_4_3_6_5_7_2[]
static const uint8_t order_1_THEN_5_THEN_3_THEN_6_THEN_2_THEN_4[]
static const uint8_t order_1_12_5_8_3_10_6_7_2_11_4_9[]
static const uint8_t order_1_7_4_10_2_8_6_12_3_9_5_11[]
static size_t getFiringOrderLength()
size_t getCylinderNumberAtIndex(size_t index)
static const uint8_t order_1_7_5_11_3_9_6_12_2_8_4_10[]
static const uint8_t order_1_2[]
@ CUSTOM_OBD_UNKNOWN_FIRING_ORDER
@ CUSTOM_OBD_WRONG_FIRING_ORDER
firing_order_e firingOrder