From 62e0e3ae63312b314cde994d19833627e88e6d38 Mon Sep 17 00:00:00 2001 From: Stefano Calabretti Date: Wed, 23 Feb 2022 19:25:09 +0100 Subject: [PATCH] Refactor --- Inc/mmr_can.h | 9 ++++++++- Inc/{mmr_can_scs_manager.h => mmr_can_scs.h} | 0 Src/mmr_can.c | 5 +++++ Src/mmr_can_scs_entries.c | 13 ++++++++----- Src/mmr_can_scs_manager.c | 13 +++---------- 5 files changed, 24 insertions(+), 16 deletions(-) rename Inc/{mmr_can_scs_manager.h => mmr_can_scs.h} (100%) diff --git a/Inc/mmr_can.h b/Inc/mmr_can.h index b02a940..945d31d 100644 --- a/Inc/mmr_can.h +++ b/Inc/mmr_can.h @@ -14,7 +14,7 @@ #include "mmr_can_types.h" #include "mmr_can_optimize.h" #include "mmr_can_binary_literals.h" -#include "mmr_can_scs_manager.h" +#include "mmr_can_scs.h" #ifndef MMR_CAN_RX_FIFO #define MMR_CAN_RX_FIFO CAN_RX_FIFO0 @@ -182,6 +182,13 @@ extern MmrCanTickProvider __mmr_can_tickProvider; */ void MMR_CAN_SetTickProvider(MmrCanTickProvider tickProvider); +/** + * @brief + * Returns the current tick by calling the + * configured tick provider. + */ +uint32_t MMR_CAN_GetCurrentTick(); + /** * @brief * Configures the filters with the default configuration diff --git a/Inc/mmr_can_scs_manager.h b/Inc/mmr_can_scs.h similarity index 100% rename from Inc/mmr_can_scs_manager.h rename to Inc/mmr_can_scs.h diff --git a/Src/mmr_can.c b/Src/mmr_can.c index f5ae36a..4d9686e 100644 --- a/Src/mmr_can.c +++ b/Src/mmr_can.c @@ -10,6 +10,11 @@ void MMR_CAN_SetTickProvider(MmrCanTickProvider tickProvider) { } +uint32_t MMR_CAN_GetCurrentTick() { + return __mmr_can_tickProvider(); +} + + HalStatus MMR_CAN_BasicSetupAndStart(CanHandle *hcan) { return MMR_CAN_FilterConfigDefault(hcan) | diff --git a/Src/mmr_can_scs_entries.c b/Src/mmr_can_scs_entries.c index 037cd75..f3c9a86 100644 --- a/Src/mmr_can_scs_entries.c +++ b/Src/mmr_can_scs_entries.c @@ -1,4 +1,7 @@ -#include "mmr_can_scs_manager.h" +#include "mmr_can_scs.h" + +#define EMPTY_HEADER ((MmrCanHeader){}) +#define EMPTY_ENTRY ((MmrCanScsEntry){}) static MmrCanScsEntry __scsEntries[MMR_CAN_SCS_ENTRIES_COUNT]; @@ -15,14 +18,14 @@ MmrCanScsEntry* MMR_CAN_GetNextScsEntry() { MmrCanScsEntry* MMR_CAN_PutScsEntry(MmrCanHeader header) { - MmrCanScsEntry *entry = findEntry((MmrCanHeader){}); + MmrCanScsEntry *entry = MMR_CAN_FindScsEntry(EMPTY_HEADER); if (entry == NULL) { return NULL; } *entry = (MmrCanScsEntry){ .header = header, - .counter = getCurrentTime(), + .counter = MMR_CAN_GetCurrentTick(), }; return entry; @@ -30,12 +33,12 @@ MmrCanScsEntry* MMR_CAN_PutScsEntry(MmrCanHeader header) { MmrCanScsEntry* MMR_CAN_ClearScsEntry(MmrCanHeader header) { - MmrCanScsEntry *entry = findEntry(header); + MmrCanScsEntry *entry = MMR_CAN_FindScsEntry(header); if (entry == NULL) { return NULL; } - *entry = (MmrCanScsEntry){}; + *entry = EMPTY_ENTRY; return entry; } diff --git a/Src/mmr_can_scs_manager.c b/Src/mmr_can_scs_manager.c index 7f92e21..30cea5d 100644 --- a/Src/mmr_can_scs_manager.c +++ b/Src/mmr_can_scs_manager.c @@ -1,7 +1,6 @@ -#include "mmr_can_scs_manager.h" +#include "mmr_can_scs.h" static void maybeIncrementRtr(MmrCanScsEntry *entry); -static TimerRange getCurrentTime(); static HalStatus sendScs(CanHandle *hcan, MmrCanHeader header); static MmrCanScsCheckResult checkScs(MmrCanScsEntry *entry); @@ -64,7 +63,7 @@ HalStatus MMR_CAN_HandleNextScs(CanHandle *hcan) { default: break; } - entry->counter = getCurrentTime(); + entry->counter = MMR_CAN_GetCurrentTick(); return sendScs(hcan, entry->header); } @@ -87,14 +86,8 @@ static MmrCanScsCheckResult checkScs(MmrCanScsEntry *entry) { MMR_CAN_SCS_CHECK_OK; } - -static TimerRange getCurrentTime() { - return __mmr_can_tickProvider(); -} - - static void maybeIncrementRtr(MmrCanScsEntry *entry) { - TimerRange now = getCurrentTime(); + TimerRange now = MMR_CAN_GetCurrentTick(); TimerRange delay = now - entry->counter; if (delay >= MMR_CAN_MAX_TIMEOUT) {