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
13#if __has_include(<SimplyAtomic.h>)
14 #include <SimplyAtomic.h>
15#else
16 //Fallback for Arduino IDE when SimplyAtomic is not installed
17 #include <util/atomic.h>
18 #define ATOMIC() ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
19 #warning It is strongly recommended to install the SimplyAtomic library rather than relying on the built-in ATOMIC
20#endif
21
22using byte = uint8_t;
23
31struct statuses {
32 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
33 volatile bool hasSync : 1;
35 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
37 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
38 bool clutchTrigger : 1;
39 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
41 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
42 volatile bool fpPrimed : 1;
43 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
44 volatile bool injPrimed : 1;
45 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
46 volatile bool tachoSweepEnabled : 1;
47 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
48 volatile bool tachoAlt : 1;
49
51 byte RPMdiv100;
52 long longRPM;
54 long MAP;
60 byte TPSlast;
62 volatile int rpmDOT;
63 byte VE;
64 byte VE1;
65 byte VE2;
68 int coolant;
70 int IAT;
77 byte battery10;
92 byte afrTarget;
96 volatile byte ethanolPct;
97 volatile int8_t fuelTemp;
98 unsigned long AEEndTime;
100 // Status1 fields as defined in the INI
101 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
102 volatile bool isInj1Open : 1;
103 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
104 volatile bool isInj2Open : 1;
105 // cppcheck-suppress misra-c2012-6.1
106 volatile bool isInj3Open : 1;
107 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
108 volatile bool isInj4Open : 1;
109 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
110 bool isDFCOActive : 1;
111 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
112 volatile bool isToothLog1Full : 1;
113
114 // Status2 fields as defined in the INI.
115 // TODO: resolve duplication with launchingHard
116 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
118 // TODO: resolve duplication with launchingSoft
119 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
121 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
123 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
125 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
126 bool idleOn : 1;
127 // TODO: resolve duplication with hasSync
128 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
129 volatile bool hasFullSync : 1; // Whether engine has sync (true) or not (false)
130
131 // Status3 fields as defined in the INI.
132 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
134 // TODO: resolve duplication with nitrous_status
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 nitrousActive : 1;
137 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
139 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
140 bool vssUiRefresh : 1;
141 // TODO: resolve duplication with hasSync & hasFullSync
142 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
143 volatile bool halfSync : 1;
144 // TODO: resolve duplication with nSquirts
145 unsigned int nSquirtsStatus: 3;
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 // Engine status fields as defined in the INI.
179 // TODO: engine has 3 states: Off, Cranking, Running. Need to capture this better
180 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
182 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
184 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
185 bool aseIsActive : 1;
186 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
187 bool wueIsActive : 1;
188 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
189 // TODO: acceleration has 3 states: Steady, Accelerating, Decelerating. Need to capture this better
190 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
192 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
194
195 // TODO: make all pulse widths uint16_t
196 unsigned int PW1;
197 unsigned int PW2;
198 unsigned int PW3;
199 unsigned int PW4;
200 unsigned int PW5;
201 unsigned int PW6;
202 unsigned int PW7;
203 unsigned int PW8;
204 volatile byte runSecs;
205 volatile byte secl;
209 // TODO: remove this: only updated & read in logger
211 // TODO: make all RPMs uint16_t
212 unsigned int clutchEngagedRPM;
216 // TODO: resolve conflict with testActive
217 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
218 bool isTestModeActive : 1; // Is hardware test mode on?
219 bool testActive; // Not in use ? Replaced by testOutputs ?
221 byte idleLoad;
227 byte nSquirts;
231 volatile byte syncLossCounter;
233 volatile byte knockCount;
235 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
236 int16_t vvt1Angle; //Has to be a long for PID calcs (CL VVT control)
238 long vvt1Duty; //Has to be a long for PID calcs (CL VVT control)
243 byte gear;
247 // engineProtectStatus fields as defined in the INI. Needs to be accessible as a byte for I/O, so use type punning.
248 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
250 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
252 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
254 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
256 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
258 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
260
262 byte wmiPW;
263 int16_t vvt2Angle; //Has to be a long for PID calcs (CL VVT control)
265 long vvt2Duty; //Has to be a long for PID calcs (CL VVT control)
267
268 // SD card status fields.
269 // TODO: conditional compile on SD_LOGGING once board definition is separated from globals.h
270 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
271 bool sdCardPresent : 1;
272 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
273 unsigned int sdCardType : 1;
274 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
275 bool sdCardReady : 1;
276 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
277 bool sdCardLogging : 1;
278 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
279 bool sdCardError : 1;
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 unsigned int sdCardFS : 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 bool sdCardUnused : 1;
284
285 // airConStatus fields.
286 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
288 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
290 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
292 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
294 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit 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.
299 bool airconFanOn : 1;
300
302};
303
308static inline bool HasAnySyncUnsafe(const statuses &status) {
309 return status.hasSync || status.halfSync;
310}
311
312static inline bool HasAnySync(const statuses &status) {
313 ATOMIC() {
314 return HasAnySyncUnsafe(status);
315 }
316 return false; // Just here to avoid compiler warning.
317}
318
319static inline bool isEngineProtectActive(const statuses &status) {
320 return status.engineProtectRpm
321 || status.engineProtectBoostCut
322 || status.engineProtectOil
323 || status.engineProtectAfr
324 || status.engineProtectClt;
325}
326
327static inline void resetEngineProtect(statuses &status) {
328 status.engineProtectRpm = false;
329 status.engineProtectBoostCut = false;
330 status.engineProtectOil = false;
331 status.engineProtectAfr = false;
332 status.engineProtectClt = false;
333 status.engineProtectIoError = false;
334}
Bit twiddling macros.
uint8_t byte
Definition config_pages.h:15
static uint32_t rshift(uint32_t a)
Bitwise right shift - generic, unoptimized, case.
Definition bit_shifts.h:348
static bool HasAnySync(const statuses &status)
Definition statuses.h:312
static bool isEngineProtectActive(const statuses &status)
Definition statuses.h:319
static bool HasAnySyncUnsafe(const statuses &status)
Non-atomic version of HasAnySync. **Should only be called in an ATOMIC() block***.
Definition statuses.h:308
static void resetEngineProtect(statuses &status)
Definition statuses.h:327
#define ATOMIC()
Definition statuses.h:18
The status struct with current values for all 'live' variables.
Definition statuses.h:31
volatile bool isInj4Open
Injector 4 status: true == open, false == closed.
Definition statuses.h:108
bool airconFanOn
Indicates whether the A/C fan is running.
Definition statuses.h:299
byte dwellCorrection
Definition statuses.h:76
bool wueIsActive
Is Warm Up Enrichment (WUE) active (true) or not (false)
Definition statuses.h:187
uint16_t baroADC
Definition statuses.h:53
bool airconRequested
Indicates whether the A/C button is pressed.
Definition statuses.h:287
volatile byte syncLossCounter
Definition statuses.h:231
byte ASEValue
Definition statuses.h:240
bool engineProtectClt
Engine protection is active (true) based on exceeding coolant limits.
Definition statuses.h:257
int16_t vvt2Angle
Definition statuses.h:263
volatile bool hasSync
Definition statuses.h:33
bool engineProtectRpm
Engine protection is active (true) due to exceeding RPM limits.
Definition statuses.h:249
uint16_t canin[16]
16bit raw value of selected canin data for channels 0-15
Definition statuses.h:222
byte oilPressure
Definition statuses.h:245
uint8_t current_caninchannel
Definition statuses.h:223
bool launchingSoft
Definition statuses.h:207
unsigned int PW3
In uS.
Definition statuses.h:198
byte launchCorrection
Definition statuses.h:88
unsigned int PW6
In uS.
Definition statuses.h:201
bool idleUpActive
Definition statuses.h:94
bool wmiTankEmpty
Is the Water Methanol Injection tank empty (true) or not (false)
Definition statuses.h:149
long vvt1Duty
Definition statuses.h:238
unsigned int sdCardFS
File system type 0=no FAT16, 1=FAT32.
Definition statuses.h:281
bool CTPSActive
Definition statuses.h:95
unsigned int PW8
In uS.
Definition statuses.h:203
byte CLIdleTarget
Definition statuses.h:93
byte vvt2TargetAngle
Definition statuses.h:264
byte TPSlast
Definition statuses.h:60
bool clutchTrigger
Definition statuses.h:38
bool testActive
Definition statuses.h:219
bool idleUpOutputActive
Definition statuses.h:242
bool engineIsRunning
Is engine running (true) or not (false)
Definition statuses.h:181
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
unsigned long AEEndTime
Definition statuses.h:98
byte baroCorrection
Definition statuses.h:87
bool flatShiftingHard
Definition statuses.h:213
int16_t vvt1Angle
Definition statuses.h:236
bool engineProtectIoError
Definition statuses.h:259
bool vvt1AngleError
VVT1 cam angle within limits (false) or not (true)
Definition statuses.h:151
volatile bool hasFullSync
Definition statuses.h:129
unsigned int PW4
In uS.
Definition statuses.h:199
byte VE2
Definition statuses.h:65
byte flexCorrection
Definition statuses.h:89
bool clutchTriggerActive
Is the clutch trigger active (true) or not (false)
Definition statuses.h:176
volatile uint16_t loopsPerSecond
Definition statuses.h:206
bool toothLogEnabled
Definition statuses.h:234
bool burnPending
Is an EEPROM burn pending (true) or not (false)
Definition statuses.h:157
byte VE1
Definition statuses.h:64
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:293
bool sdCardLogging
true if logging active, false if not
Definition statuses.h:277
int IAT
Definition statuses.h:70
int16_t mapDOT
Definition statuses.h:61
uint16_t ignLoad
Definition statuses.h:229
byte wueCorrection
Definition statuses.h:84
byte batCorrection
Definition statuses.h:85
int8_t advance
Definition statuses.h:78
unsigned int PW1
In uS.
Definition statuses.h:196
uint16_t dwell
dwell (coil primary winding/circuit on) time (in ms * 10 ? See correctionsDwell)
Definition statuses.h:74
uint8_t tpsADC
Definition statuses.h:58
bool hardLimitActive
Hard limit status: true == on, false == off.
Definition statuses.h:122
volatile byte knockCount
Definition statuses.h:233
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:227
int8_t advance2
Definition statuses.h:80
bool sdCardUnused
true if unused, false if not
Definition statuses.h:283
bool engineIsCranking
Is engine cranking (true) or not (false)
Definition statuses.h:183
uint16_t vss
Definition statuses.h:241
bool fanOn
Engine fan status (true == on, false == off)
Definition statuses.h:155
byte knockRetard
Definition statuses.h:232
uint16_t boostTarget
Definition statuses.h:215
uint16_t EMAP
EMAP ... (See config6::useEMAP for EMAP enablement)
Definition statuses.h:55
bool fuelPumpOn
Definition statuses.h:230
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:295
bool sdCardReady
true if ready, false if not
Definition statuses.h:275
byte gear
Definition statuses.h:243
volatile bool injPrimed
Tracks whether or not the injector priming has been completed yet.
Definition statuses.h:44
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:291
volatile byte secl
Definition statuses.h:205
bool secondFuelTableActive
Secondary fuel table is use (true) or not (false)
Definition statuses.h:138
bool isTestModeActive
Definition statuses.h:218
bool nitrousActive
Nitrous on (true) or off (false)
Definition statuses.h:136
uint16_t fuelLoad
Definition statuses.h:228
int coolant
Definition statuses.h:68
byte VE
Definition statuses.h:63
bool isDeceleratingTPS
Are we decelerating (true) or not (false), based on TPS.
Definition statuses.h:193
volatile uint16_t actualDwell
actual dwell time if new ignition mode is used (in uS)
Definition statuses.h:75
byte fuelPressure
Definition statuses.h:244
unsigned int clutchEngagedRPM
Definition statuses.h:212
volatile uint32_t startRevolutions
Definition statuses.h:214
unsigned int PW5
In uS.
Definition statuses.h:200
volatile bool tachoAlt
Definition statuses.h:48
uint16_t boostDuty
Boost Duty percentage value * 100 to give 2 points of precision.
Definition statuses.h:220
volatile bool isToothLog1Full
Boost Cut status: true == active, false == inactive.
Definition statuses.h:112
bool previousClutchTrigger
Definition statuses.h:40
bool engineProtectAfr
Engine protection is active (true) based on maximum AFR limits.
Definition statuses.h:255
byte battery10
Definition statuses.h:77
bool commCompat
Definition statuses.h:161
volatile byte runSecs
Definition statuses.h:204
uint16_t iatADC
Definition statuses.h:71
int8_t advance1
Definition statuses.h:79
uint16_t RPM
RPM - Current Revs per minute.
Definition statuses.h:50
volatile bool isInj3Open
Injector 3 status: true == open, false == closed.
Definition statuses.h:106
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:120
long longRPM
RPM as long int (gets assigned to / maintained in statuses.RPM as well)
Definition statuses.h:52
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:117
byte wmiPW
Definition statuses.h:262
bool aseIsActive
Is After Start Enrichment (ASE) active (true) or not (false)
Definition statuses.h:185
bool vssUiRefresh
Flag to indicate that the VSS value needs to be refreshed in the UI.
Definition statuses.h:140
volatile int8_t fuelTemp
Definition statuses.h:97
byte vvt1TargetAngle
Definition statuses.h:237
byte RPMdiv100
RPM value scaled (divided by 100) to fit a byte (0-255, e.g. 12000 => 120)
Definition statuses.h:51
bool sdCardPresent
true if a card is present, false if not
Definition statuses.h:271
uint16_t corrections
Definition statuses.h:81
long vvt2Duty
Definition statuses.h:265
byte fanDuty
Definition statuses.h:261
uint8_t TPS
Definition statuses.h:57
byte outputsStatus
Definition statuses.h:266
bool idleOn
Is the idle code active : true == active, false == inactive.
Definition statuses.h:126
byte afrTarget
Definition statuses.h:92
bool engineProtectOil
Engine protection is active (true) due to minimum oil pressure limits.
Definition statuses.h:253
bool launchingHard
Definition statuses.h:208
volatile int rpmDOT
Definition statuses.h:62
byte fuelTempCorrection
Definition statuses.h:90
bool softLimitActive
Soft limit status: true == on, false == off.
Definition statuses.h:124
volatile bool isInj1Open
Injector 1 status: true == open, false == closed.
Definition statuses.h:102
bool airconCltLockout
Indicates the A/C is locked out either due to high coolant temp.
Definition statuses.h:297
byte nitrous_status
Definition statuses.h:226
unsigned int PW2
In uS.
Definition statuses.h:197
bool isAcceleratingTPS
Are we accelerating (true) or not (false), based on TPS.
Definition statuses.h:191
uint8_t systemTemp
Definition statuses.h:301
volatile bool fpPrimed
Tracks whether or not the fuel pump priming has been completed yet.
Definition statuses.h:42
int16_t tpsDOT
Definition statuses.h:59
uint8_t O2_2
Definition statuses.h:67
uint16_t freeRAM
Definition statuses.h:210
bool sdCardError
true if error, false if not
Definition statuses.h:279
byte compositeTriggerUsed
Definition statuses.h:235
byte egoCorrection
Definition statuses.h:83
int16_t flexBoostCorrection
Definition statuses.h:225
bool initialisationComplete
Tracks whether the setup() function has run completely.
Definition statuses.h:36
int8_t flexIgnCorrection
Definition statuses.h:91
byte idleLoad
Either the current steps or current duty cycle for the idle control.
Definition statuses.h:221
uint16_t O2_2ADC
Definition statuses.h:73
bool airconCompressorOn
Indicates whether the A/C compressor is running.
Definition statuses.h:289
bool engineProtectBoostCut
Engine protection is active (true) due to exceeding MAP limits.
Definition statuses.h:251
byte iatCorrection
Definition statuses.h:86
uint8_t O2
Definition statuses.h:66
bool allowLegacyComms
Definition statuses.h:163
uint16_t injAngle
Definition statuses.h:239
volatile bool isInj2Open
Injector 2 status: true == open, false == closed.
Definition statuses.h:104
bool resetPreventActive
Reset prevent on (true) or off (false)
Definition statuses.h:133
long MAP
Manifold absolute pressure. Has to be a long for PID calcs (Boost control)
Definition statuses.h:54
volatile bool tachoSweepEnabled
Definition statuses.h:46
uint16_t crankRPM
Definition statuses.h:224
uint8_t baro
Barometric pressure is simply the initial MAP reading, taken before the engine is running....
Definition statuses.h:56
volatile byte ethanolPct
Definition statuses.h:96
unsigned int PW7
In uS.
Definition statuses.h:202
uint16_t AEamount
Definition statuses.h:82
uint16_t cltADC
Definition statuses.h:69
uint16_t O2ADC
Definition statuses.h:72
volatile bool halfSync
Definition statuses.h:143
bool isDFCOActive
Deceleration Fuel Cut Off status: true == active, false == inactive.
Definition statuses.h:110
unsigned int sdCardType
0==SD, 1==SDHC
Definition statuses.h:273
unsigned int nSquirtsStatus
Definition statuses.h:145