From 67050c5cb241fd352b79039de8d70b97845cd0e0 Mon Sep 17 00:00:00 2001 From: Joseph Hickey Date: Mon, 9 Oct 2023 13:41:02 -0400 Subject: [PATCH] Fix #112, reorganize headers Follow the header file convention documented in CFE --- arch_build.cmake | 40 +++ .../default_sc_fcncodes.h | 72 +---- config/default_sc_interface_cfg.h | 72 +++++ .../default_sc_internal_cfg.h | 74 +++-- config/default_sc_mission_cfg.h | 37 +++ config/default_sc_msg.h | 39 +++ .../sc_msg.h => config/default_sc_msgdefs.h | 301 ++++-------------- .../sc_msgids.h => config/default_sc_msgids.h | 2 +- config/default_sc_msgstruct.h | 286 +++++++++++++++++ .../default_sc_perfids.h | 0 config/default_sc_platform_cfg.h | 42 +++ fsw/inc/sc_rts.h => config/default_sc_tbl.h | 22 +- .../default_sc_tbldefs.h | 61 +--- config/default_sc_tblstruct.h | 40 +++ config/sc_eds_msg_topicids.h | 55 ++++ docs/dox_src/sc-common.doxyfile.in | 1 + fsw/src/sc_app.c | 1 - fsw/src/sc_app.h | 50 +++ fsw/src/sc_cmds.c | 1 - mission_build.cmake | 49 ++- unit-test/sc_app_tests.c | 1 - unit-test/sc_atsrq_tests.c | 1 - unit-test/sc_loads_tests.c | 1 - unit-test/sc_rtsrq_tests.c | 1 - unit-test/sc_state_tests.c | 1 - 25 files changed, 832 insertions(+), 418 deletions(-) create mode 100644 arch_build.cmake rename fsw/inc/sc_msgdefs.h => config/default_sc_fcncodes.h (89%) create mode 100644 config/default_sc_interface_cfg.h rename fsw/inc/sc_platform_cfg.h => config/default_sc_internal_cfg.h (91%) create mode 100644 config/default_sc_mission_cfg.h create mode 100644 config/default_sc_msg.h rename fsw/inc/sc_msg.h => config/default_sc_msgdefs.h (57%) rename fsw/inc/sc_msgids.h => config/default_sc_msgids.h (96%) create mode 100644 config/default_sc_msgstruct.h rename fsw/inc/sc_perfids.h => config/default_sc_perfids.h (100%) create mode 100644 config/default_sc_platform_cfg.h rename fsw/inc/sc_rts.h => config/default_sc_tbl.h (75%) rename fsw/inc/sc_tbldefs.h => config/default_sc_tbldefs.h (64%) create mode 100644 config/default_sc_tblstruct.h create mode 100644 config/sc_eds_msg_topicids.h diff --git a/arch_build.cmake b/arch_build.cmake new file mode 100644 index 0000000..8a84a47 --- /dev/null +++ b/arch_build.cmake @@ -0,0 +1,40 @@ +########################################################### +# +# SC App platform build setup +# +# This file is evaluated as part of the "prepare" stage +# and can be used to set up prerequisites for the build, +# such as generating header files +# +########################################################### + +# The list of header files that control the SC configuration +set(SC_PLATFORM_CONFIG_FILE_LIST + sc_internal_cfg.h + sc_msgids.h + sc_perfids.h + sc_platform_cfg.h +) + +if (CFE_EDS_ENABLED_BUILD) + + # In an EDS-based build, msgids come generated from the EDS tool + set(SC_CFGFILE_SRC_sc_msgids "${CMAKE_CURRENT_LIST_DIR}/config/sc_eds_msg_topicids.h") + +endif(CFE_EDS_ENABLED_BUILD) + +# Create wrappers around the all the config header files +# This makes them individually overridable by the missions, without modifying +# the distribution default copies +foreach(SC_CFGFILE ${SC_PLATFORM_CONFIG_FILE_LIST}) + get_filename_component(CFGKEY "${SC_CFGFILE}" NAME_WE) + if (DEFINED SC_CFGFILE_SRC_${CFGKEY}) + set(DEFAULT_SOURCE "${SC_CFGFILE_SRC_${CFGKEY}}") + else() + set(DEFAULT_SOURCE "${CMAKE_CURRENT_LIST_DIR}/config/default_${SC_CFGFILE}") + endif() + generate_config_includefile( + FILE_NAME "${SC_CFGFILE}" + FALLBACK_FILE ${DEFAULT_SOURCE} + ) +endforeach() diff --git a/fsw/inc/sc_msgdefs.h b/config/default_sc_fcncodes.h similarity index 89% rename from fsw/inc/sc_msgdefs.h rename to config/default_sc_fcncodes.h index edf6497..51fe355 100644 --- a/fsw/inc/sc_msgdefs.h +++ b/config/default_sc_fcncodes.h @@ -19,75 +19,15 @@ /** * @file - * Specification for the CFS Stored Command (SC) command and telemetry - * message constant definitions. + * Specification for the CFS Stored Command (SC) command function codes * * @note - * DO NOT PUT ANY TYPEDEFS OR STRUCTURE DEFINITIONS IN THIS FILE! - * ADD THEM TO sc_msg.h IF NEEDED! + * This file should be strictly limited to the command/function code (CC) + * macro definitions. Other definitions such as enums, typedefs, or other + * macros should be placed in the msgdefs.h or msg.h files. */ -#ifndef SC_MSGDEFS_H -#define SC_MSGDEFS_H - -/************************************************************************ - * Macro Definitions - ************************************************************************/ - -/** - * \name Which processor runs next - * \{ - */ -#define SC_ATP 0 /**< \brief ATP process next */ -#define SC_RTP 1 /**< \brief RTP process next */ -#define SC_NONE 0xFF /**< \brief No pending process */ -/**\}*/ - -#define SC_MAX_TIME 0xFFFFFFFF /**< \brief Maximum time in SC */ - -/** - * \name ATS/RTS Cmd Status macros - * \{ - */ -#define SC_EMPTY 0 /**< \brief the object is not loaded */ -#define SC_LOADED 1 /**< \brief the object is loaded */ -#define SC_IDLE 2 /**< \brief the object is not executing */ -#define SC_EXECUTED 3 /**< \brief the object has completed executing */ -#define SC_SKIPPED 4 /**< \brief the object (ats command) was skipped */ -#define SC_EXECUTING 5 /**< \brief the object is currently executing */ -#define SC_FAILED_CHECKSUM 6 /**< \brief the object failed a checksum test */ -#define SC_FAILED_DISTRIB 7 /**< \brief the object could not be sent on the SWB */ -#define SC_STARTING 8 /**< \brief used when an inline switch is executed */ -/**\}*/ - -/** - * \name Defines for each ATS - * \{ - */ -#define SC_NO_ATS 0 /**<\ brief No ATS */ -#define SC_ATSA 1 /**< \brief ATS A */ -#define SC_ATSB 2 /**< \brief ATS B */ -/**\}*/ - -/** - * \name constants for config parameters for which TIME to use - * \{ - */ -#define SC_USE_CFE_TIME 0 /**< \brief Use cFE configured time */ -#define SC_USE_TAI 1 /**< \brief Use TAI Time */ -#define SC_USE_UTC 2 /**< \brief USE UTC Time */ -/**\}*/ - -#define SC_INVALID_RTS_NUMBER 0 /**< \brief Invalid RTS number */ - -#define SC_NUMBER_OF_ATS 2 /**< \brief the number of Absolute Time Sequences */ - -/** - * \name SC Continue Flags - * \{ - */ -#define SC_CONTINUE_TRUE 1 /**< \brief Continue on failure */ -#define SC_CONTINUE_FALSE 0 /**< \brief Do not continue on failure */ -/**\}*/ +#ifndef SC_FCNCODES_H +#define SC_FCNCODES_H /** * \defgroup cfssccmdcodes CFS Stored Command Command Codes diff --git a/config/default_sc_interface_cfg.h b/config/default_sc_interface_cfg.h new file mode 100644 index 0000000..fb26f7c --- /dev/null +++ b/config/default_sc_interface_cfg.h @@ -0,0 +1,72 @@ +/************************************************************************ + * NASA Docket No. GSC-18,924-1, and identified as “Core Flight + * System (cFS) Stored Command Application version 3.1.1” + * + * Copyright (c) 2021 United States Government as represented by the + * Administrator of the National Aeronautics and Space Administration. + * All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. You may obtain + * a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ************************************************************************/ + +/** + * @file + * CFS Stored Command (SC) Application Public Definitions + * + * This provides default values for configurable items that affect + * the interface(s) of this module. This includes the CMD/TLM message + * interface, tables definitions, and any other data products that + * serve to exchange information with other entities. + * + * @note This file may be overridden/superceded by mission-provided defintions + * either by overriding this header or by generating definitions from a command/data + * dictionary tool. + */ +#ifndef SC_INTERFACE_CFG_H +#define SC_INTERFACE_CFG_H + +/** + * \brief Minimum Packet Size + * + * \par Description: + * This parameter specifies the minumum size in bytes for an ATS or RTS command. + * \par Limits: + * This parameter must be greater than or equal to CFE_SB_CMD_HDR_SIZE and + * less than or equal to CFE_MISSION_SB_MAX_SB_MSG_SIZE. + */ +#define SC_PACKET_MIN_SIZE 8 + +/** + * \brief Maximum Packet Size + * + * \par Description: + * This parameter specifies the maximum size in bytes for an ATS or RTS command. + * \par Limits: + * This parameter must be greater than or equal to SC_PACKET_MIN_SIZE and + * less than or equal to CFE_MISSION_SB_MAX_SB_MSG_SIZE. + */ +#define SC_PACKET_MAX_SIZE 256 + +#define SC_NUMBER_OF_ATS 2 /**< \brief the number of Absolute Time Sequences */ + +/** + * \brief Number of RTS's + * + * \par Description: + * The number of RTS's allowed in the system + * + * \par Limits: + * This parameter can't be larger than 999.This parameter will dicate the size of + * The RTS Info Table. + */ +#define SC_NUMBER_OF_RTS 64 + +#endif diff --git a/fsw/inc/sc_platform_cfg.h b/config/default_sc_internal_cfg.h similarity index 91% rename from fsw/inc/sc_platform_cfg.h rename to config/default_sc_internal_cfg.h index b2d1164..86f5f98 100644 --- a/fsw/inc/sc_platform_cfg.h +++ b/config/default_sc_internal_cfg.h @@ -19,11 +19,19 @@ /** * @file - * This file contains the platform configuration parameters used by - * Stored Command + * CFS Stored Command (SC) Application Private Config Definitions + * + * This provides default values for configurable items that are internal + * to this module and do NOT affect the interface(s) of this module. Changes + * to items in this file only affect the local module and will be transparent + * to external entities that are using the public interface(s). + * + * @note This file may be overridden/superceded by mission-provided defintions + * either by overriding this header or by generating definitions from a command/data + * dictionary tool. */ -#ifndef SC_PLATFORM_CFG_H -#define SC_PLATFORM_CFG_H +#ifndef SC_INTERNAL_CFG_H +#define SC_INTERNAL_CFG_H /** * \defgroup cfsscplatformcfg CFS Stored Command Platform Configuration @@ -77,18 +85,6 @@ */ #define SC_MAX_CMDS_PER_SEC 8 -/** - * \brief Number of RTS's - * - * \par Description: - * The number of RTS's allowed in the system - * - * \par Limits: - * This parameter can't be larger than 999.This parameter will dicate the size of - * The RTS Info Table. - */ -#define SC_NUMBER_OF_RTS 64 - /** * \brief Max buffer size for an ATS in uint16s * @@ -145,28 +141,6 @@ */ #define SC_LAST_RTS_WITH_EVENTS 20 -/** - * \brief Minimum Packet Size - * - * \par Description: - * This parameter specifies the minumum size in bytes for an ATS or RTS command. - * \par Limits: - * This parameter must be greater than or equal to CFE_SB_CMD_HDR_SIZE and - * less than or equal to CFE_MISSION_SB_MAX_SB_MSG_SIZE. - */ -#define SC_PACKET_MIN_SIZE 8 - -/** - * \brief Maximum Packet Size - * - * \par Description: - * This parameter specifies the maximum size in bytes for an ATS or RTS command. - * \par Limits: - * This parameter must be greater than or equal to SC_PACKET_MIN_SIZE and - * less than or equal to CFE_MISSION_SB_MAX_SB_MSG_SIZE. - */ -#define SC_PACKET_MAX_SIZE 256 - /** * \brief Command Pipe Depth * @@ -374,6 +348,30 @@ * Must be SC_USE_CFE_TIME, SC_USE_TAI, or SC_USE_UTC */ #define SC_TIME_TO_USE SC_USE_CFE_TIME +/** + * \brief Autostart RTS ID after power on + * + * \par Description: + * The specified RTS will be automatically invoked after a power-on + * May be configured as 0 to disable + * + * \par Limits: + * Must be a valid RTS ID or 0 + */ +#define RTS_ID_AUTO_POWER_ON 1 + +/** + * \brief Autostart RTS ID after processor reset + * + * \par Description: + * The specified RTS will be automatically invoked after a processor reset + * May be configured as 0 to disable + * + * \par Limits: + * Must be a valid RTS ID or 0 + */ +#define RTS_ID_AUTO_PROCESSOR 2 + /** * \brief Mission specific version number for SC application * diff --git a/config/default_sc_mission_cfg.h b/config/default_sc_mission_cfg.h new file mode 100644 index 0000000..958e21c --- /dev/null +++ b/config/default_sc_mission_cfg.h @@ -0,0 +1,37 @@ +/************************************************************************ + * NASA Docket No. GSC-18,924-1, and identified as “Core Flight + * System (cFS) Stored Command Application version 3.1.1” + * + * Copyright (c) 2021 United States Government as represented by the + * Administrator of the National Aeronautics and Space Administration. + * All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. You may obtain + * a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ************************************************************************/ + +/** + * @file + * + * CFS Stored Command (SC) Application Mission Configuration Header File + * + * This is a compatibility header for the "mission_cfg.h" file that has + * traditionally provided public config definitions for each CFS app. + * + * @note This file may be overridden/superceded by mission-provided defintions + * either by overriding this header or by generating definitions from a command/data + * dictionary tool. + */ +#ifndef SC_MISSION_CFG_H +#define SC_MISSION_CFG_H + +#include "sc_interface_cfg.h" + +#endif diff --git a/config/default_sc_msg.h b/config/default_sc_msg.h new file mode 100644 index 0000000..3d7079f --- /dev/null +++ b/config/default_sc_msg.h @@ -0,0 +1,39 @@ +/************************************************************************ + * NASA Docket No. GSC-18,924-1, and identified as “Core Flight + * System (cFS) Stored Command Application version 3.1.1” + * + * Copyright (c) 2021 United States Government as represented by the + * Administrator of the National Aeronautics and Space Administration. + * All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. You may obtain + * a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ************************************************************************/ + +/** + * @file + * Specification for the CFS Stored Command (SC) command and telemetry + * message data types. + * + * This is a compatibility header for the "sc_msg.h" file that has + * traditionally provided the message definitions for cFS apps. + * + * @note This file may be overridden/superceded by mission-provided defintions + * either by overriding this header or by generating definitions from a command/data + * dictionary tool. + */ +#ifndef SC_MSG_H +#define SC_MSG_H + +#include "sc_interface_cfg.h" +#include "sc_msgdefs.h" +#include "sc_msgstruct.h" + +#endif diff --git a/fsw/inc/sc_msg.h b/config/default_sc_msgdefs.h similarity index 57% rename from fsw/inc/sc_msg.h rename to config/default_sc_msgdefs.h index 48f72cf..602c4ac 100644 --- a/fsw/inc/sc_msg.h +++ b/config/default_sc_msgdefs.h @@ -20,36 +20,86 @@ /** * @file * Specification for the CFS Stored Command (SC) command and telemetry - * message data types. + * message constant definitions. * - * @note - * Constants and enumerated types related to these message structures - * are defined in sc_msgdefs.h. + * For SC this is only the function/command code definitions */ -#ifndef SC_MSG_H -#define SC_MSG_H +#ifndef SC_MSGDEFS_H +#define SC_MSGDEFS_H + +#include "common_types.h" +#include "sc_fcncodes.h" /************************************************************************ - * Includes + * Macro Definitions ************************************************************************/ -#include -#include -#include -#include "cfe_tbl_msg.h" +#define SC_NUMBER_OF_RTS_IN_UINT16 16 /**< \brief Number of RTS represented in a uint16 */ + +/** + * \name ATS/RTS Cmd Status macros + * \{ + */ +#define SC_EMPTY 0 /**< \brief the object is not loaded */ +#define SC_LOADED 1 /**< \brief the object is loaded */ +#define SC_IDLE 2 /**< \brief the object is not executing */ +#define SC_EXECUTED 3 /**< \brief the object has completed executing */ +#define SC_SKIPPED 4 /**< \brief the object (ats command) was skipped */ +#define SC_EXECUTING 5 /**< \brief the object is currently executing */ +#define SC_FAILED_CHECKSUM 6 /**< \brief the object failed a checksum test */ +#define SC_FAILED_DISTRIB 7 /**< \brief the object could not be sent on the SWB */ +#define SC_STARTING 8 /**< \brief used when an inline switch is executed */ +/**\}*/ /************************************************************************ * Macro Definitions ************************************************************************/ -#define SC_NUMBER_OF_RTS_IN_UINT16 16 /**< \brief Number of RTS represented in a uint16 */ +/** + * \name Which processor runs next + * \{ + */ +#define SC_ATP 0 /**< \brief ATP process next */ +#define SC_RTP 1 /**< \brief RTP process next */ +#define SC_NONE 0xFF /**< \brief No pending process */ +/**\}*/ + +#define SC_MAX_TIME 0xFFFFFFFF /**< \brief Maximum time in SC */ + +/** + * \name Defines for each ATS + * \{ + */ +#define SC_NO_ATS 0 /**<\ brief No ATS */ +#define SC_ATSA 1 /**< \brief ATS A */ +#define SC_ATSB 2 /**< \brief ATS B */ +/**\}*/ + +/** + * \name constants for config parameters for which TIME to use + * \{ + */ +#define SC_USE_CFE_TIME 0 /**< \brief Use cFE configured time */ +#define SC_USE_TAI 1 /**< \brief Use TAI Time */ +#define SC_USE_UTC 2 /**< \brief USE UTC Time */ +/**\}*/ + +#define SC_INVALID_RTS_NUMBER 0 /**< \brief Invalid RTS number */ + +/** + * \name SC Continue Flags + * \{ + */ +#define SC_CONTINUE_TRUE 1 /**< \brief Continue on failure */ +#define SC_CONTINUE_FALSE 0 /**< \brief Do not continue on failure */ +/**\}*/ /************************************************************************ * Type Definitions ************************************************************************/ /** - * \defgroup cfssctlm CFS Stored Command Telemetry + * \defgroup cfssctlmpayload CFS Stored Command Telemetry Payload * \{ */ @@ -104,19 +154,10 @@ typedef struct If an RTS is DISABLED, then the corresponding bit is one. */ } SC_HkTlm_Payload_t; -/** - * \brief Housekeeping Packet Structure - */ -typedef struct -{ - CFE_MSG_TelemetryHeader_t TlmHeader; - SC_HkTlm_Payload_t Payload; -} SC_HkTlm_t; - /**\}*/ /** - * \defgroup cfssccmdstructs CFS Stored Command Command Structures + * \defgroup cfssccmdpayload CFS Stored Command Command Payload Structures * \{ */ @@ -173,220 +214,6 @@ typedef struct uint16 LastRtsId; /**< \brief ID of the last RTS to act on, 1 through #SC_NUMBER_OF_RTS */ } SC_RtsGrpCmd_Payload_t; -/** - * \brief ATS Id Command - * - * For command details see #SC_START_ATS_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - SC_StartAtsCmd_Payload_t Payload; -} SC_StartAtsCmd_t; - -/** - * \brief Jump running ATS to a new time Command - * - * For command details see #SC_JUMP_ATS_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - SC_JumpAtsCmd_Payload_t Payload; -} SC_JumpAtsCmd_t; - -/** - * \brief Continue ATS on failure command - * - * For command details see #SC_CONTINUE_ATS_ON_FAILURE_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - SC_SetContinueAtsOnFailureCmd_Payload_t Payload; -} SC_SetContinueAtsOnFailureCmd_t; - -/** - * \brief Append to ATS Command - * - * For command details see #SC_APPEND_ATS_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - SC_AppendAtsCmd_Payload_t Payload; -} SC_AppendAtsCmd_t; - -/** - * \brief Send HK Command - * - * For command details see #SC_SEND_HK_MID - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ -} SC_SendHkCmd_t; - -/** - * \brief 1Hz Wakeup Command - * - * For command details see #SC_1HZ_WAKEUP_MID - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ -} SC_OneHzWakeupCmd_t; - -/** - * \brief No operation Command - * - * For command details see #SC_NOOP_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ -} SC_NoopCmd_t; - -/** - * \brief Reset Counters Command - * - * For command details see #SC_RESET_COUNTERS_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ -} SC_ResetCountersCmd_t; - -/** - * \brief Stop ATS Command - * - * For command details see #SC_STOP_ATS_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ -} SC_StopAtsCmd_t; - -/** - * \brief Switch ATS Command - * - * For command details see #SC_SWITCH_ATS_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ -} SC_SwitchAtsCmd_t; - -/** - * \brief Start RTS Command - * - * For command details see #SC_START_RTS_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - SC_RtsCmd_Payload_t Payload; -} SC_StartRtsCmd_t; - -/** - * \brief Stop RTS Command - * - * For command details see #SC_STOP_RTS_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - SC_RtsCmd_Payload_t Payload; -} SC_StopRtsCmd_t; - -/** - * \brief Disable RTS Command - * - * For command details see #SC_DISABLE_RTS_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - SC_RtsCmd_Payload_t Payload; -} SC_DisableRtsCmd_t; - -/** - * \brief Enable RTS Command - * - * For command details see #SC_ENABLE_RTS_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - SC_RtsCmd_Payload_t Payload; -} SC_EnableRtsCmd_t; - -/** - * \brief Continue ATS on failure command - * - * For command details see #SC_CONTINUE_ATS_ON_FAILURE_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - SC_SetContinueAtsOnFailureCmd_Payload_t Payload; -} SC_ContinueAtsOnFailureCmd_t; - -/** - * \brief Manage Table Command - * - * For command details see #SC_MANAGE_TABLE_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - CFE_TBL_NotifyCmd_Payload_t Payload; -} SC_ManageTableCmd_t; - -/** - * \brief RTS Group Command - * - * For command details see #SC_START_RTS_GRP_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - SC_RtsGrpCmd_Payload_t Payload; -} SC_StartRtsGrpCmd_t; - -/** - * \brief RTS Group Command - * - * For command details see #SC_STOP_RTS_GRP_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - SC_RtsGrpCmd_Payload_t Payload; -} SC_StopRtsGrpCmd_t; - -/** - * \brief RTS Group Command - * - * For command details see #SC_DISABLE_RTS_GRP_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - SC_RtsGrpCmd_Payload_t Payload; -} SC_DisableRtsGrpCmd_t; - -/** - * \brief RTS Group Command - * - * For command details see #SC_ENABLE_RTS_GRP_CC - */ -typedef struct -{ - CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ - SC_RtsGrpCmd_Payload_t Payload; -} SC_EnableRtsGrpCmd_t; - /**\}*/ #endif diff --git a/fsw/inc/sc_msgids.h b/config/default_sc_msgids.h similarity index 96% rename from fsw/inc/sc_msgids.h rename to config/default_sc_msgids.h index 932a5b2..7090551 100644 --- a/fsw/inc/sc_msgids.h +++ b/config/default_sc_msgids.h @@ -19,7 +19,7 @@ /** * @file - * This file contains the message ID's used by Stored Command + * CFS Stored Command (SC) Application Message IDs */ #ifndef SC_MSGIDS_H #define SC_MSGIDS_H diff --git a/config/default_sc_msgstruct.h b/config/default_sc_msgstruct.h new file mode 100644 index 0000000..fad2001 --- /dev/null +++ b/config/default_sc_msgstruct.h @@ -0,0 +1,286 @@ +/************************************************************************ + * NASA Docket No. GSC-18,924-1, and identified as “Core Flight + * System (cFS) Stored Command Application version 3.1.1” + * + * Copyright (c) 2021 United States Government as represented by the + * Administrator of the National Aeronautics and Space Administration. + * All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. You may obtain + * a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ************************************************************************/ + +/** + * @file + * Specification for the CFS Stored Command (SC) command and telemetry + * message data types. + * + * @note + * Constants and enumerated types related to these message structures + * are defined in sc_msgdefs.h. + */ +#ifndef SC_MSGSTRUCT_H +#define SC_MSGSTRUCT_H + +/************************************************************************ + * Includes + ************************************************************************/ +#include "sc_msgdefs.h" +#include "sc_mission_cfg.h" +#include "cfe_msg_hdr.h" + +/* NOTE: The following should be just cfe_tbl_msgdefs.h, + * but the CFE headers themselves are not fully correct */ +#include "cfe_es_extern_typedefs.h" +#include "cfe_time_extern_typedefs.h" +#include "cfe_tbl_msg.h" + +/************************************************************************ + * Type Definitions + ************************************************************************/ + +/** + * \defgroup cfssctlm CFS Stored Command Telemetry + * \{ + */ + +/** + * \brief Housekeeping Packet Structure + */ +typedef struct +{ + CFE_MSG_TelemetryHeader_t TlmHeader; + SC_HkTlm_Payload_t Payload; +} SC_HkTlm_t; + +/**\}*/ + +/** + * \defgroup cfssccmdstructs CFS Stored Command Command Structures + * \{ + */ + +/** + * \brief ATS Id Command + * + * For command details see #SC_START_ATS_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + SC_StartAtsCmd_Payload_t Payload; +} SC_StartAtsCmd_t; + +/** + * \brief Jump running ATS to a new time Command + * + * For command details see #SC_JUMP_ATS_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + SC_JumpAtsCmd_Payload_t Payload; +} SC_JumpAtsCmd_t; + +/** + * \brief Continue ATS on failure command + * + * For command details see #SC_CONTINUE_ATS_ON_FAILURE_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + SC_SetContinueAtsOnFailureCmd_Payload_t Payload; +} SC_SetContinueAtsOnFailureCmd_t; + +/** + * \brief Append to ATS Command + * + * For command details see #SC_APPEND_ATS_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + SC_AppendAtsCmd_Payload_t Payload; +} SC_AppendAtsCmd_t; + +/** + * \brief Send HK Command + * + * For command details see #SC_SEND_HK_MID + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ +} SC_SendHkCmd_t; + +/** + * \brief 1Hz Wakeup Command + * + * For command details see #SC_1HZ_WAKEUP_MID + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ +} SC_OneHzWakeupCmd_t; + +/** + * \brief No operation Command + * + * For command details see #SC_NOOP_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ +} SC_NoopCmd_t; + +/** + * \brief Reset Counters Command + * + * For command details see #SC_RESET_COUNTERS_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ +} SC_ResetCountersCmd_t; + +/** + * \brief Stop ATS Command + * + * For command details see #SC_STOP_ATS_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ +} SC_StopAtsCmd_t; + +/** + * \brief Switch ATS Command + * + * For command details see #SC_SWITCH_ATS_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ +} SC_SwitchAtsCmd_t; + +/** + * \brief Start RTS Command + * + * For command details see #SC_START_RTS_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + SC_RtsCmd_Payload_t Payload; +} SC_StartRtsCmd_t; + +/** + * \brief Stop RTS Command + * + * For command details see #SC_STOP_RTS_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + SC_RtsCmd_Payload_t Payload; +} SC_StopRtsCmd_t; + +/** + * \brief Disable RTS Command + * + * For command details see #SC_DISABLE_RTS_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + SC_RtsCmd_Payload_t Payload; +} SC_DisableRtsCmd_t; + +/** + * \brief Enable RTS Command + * + * For command details see #SC_ENABLE_RTS_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + SC_RtsCmd_Payload_t Payload; +} SC_EnableRtsCmd_t; + +/** + * \brief Continue ATS on failure command + * + * For command details see #SC_CONTINUE_ATS_ON_FAILURE_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + SC_SetContinueAtsOnFailureCmd_Payload_t Payload; +} SC_ContinueAtsOnFailureCmd_t; + +/** + * \brief Manage Table Command + * + * For command details see #SC_MANAGE_TABLE_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + CFE_TBL_NotifyCmd_Payload_t Payload; +} SC_ManageTableCmd_t; + +/** + * \brief RTS Group Command + * + * For command details see #SC_START_RTS_GRP_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + SC_RtsGrpCmd_Payload_t Payload; +} SC_StartRtsGrpCmd_t; + +/** + * \brief RTS Group Command + * + * For command details see #SC_STOP_RTS_GRP_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + SC_RtsGrpCmd_Payload_t Payload; +} SC_StopRtsGrpCmd_t; + +/** + * \brief RTS Group Command + * + * For command details see #SC_DISABLE_RTS_GRP_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + SC_RtsGrpCmd_Payload_t Payload; +} SC_DisableRtsGrpCmd_t; + +/** + * \brief RTS Group Command + * + * For command details see #SC_ENABLE_RTS_GRP_CC + */ +typedef struct +{ + CFE_MSG_CommandHeader_t CmdHeader; /**< \brief Command Header */ + SC_RtsGrpCmd_Payload_t Payload; +} SC_EnableRtsGrpCmd_t; + +/**\}*/ + +#endif diff --git a/fsw/inc/sc_perfids.h b/config/default_sc_perfids.h similarity index 100% rename from fsw/inc/sc_perfids.h rename to config/default_sc_perfids.h diff --git a/config/default_sc_platform_cfg.h b/config/default_sc_platform_cfg.h new file mode 100644 index 0000000..ac20cd2 --- /dev/null +++ b/config/default_sc_platform_cfg.h @@ -0,0 +1,42 @@ +/************************************************************************ + * NASA Docket No. GSC-18,924-1, and identified as “Core Flight + * System (cFS) Stored Command Application version 3.1.1” + * + * Copyright (c) 2021 United States Government as represented by the + * Administrator of the National Aeronautics and Space Administration. + * All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. You may obtain + * a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ************************************************************************/ + +/** + * @file + * + * CFS Stored Command (SC) Application Platform Configuration Header File + * + * This is a compatibility header for the "platform_cfg.h" file that has + * traditionally provided both public and private config definitions + * for each CFS app. + * + * These definitions are now provided in two separate files, one for + * the public/mission scope and one for internal scope. + * + * @note This file may be overridden/superceded by mission-provided defintions + * either by overriding this header or by generating definitions from a command/data + * dictionary tool. + */ +#ifndef SC_PLATFORM_CFG_H +#define SC_PLATFORM_CFG_H + +#include "sc_mission_cfg.h" +#include "sc_internal_cfg.h" + +#endif diff --git a/fsw/inc/sc_rts.h b/config/default_sc_tbl.h similarity index 75% rename from fsw/inc/sc_rts.h rename to config/default_sc_tbl.h index 3bfb7d0..9fa8817 100644 --- a/fsw/inc/sc_rts.h +++ b/config/default_sc_tbl.h @@ -19,19 +19,17 @@ /** * @file - * This file contains autostart RTS IDs - */ -#ifndef SC_RTS_H -#define SC_RTS_H - -/** - * \ingroup cfsscplatformcfg - * \{ + * Specification for the CFS Stored Command (SC) table structures + * + * @note + * Constants and enumerated types related to these table structures + * are defined in sc_tbldefs.h. */ +#ifndef SC_TBL_H +#define SC_TBL_H -#define RTS_ID_AUTO_POWER_ON 1 /**< \brief Autostart RTS ID after power on (0 to disable) */ -#define RTS_ID_AUTO_PROCESSOR 2 /**< \brief Autostart RTS ID after processor reset (0 to disable) */ - -/**\}*/ +#include "sc_interface_cfg.h" +#include "sc_tbldefs.h" +#include "sc_tblstruct.h" #endif diff --git a/fsw/inc/sc_tbldefs.h b/config/default_sc_tbldefs.h similarity index 64% rename from fsw/inc/sc_tbldefs.h rename to config/default_sc_tbldefs.h index 84d01ae..f13e62a 100644 --- a/fsw/inc/sc_tbldefs.h +++ b/config/default_sc_tbldefs.h @@ -19,16 +19,15 @@ /** * @file - * Specification for the CFS Stored Command (SC) table structures + * Specification for the CFS Stored Command (SC) table related + * constant and structure definitions. + * */ #ifndef SC_TBLDEFS_H #define SC_TBLDEFS_H -/************************************************************************* - * Includes - *************************************************************************/ -#include -#include +#include "common_types.h" +#include "cfe_msg_hdr.h" /************************************************************************* * Macro Definitions @@ -64,56 +63,6 @@ typedef uint32 SC_AbsTimeTag_t; */ typedef uint32 SC_RelTimeTag_t; -/** - * \brief ATS Info Table Type - One of these records are kept for each ATS - */ -typedef struct -{ - uint16 AtsUseCtr; /**< \brief How many times it has been used */ - uint16 NumberOfCommands; /**< \brief number of commands in the ATS */ - uint32 AtsSize; /**< \brief size of the ATS */ -} SC_AtsInfoTable_t; - -/** - * \brief ATP Control Block Type - */ -typedef struct -{ - uint8 AtpState; /**< \brief execution state of the ATP */ - uint8 AtsNumber; /**< \brief current ATS running if any */ - uint16 Padding; /**< \brief Structure padding to align to 32-bit boundaries */ - uint32 CmdNumber; /**< \brief current cmd number to run if any */ - uint16 TimeIndexPtr; /**< \brief time index pointer for current cmd */ - uint16 SwitchPendFlag; /**< \brief indicates that a buffer switch is waiting */ -} SC_AtpControlBlock_t; - -/** - * \brief RTP Control Block Type - * - * \note Now there is only really one RTP - * This structure contains overall info for the next relative time - * processor. - */ -typedef struct -{ - uint16 NumRtsActive; /**< \brief number of RTSs currently active */ - uint16 RtsNumber; /**< \brief next RTS number */ -} SC_RtpControlBlock_t; - -/** - * \brief RTS info table entry type -One of these records is kept for each RTS - */ -typedef struct -{ - uint8 RtsStatus; /**< \brief status of the RTS */ - bool DisabledFlag; /**< \brief disabled/enabled flag */ - uint8 CmdCtr; /**< \brief Cmds executed in current rts */ - uint8 CmdErrCtr; /**< \brief errs in current RTS */ - SC_AbsTimeTag_t NextCommandTime; /**< \brief next command time for RTS */ - uint16 NextCommandPtr; /**< \brief where next rts cmd is */ - uint16 UseCtr; /**< \brief how many times RTS is run */ -} SC_RtsInfoEntry_t; - /** * \brief ATS Table Entry Header Type */ diff --git a/config/default_sc_tblstruct.h b/config/default_sc_tblstruct.h new file mode 100644 index 0000000..baee180 --- /dev/null +++ b/config/default_sc_tblstruct.h @@ -0,0 +1,40 @@ +/************************************************************************ + * NASA Docket No. GSC-18,924-1, and identified as “Core Flight + * System (cFS) Stored Command Application version 3.1.1” + * + * Copyright (c) 2021 United States Government as represented by the + * Administrator of the National Aeronautics and Space Administration. + * All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. You may obtain + * a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ************************************************************************/ + +/** + * @file + * Specification for the CFS Stored Command (SC) table structures + * + * Provides default definitions for HK table structures + * + * @note This file may be overridden/superceded by mission-provided defintions + * either by overriding this header or by generating definitions from a command/data + * dictionary tool. + */ +#ifndef SC_TBLSTRUCT_H +#define SC_TBLSTRUCT_H + +/************************************************************************* + * Includes + *************************************************************************/ +#include "sc_tbldefs.h" +#include "sc_mission_cfg.h" +#include "cfe_mission_cfg.h" + +#endif diff --git a/config/sc_eds_msg_topicids.h b/config/sc_eds_msg_topicids.h new file mode 100644 index 0000000..b74d30c --- /dev/null +++ b/config/sc_eds_msg_topicids.h @@ -0,0 +1,55 @@ +/************************************************************************ + * NASA Docket No. GSC-18,924-1, and identified as “Core Flight + * System (cFS) Stored Command Application version 3.1.1” + * + * Copyright (c) 2021 United States Government as represented by the + * Administrator of the National Aeronautics and Space Administration. + * All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. You may obtain + * a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ************************************************************************/ + +/** + * @file + * CFS Stored Command (SC) Application Message IDs + */ +#ifndef SC_MSGIDS_H +#define SC_MSGIDS_H + +#include "cfe_msgids.h" + +/** + * \defgroup cfssccmdmid CFS Stored Command (SC) Command Message IDs + * \{ + */ + +/** \brief Msg ID for cmds to SC */ +#define SC_CMD_MID CFE_PLATFORM_CMD_TOPICID_TO_MID(CFE_MISSION_SC_CMD_TOPICID) + +/** \brief Msg ID to request SC housekeeping */ +#define SC_SEND_HK_MID CFE_PLATFORM_CMD_TOPICID_TO_MID(CFE_MISSION_SC_SEND_HK_TOPICID) + +/** \brief Msg ID to wake up SC */ +#define SC_WAKEUP_MID CFE_PLATFORM_CMD_TOPICID_TO_MID(CFE_MISSION_SC_WAKEUP_TOPICID) + +/**\}*/ + +/** + * \defgroup cfssctlmmid CFS Stored Command (SC) Telemetry Message IDs + * \{ + */ + +/** \brief SC Housekeeping Telemetry */ +#define SC_HK_TLM_MID CFE_PLATFORM_TLM_TOPICID_TO_MID(CFE_MISSION_SC_HK_TLM_TOPICID) + +/**\}*/ + +#endif diff --git a/docs/dox_src/sc-common.doxyfile.in b/docs/dox_src/sc-common.doxyfile.in index 1f1c4e4..f3d1a78 100644 --- a/docs/dox_src/sc-common.doxyfile.in +++ b/docs/dox_src/sc-common.doxyfile.in @@ -5,5 +5,6 @@ # Include front material followed by everything in fsw INPUT += @sc_MISSION_DIR@/docs/dox_src/cfs_sc.dox INPUT += @sc_MISSION_DIR@/fsw +INPUT += @sc_MISSION_DIR@/config IMAGE_PATH += @sc_MISSION_DIR@/docs/dox_src diff --git a/fsw/src/sc_app.c b/fsw/src/sc_app.c index 1742266..052622a 100644 --- a/fsw/src/sc_app.c +++ b/fsw/src/sc_app.c @@ -33,7 +33,6 @@ #include "cfe.h" #include "sc_app.h" -#include "sc_rts.h" #include "sc_dispatch.h" #include "sc_loads.h" #include "sc_events.h" diff --git a/fsw/src/sc_app.h b/fsw/src/sc_app.h index 7c8c32a..73682a7 100644 --- a/fsw/src/sc_app.h +++ b/fsw/src/sc_app.h @@ -34,6 +34,56 @@ #include "sc_msgdefs.h" #include "sc_msg.h" +/** + * \brief ATP Control Block Type + */ +typedef struct +{ + uint8 AtpState; /**< \brief execution state of the ATP */ + uint8 AtsNumber; /**< \brief current ATS running if any */ + uint16 Padding; /**< \brief Structure padding to align to 32-bit boundaries */ + uint32 CmdNumber; /**< \brief current cmd number to run if any */ + uint16 TimeIndexPtr; /**< \brief time index pointer for current cmd */ + uint16 SwitchPendFlag; /**< \brief indicates that a buffer switch is waiting */ +} SC_AtpControlBlock_t; + +/** + * \brief ATS Info Table Type - One of these records are kept for each ATS + */ +typedef struct +{ + uint16 AtsUseCtr; /**< \brief How many times it has been used */ + uint16 NumberOfCommands; /**< \brief number of commands in the ATS */ + uint32 AtsSize; /**< \brief size of the ATS */ +} SC_AtsInfoTable_t; + +/** + * \brief RTP Control Block Type + * + * \note Now there is only really one RTP + * This structure contains overall info for the next relative time + * processor. + */ +typedef struct +{ + uint16 NumRtsActive; /**< \brief number of RTSs currently active */ + uint16 RtsNumber; /**< \brief next RTS number */ +} SC_RtpControlBlock_t; + +/** + * \brief RTS info table entry type -One of these records is kept for each RTS + */ +typedef struct +{ + uint8 RtsStatus; /**< \brief status of the RTS */ + bool DisabledFlag; /**< \brief disabled/enabled flag */ + uint8 CmdCtr; /**< \brief Cmds executed in current rts */ + uint8 CmdErrCtr; /**< \brief errs in current RTS */ + SC_AbsTimeTag_t NextCommandTime; /**< \brief next command time for RTS */ + uint16 NextCommandPtr; /**< \brief where next rts cmd is */ + uint16 UseCtr; /**< \brief how many times RTS is run */ +} SC_RtsInfoEntry_t; + /** * \brief Wakeup for SC * diff --git a/fsw/src/sc_cmds.c b/fsw/src/sc_cmds.c index 22f57a1..fb4f950 100644 --- a/fsw/src/sc_cmds.c +++ b/fsw/src/sc_cmds.c @@ -41,7 +41,6 @@ #include "sc_msgids.h" #include "sc_events.h" #include "sc_version.h" -#include "sc_rts.h" /************************************************************************** ** diff --git a/mission_build.cmake b/mission_build.cmake index ffe1557..d3b9abf 100644 --- a/mission_build.cmake +++ b/mission_build.cmake @@ -1,4 +1,51 @@ -# App specific mission scope configuration +########################################################### +# +# SC App mission build setup +# +# This file is evaluated as part of the "prepare" stage +# and can be used to set up prerequisites for the build, +# such as generating header files +# +########################################################### # Add stand alone documentation add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/docs/dox_src ${MISSION_BINARY_DIR}/docs/sc-usersguide) + +# The list of header files that control the SC configuration +set(SC_MISSION_CONFIG_FILE_LIST + sc_fcncodes.h + sc_interface_cfg.h + sc_mission_cfg.h + sc_msgdefs.h + sc_msg.h + sc_msgstruct.h + sc_tbldefs.h + sc_tbl.h + sc_tblstruct.h +) + +if (CFE_EDS_ENABLED_BUILD) + + # In an EDS-based build, these files come generated from the EDS tool + set(SC_CFGFILE_SRC_sc_interface_cfg "sc_eds_designparameters.h") + set(SC_CFGFILE_SRC_sc_fcncodes "sc_eds_cc.h") + set(SC_CFGFILE_SRC_sc_msgstruct "sc_eds_typedefs.h") + set(SC_CFGFILE_SRC_sc_tblstruct "sc_eds_typedefs.h") + +endif(CFE_EDS_ENABLED_BUILD) + +# Create wrappers around the all the config header files +# This makes them individually overridable by the missions, without modifying +# the distribution default copies +foreach(SC_CFGFILE ${SC_MISSION_CONFIG_FILE_LIST}) + get_filename_component(CFGKEY "${SC_CFGFILE}" NAME_WE) + if (DEFINED SC_CFGFILE_SRC_${CFGKEY}) + set(DEFAULT_SOURCE GENERATED_FILE "${SC_CFGFILE_SRC_${CFGKEY}}") + else() + set(DEFAULT_SOURCE FALLBACK_FILE "${CMAKE_CURRENT_LIST_DIR}/config/default_${SC_CFGFILE}") + endif() + generate_config_includefile( + FILE_NAME "${SC_CFGFILE}" + ${DEFAULT_SOURCE} + ) +endforeach() diff --git a/unit-test/sc_app_tests.c b/unit-test/sc_app_tests.c index 52898fa..f40a619 100644 --- a/unit-test/sc_app_tests.c +++ b/unit-test/sc_app_tests.c @@ -21,7 +21,6 @@ * Includes */ -#include "sc_rts.h" #include "sc_app.h" #include "sc_cmds.h" #include "sc_state.h" diff --git a/unit-test/sc_atsrq_tests.c b/unit-test/sc_atsrq_tests.c index 024e669..b94b94f 100644 --- a/unit-test/sc_atsrq_tests.c +++ b/unit-test/sc_atsrq_tests.c @@ -21,7 +21,6 @@ * Includes */ -#include "sc_rts.h" #include "sc_app.h" #include "sc_cmds.h" #include "sc_state.h" diff --git a/unit-test/sc_loads_tests.c b/unit-test/sc_loads_tests.c index 120ae11..460f11d 100644 --- a/unit-test/sc_loads_tests.c +++ b/unit-test/sc_loads_tests.c @@ -21,7 +21,6 @@ * Includes */ -#include "sc_rts.h" #include "sc_app.h" #include "sc_cmds.h" #include "sc_state.h" diff --git a/unit-test/sc_rtsrq_tests.c b/unit-test/sc_rtsrq_tests.c index 37f6b9e..72147b1 100644 --- a/unit-test/sc_rtsrq_tests.c +++ b/unit-test/sc_rtsrq_tests.c @@ -21,7 +21,6 @@ * Includes */ -#include "sc_rts.h" #include "sc_app.h" #include "sc_cmds.h" #include "sc_state.h" diff --git a/unit-test/sc_state_tests.c b/unit-test/sc_state_tests.c index 6ec3ca0..7ffa9ef 100644 --- a/unit-test/sc_state_tests.c +++ b/unit-test/sc_state_tests.c @@ -21,7 +21,6 @@ * Includes */ -#include "sc_rts.h" #include "sc_app.h" #include "sc_cmds.h" #include "sc_state.h"