11 #define HAL_LOG_CHANNEL SCOM
12 #define HAL_LOG_SUBCHANNEL FRAME
21 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
23 uint16_t size =
sizeof(frame->
sync) +
sizeof(frame->
sof) + SCOMFrame_GetPacketControlSize();
43 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
44 HAL_ASSERT_AND_EXECUTE(type <= 240) {
57 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
68 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
69 HAL_ASSERT_AND_EXECUTE(priority <= 7) {
71 frame->
ctrl |= priority << 4;
83 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
94 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
97 frame->
ctrl |= number;
109 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
120 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
134 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
145 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
156 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
167 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
180 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
193 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
209 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
222 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
235 HAL_ASSERT_AND_EXECUTE(frame != NULL) {
242 const uint8_t*
const end = begin + frame->
size;
244 for(
const uint8_t* it = begin; it < end; ++it) {
uint32_t SCOMFrame_GetMultiOffset(const SCOMFrame *const frame)
uint8_t sync
synchronization field: always 0xFF
bool SCOMFrame_IsAcknowledged(const SCOMFrame *const frame)
bool SCOMFrame_SetPayloadSize(SCOMFrame *const frame, const uint8_t size)
#define SCOM_FRAME_CTRL_NOACK_MASK
#define SCOM_FRAME_CTRL_FRAME_NUMBER_MASK
bool SCOMFrame_SetPriority(SCOMFrame *const frame, const uint8_t priority)
uint8_t SCOMFrame_GetPayloadSize(const SCOMFrame *const frame)
#define CRC16_UpdateCRC_Byte
Definition of CRC16 byte update function.
bool SCOMFrame_SetType(SCOMFrame *const frame, const uint8_t type)
uint8_t * SCOMFrame_GetPayloadPtr(const SCOMFrame *const frame)
Definition of SCOM CRC functions.
uint8_t SCOMFrame_GetType(const SCOMFrame *const frame)
bool SCOMFrame_SetAcknowledgement(SCOMFrame *const frame, const bool ack)
uint8_t type
frame type field
#define SCOM_FRAME_CTRL_MULTI_ID_MASK
uint8_t size
frame type field
struct HAL_PACKED::@1::@3 multiframe
payload definition for a multi frame
uint32_t SCOMFrame_GetMultiId(const SCOMFrame *const frame)
uint8_t ctrl
frame control field
#define SCOM_MAX_DATA_LENGTH
uint8_t SCOMFrame_GetPriority(const SCOMFrame *const frame)
#define CRC16_InitCRC
Definition of CRC16 initialization function.
uint16_t SCOMFrame_CalculateCRC(const SCOMFrame *const frame)
uint8_t SCOMFrame_GetFrameNumber(const SCOMFrame *const frame)
uint32_t SCOMFrame_GetTotalPayloadSize(const SCOMFrame *const frame)
union HAL_PACKED::@1 payload
payload field
struct HAL_PACKED::@1::@2 singleframe
payload definition for a single frame
bool SCOMFrame_IsMultiframe(const SCOMFrame *const frame)
#define SCOM_FRAME_CTRL_FRAME_PRIORITY_MASK
uint8_t sof
synchronization field: always 0xFF
bool SCOMFrame_SetFrameNumber(SCOMFrame *const frame, const uint8_t number)
uint16_t SCOMFrame_GetTotalFrameSize(const SCOMFrame *const frame)