From 77118fbd4ea4fad1b218d06be51318bb710a6fc3 Mon Sep 17 00:00:00 2001 From: Joe Kearney Date: Fri, 27 Feb 2026 20:55:40 -0600 Subject: [PATCH 1/2] Added Parse_KEvent_ID() --- Events/KEvents.c | 31 +++++++++++++++++++++++++++++++ Events/KEvents.h | 7 ++++--- Results.h | 3 ++- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/Events/KEvents.c b/Events/KEvents.c index de00daf..a6ebd00 100644 --- a/Events/KEvents.c +++ b/Events/KEvents.c @@ -21,6 +21,7 @@ #include #include +#include #include "SystemK.h" #include "Command_Mapping.h" @@ -77,3 +78,33 @@ portBASE_TYPE Receive_KEvent(KEvent_T *event) { return xQueueReceive(xQueueEvents, event, 0); } + +SystemKResult_T Parse_KEvent_ID(const char *str, KEvent_T *event) +{ + char *end; + errno = 0; + long val = strtol(str, &end, 10); + + if (errno != 0 || end == str || *end != '\0') + { + event->ID = KEVENT_UNSUCCESSFUL_SYSTEMK_RESULT; + event->Data = (void *)SYSTEMK_RESULT_COULD_NOT_PARSE_STRING; + } + else if (val >= KEVENT_IS_OUT_OF_RANGE) + { + event->ID = KEVENT_UNSUCCESSFUL_SYSTEMK_RESULT; + event->Data = (void *)SYSTEMK_RESULT_OVERFLOW; + } + else if (val < KEVENT_NO_EVENT) + { + event->ID = KEVENT_UNSUCCESSFUL_SYSTEMK_RESULT; + event->Data = (void *)SYSTEMK_RESULT_OVERFLOW; + } + else + { + event->ID = (KEvent_ID_T) val; + event->Data = (void *)SYSTEMK_RESULT_SUCCESS; + } + + return (SystemKResult_T)event->Data; +} diff --git a/Events/KEvents.h b/Events/KEvents.h index 5f9525e..9bf9106 100644 --- a/Events/KEvents.h +++ b/Events/KEvents.h @@ -24,8 +24,8 @@ * */ -#ifndef EVENTS_H -#define EVENTS_H +#ifndef KEVENTS_H +#define KEVENTS_H //! Event identifiers used by the SystemK. typedef enum @@ -103,5 +103,6 @@ void Init_KEvents(void); void Post_KEvent(KEvent_T *event); void Post_KEvent_From_ISR(KEvent_T *event, portBASE_TYPE *xHigherPriorityTaskWoken); portBASE_TYPE Receive_KEvent(KEvent_T *event); +SystemKResult_T Parse_KEvent_ID(const char *str, KEvent_T *event); -#endif // EVENTS_H +#endif // KEVENTS_H diff --git a/Results.h b/Results.h index 98fe2b1..3935521 100644 --- a/Results.h +++ b/Results.h @@ -48,7 +48,8 @@ typedef enum SYSTEMK_RESULT_WRITE_FAILED, SYSTEMK_RESULT_OVERFLOW, SYSTEMK_RESULT_UNDERFLOW, - SYSTEMK_RESULT_EVENT_NOT_HANDLED + SYSTEMK_RESULT_EVENT_NOT_HANDLED, + SYSTEMK_RESULT_COULD_NOT_PARSE_STRING } SystemKResult_T; #endif // RESULTS_H -- 2.47.3 From d31def7fc491e463bef80ceccc2200de02dbd34c Mon Sep 17 00:00:00 2001 From: Joe Kearney Date: Fri, 27 Feb 2026 21:15:54 -0600 Subject: [PATCH 2/2] Missing an #include. --- Events/KEvents.c | 1 + 1 file changed, 1 insertion(+) diff --git a/Events/KEvents.c b/Events/KEvents.c index a6ebd00..d316b6f 100644 --- a/Events/KEvents.c +++ b/Events/KEvents.c @@ -21,6 +21,7 @@ #include #include +#include #include #include "SystemK.h" -- 2.47.3