diff --git a/Inc/mmr_can_message_id.h b/Inc/mmr_can_message_id.h index 26844f9..a88accc 100644 --- a/Inc/mmr_can_message_id.h +++ b/Inc/mmr_can_message_id.h @@ -27,14 +27,16 @@ * * Ids scheme: * - * id | type | subtype - * -----|------|--------- - * SCS | 000 | xxxxxxx + * id | type | subtype + * -------|------|--------- + * SCS | 000 | xxxxxxx + * DRIVE | 001 | xxxxxxx */ typedef enum MmrCanMessageId MmrCanMessageId; typedef enum { MMR_CAN_MESSAGE_ID_TYPE_SCS = 0, + MMR_CAN_MESSAGE_ID_TYPE_DRIVE = 1, } MmrCanMessageIdType; @@ -90,6 +92,9 @@ enum MmrCanMessageId { MMR_CAN_MESSAGE_ID_SCS_AM_EBS_TEST, MMR_CAN_MESSAGE_ID_SCS_AM_INSPECTION = 0x17, // !SCS +// DRIVE + MMR_CAN_MESSAGE_ID_DRIVE_STEERING_ANGLE = 0x8A, +// !DRIVE }; #endif // !INC_MMR_CAN_MESSAGE_ID_H_ diff --git a/Src/mmr_can_header.c b/Src/mmr_can_header.c index bf05a3e..f3e4d1d 100644 --- a/Src/mmr_can_header.c +++ b/Src/mmr_can_header.c @@ -4,18 +4,18 @@ uint32_t MMR_CAN_HeaderToBits(MmrCanHeader header) { return 0 - | ((uint32_t)header.priority << 26) - | ((uint32_t)header.messageId << 23) - | ((uint32_t)header.senderId << 13) - | ((uint32_t)header.seqNumber << 3) - | ((uint32_t)header.messageType); + | ((uint32_t)header.priority << 26) + | ((uint32_t)header.messageId << 16) + | ((uint32_t)header.senderId << 6) + | ((uint32_t)header.seqNumber << 3) + | ((uint32_t)header.messageType); } MmrCanHeader MMR_CAN_HeaderFromBits(uint32_t bits) { return (MmrCanHeader) { .priority = bits >> 26, - .messageId = bits >> 23, - .senderId = bits >> 13, + .messageId = bits >> 16, + .senderId = bits >> 6, .seqNumber = bits >> 3, .messageType = bits, };