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
15// Forward declares
16struct config4;
17
18using byte = uint8_t;
19
20constexpr uint8_t BIT_TIMER_1HZ = 0;
21constexpr uint8_t BIT_TIMER_4HZ = 1;
22constexpr uint8_t BIT_TIMER_10HZ = 2;
23constexpr uint8_t BIT_TIMER_15HZ = 3;
24constexpr uint8_t BIT_TIMER_30HZ = 4;
25constexpr uint8_t BIT_TIMER_50HZ = 5;
26constexpr uint8_t BIT_TIMER_200HZ = 6;
27constexpr uint8_t BIT_TIMER_1KHZ = 7;
28
30enum class SchedulerCutStatus : uint8_t
31{
33 None,
35 Rolling,
37 Full,
38};
39
40
42enum class EngineRotationStatus : uint8_t
43{
45 Stopped,
47 Cranking,
49 Running,
50};
51
53{
54 bool angleError : 1;
55 int16_t angle = 0;
56 uint8_t targetAngle = 0;
57 uint8_t duty = 0;
58
60 : angleError(false)
61 {
62 }
63};
64
66{
67 uint8_t primary : 4;
68 uint8_t secondary : 4;
70 uint8_t getTotalInjectors(void) const
71 {
72 return primary + secondary;
73 }
74 bool isPrimaryInjector(uint8_t channel) const
75 {
76 return channel>0 && channel<=primary;
77 }
78 bool isSecondaryInjector(uint8_t channel) const
79 {
80 return channel>primary && channel<=getTotalInjectors();
81 }
82};
83
85{
86 bool acRequested : 1;
87 bool compressorOn : 1;
90 bool turningOn : 1;
92 bool fanOn : 1;
93
94 bool isLockoutActive(void) const
95 {
96 return rpmLockoutActive
99 ;
100 }
101};
102
110struct statuses {
112 statuses(void);
113
119 void setRpm(uint16_t rpm);
120
122
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.
127 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
129 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
130 volatile bool injPrimed : 1;
131
132 uint16_t RPM;
134 uint16_t baroADC;
135 uint16_t MAP;
136 uint16_t EMAP;
137 uint8_t baro;
138 uint8_t TPS;
139 uint8_t tpsADC;
140 int16_t tpsDOT;
141 byte TPSlast;
142 int16_t mapDOT;
143 volatile int rpmDOT;
144 byte VE;
145 byte VE1;
146 byte VE2;
147 uint8_t O2;
148 uint8_t O2_2;
150 uint16_t cltADC;
151 int IAT;
152 uint16_t iatADC;
153 uint16_t O2ADC;
154 uint16_t O2_2ADC;
155 uint16_t dwell;
156 volatile uint16_t actualDwell;
159 int8_t advance;
160 int8_t advance1;
161 int8_t advance2;
162 uint16_t corrections;
163 uint16_t AEamount;
177 volatile byte ethanolPct;
178 volatile int8_t fuelTemp;
179 unsigned long AEStartTime;
181 // Status1 fields as defined in the INI
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 bool isDFCOActive : 1;
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 volatile bool isToothLog1Full : 1;
186
187 // Status2 fields as defined in the INI.
188 // TODO: resolve duplication with launchingHard
189 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
191 // TODO: resolve duplication with launchingSoft
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 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
196 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
197 bool idleOn : 1;
198
199 // Status3 fields as defined in the INI.
200 // TODO: resolve duplication with nitrous_status
201 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
202 bool nitrousActive : 1;
203 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
205 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
206 bool vssUiRefresh : 1;
207
208 // Status4 fields as defined in the INI.
209 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
210 bool wmiTankEmpty : 1;
211 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
212 bool fanOn : 1;
213 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
214 bool burnPending : 1;
215 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
216 bool stagingActive : 1;
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 commCompat : 1;
219 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
221
222 // Status5 fields as defined in the INI.
223 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
225 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
227 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
229 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
231 // TODO: resolve duplication with clutchTrigger
232 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
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 aseIsActive : 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 wueIsActive : 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 // TODO: acceleration has 3 states: Steady, Accelerating, Decelerating. Need to capture this better
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.
246
247 volatile byte runSecs;
248 volatile byte secl;
249 volatile uint16_t loopsPerSecond;
252 // TODO: remove this: only updated & read in logger
253 uint16_t freeRAM;
254 // TODO: make all RPMs uint16_t
255 unsigned int clutchEngagedRPM;
257 volatile uint32_t startRevolutions;
258 uint16_t boostTarget;
259 // TODO: resolve conflict with testActive
260 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
261 bool isTestModeActive : 1; // Is hardware test mode on?
262 bool testActive; // Not in use ? Replaced by testOutputs ?
263 uint16_t boostDuty;
264 byte idleLoad;
265 uint16_t canin[16];
267 uint16_t crankRPM = 400;
270 byte nSquirts;
271 uint16_t fuelLoad;
272 uint16_t ignLoad;
273 volatile byte syncLossCounter;
275 volatile byte knockCount;
277 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
278 uint16_t injAngle;
280 uint16_t vss;
282 byte gear;
288 {
289 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
290 bool rpm : 1;
291 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
292 bool coolant : 1;
293 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
294 bool boostCut : 1;
295 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
296 bool oil : 1;
297 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
298 bool afr : 1;
299
301 // cppcheck-suppress misra-c2012-8.10 ; False positive - cannot make this static
302 inline bool isActive(void) const {
303 return rpm
304 || coolant
305 || boostCut
306 || oil
307 || afr
308 ;
309 }
310
312 // cppcheck-suppress misra-c2012-8.10 ; False positive - cannot make this static
313 inline void reset(void) {
314 rpm = false;
315 boostCut = false;
316 oil = false;
317 afr = false;
318 coolant = false;
319 }
320 };
322 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
323 bool ioError : 1;
324
326 byte wmiPW;
327
328 // SD card status fields.
329 // TODO: conditional compile on SD_LOGGING once board definition is separated from globals.h
330 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
331 bool sdCardPresent : 1;
332 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
333 unsigned int sdCardType : 1;
334 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
335 bool sdCardReady : 1;
336 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
337 bool sdCardLogging : 1;
338 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
339 bool sdCardError : 1;
340 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
341 unsigned int sdCardFS : 1;
342 // cppcheck-suppress misra-c2012-6.1 ; False positive - MISRA C:2012 Rule (R 6.1) permits the use of boolean for bit fields.
343 bool sdCardUnused : 1;
344
346
347 uint8_t systemTemp;
348 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)
349
351 uint8_t injLayout : 3;
353
356 {
357 // Using bytes for compactness ATM, but that limits us to 8 fuel and
358 // 8 ignition channels
360 byte ignitionChannels = 0xFF;
361 byte fuelChannels = 0xFF;
363 };
365
367
368 uint8_t LOOP_TIMER;
369
372};
Bit twiddling macros.
uint8_t byte
Definition config_pages.h:16
const config4 & page4
Definition engineProtection.cpp:172
EngineRotationStatus
The engine rotation status.
Definition statuses.h:43
constexpr uint8_t BIT_TIMER_200HZ
Definition statuses.h:26
constexpr uint8_t BIT_TIMER_1HZ
Definition statuses.h:20
constexpr uint8_t BIT_TIMER_1KHZ
Definition statuses.h:27
constexpr uint8_t BIT_TIMER_10HZ
Definition statuses.h:22
SchedulerCutStatus
The current status of scheduler channel cuts.
Definition statuses.h:31
constexpr uint8_t BIT_TIMER_15HZ
Definition statuses.h:23
constexpr uint8_t BIT_TIMER_50HZ
Definition statuses.h:25
constexpr uint8_t BIT_TIMER_4HZ
Definition statuses.h:21
constexpr uint8_t BIT_TIMER_30HZ
Definition statuses.h:24
Definition statuses.h:85
bool acRequested
Indicates whether the A/C button is pressed.
Definition statuses.h:86
bool tpsLockoutActive
Indicates the A/C is locked out due to high TPS, or the post-high-TPS "stand-down" lockout period.
Definition statuses.h:89
bool rpmLockoutActive
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:88
bool cltLockoutActive
Indicates the A/C is locked out either due to high coolant temp.
Definition statuses.h:91
bool compressorOn
Indicates whether the A/C compressor is running.
Definition statuses.h:87
bool isLockoutActive(void) const
Definition statuses.h:94
bool fanOn
Indicates whether the A/C fan is running.
Definition statuses.h:92
bool turningOn
Indicates the A/C request is on (i.e. A/C button pressed), the lockouts are off, however the start de...
Definition statuses.h:90
Definition config_pages.h:353
This structure represents a decoder configuration.
Definition decoder_t.h:95
Definition statuses.h:66
uint8_t secondary
Definition statuses.h:68
uint8_t primary
Definition statuses.h:67
uint8_t getTotalInjectors(void) const
Definition statuses.h:70
bool isPrimaryInjector(uint8_t channel) const
Definition statuses.h:74
bool isSecondaryInjector(uint8_t channel) const
Definition statuses.h:78
Engine protection status fields.
Definition statuses.h:288
bool rpm
true if RPM limits have been breached, false otherwise
Definition statuses.h:290
bool isActive(void) const
Are any protections active.
Definition statuses.h:302
bool oil
true if the oil limit has been breached, false otherwise
Definition statuses.h:296
bool afr
true if the afr limit has been breached, false otherwise
Definition statuses.h:298
bool boostCut
true if the boost limit has been breached, false otherwise
Definition statuses.h:294
bool coolant
true if coolant limits have been breached, false otherwise
Definition statuses.h:292
void reset(void)
Reset all protections to off.
Definition statuses.h:313
Fuel and ignition scheduler cut state.
Definition statuses.h:356
byte fuelChannels
Which fuel channels are on (1) or off (0)
Definition statuses.h:361
SchedulerCutStatus status
Definition statuses.h:362
byte ignitionChannelsPending
Any ignition channels that are pending injections before they are resumed.
Definition statuses.h:359
byte ignitionChannels
Which ignition channels are on (1) or off (0)
Definition statuses.h:360
The status struct with current values for all 'live' variables.
Definition statuses.h:110
byte dwellCorrection
Definition statuses.h:157
num_injector_t injOutputs
Definition statuses.h:352
bool wueIsActive
Is Warm Up Enrichment (WUE) active (true) or not (false)
Definition statuses.h:238
uint16_t baroADC
Definition statuses.h:134
volatile byte syncLossCounter
Definition statuses.h:273
byte ASEValue
Definition statuses.h:279
uint16_t canin[16]
16bit raw value of selected canin data for channels 0-15
Definition statuses.h:265
byte oilPressure
Definition statuses.h:284
uint8_t current_caninchannel
Definition statuses.h:266
bool launchingSoft
Definition statuses.h:250
EngineRotationStatus rotationStatus
Definition statuses.h:245
byte launchCorrection
Definition statuses.h:169
scheduler_cut_t schedulerCutState
Definition statuses.h:364
bool idleUpActive
Definition statuses.h:175
bool wmiTankEmpty
Is the Water Methanol Injection tank empty (true) or not (false)
Definition statuses.h:210
unsigned int sdCardFS
File system type 0=no FAT16, 1=FAT32.
Definition statuses.h:341
uint32_t revolutionTime
Definition statuses.h:348
bool CTPSActive
Definition statuses.h:176
byte CLIdleTarget
Definition statuses.h:174
byte TPSlast
Definition statuses.h:141
bool clutchTrigger
Definition statuses.h:126
bool testActive
Definition statuses.h:262
uint16_t MAP
Manifold absolute pressure.
Definition statuses.h:135
bool idleUpOutputActive
Definition statuses.h:281
bool secondSparkTableActive
Secondary spark table is use (true) or not (false)
Definition statuses.h:226
byte baroCorrection
Definition statuses.h:168
bool flatShiftingHard
Definition statuses.h:256
unsigned long AEStartTime
Definition statuses.h:179
byte VE2
Definition statuses.h:146
byte flexCorrection
Definition statuses.h:170
bool clutchTriggerActive
Is the clutch trigger active (true) or not (false)
Definition statuses.h:233
volatile uint16_t loopsPerSecond
Definition statuses.h:249
bool toothLogEnabled
Definition statuses.h:276
bool burnPending
Is an EEPROM burn pending (true) or not (false)
Definition statuses.h:214
byte VE1
Definition statuses.h:145
bool sdCardLogging
true if logging active, false if not
Definition statuses.h:337
int IAT
Definition statuses.h:151
int16_t mapDOT
Definition statuses.h:142
uint16_t ignLoad
Definition statuses.h:272
byte wueCorrection
Definition statuses.h:165
byte batCorrection
Definition statuses.h:166
int8_t advance
Definition statuses.h:159
uint16_t dwell
dwell (coil primary winding/circuit on) time (in ms * 10 ? See correctionsDwell)
Definition statuses.h:155
uint8_t tpsADC
Definition statuses.h:139
volatile byte knockCount
Definition statuses.h:275
bool knockRetardActive
Is knock retardation active (true) or not (false)
Definition statuses.h:228
bool knockPulseDetected
Definition statuses.h:230
byte nSquirts
Number of injector squirts per cycle (per injector)
Definition statuses.h:270
int8_t advance2
Definition statuses.h:161
statuses(void)
Default construct.
Definition statuses.cpp:6
bool ioError
true if there is an analog pin conflict
Definition statuses.h:323
bool sdCardUnused
true if unused, false if not
Definition statuses.h:343
uint16_t vss
Definition statuses.h:280
bool fanOn
Engine fan status (true == on, false == off)
Definition statuses.h:212
byte knockRetard
Definition statuses.h:274
airConStatus_t acStatus
Definition statuses.h:345
uint16_t boostTarget
Definition statuses.h:258
uint16_t EMAP
EMAP ... (See config6::useEMAP for EMAP enablement)
Definition statuses.h:136
bool sdCardReady
true if ready, false if not
Definition statuses.h:335
byte gear
Definition statuses.h:282
volatile bool injPrimed
Tracks whether or not the injector priming has been completed yet.
Definition statuses.h:130
uint8_t maxIgnOutputs
Definition statuses.h:350
volatile byte secl
Definition statuses.h:248
bool secondFuelTableActive
Secondary fuel table is use (true) or not (false)
Definition statuses.h:204
bool isTestModeActive
Definition statuses.h:261
bool nitrousActive
Nitrous on (true) or off (false)
Definition statuses.h:202
uint16_t fuelLoad
Definition statuses.h:271
int coolant
Definition statuses.h:149
byte VE
Definition statuses.h:144
bool isDeceleratingTPS
Are we decelerating (true) or not (false), based on TPS.
Definition statuses.h:244
volatile uint16_t actualDwell
actual dwell time if new ignition mode is used (in uS)
Definition statuses.h:156
void setRpm(uint16_t rpm)
Set the RPM field, keeping RPMDiv100 in sync.
Definition statuses.cpp:12
byte fuelPressure
Definition statuses.h:283
unsigned int clutchEngagedRPM
Definition statuses.h:255
volatile uint32_t startRevolutions
Definition statuses.h:257
uint16_t boostDuty
Boost Duty percentage value * 100 to give 2 points of precision.
Definition statuses.h:263
volatile bool isToothLog1Full
Boost Cut status: true == active, false == inactive.
Definition statuses.h:185
bool previousClutchTrigger
Definition statuses.h:128
byte battery10
Definition statuses.h:158
bool commCompat
Definition statuses.h:218
volatile byte runSecs
Definition statuses.h:247
uint16_t iatADC
Definition statuses.h:152
int8_t advance1
Definition statuses.h:160
uint16_t RPM
RPM - Current Revs per minute.
Definition statuses.h:132
bool flatShiftSoftCut
Is the flat shift soft cut active (true) or not (false)
Definition statuses.h:224
bool softLaunchActive
Soft Launch status: true == on, false == off.
Definition statuses.h:193
bool stagingActive
Is fuel injection staging active (true) or not (false)
Definition statuses.h:216
bool hardLaunchActive
Hard Launch status: true == on, false == off.
Definition statuses.h:190
byte wmiPW
Definition statuses.h:326
bool isFixedCrankingIgnitionTimingActive(const config4 &page4) const
Definition statuses.cpp:21
bool aseIsActive
Is After Start Enrichment (ASE) active (true) or not (false)
Definition statuses.h:236
bool vssUiRefresh
Flag to indicate that the VSS value needs to be refreshed in the UI.
Definition statuses.h:206
volatile int8_t fuelTemp
Definition statuses.h:178
uint8_t injLayout
Normally the same value as config2::injLayout, but under some situations will change to one of the ot...
Definition statuses.h:351
byte RPMdiv100
RPM value scaled (divided by 100) to fit a byte (0-255, e.g. 12000 => 120)
Definition statuses.h:133
bool sdCardPresent
true if a card is present, false if not
Definition statuses.h:331
uint16_t corrections
Definition statuses.h:162
byte fanDuty
Definition statuses.h:325
uint8_t LOOP_TIMER
The timer flags currently in effect.
Definition statuses.h:368
uint8_t TPS
Definition statuses.h:138
decoder_t decoder
The current decoder.
Definition statuses.h:366
bool idleOn
Is the idle code active : true == active, false == inactive.
Definition statuses.h:197
byte afrTarget
Definition statuses.h:173
bool launchingHard
Definition statuses.h:251
volatile int rpmDOT
Definition statuses.h:143
byte fuelTempCorrection
Definition statuses.h:171
bool softLimitActive
Soft limit status: true == on, false == off.
Definition statuses.h:195
byte nitrous_status
Definition statuses.h:269
vvtStatus_t vvt1
Definition statuses.h:370
bool isAcceleratingTPS
Are we accelerating (true) or not (false), based on TPS.
Definition statuses.h:242
uint8_t systemTemp
Definition statuses.h:347
int16_t tpsDOT
Definition statuses.h:140
uint8_t O2_2
Definition statuses.h:148
uint16_t freeRAM
Definition statuses.h:253
bool sdCardError
true if error, false if not
Definition statuses.h:339
byte compositeTriggerUsed
Definition statuses.h:277
byte egoCorrection
Definition statuses.h:164
int16_t flexBoostCorrection
Definition statuses.h:268
vvtStatus_t vvt2
Definition statuses.h:371
bool initialisationComplete
Tracks whether the setup() function has run completely.
Definition statuses.h:124
int8_t flexIgnCorrection
Definition statuses.h:172
byte idleLoad
Either the current steps or current duty cycle for the idle control.
Definition statuses.h:264
uint16_t O2_2ADC
Definition statuses.h:154
byte iatCorrection
Definition statuses.h:167
uint8_t O2
Definition statuses.h:147
bool allowLegacyComms
Definition statuses.h:220
uint16_t injAngle
Definition statuses.h:278
uint16_t crankRPM
Definition statuses.h:267
uint8_t baro
Barometric pressure is simply the initial MAP reading, taken before the engine is running....
Definition statuses.h:137
engine_protect_flags_t engineProtect
Definition statuses.h:321
volatile byte ethanolPct
Definition statuses.h:177
uint16_t AEamount
Definition statuses.h:163
uint16_t cltADC
Definition statuses.h:150
uint16_t O2ADC
Definition statuses.h:153
bool isDFCOActive
Deceleration Fuel Cut Off status: true == active, false == inactive.
Definition statuses.h:183
unsigned int sdCardType
0==SD, 1==SDHC
Definition statuses.h:333
Definition statuses.h:53
int16_t angle
Measured cam angle.
Definition statuses.h:55
uint8_t duty
PWM duty.
Definition statuses.h:57
vvtStatus_t()
Definition statuses.h:59
bool angleError
Is the cam angle within limits (false) or not (true)
Definition statuses.h:54
uint8_t targetAngle
Target angle.
Definition statuses.h:56