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 "atomic.h"
13#include "maths.h"
14#include "decoder_builder.h"
15
16using byte = uint8_t;
17
25struct statuses {
26 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
28 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
29 bool clutchTrigger : 1;
30 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
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 fpPrimed : 1;
34 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
35 volatile bool injPrimed : 1;
36 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
37 volatile bool tachoSweepEnabled : 1;
38 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
39 volatile bool tachoAlt : 1;
40
42 byte RPMdiv100;
43 long longRPM;
45 long MAP;
51 byte TPSlast;
53 volatile int rpmDOT;
54 byte VE;
55 byte VE1;
56 byte VE2;
59 int coolant;
61 int IAT;
68 byte battery10;
83 byte afrTarget;
87 volatile byte ethanolPct;
88 volatile int8_t fuelTemp;
89 unsigned long AEEndTime;
91 // Status1 fields as defined in the INI
92 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
93 volatile bool isInj1Open : 1;
94 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
95 volatile bool isInj2Open : 1;
96 // cppcheck-suppress misra-c2012-6.1
97 volatile bool isInj3Open : 1;
98 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
99 volatile bool isInj4Open : 1;
100 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
101 bool isDFCOActive : 1;
102 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
103 volatile bool isToothLog1Full : 1;
104
105 // Status2 fields as defined in the INI.
106 // TODO: resolve duplication with launchingHard
107 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
109 // TODO: resolve duplication with launchingSoft
110 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
112 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
114 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
116 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
117 bool idleOn : 1;
118
119 // Status3 fields as defined in the INI.
120 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
122 // TODO: resolve duplication with nitrous_status
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 bool nitrousActive : 1;
125 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
127 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
128 bool vssUiRefresh : 1;
129 // TODO: resolve duplication with nSquirts
130 unsigned int nSquirtsStatus: 3;
131
132 // Status4 fields as defined in the INI.
133 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
134 bool wmiTankEmpty : 1;
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 vvt1AngleError : 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.
138 bool vvt2AngleError : 1;
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 fanOn : 1;
141 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
142 bool burnPending : 1;
143 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
144 bool stagingActive : 1;
145 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
146 bool commCompat : 1;
147 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
149
150 // Status5 fields as defined in the INI.
151 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
153 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
155 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
157 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
159 // TODO: resolve duplication with clutchTrigger
160 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
162
163 // Engine status fields as defined in the INI.
164 // TODO: engine has 3 states: Off, Cranking, Running. Need to capture this better
165 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
167 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
169 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
170 bool aseIsActive : 1;
171 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
172 bool wueIsActive : 1;
173 // 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: acceleration has 3 states: Steady, Accelerating, Decelerating. Need to capture this better
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 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
179
180 // TODO: make all pulse widths uint16_t
181 unsigned int PW1;
182 unsigned int PW2;
183 unsigned int PW3;
184 unsigned int PW4;
185 unsigned int PW5;
186 unsigned int PW6;
187 unsigned int PW7;
188 unsigned int PW8;
189 volatile byte runSecs;
190 volatile byte secl;
194 // TODO: remove this: only updated & read in logger
196 // TODO: make all RPMs uint16_t
197 unsigned int clutchEngagedRPM;
201 // TODO: resolve conflict with testActive
202 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
203 bool isTestModeActive : 1; // Is hardware test mode on?
204 bool testActive; // Not in use ? Replaced by testOutputs ?
206 byte idleLoad;
212 byte nSquirts;
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; //Has to be a long for PID calcs (CL VVT control)
223 long vvt1Duty; //Has to be a long for PID calcs (CL VVT control)
228 byte gear;
232 // engineProtectStatus fields as defined in the INI. Needs to be accessible as a byte for I/O, so use type punning.
233 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
235 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
237 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
239 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
241 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
243 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
245
247 byte wmiPW;
248 int16_t vvt2Angle; //Has to be a long for PID calcs (CL VVT control)
250 long vvt2Duty; //Has to be a long for PID calcs (CL VVT control)
252
253 // SD card status fields.
254 // TODO: conditional compile on SD_LOGGING once board definition is separated from globals.h
255 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
256 bool sdCardPresent : 1;
257 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
258 unsigned int sdCardType : 1;
259 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
260 bool sdCardReady : 1;
261 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
262 bool sdCardLogging : 1;
263 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
264 bool sdCardError : 1;
265 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
266 unsigned int sdCardFS : 1;
267 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
268 bool sdCardUnused : 1;
269
270 // airConStatus fields.
271 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
273 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
275 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
277 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
279 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
281 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
283 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
284 bool airconFanOn : 1;
285
287 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)
288
293 {
294 // Using bytes for compactness ATM, but that limits us to 8 fuel and
295 // 8 ignition channels
299 };
301
303};
304
305static inline bool isEngineProtectActive(const statuses &status) {
306 return status.engineProtectRpm
307 || status.engineProtectBoostCut
308 || status.engineProtectOil
309 || status.engineProtectAfr
310 || status.engineProtectClt;
311}
312
313static inline void resetEngineProtect(statuses &status) {
314 status.engineProtectRpm = false;
315 status.engineProtectBoostCut = false;
316 status.engineProtectOil = false;
317 status.engineProtectAfr = false;
318 status.engineProtectClt = false;
319 status.engineProtectIoError = false;
320}
321
322
329static inline void setRpm(statuses &status, uint16_t rpm)
330{
331 ATOMIC()
332 {
333 status.RPM = rpm;
334 status.RPMdiv100 = div100(rpm);
335 status.longRPM = rpm;
336 }
337}
Bit twiddling macros.
uint8_t byte
Definition config_pages.h:16
A builder for decoder_t structures.
static TIntegral readSerialIntegralTimeout(void)
Reads an integral type, timing out if necessary.
Definition comms.cpp:175
static uint16_t div100(uint16_t n)
Performance optimised integer division by 100. I.e. same as n/100.
Definition maths.h:123
static bool isEngineProtectActive(const statuses &status)
Definition statuses.h:305
static void setRpm(statuses &status, uint16_t rpm)
Set the RPM field, keeping RPMDiv100 in sync.
Definition statuses.h:329
static void resetEngineProtect(statuses &status)
Definition statuses.h:313
A builder for decoder_t - will make sure all required fields are set.
Definition decoder_builder.h:10
decoder_t build(void) const
Definition decoder_builder.h:33
This structure represents a decoder configuration.
Definition decoder_t.h:89
Fuel and ignition scheduler cut state.
Definition statuses.h:293
byte fuelChannels
Which fuel channels are on (1) or off (0)
Definition statuses.h:298
byte ignitionChannelsPending
Any ignition channels that are pending injections before they are resumed.
Definition statuses.h:296
byte ignitionChannels
Which ignition channels are on (1) or off (0)
Definition statuses.h:297
The status struct with current values for all 'live' variables.
Definition statuses.h:25
volatile bool isInj4Open
Injector 4 status: true == open, false == closed.
Definition statuses.h:99
bool airconFanOn
Indicates whether the A/C fan is running.
Definition statuses.h:284
byte dwellCorrection
Definition statuses.h:67
bool wueIsActive
Is Warm Up Enrichment (WUE) active (true) or not (false)
Definition statuses.h:172
uint16_t baroADC
Definition statuses.h:44
bool airconRequested
Indicates whether the A/C button is pressed.
Definition statuses.h:272
volatile byte syncLossCounter
Definition statuses.h:216
byte ASEValue
Definition statuses.h:225
bool engineProtectClt
Engine protection is active (true) based on exceeding coolant limits.
Definition statuses.h:242
int16_t vvt2Angle
Definition statuses.h:248
bool engineProtectRpm
Engine protection is active (true) due to exceeding RPM limits.
Definition statuses.h:234
uint16_t canin[16]
16bit raw value of selected canin data for channels 0-15
Definition statuses.h:207
byte oilPressure
Definition statuses.h:230
uint8_t current_caninchannel
Definition statuses.h:208
bool launchingSoft
Definition statuses.h:192
unsigned int PW3
In uS.
Definition statuses.h:183
byte launchCorrection
Definition statuses.h:79
scheduler_cut_t schedulerCutState
Definition statuses.h:300
unsigned int PW6
In uS.
Definition statuses.h:186
bool idleUpActive
Definition statuses.h:85
bool wmiTankEmpty
Is the Water Methanol Injection tank empty (true) or not (false)
Definition statuses.h:134
long vvt1Duty
Definition statuses.h:223
unsigned int sdCardFS
File system type 0=no FAT16, 1=FAT32.
Definition statuses.h:266
uint32_t revolutionTime
Definition statuses.h:287
bool CTPSActive
Definition statuses.h:86
unsigned int PW8
In uS.
Definition statuses.h:188
byte CLIdleTarget
Definition statuses.h:84
byte vvt2TargetAngle
Definition statuses.h:249
byte TPSlast
Definition statuses.h:51
bool clutchTrigger
Definition statuses.h:29
bool testActive
Definition statuses.h:204
bool idleUpOutputActive
Definition statuses.h:227
bool engineIsRunning
Is engine running (true) or not (false)
Definition statuses.h:166
bool secondSparkTableActive
Secondary spark table is use (true) or not (false)
Definition statuses.h:154
bool vvt2AngleError
VVT2 cam angle within limits (false) or not (true)
Definition statuses.h:138
unsigned long AEEndTime
Definition statuses.h:89
byte baroCorrection
Definition statuses.h:78
bool flatShiftingHard
Definition statuses.h:198
int16_t vvt1Angle
Definition statuses.h:221
bool engineProtectIoError
Definition statuses.h:244
bool vvt1AngleError
VVT1 cam angle within limits (false) or not (true)
Definition statuses.h:136
unsigned int PW4
In uS.
Definition statuses.h:184
byte VE2
Definition statuses.h:56
byte flexCorrection
Definition statuses.h:80
bool clutchTriggerActive
Is the clutch trigger active (true) or not (false)
Definition statuses.h:161
volatile uint16_t loopsPerSecond
Definition statuses.h:191
bool toothLogEnabled
Definition statuses.h:219
bool burnPending
Is an EEPROM burn pending (true) or not (false)
Definition statuses.h:142
byte VE1
Definition statuses.h:55
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:278
bool sdCardLogging
true if logging active, false if not
Definition statuses.h:262
int IAT
Definition statuses.h:61
int16_t mapDOT
Definition statuses.h:52
uint16_t ignLoad
Definition statuses.h:214
byte wueCorrection
Definition statuses.h:75
byte batCorrection
Definition statuses.h:76
int8_t advance
Definition statuses.h:69
unsigned int PW1
In uS.
Definition statuses.h:181
uint16_t dwell
dwell (coil primary winding/circuit on) time (in ms * 10 ? See correctionsDwell)
Definition statuses.h:65
uint8_t tpsADC
Definition statuses.h:49
bool hardLimitActive
Hard limit status: true == on, false == off.
Definition statuses.h:113
volatile byte knockCount
Definition statuses.h:218
bool knockRetardActive
Is knock retardation active (true) or not (false)
Definition statuses.h:156
bool knockPulseDetected
Definition statuses.h:158
byte nSquirts
Number of injector squirts per cycle (per injector)
Definition statuses.h:212
int8_t advance2
Definition statuses.h:71
bool sdCardUnused
true if unused, false if not
Definition statuses.h:268
bool engineIsCranking
Is engine cranking (true) or not (false)
Definition statuses.h:168
uint16_t vss
Definition statuses.h:226
bool fanOn
Engine fan status (true == on, false == off)
Definition statuses.h:140
byte knockRetard
Definition statuses.h:217
uint16_t boostTarget
Definition statuses.h:200
uint16_t EMAP
EMAP ... (See config6::useEMAP for EMAP enablement)
Definition statuses.h:46
bool fuelPumpOn
Definition statuses.h:215
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:280
bool sdCardReady
true if ready, false if not
Definition statuses.h:260
byte gear
Definition statuses.h:228
volatile bool injPrimed
Tracks whether or not the injector priming has been completed yet.
Definition statuses.h:35
uint8_t maxIgnOutputs
Definition statuses.h:289
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:276
volatile byte secl
Definition statuses.h:190
bool secondFuelTableActive
Secondary fuel table is use (true) or not (false)
Definition statuses.h:126
bool isTestModeActive
Definition statuses.h:203
bool nitrousActive
Nitrous on (true) or off (false)
Definition statuses.h:124
uint16_t fuelLoad
Definition statuses.h:213
int coolant
Definition statuses.h:59
byte VE
Definition statuses.h:54
bool isDeceleratingTPS
Are we decelerating (true) or not (false), based on TPS.
Definition statuses.h:178
volatile uint16_t actualDwell
actual dwell time if new ignition mode is used (in uS)
Definition statuses.h:66
byte fuelPressure
Definition statuses.h:229
unsigned int clutchEngagedRPM
Definition statuses.h:197
volatile uint32_t startRevolutions
Definition statuses.h:199
unsigned int PW5
In uS.
Definition statuses.h:185
volatile bool tachoAlt
Definition statuses.h:39
uint16_t boostDuty
Boost Duty percentage value * 100 to give 2 points of precision.
Definition statuses.h:205
volatile bool isToothLog1Full
Boost Cut status: true == active, false == inactive.
Definition statuses.h:103
bool previousClutchTrigger
Definition statuses.h:31
bool engineProtectAfr
Engine protection is active (true) based on maximum AFR limits.
Definition statuses.h:240
byte battery10
Definition statuses.h:68
bool commCompat
Definition statuses.h:146
volatile byte runSecs
Definition statuses.h:189
uint16_t iatADC
Definition statuses.h:62
int8_t advance1
Definition statuses.h:70
uint16_t RPM
RPM - Current Revs per minute.
Definition statuses.h:41
volatile bool isInj3Open
Injector 3 status: true == open, false == closed.
Definition statuses.h:97
bool flatShiftSoftCut
Is the flat shift soft cut active (true) or not (false)
Definition statuses.h:152
bool softLaunchActive
Soft Launch status: true == on, false == off.
Definition statuses.h:111
long longRPM
RPM as long int (gets assigned to / maintained in statuses.RPM as well)
Definition statuses.h:43
bool stagingActive
Is fuel injection staging active (true) or not (false)
Definition statuses.h:144
bool hardLaunchActive
Hard Launch status: true == on, false == off.
Definition statuses.h:108
byte wmiPW
Definition statuses.h:247
bool aseIsActive
Is After Start Enrichment (ASE) active (true) or not (false)
Definition statuses.h:170
bool vssUiRefresh
Flag to indicate that the VSS value needs to be refreshed in the UI.
Definition statuses.h:128
volatile int8_t fuelTemp
Definition statuses.h:88
byte vvt1TargetAngle
Definition statuses.h:222
byte RPMdiv100
RPM value scaled (divided by 100) to fit a byte (0-255, e.g. 12000 => 120)
Definition statuses.h:42
bool sdCardPresent
true if a card is present, false if not
Definition statuses.h:256
uint16_t corrections
Definition statuses.h:72
long vvt2Duty
Definition statuses.h:250
byte fanDuty
Definition statuses.h:246
uint8_t TPS
Definition statuses.h:48
byte outputsStatus
Definition statuses.h:251
decoder_t decoder
The current decoder.
Definition statuses.h:302
bool idleOn
Is the idle code active : true == active, false == inactive.
Definition statuses.h:117
byte afrTarget
Definition statuses.h:83
bool engineProtectOil
Engine protection is active (true) due to minimum oil pressure limits.
Definition statuses.h:238
bool launchingHard
Definition statuses.h:193
volatile int rpmDOT
Definition statuses.h:53
byte fuelTempCorrection
Definition statuses.h:81
bool softLimitActive
Soft limit status: true == on, false == off.
Definition statuses.h:115
volatile bool isInj1Open
Injector 1 status: true == open, false == closed.
Definition statuses.h:93
bool airconCltLockout
Indicates the A/C is locked out either due to high coolant temp.
Definition statuses.h:282
byte nitrous_status
Definition statuses.h:211
unsigned int PW2
In uS.
Definition statuses.h:182
bool isAcceleratingTPS
Are we accelerating (true) or not (false), based on TPS.
Definition statuses.h:176
uint8_t systemTemp
Definition statuses.h:286
volatile bool fpPrimed
Tracks whether or not the fuel pump priming has been completed yet.
Definition statuses.h:33
int16_t tpsDOT
Definition statuses.h:50
uint8_t O2_2
Definition statuses.h:58
uint16_t freeRAM
Definition statuses.h:195
bool sdCardError
true if error, false if not
Definition statuses.h:264
byte compositeTriggerUsed
Definition statuses.h:220
byte egoCorrection
Definition statuses.h:74
int16_t flexBoostCorrection
Definition statuses.h:210
bool initialisationComplete
Tracks whether the setup() function has run completely.
Definition statuses.h:27
int8_t flexIgnCorrection
Definition statuses.h:82
byte idleLoad
Either the current steps or current duty cycle for the idle control.
Definition statuses.h:206
uint16_t O2_2ADC
Definition statuses.h:64
bool airconCompressorOn
Indicates whether the A/C compressor is running.
Definition statuses.h:274
bool engineProtectBoostCut
Engine protection is active (true) due to exceeding MAP limits.
Definition statuses.h:236
byte iatCorrection
Definition statuses.h:77
uint8_t O2
Definition statuses.h:57
bool allowLegacyComms
Definition statuses.h:148
uint16_t injAngle
Definition statuses.h:224
volatile bool isInj2Open
Injector 2 status: true == open, false == closed.
Definition statuses.h:95
bool resetPreventActive
Reset prevent on (true) or off (false)
Definition statuses.h:121
long MAP
Manifold absolute pressure. Has to be a long for PID calcs (Boost control)
Definition statuses.h:45
volatile bool tachoSweepEnabled
Definition statuses.h:37
uint16_t crankRPM
Definition statuses.h:209
uint8_t baro
Barometric pressure is simply the initial MAP reading, taken before the engine is running....
Definition statuses.h:47
volatile byte ethanolPct
Definition statuses.h:87
unsigned int PW7
In uS.
Definition statuses.h:187
uint16_t AEamount
Definition statuses.h:73
uint8_t maxInjOutputs
Definition statuses.h:290
uint16_t cltADC
Definition statuses.h:60
uint16_t O2ADC
Definition statuses.h:63
bool isDFCOActive
Deceleration Fuel Cut Off status: true == active, false == inactive.
Definition statuses.h:101
unsigned int sdCardType
0==SD, 1==SDHC
Definition statuses.h:258
unsigned int nSquirtsStatus
Definition statuses.h:130