#pragma once #include "rusefi_types.h" struct ignition_state_s { // ms // offset 0 float baseDwell = (float)0; // Ign: Dwell // ms // offset 4 float sparkDwell = (float)0; // ignition dwell duration // as crankshaft angle // NAN if engine is stopped // See also sparkDwell // deg // offset 8 angle_t dwellAngle = (angle_t)0; // Ign: CLT correction // deg // offset 12 scaled_channel cltTimingCorrection = (int16_t)0; // Ign: IAT correction // deg // offset 14 scaled_channel timingIatCorrection = (int16_t)0; // Idle: Timing adjustment // deg // offset 16 scaled_channel timingPidCorrection = (int16_t)0; // offset 18 uint8_t alignmentFill_at_18[2]; // Ign: Dwell voltage correction // offset 20 float dwellVoltageCorrection = (float)0; // Ign: Lua timing add // deg // offset 24 float luaTimingAdd = (float)0; // Ign: Lua timing mult // deg // offset 28 float luaTimingMult = (float)0; }; static_assert(sizeof(ignition_state_s) == 32); static_assert(offsetof(ignition_state_s, baseDwell) == 0); static_assert(offsetof(ignition_state_s, sparkDwell) == 4); static_assert(offsetof(ignition_state_s, dwellAngle) == 8); static_assert(offsetof(ignition_state_s, cltTimingCorrection) == 12); static_assert(offsetof(ignition_state_s, timingIatCorrection) == 14); static_assert(offsetof(ignition_state_s, timingPidCorrection) == 16); static_assert(offsetof(ignition_state_s, dwellVoltageCorrection) == 20); static_assert(offsetof(ignition_state_s, luaTimingAdd) == 24); static_assert(offsetof(ignition_state_s, luaTimingMult) == 28);