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