From 94589c07d75c5d4387102ccd379782fc94ebc841 Mon Sep 17 00:00:00 2001 From: Stefano Calabretti Date: Sat, 7 May 2022 14:48:54 +0200 Subject: [PATCH] Cycle mailboxes --- Src/mmr_can_send.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Src/mmr_can_send.c b/Src/mmr_can_send.c index f92599d..e62c621 100644 --- a/Src/mmr_can_send.c +++ b/Src/mmr_can_send.c @@ -23,9 +23,13 @@ static uint8_t computeFramesToSend(MmrCanPacket *packet); static uint8_t computeNextMessageLength(MmrCanPacket *packet); static void setMessageType(TransmissionParams *header, MmrCanMessageType type); static void syncHeaders(TransmissionParams *tp); +static CanMailbox *getNextMailbox(); -static CanMailbox __mailbox; +#define MAILBOXES_COUNT 3 + +static CanMailbox __mailboxes[MAILBOXES_COUNT] = {}; +static uint8_t __currentMailbox = 0; HalStatus MMR_CAN_Send(CanHandle *hcan, MmrCanPacket packet) { @@ -108,11 +112,16 @@ static HalStatus send(TransmissionParams *tp) { tp->handle, &tp->headers.tx, tp->packet->data, - &__mailbox + getNextMailbox() ); } +static CanMailbox *getNextMailbox() { + return &__mailboxes[__currentMailbox++ % MAILBOXES_COUNT]; +} + + static void syncHeaders(TransmissionParams *tp) { tp->headers.tx.ExtId = MMR_CAN_HeaderToBits(tp->headers.mmr); }