16#if HAL_USE_CAN || EFI_UNIT_TEST
32#if HAL_USE_CAN || EFI_UNIT_TEST
69 return CAN_MSG_TIMEOUT;
81 return state.streamFlushTx(timeout);
88 return state.streamReceiveTimeout(np, rxbuf, timeout);
void registerCanListener(CanListener &listener)
int32_t can_sysinterval_t
virtual bool get(CanRxMessage &item, int timeout)=0
can_msg_t streamAddToTxTimeout(size_t *np, const uint8_t *txbuf, can_sysinterval_t timeout)
CanRxMessageSource * source
virtual can_msg_t transmit(const CanTxMessage *ctfp, can_sysinterval_t timeout) override
virtual can_msg_t receive(CANRxFrame *crfp, can_sysinterval_t timeout) override
fifo_buffer_sync< CanRxMessage, CAN_FIFO_FRAME_SIZE > rxFifo
virtual void decodeFrame(const CANRxFrame &frame, efitick_t nowNt)
static constexpr engine_configuration_s * engineConfiguration
bool warning(ObdCode code, const char *fmt,...)
@ CUSTOM_ERR_CAN_COMMUNICATION
state("state", SensorCategory.SENSOR_INPUTS, FieldType.INT8, 1879, 1.0, -1.0, -1.0, "")
msg_t canStreamReceiveTimeout(size_t *np, uint8_t *rxbuf, sysinterval_t timeout)
static CanStreamerState state & transport
static int isoTpPacketCounter
static CanTsListener g_listener
msg_t canStreamAddToTxTimeout(size_t *np, const uint8_t *txbuf, sysinterval_t timeout)
msg_t canStreamFlushTx(sysinterval_t timeout)