25#define CAN_PEDAL_TPS_OFFSET 2
26#define CAN_SENSOR_1_OFFSET 3
33 uint8_t mainRelay : 1;
35 uint8_t checkEngine : 1;
37 uint8_t lambdaProtectActive : 1;
56#if EFI_SHAFT_POSITION_INPUT
73 scaled_channel<uint8_t, 2> injDuty;
74 scaled_channel<uint8_t, 2> coilDuty;
75 scaled_channel<uint8_t> vssKph;
76 uint8_t EthanolPercent;
84 msg.timing = timing > 360 ? timing - 720 : timing;
111 scaled_channel<uint8_t> clt;
112 scaled_channel<uint8_t> iat;
113 scaled_channel<uint8_t> aux1;
114 scaled_channel<uint8_t> aux2;
115 scaled_channel<uint8_t> mcuTemp;
116 scaled_channel<uint8_t, 2> fuelLevel;
152 scaled_channel<uint16_t, 1000> cylAirmass;
153 scaled_channel<uint16_t, 100> estAirflow;
159#if EFI_ENGINE_CONTROL
168 scaled_channel<uint16_t> fuelConsumedGram;
169 scaled_channel<uint16_t, PACK_MULT_FUEL_FLOW>
fuelFlowRate;
174#ifdef MODULE_ODOMETER
179 for (
size_t i = 0; i < FT_BANK_COUNT; i++) {
185 scaled_channel<uint16_t, 10000> Lambda;
186 scaled_channel<uint16_t, 10000>
Lambda2;
198struct PerCylinderKnock {
203 for (
size_t index = 0;index<std::min(8, MAX_CYLINDER_COUNT);index++) {
209 int8_t Bank1IntakeActual;
210 int8_t Bank1IntakeTarget;
211 int8_t Bank1ExhaustActual;
212 int8_t Bank1ExhaustTarget;
213 int8_t Bank2IntakeActual;
214 int8_t Bank2IntakeTarget;
215 int8_t Bank2ExhaustActual;
216 int8_t Bank2ExhaustTarget;
220#if EFI_SHAFT_POSITION_INPUT
245#if HW_HELLEN && EFI_PROD_CODE
static void populateFrame(Status &msg)
FuelComputer fuelComputer
TriggerCentral triggerCentral
LambdaMonitor lambdaMonitor
TunerStudioOutputChannels outputChannels
constexpr auto & module()
RegisteredOutputPin mainRelay
RegisteredOutputPin fanRelay
RegisteredOutputPin fanRelay2
RegisteredOutputPin fuelPumpRelay
RegisteredOutputPin checkEnginePin
WarningCodeState warnings
angle_t timingAdvance[MAX_CYLINDER_COUNT]
bool getLogicValue() const
virtual SensorResult get() const =0
static float getOrZero(SensorType type)
angle_t getVVTPosition(uint8_t bankIndex, uint8_t camIndex)
scaled_channel< int16_t, PACK_MULT_ANGLE > scaled_angle
scaled_channel< int16_t, PACK_MULT_MS > scaled_ms
scaled_channel< uint16_t, PACK_MULT_PRESSURE > scaled_pressure
scaled_channel< int16_t, PACK_MULT_PERCENT > scaled_percent
scaled_channel< uint16_t, PACK_MULT_VOLTAGE > scaled_voltage
static EngineAccessor engine
static constexpr engine_configuration_s * engineConfiguration
percent_t getInjectorDutyCycle(float rpm)
bool getHellenBoardEnabled()
fuelTemp("fuelTemp", SensorCategory.SENSOR_INPUTS, FieldType.INT16, 746, 0.01, 0.0, 0.0, "deg C")
oilPressure("Oil Pressure", SensorCategory.SENSOR_INPUTS, FieldType.INT16, 40, 0.03333333333333333, 0.0, 0.0, "kPa")
oilTemp("oilTemp", SensorCategory.SENSOR_INPUTS, FieldType.INT16, 744, 0.01, 0.0, 0.0, "deg C")
distanceTraveled("distanceTraveled", SensorCategory.SENSOR_INPUTS, FieldType.INT16, 760, 0.1, 0.0, 0.0, "km")
warningCounter("Warning: counter", SensorCategory.SENSOR_INPUTS, FieldType.INT16, 140, 1.0, 0.0, 0.0, "count")
fuelFlowRate("Fuel: Flow rate", SensorCategory.SENSOR_INPUTS, FieldType.INT16, 80, 0.005, 0.0, 0.0, "gram/s")
lastErrorCode("Warning: last", SensorCategory.SENSOR_INPUTS, FieldType.INT16, 142, 1.0, 0.0, 0.0, "error")
percent_t getCoilDutyCycle(float rpm)
uint32_t verboseCanBaseAddress
bool canBroadcastUseChannelTwo
float stftCorrection[FT_BANK_COUNT]
float sdAirMassInOneCylinder
scaled_channel< uint16_t, 300, 1 > actualLastInjection
static CanTsChannel canChannel