Speeduino
Loading...
Searching...
No Matches
statuses.h
Go to the documentation of this file.
1
8#pragma once
9
10#include <stdint.h>
11#include "bit_manip.h"
12#include "maths.h"
13#include "decoder_t.h"
14
15using byte = uint8_t;
16
18enum class SchedulerCutStatus : uint8_t
19{
21 None,
23 Rolling,
25 Full,
26};
27
28
30enum class EngineRotationStatus : uint8_t
31{
33 Stopped,
35 Cranking,
37 Running,
38};
39
47struct statuses {
49 statuses(void);
50
56 void setRpm(uint16_t rpm);
57
58 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
60 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
61 bool clutchTrigger : 1;
62 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
64 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
65 volatile bool injPrimed : 1;
66 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
67 volatile bool tachoSweepEnabled : 1;
68 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
69 volatile bool tachoAlt : 1;
70
71 uint16_t RPM;
72 byte RPMdiv100;
73 uint16_t baroADC;
74 uint16_t MAP;
75 uint16_t EMAP;
76 uint8_t baro;
77 uint8_t TPS;
78 uint8_t tpsADC;
79 int16_t tpsDOT;
80 byte TPSlast;
81 int16_t mapDOT;
82 volatile int rpmDOT;
83 byte VE;
84 byte VE1;
85 byte VE2;
86 uint8_t O2;
87 uint8_t O2_2;
88 int coolant;
89 uint16_t cltADC;
90 int IAT;
91 uint16_t iatADC;
92 uint16_t O2ADC;
93 uint16_t O2_2ADC;
94 uint16_t dwell;
95 volatile uint16_t actualDwell;
97 byte battery10;
98 int8_t advance;
99 int8_t advance1;
100 int8_t advance2;
101 uint16_t corrections;
102 uint16_t AEamount;
116 volatile byte ethanolPct;
117 volatile int8_t fuelTemp;
118 unsigned long AEStartTime;
120 // Status1 fields as defined in the INI
121 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
122 bool isDFCOActive : 1;
123 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
124 volatile bool isToothLog1Full : 1;
125
126 // Status2 fields as defined in the INI.
127 // TODO: resolve duplication with launchingHard
128 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
130 // TODO: resolve duplication with launchingSoft
131 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
133 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
135 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
136 bool idleOn : 1;
137
138 // Status3 fields as defined in the INI.
139 // TODO: resolve duplication with nitrous_status
140 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
141 bool nitrousActive : 1;
142 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
144 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
145 bool vssUiRefresh : 1;
146
147 // Status4 fields as defined in the INI.
148 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
149 bool wmiTankEmpty : 1;
150 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
151 bool vvt1AngleError : 1;
152 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
153 bool vvt2AngleError : 1;
154 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
155 bool fanOn : 1;
156 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
157 bool burnPending : 1;
158 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
159 bool stagingActive : 1;
160 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
161 bool commCompat : 1;
162 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
164
165 // Status5 fields as defined in the INI.
166 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
168 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
170 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
172 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
174 // TODO: resolve duplication with clutchTrigger
175 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
177
178 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
179 bool aseIsActive : 1;
180 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
181 bool wueIsActive : 1;
182 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
183 // TODO: acceleration has 3 states: Steady, Accelerating, Decelerating. Need to capture this better
184 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
186 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
189
190 volatile byte runSecs;
191 volatile byte secl;
192 volatile uint16_t loopsPerSecond;
195 // TODO: remove this: only updated & read in logger
196 uint16_t freeRAM;
197 // TODO: make all RPMs uint16_t
198 unsigned int clutchEngagedRPM;
200 volatile uint32_t startRevolutions;
201 uint16_t boostTarget;
202 // TODO: resolve conflict with testActive
203 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
204 bool isTestModeActive : 1; // Is hardware test mode on?
205 bool testActive; // Not in use ? Replaced by testOutputs ?
206 uint16_t boostDuty;
207 byte idleLoad;
208 uint16_t canin[16];
210 uint16_t crankRPM = 400;
213 byte nSquirts;
214 uint16_t fuelLoad;
215 uint16_t ignLoad;
216 volatile byte syncLossCounter;
218 volatile byte knockCount;
220 byte compositeTriggerUsed; // 0 means composite logger disabled, 2 means use secondary input (1st cam), 3 means use tertiary input (2nd cam), 4 means log both cams together
221 int16_t vvt1Angle;
223 uint8_t vvt1Duty;
224 uint16_t injAngle;
226 uint16_t vss;
228 byte gear;
234 {
235 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
236 bool rpm : 1;
237 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
238 bool coolant : 1;
239 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
240 bool boostCut : 1;
241 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
242 bool oil : 1;
243 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
244 bool afr : 1;
245
247 // cppcheck-suppress misra-c2012-8.10 ; False positive - cannot make this static
248 inline bool isActive(void) const {
249 return rpm
250 || coolant
251 || boostCut
252 || oil
253 || afr
254 ;
255 }
256
258 // cppcheck-suppress misra-c2012-8.10 ; False positive - cannot make this static
259 inline void reset(void) {
260 rpm = false;
261 boostCut = false;
262 oil = false;
263 afr = false;
264 coolant = false;
265 }
266 };
268 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
269 bool ioError : 1;
270
272 byte wmiPW;
273 int16_t vvt2Angle;
275 uint8_t vvt2Duty;
277
278 // SD card status fields.
279 // TODO: conditional compile on SD_LOGGING once board definition is separated from globals.h
280 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
281 bool sdCardPresent : 1;
282 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
283 unsigned int sdCardType : 1;
284 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
285 bool sdCardReady : 1;
286 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
287 bool sdCardLogging : 1;
288 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
289 bool sdCardError : 1;
290 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
291 unsigned int sdCardFS : 1;
292 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
293 bool sdCardUnused : 1;
294
295 // airConStatus fields.
296 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
298 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
300 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
302 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
304 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
306 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
308 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
309 bool airconFanOn : 1;
310
311 uint8_t systemTemp;
312 uint32_t revolutionTime; //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that)
313
317 uint8_t injLayout : 3;
318
321 {
322 // Using bytes for compactness ATM, but that limits us to 8 fuel and
323 // 8 ignition channels
325 byte ignitionChannels = 0xFF;
326 byte fuelChannels = 0xFF;
328 };
330
332
333 uint8_t LOOP_TIMER;
334};
335
336static inline uint8_t getTotalInjChannelCount(const statuses &current)
337{
338 return current.numPrimaryInjOutputs + current.numSecondaryInjOutputs;
339}
Bit twiddling macros.
uint8_t byte
Definition config_pages.h:16
const config2 const config4 const config6 statuses & current
Definition scheduler_fuel_controller.cpp:506
EngineRotationStatus
The engine rotation status.
Definition statuses.h:31
SchedulerCutStatus
The current status of scheduler channel cuts.
Definition statuses.h:19
static uint8_t getTotalInjChannelCount(const statuses &current)
Definition statuses.h:336
This structure represents a decoder configuration.
Definition decoder_t.h:95
Engine protection status fields.
Definition statuses.h:234
bool rpm
true if RPM limits have been breached, false otherwise
Definition statuses.h:236
bool isActive(void) const
Are any protections active.
Definition statuses.h:248
bool oil
true if the oil limit has been breached, false otherwise
Definition statuses.h:242
bool afr
true if the afr limit has been breached, false otherwise
Definition statuses.h:244
bool boostCut
true if the boost limit has been breached, false otherwise
Definition statuses.h:240
bool coolant
true if coolant limits have been breached, false otherwise
Definition statuses.h:238
void reset(void)
Reset all protections to off.
Definition statuses.h:259
Fuel and ignition scheduler cut state.
Definition statuses.h:321
byte fuelChannels
Which fuel channels are on (1) or off (0)
Definition statuses.h:326
SchedulerCutStatus status
Definition statuses.h:327
byte ignitionChannelsPending
Any ignition channels that are pending injections before they are resumed.
Definition statuses.h:324
byte ignitionChannels
Which ignition channels are on (1) or off (0)
Definition statuses.h:325
The status struct with current values for all 'live' variables.
Definition statuses.h:47
bool airconFanOn
Indicates whether the A/C fan is running.
Definition statuses.h:309
byte dwellCorrection
Definition statuses.h:96
bool wueIsActive
Is Warm Up Enrichment (WUE) active (true) or not (false)
Definition statuses.h:181
uint16_t baroADC
Definition statuses.h:73
bool airconRequested
Indicates whether the A/C button is pressed.
Definition statuses.h:297
uint8_t vvt1TargetAngle
Definition statuses.h:222
volatile byte syncLossCounter
Definition statuses.h:216
byte ASEValue
Definition statuses.h:225
int16_t vvt2Angle
Definition statuses.h:273
uint8_t vvt2Duty
Definition statuses.h:275
uint16_t canin[16]
16bit raw value of selected canin data for channels 0-15
Definition statuses.h:208
byte oilPressure
Definition statuses.h:230
uint8_t current_caninchannel
Definition statuses.h:209
bool launchingSoft
Definition statuses.h:193
EngineRotationStatus rotationStatus
Definition statuses.h:188
byte launchCorrection
Definition statuses.h:108
scheduler_cut_t schedulerCutState
Definition statuses.h:329
bool idleUpActive
Definition statuses.h:114
bool wmiTankEmpty
Is the Water Methanol Injection tank empty (true) or not (false)
Definition statuses.h:149
unsigned int sdCardFS
File system type 0=no FAT16, 1=FAT32.
Definition statuses.h:291
uint32_t revolutionTime
Definition statuses.h:312
bool CTPSActive
Definition statuses.h:115
byte CLIdleTarget
Definition statuses.h:113
byte TPSlast
Definition statuses.h:80
bool clutchTrigger
Definition statuses.h:61
bool testActive
Definition statuses.h:205
uint16_t MAP
Manifold absolute pressure.
Definition statuses.h:74
bool idleUpOutputActive
Definition statuses.h:227
bool secondSparkTableActive
Secondary spark table is use (true) or not (false)
Definition statuses.h:169
bool vvt2AngleError
VVT2 cam angle within limits (false) or not (true)
Definition statuses.h:153
byte baroCorrection
Definition statuses.h:107
uint8_t numPrimaryInjOutputs
Definition statuses.h:315
bool flatShiftingHard
Definition statuses.h:199
int16_t vvt1Angle
Definition statuses.h:221
bool vvt1AngleError
VVT1 cam angle within limits (false) or not (true)
Definition statuses.h:151
unsigned long AEStartTime
Definition statuses.h:118
byte VE2
Definition statuses.h:85
byte flexCorrection
Definition statuses.h:109
bool clutchTriggerActive
Is the clutch trigger active (true) or not (false)
Definition statuses.h:176
volatile uint16_t loopsPerSecond
Definition statuses.h:192
bool toothLogEnabled
Definition statuses.h:219
bool burnPending
Is an EEPROM burn pending (true) or not (false)
Definition statuses.h:157
byte VE1
Definition statuses.h:84
bool airconTpsLockout
Indicates the A/C is locked out due to high TPS, or the post-high-TPS "stand-down" lockout period.
Definition statuses.h:303
bool sdCardLogging
true if logging active, false if not
Definition statuses.h:287
int IAT
Definition statuses.h:90
int16_t mapDOT
Definition statuses.h:81
uint16_t ignLoad
Definition statuses.h:215
byte wueCorrection
Definition statuses.h:104
byte batCorrection
Definition statuses.h:105
int8_t advance
Definition statuses.h:98
uint16_t dwell
dwell (coil primary winding/circuit on) time (in ms * 10 ? See correctionsDwell)
Definition statuses.h:94
uint8_t tpsADC
Definition statuses.h:78
volatile byte knockCount
Definition statuses.h:218
bool knockRetardActive
Is knock retardation active (true) or not (false)
Definition statuses.h:171
bool knockPulseDetected
Definition statuses.h:173
byte nSquirts
Number of injector squirts per cycle (per injector)
Definition statuses.h:213
int8_t advance2
Definition statuses.h:100
statuses(void)
Default construct.
Definition statuses.cpp:5
bool ioError
true if there is an analog pin conflict
Definition statuses.h:269
bool sdCardUnused
true if unused, false if not
Definition statuses.h:293
uint16_t vss
Definition statuses.h:226
bool fanOn
Engine fan status (true == on, false == off)
Definition statuses.h:155
byte knockRetard
Definition statuses.h:217
uint16_t boostTarget
Definition statuses.h:201
uint16_t EMAP
EMAP ... (See config6::useEMAP for EMAP enablement)
Definition statuses.h:75
bool airconTurningOn
Indicates the A/C request is on (i.e. A/C button pressed), the lockouts are off, however the start de...
Definition statuses.h:305
bool sdCardReady
true if ready, false if not
Definition statuses.h:285
byte gear
Definition statuses.h:228
volatile bool injPrimed
Tracks whether or not the injector priming has been completed yet.
Definition statuses.h:65
uint8_t maxIgnOutputs
Definition statuses.h:314
bool airconRpmLockout
Indicates the A/C is locked out due to the RPM being too high/low, or the post-high/post-low-RPM "sta...
Definition statuses.h:301
volatile byte secl
Definition statuses.h:191
bool secondFuelTableActive
Secondary fuel table is use (true) or not (false)
Definition statuses.h:143
bool isTestModeActive
Definition statuses.h:204
uint8_t numSecondaryInjOutputs
Definition statuses.h:316
bool nitrousActive
Nitrous on (true) or off (false)
Definition statuses.h:141
uint16_t fuelLoad
Definition statuses.h:214
int coolant
Definition statuses.h:88
byte VE
Definition statuses.h:83
bool isDeceleratingTPS
Are we decelerating (true) or not (false), based on TPS.
Definition statuses.h:187
volatile uint16_t actualDwell
actual dwell time if new ignition mode is used (in uS)
Definition statuses.h:95
void setRpm(uint16_t rpm)
Set the RPM field, keeping RPMDiv100 in sync.
Definition statuses.cpp:11
byte fuelPressure
Definition statuses.h:229
unsigned int clutchEngagedRPM
Definition statuses.h:198
volatile uint32_t startRevolutions
Definition statuses.h:200
volatile bool tachoAlt
Definition statuses.h:69
uint16_t boostDuty
Boost Duty percentage value * 100 to give 2 points of precision.
Definition statuses.h:206
volatile bool isToothLog1Full
Boost Cut status: true == active, false == inactive.
Definition statuses.h:124
bool previousClutchTrigger
Definition statuses.h:63
byte battery10
Definition statuses.h:97
bool commCompat
Definition statuses.h:161
volatile byte runSecs
Definition statuses.h:190
uint16_t iatADC
Definition statuses.h:91
int8_t advance1
Definition statuses.h:99
uint16_t RPM
RPM - Current Revs per minute.
Definition statuses.h:71
bool flatShiftSoftCut
Is the flat shift soft cut active (true) or not (false)
Definition statuses.h:167
bool softLaunchActive
Soft Launch status: true == on, false == off.
Definition statuses.h:132
bool stagingActive
Is fuel injection staging active (true) or not (false)
Definition statuses.h:159
bool hardLaunchActive
Hard Launch status: true == on, false == off.
Definition statuses.h:129
byte wmiPW
Definition statuses.h:272
bool aseIsActive
Is After Start Enrichment (ASE) active (true) or not (false)
Definition statuses.h:179
bool vssUiRefresh
Flag to indicate that the VSS value needs to be refreshed in the UI.
Definition statuses.h:145
volatile int8_t fuelTemp
Definition statuses.h:117
uint8_t injLayout
Normally the same value as config2::injLayout, but under some situations will change to one of the ot...
Definition statuses.h:317
byte RPMdiv100
RPM value scaled (divided by 100) to fit a byte (0-255, e.g. 12000 => 120)
Definition statuses.h:72
bool sdCardPresent
true if a card is present, false if not
Definition statuses.h:281
uint16_t corrections
Definition statuses.h:101
byte fanDuty
Definition statuses.h:271
uint8_t vvt2TargetAngle
Definition statuses.h:274
uint8_t LOOP_TIMER
The timer flags currently in effect.
Definition statuses.h:333
uint8_t TPS
Definition statuses.h:77
byte outputsStatus
Definition statuses.h:276
decoder_t decoder
The current decoder.
Definition statuses.h:331
bool idleOn
Is the idle code active : true == active, false == inactive.
Definition statuses.h:136
byte afrTarget
Definition statuses.h:112
bool launchingHard
Definition statuses.h:194
volatile int rpmDOT
Definition statuses.h:82
byte fuelTempCorrection
Definition statuses.h:110
bool softLimitActive
Soft limit status: true == on, false == off.
Definition statuses.h:134
bool airconCltLockout
Indicates the A/C is locked out either due to high coolant temp.
Definition statuses.h:307
byte nitrous_status
Definition statuses.h:212
bool isAcceleratingTPS
Are we accelerating (true) or not (false), based on TPS.
Definition statuses.h:185
uint8_t systemTemp
Definition statuses.h:311
int16_t tpsDOT
Definition statuses.h:79
uint8_t O2_2
Definition statuses.h:87
uint16_t freeRAM
Definition statuses.h:196
bool sdCardError
true if error, false if not
Definition statuses.h:289
byte compositeTriggerUsed
Definition statuses.h:220
byte egoCorrection
Definition statuses.h:103
int16_t flexBoostCorrection
Definition statuses.h:211
bool initialisationComplete
Tracks whether the setup() function has run completely.
Definition statuses.h:59
int8_t flexIgnCorrection
Definition statuses.h:111
byte idleLoad
Either the current steps or current duty cycle for the idle control.
Definition statuses.h:207
uint16_t O2_2ADC
Definition statuses.h:93
bool airconCompressorOn
Indicates whether the A/C compressor is running.
Definition statuses.h:299
byte iatCorrection
Definition statuses.h:106
uint8_t O2
Definition statuses.h:86
bool allowLegacyComms
Definition statuses.h:163
uint16_t injAngle
Definition statuses.h:224
uint8_t vvt1Duty
Definition statuses.h:223
volatile bool tachoSweepEnabled
Definition statuses.h:67
uint16_t crankRPM
Definition statuses.h:210
uint8_t baro
Barometric pressure is simply the initial MAP reading, taken before the engine is running....
Definition statuses.h:76
engine_protect_flags_t engineProtect
Definition statuses.h:267
volatile byte ethanolPct
Definition statuses.h:116
uint16_t AEamount
Definition statuses.h:102
uint16_t cltADC
Definition statuses.h:89
uint16_t O2ADC
Definition statuses.h:92
bool isDFCOActive
Deceleration Fuel Cut Off status: true == active, false == inactive.
Definition statuses.h:122
unsigned int sdCardType
0==SD, 1==SDHC
Definition statuses.h:283