From dbe8e10767fd74d67b7d193ca5f3530eb5724e6e Mon Sep 17 00:00:00 2001 From: Avi Date: Wed, 15 Feb 2023 13:22:04 +1000 Subject: [PATCH 1/5] Fix #133, Remove component-specific cFE header #includes --- fsw/src/sch_lab_app.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/fsw/src/sch_lab_app.c b/fsw/src/sch_lab_app.c index 84e6772..38336df 100644 --- a/fsw/src/sch_lab_app.c +++ b/fsw/src/sch_lab_app.c @@ -27,10 +27,7 @@ #include #include "cfe.h" -#include "cfe_sb.h" #include "osapi.h" -#include "cfe_es.h" -#include "cfe_error.h" #include "sch_lab_perfids.h" #include "sch_lab_version.h" From 9b24dd983d9b8942c2913cef389bfb175c8524c2 Mon Sep 17 00:00:00 2001 From: Avi Weiss Date: Mon, 24 Apr 2023 12:12:05 +1000 Subject: [PATCH 2/5] Fix #141, Convert `int32` return codes and variables to `CFE_Status_t` --- .github/workflows/codeql-build.yml | 4 +- .github/workflows/format-check.yml | 1 - .github/workflows/static-analysis.yml | 1 - fsw/platform_inc/sch_lab_table.h | 10 ++-- fsw/src/sch_lab_app.c | 15 +++--- fsw/tables/sch_lab_table.c | 76 +++++++++++++-------------- 6 files changed, 51 insertions(+), 56 deletions(-) diff --git a/.github/workflows/codeql-build.yml b/.github/workflows/codeql-build.yml index 5d091ec..c614cab 100644 --- a/.github/workflows/codeql-build.yml +++ b/.github/workflows/codeql-build.yml @@ -3,12 +3,12 @@ name: "CodeQL Analysis" on: push: pull_request: - + jobs: codeql: name: Codeql uses: nasa/cFS/.github/workflows/codeql-reusable.yml@main - with: + with: component-path: apps/sch_lab prep: 'make prep; make -C build/tools/elf2cfetbl' make: 'make -C build/native/default_cpu1/apps/sch_lab' diff --git a/.github/workflows/format-check.yml b/.github/workflows/format-check.yml index 2d73eeb..b9d1f11 100644 --- a/.github/workflows/format-check.yml +++ b/.github/workflows/format-check.yml @@ -9,4 +9,3 @@ jobs: format-check: name: Run format check uses: nasa/cFS/.github/workflows/format-check.yml@main - \ No newline at end of file diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index 706eaae..c3e1ebd 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -9,4 +9,3 @@ jobs: static-analysis: name: Run cppcheck uses: nasa/cFS/.github/workflows/static-analysis.yml@main - \ No newline at end of file diff --git a/fsw/platform_inc/sch_lab_table.h b/fsw/platform_inc/sch_lab_table.h index c37d675..7117b65 100644 --- a/fsw/platform_inc/sch_lab_table.h +++ b/fsw/platform_inc/sch_lab_table.h @@ -38,12 +38,10 @@ #define SCH_MAX_MSG_WORDS 32 -#ifdef SOFTWARE_BIG_BIT_ORDER -#define SCH_PACK_32BIT(value) \ -(uint16)((value & 0xFFFF0000) >> 16), (uint16)(value & 0x0000FFFF) -#else -#define SCH_PACK_32BIT(value) \ -(uint16)(value & 0x0000FFFF), (uint16)((value & 0xFFFF0000) >> 16) +#ifdef SOFTWARE_BIG_BIT_ORDER +#define SCH_PACK_32BIT(value) (uint16)((value & 0xFFFF0000) >> 16), (uint16)(value & 0x0000FFFF) +#else +#define SCH_PACK_32BIT(value) (uint16)(value & 0x0000FFFF), (uint16)((value & 0xFFFF0000) >> 16) #endif /* diff --git a/fsw/src/sch_lab_app.c b/fsw/src/sch_lab_app.c index d699768..6c0208c 100644 --- a/fsw/src/sch_lab_app.c +++ b/fsw/src/sch_lab_app.c @@ -66,11 +66,10 @@ typedef struct */ SCH_LAB_GlobalData_t SCH_LAB_Global; - /* ** Local Function Prototypes */ -int32 SCH_LAB_AppInit(void); +CFE_Status_t SCH_LAB_AppInit(void); /* ** AppMain @@ -155,10 +154,10 @@ void SCH_LAB_LocalTimerCallback(osal_id_t object_id, void *arg) /* Initialization */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ -int32 SCH_LAB_AppInit(void) +CFE_Status_t SCH_LAB_AppInit(void) { int i, x; - int32 Status; + CFE_Status_t Status; int32 OsStatus; uint32 TimerPeriod; osal_id_t TimeBaseId = OS_OBJECT_ID_UNDEFINED; @@ -245,15 +244,15 @@ int32 SCH_LAB_AppInit(void) { /* Initialize the message with the length of the header + payload */ CFE_MSG_Init(CFE_MSG_PTR(LocalStateEntry->CommandHeader), ConfigEntry->MessageID, - sizeof(LocalStateEntry->CommandHeader) + ConfigEntry->PayloadLength); + sizeof(LocalStateEntry->CommandHeader) + ConfigEntry->PayloadLength); CFE_MSG_SetFcnCode(CFE_MSG_PTR(LocalStateEntry->CommandHeader), ConfigEntry->FcnCode); - LocalStateEntry->PacketRate = ConfigEntry->PacketRate; + LocalStateEntry->PacketRate = ConfigEntry->PacketRate; LocalStateEntry->PayloadLength = ConfigEntry->PayloadLength; - for (x =0; x < SCH_MAX_MSG_WORDS; x++) + for (x = 0; x < SCH_MAX_MSG_WORDS; x++) { - LocalStateEntry->MessageBuffer[x]=ConfigEntry->MessageBuffer[x]; + LocalStateEntry->MessageBuffer[x] = ConfigEntry->MessageBuffer[x]; } } ++ConfigEntry; diff --git a/fsw/tables/sch_lab_table.c b/fsw/tables/sch_lab_table.c index bfee7a9..347b8b5 100644 --- a/fsw/tables/sch_lab_table.c +++ b/fsw/tables/sch_lab_table.c @@ -52,7 +52,6 @@ #include "lc_msgids.h" #endif - /* ** Include headers for message IDs here */ @@ -70,43 +69,44 @@ ** 3. If the table grows too big, increase SCH_LAB_MAX_SCHEDULE_ENTRIES */ -SCH_LAB_ScheduleTable_t SCH_TBL_Structure = {.TickRate = 100, - .Config = { - {CFE_SB_MSGID_WRAP_VALUE(CFE_ES_SEND_HK_MID), 100, 0}, /* Example of a 1hz packet */ - {CFE_SB_MSGID_WRAP_VALUE(CFE_TBL_SEND_HK_MID), 50, 0}, - {CFE_SB_MSGID_WRAP_VALUE(CFE_TIME_SEND_HK_MID), 98, 0}, - {CFE_SB_MSGID_WRAP_VALUE(CFE_SB_SEND_HK_MID), 97, 0}, - {CFE_SB_MSGID_WRAP_VALUE(CFE_EVS_SEND_HK_MID), 96, 0}, - - /* Example of including additional open source apps */ - #ifdef HAVE_CI_LAB - {CFE_SB_MSGID_WRAP_VALUE(CI_LAB_SEND_HK_MID), 95, 0}, - #endif - #ifdef HAVE_TO_LAB - {CFE_SB_MSGID_WRAP_VALUE(TO_LAB_SEND_HK_MID), 94, 0}, - #endif - #ifdef HAVE_SAMPLE_APP - {CFE_SB_MSGID_WRAP_VALUE(SAMPLE_APP_SEND_HK_MID), 93, 0}, - #endif - #ifdef HAVE_SC - {CFE_SB_MSGID_WRAP_VALUE(SC_SEND_HK_MID), 92, 0}, - {CFE_SB_MSGID_WRAP_VALUE(SC_1HZ_WAKEUP_MID), 91, 0}, - #endif - #ifdef HAVE_HS - {CFE_SB_MSGID_WRAP_VALUE(HS_SEND_HK_MID), 90, 0}, /* Example of a message that wouldn't be sent */ - #endif - #ifdef HAVE_FM - {CFE_SB_MSGID_WRAP_VALUE(FM_SEND_HK_MID), 101, 0}, - #endif - #ifdef HAVE_DS - {CFE_SB_MSGID_WRAP_VALUE(DS_SEND_HK_MID), 102, 0}, - #endif - #ifdef HAVE_LC - {CFE_SB_MSGID_WRAP_VALUE(LC_SEND_HK_MID), 103, 0}, - {CFE_SB_MSGID_WRAP_VALUE(LC_SAMPLE_AP_MID), 500, 0, 8, { 0, 175, 1 }}, - #endif - - }}; +SCH_LAB_ScheduleTable_t SCH_TBL_Structure = { + .TickRate = 100, + .Config = { + {CFE_SB_MSGID_WRAP_VALUE(CFE_ES_SEND_HK_MID), 100, 0}, /* Example of a 1hz packet */ + {CFE_SB_MSGID_WRAP_VALUE(CFE_TBL_SEND_HK_MID), 50, 0}, + {CFE_SB_MSGID_WRAP_VALUE(CFE_TIME_SEND_HK_MID), 98, 0}, + {CFE_SB_MSGID_WRAP_VALUE(CFE_SB_SEND_HK_MID), 97, 0}, + {CFE_SB_MSGID_WRAP_VALUE(CFE_EVS_SEND_HK_MID), 96, 0}, + +/* Example of including additional open source apps */ +#ifdef HAVE_CI_LAB + {CFE_SB_MSGID_WRAP_VALUE(CI_LAB_SEND_HK_MID), 95, 0}, +#endif +#ifdef HAVE_TO_LAB + {CFE_SB_MSGID_WRAP_VALUE(TO_LAB_SEND_HK_MID), 94, 0}, +#endif +#ifdef HAVE_SAMPLE_APP + {CFE_SB_MSGID_WRAP_VALUE(SAMPLE_APP_SEND_HK_MID), 93, 0}, +#endif +#ifdef HAVE_SC + {CFE_SB_MSGID_WRAP_VALUE(SC_SEND_HK_MID), 92, 0}, + {CFE_SB_MSGID_WRAP_VALUE(SC_1HZ_WAKEUP_MID), 91, 0}, +#endif +#ifdef HAVE_HS + {CFE_SB_MSGID_WRAP_VALUE(HS_SEND_HK_MID), 90, 0}, /* Example of a message that wouldn't be sent */ +#endif +#ifdef HAVE_FM + {CFE_SB_MSGID_WRAP_VALUE(FM_SEND_HK_MID), 101, 0}, +#endif +#ifdef HAVE_DS + {CFE_SB_MSGID_WRAP_VALUE(DS_SEND_HK_MID), 102, 0}, +#endif +#ifdef HAVE_LC + {CFE_SB_MSGID_WRAP_VALUE(LC_SEND_HK_MID), 103, 0}, + {CFE_SB_MSGID_WRAP_VALUE(LC_SAMPLE_AP_MID), 500, 0, 8, {0, 175, 1}}, +#endif + + }}; /* ** The macro below identifies: From 5397d68795ed7719e8df7086257bb13d1187d75a Mon Sep 17 00:00:00 2001 From: Avi Weiss Date: Tue, 26 Sep 2023 12:05:00 +1000 Subject: [PATCH 3/5] Fix #148, Call `CFE_ES_ExitApp` with `RunStatus` rather than internal 'status' variable --- fsw/src/sch_lab_app.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fsw/src/sch_lab_app.c b/fsw/src/sch_lab_app.c index d699768..73a57f7 100644 --- a/fsw/src/sch_lab_app.c +++ b/fsw/src/sch_lab_app.c @@ -142,7 +142,7 @@ void SCH_Lab_AppMain(void) } /* end while */ - CFE_ES_ExitApp(Status); + CFE_ES_ExitApp(RunStatus); } void SCH_LAB_LocalTimerCallback(osal_id_t object_id, void *arg) From 18b97959d05a308e1455303ae4c97753f51e4ab0 Mon Sep 17 00:00:00 2001 From: Avi Date: Sun, 16 Oct 2022 21:20:22 +1000 Subject: [PATCH 4/5] Fix #128, Standardize macro/function names --- config/default_sch_lab_perfids.h | 2 +- config/default_sch_lab_tbl.h | 2 +- fsw/src/sch_lab_app.c | 10 +++++----- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/config/default_sch_lab_perfids.h b/config/default_sch_lab_perfids.h index 62ce922..fca02db 100644 --- a/config/default_sch_lab_perfids.h +++ b/config/default_sch_lab_perfids.h @@ -26,6 +26,6 @@ #ifndef SCH_LAB_PERFIDS_H #define SCH_LAB_PERFIDS_H -#define SCH_MAIN_TASK_PERF_ID 36 +#define SCH_LAB_MAIN_TASK_PERF_ID 36 #endif diff --git a/config/default_sch_lab_tbl.h b/config/default_sch_lab_tbl.h index 9c37b08..cbc77ee 100644 --- a/config/default_sch_lab_tbl.h +++ b/config/default_sch_lab_tbl.h @@ -43,6 +43,6 @@ * There is no extra encapsulation here, this header only * defines the default file name to use for the SCH table */ -#define SCH_TBL_DEFAULT_FILE "/cf/sch_lab_table.tbl" +#define SCH_LAB_TBL_DEFAULT_FILE "/cf/sch_lab_table.tbl" #endif diff --git a/fsw/src/sch_lab_app.c b/fsw/src/sch_lab_app.c index eee9119..43d9287 100644 --- a/fsw/src/sch_lab_app.c +++ b/fsw/src/sch_lab_app.c @@ -68,7 +68,7 @@ int32 SCH_LAB_AppInit(void); /* ** AppMain */ -void SCH_Lab_AppMain(void) +void SCH_LAB_AppMain(void) { int i; uint32 SCH_OneHzPktsRcvd = 0; @@ -78,7 +78,7 @@ void SCH_Lab_AppMain(void) SCH_LAB_StateEntry_t *LocalStateEntry; CFE_SB_Buffer_t * SBBufPtr; - CFE_ES_PerfLogEntry(SCH_MAIN_TASK_PERF_ID); + CFE_ES_PerfLogEntry(SCH_LAB_MAIN_TASK_PERF_ID); Status = SCH_LAB_AppInit(); if (Status != CFE_SUCCESS) @@ -90,7 +90,7 @@ void SCH_Lab_AppMain(void) /* Loop Forever */ while (CFE_ES_RunLoop(&RunStatus) == true) { - CFE_ES_PerfLogExit(SCH_MAIN_TASK_PERF_ID); + CFE_ES_PerfLogExit(SCH_LAB_MAIN_TASK_PERF_ID); /* Pend on timing sem */ OsStatus = OS_CountSemTake(SCH_LAB_Global.TimingSem); @@ -104,7 +104,7 @@ void SCH_Lab_AppMain(void) Status = CFE_STATUS_EXTERNAL_RESOURCE_FAIL; } - CFE_ES_PerfLogEntry(SCH_MAIN_TASK_PERF_ID); + CFE_ES_PerfLogEntry(SCH_LAB_MAIN_TASK_PERF_ID); if (Status == CFE_SUCCESS) { @@ -202,7 +202,7 @@ int32 SCH_LAB_AppInit(void) /* ** Loading Table */ - Status = CFE_TBL_Load(SCH_LAB_Global.TblHandle, CFE_TBL_SRC_FILE, SCH_TBL_DEFAULT_FILE); + Status = CFE_TBL_Load(SCH_LAB_Global.TblHandle, CFE_TBL_SRC_FILE, SCH_LAB_TBL_DEFAULT_FILE); if (Status != CFE_SUCCESS) { CFE_ES_WriteToSysLog("SCH_LAB: Error Loading Table ScheduleTable, RC = 0x%08lX\n", (unsigned long)Status); From ca09f13dcb8cfa3d561c3d7a32742d47c87ab0ac Mon Sep 17 00:00:00 2001 From: Dylan Date: Mon, 13 Nov 2023 11:13:07 -0500 Subject: [PATCH 5/5] Updating documentation and version numbers for v2.5.0-rc4+dev71 --- CHANGELOG.md | 7 +++++++ fsw/src/sch_lab_version.h | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1c89f7..7b30b85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## Development Build: v2.5.0-rc4+dev71 +- Standardize naming of SCH_LAB functions/macros +- Call CFE_ES_ExitApp with RunStatus rather than internal status variable +- Convert int32 return codes and variables to CFE_Status_t +- Remove component-specific cFE header #includes +- See , , , and + ## Development Build: v2.5.0-rc4+dev61 - implement header file convention for SCH_LAB - See diff --git a/fsw/src/sch_lab_version.h b/fsw/src/sch_lab_version.h index 54a82f8..bdde44f 100644 --- a/fsw/src/sch_lab_version.h +++ b/fsw/src/sch_lab_version.h @@ -25,7 +25,7 @@ */ /* Development Build Macro Definitions */ -#define SCH_LAB_BUILD_NUMBER 61 /*!< Development Build: Number of commits since baseline */ +#define SCH_LAB_BUILD_NUMBER 71 /*!< Development Build: Number of commits since baseline */ #define SCH_LAB_BUILD_BASELINE \ "v2.5.0-rc4" /*!< Development Build: git tag that is the base for the current development */