10#define HAS_CAN_FRAME (EFI_SIMULATOR || HAL_USE_CAN || EFI_UNIT_TEST)
12#if EFI_UNIT_TEST || !EFI_CAN_SUPPORT
22#define CAN_TIMEOUT MS2NT(100)
25#define CAN_CYCLE_FREQ (200.0f)
27#define CAN_CYCLE_PERIOD (CH_CFG_ST_FREQUENCY / CAN_CYCLE_FREQ)
46#define IS_EXT_RANGE_ID(id) ((id) >= 2048)
69 using T = std::underlying_type_t<CI>;
70 return static_cast<CI>(
static_cast<T
>(lhs) |
static_cast<T
>(rhs));
74 using T = std::underlying_type_t<CI>;
75 return static_cast<CI>(
static_cast<T
>(lhs) &
static_cast<T
>(rhs));
102#define CAN_SID(f) ((f).std.SID)
103#define CAN_EID(f) ((f).ext.EID)
104#define CAN_ISX(f) ((f).common.XTD)
106#define CAN_SID(f) ((f).SID)
107#define CAN_EID(f) ((f).EID)
108#define CAN_ISX(f) ((f).IDE)
111#define CAN_ID(f) (CAN_ISX(f) ? CAN_EID(f) : CAN_SID(f))
void processCanRxMessage(const size_t busIndex, const CANRxFrame &msg, efitick_t nowNt)
void registerCanListener(CanListener &listener)
constexpr CI & operator|=(CI &lhs, CI rhs)
constexpr CI operator|(CI lhs, CI rhs)
constexpr CI operator&(CI lhs, CI rhs)
void registerCanSensor(CanSensorBase &sensor)
void resetCanWriteCycle()
const CanInterval m_cycleFlags
CanCycle(uint32_t cycleCounter200hz)
bool isInterval(CanInterval interval)
static CanInterval computeFlags(uint32_t cycleCount)
void PeriodicTask(efitick_t nowNt) override
Called periodically. Override this method to do work for your controller.
Base class for a controller that needs to run periodically to perform work.
static Lps25Sensor sensor(device)
static CanTsListener listener