35 static constexpr uint8_t FRAME_TYPE_MASK = 0xF0;
43 static constexpr uint8_t SEQ_MASK = 0x0F;
44 static constexpr uint8_t SEQ_MAX = 0x10;
55 static void initState(State &state);
56 static void resetState(State &state);
57 static uint8_t getFrameType(uint8_t pci);
58 static uint8_t getSequence(uint8_t pci);
59 static uint8_t nextSequence(uint8_t seq);
71 static bool isComplete(
const State &state);
72 static bool isTimeout(
const State &state, uint64_t now, uint64_t timeout);
ISO-TP (ISO 15765-2) transport protocol helper.
static uint8_t FRAME_FC
Flow Control (0x3N)
static int receiveCustom(const porting::canmsg_s &msg, State &state, void *data_buf, size_t buf_size, uint8_t seg_no, bool seg_last, uint64_t now, uint64_t timeout)
Process incoming Custom Segmented frame (Dawn specific).
static uint8_t FRAME_SF
Single Frame (0x0N)
static int receive(const porting::canmsg_s &msg, State &state, void *data_buf, size_t buf_size, uint64_t now, uint64_t timeout)
Process incoming ISO-TP frame.
static uint8_t FRAME_CF
Consecutive Frame (0x2N)
static uint8_t FRAME_FF
First Frame (0x1N)
Out-of-tree user-extension hooks for Dawn.
Common CAN message format for chardev and socketCAN.