From c8716cf8d102515ee191928684aeef1748b701a0 Mon Sep 17 00:00:00 2001 From: Jake Hageman Date: Thu, 16 May 2019 11:39:24 -0400 Subject: [PATCH] Seed from sch_lab 2.2.0.0 code base --- CMakeLists.txt | 14 +++ LICENSE-18128-Apache-2_0.pdf | Bin 0 -> 95335 bytes fsw/for_build/Makefile | 112 +++++++++++++++++++ fsw/mission_inc/sch_lab_perfids.h | 49 +++++++++ fsw/platform_inc/sch_lab_sched_tab.h | 106 ++++++++++++++++++ fsw/src/sch_lab_app.c | 156 +++++++++++++++++++++++++++ fsw/src/sch_lab_version.h | 53 +++++++++ 7 files changed, 490 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 LICENSE-18128-Apache-2_0.pdf create mode 100644 fsw/for_build/Makefile create mode 100644 fsw/mission_inc/sch_lab_perfids.h create mode 100644 fsw/platform_inc/sch_lab_sched_tab.h create mode 100644 fsw/src/sch_lab_app.c create mode 100644 fsw/src/sch_lab_version.h diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..5c5eb37 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required(VERSION 2.6.4) +project(CFS_SCH_LAB C) + +include_directories(fsw/mission_inc) +include_directories(fsw/platform_inc) +include_directories(${ci_lab_MISSION_DIR}/fsw/platform_inc) +include_directories(${to_lab_MISSION_DIR}/fsw/platform_inc) +include_directories(${sample_app_MISSION_DIR}/fsw/platform_inc) + +aux_source_directory(fsw/src APP_SRC_FILES) + +# Create the app module +add_cfe_app(sch_lab ${APP_SRC_FILES}) + diff --git a/LICENSE-18128-Apache-2_0.pdf b/LICENSE-18128-Apache-2_0.pdf new file mode 100644 index 0000000000000000000000000000000000000000..47a1a9a964615d55e5934a5b4dac946e1386d951 GIT binary patch literal 95335 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

NVumO|LrF72hI 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

6rn`ae?$W){Z(x*d(06ERdQ2wNvq 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 literal 0 HcmV?d00001 diff --git a/fsw/for_build/Makefile b/fsw/for_build/Makefile new file mode 100644 index 0000000..56cb91a --- /dev/null +++ b/fsw/for_build/Makefile @@ -0,0 +1,112 @@ +############################################################################### +# File: CFS Application Makefile +# +# $Id: Makefile 1.5 2009/07/09 10:41:17GMT-05:00 rmcgraw Exp $ +# +# $Log: Makefile $ +# Revision 1.5 2009/07/09 10:41:17GMT-05:00 rmcgraw +# DCR8291:1 Changed CFE_MISSION_INC to CFS_MISSION_INC and added log if needed +# +############################################################################### +# +# Subsystem produced by this makefile. +# +APPTARGET = sch_lab + +# +# Entry Point for task +# +ENTRY_PT = SCH_Lab_AppMain + +# +# Object files required to build subsystem. +# +OBJS = sch_lab_app.o + +# +# Source files required to build subsystem; used to generate dependencies. +# As long as there are no assembly files this can be automated. +# +SOURCES = $(OBJS:.o=.c) + + +## +## Specify extra C Flags needed to build this subsystem +## +LOCAL_COPTS = + + +## +## EXEDIR is defined here, just in case it needs to be different for a custom +## build +## +EXEDIR=../exe + +## +## Certain OSs and Application Loaders require the following option for +## Shared libraries. Currently only needed for vxWorks 5.5 and RTEMS. +## For each shared library that this app depends on, you need to have an +## entry like the following: +## -R../tst_lib/tst_lib.elf +## +SHARED_LIB_LINK = + +######################################################################## +# Should not have to change below this line, except for customized +# Mission and cFE directory structures +######################################################################## + +# +# Set build type to CFE_APP. This allows us to +# define different compiler flags for the cFE Core and Apps. +# +BUILD_TYPE = CFE_APP + +## +## Include all necessary cFE make rules +## Any of these can be copied to a local file and +## changed if needed. +## +## +## cfe-config.mak contains PSP and OS selection +## +include ../cfe/cfe-config.mak +## +## debug-opts.mak contains debug switches +## +include ../cfe/debug-opts.mak +## +## compiler-opts.mak contains compiler definitions and switches/defines +## +include $(CFE_PSP_SRC)/$(PSP)/make/compiler-opts.mak + +## +## Setup the include path for this subsystem +## The OS specific includes are in the build-rules.make file +## +## If this subsystem needs include files from another app, add the path here. +## +INCLUDE_PATH = \ +-I$(OSAL_SRC)/inc \ +-I$(CFE_CORE_SRC)/inc \ +-I$(CFE_PSP_SRC)/inc \ +-I$(CFE_PSP_SRC)/$(PSP)/inc \ +-I$(CFS_APP_SRC)/inc \ +-I$(CFS_APP_SRC)/$(APPTARGET)/fsw/src \ +-I$(CFS_MISSION_INC) \ +-I../cfe/inc \ +-I../inc + +## +## Define the VPATH make variable. +## This can be modified to include source from another directory. +## If there is no corresponding app in the cfs-apps directory, then this can be discarded, or +## if the mission chooses to put the src in another directory such as "src", then that can be +## added here as well. +## +VPATH = $(CFS_APP_SRC)/$(APPTARGET)/fsw/src + +## +## Include the common make rules for building a cFE Application +## +include $(CFE_CORE_SRC)/make/app-rules.mak diff --git a/fsw/mission_inc/sch_lab_perfids.h b/fsw/mission_inc/sch_lab_perfids.h new file mode 100644 index 0000000..10af9b8 --- /dev/null +++ b/fsw/mission_inc/sch_lab_perfids.h @@ -0,0 +1,49 @@ +/************************************************************************ +** +** GSC-18128-1, "Core Flight Executive Version 6.6" +** +** Copyright (c) 2006-2019 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: +** +** Purpose: +** Define SCH Lab Performance IDs +** +** Notes: +** +** $Log: sch_lab_perfids.h $ +** Revision 1.3 2010/09/20 12:28:52GMT-05:00 wmoleski +** Modified the CI_LAB, SCH_LAB and TO_LAB applications to use unique message IDs and Pipe Names. The "_LAB" was +** added to all definitions so that a mission can use these "Lab" apps as well as their own mission apps together. +** Revision 1.2 2008/04/30 16:04:46EDT rjmcgraw +** Member moved from sch_lab_perfids.h in project c:/MKSDATA/MKS-REPOSITORY/CFS-REPOSITORY/sch_lab/fsw/platform_cfg/project.pj to sch_lab_perfids.h in project c:/MKSDATA/MKS-REPOSITORY/CFS-REPOSITORY/sch_lab/fsw/mission_inc/project.pj. +** Revision 1.1 2008/04/30 15:04:46ACT rjmcgraw +** Initial revision +** Member added to project c:/MKSDATA/MKS-REPOSITORY/CFS-REPOSITORY/sch_lab/fsw/platform_cfg/project.pj +** +*************************************************************************/ +#ifndef _sch_lab_perfids_h_ +#define _sch_lab_perfids_h_ + + +#define SCH_MAIN_TASK_PERF_ID 20 + +#endif /* _sch_lab_perfids_h_ */ + +/************************/ +/* End of File Comment */ +/************************/ diff --git a/fsw/platform_inc/sch_lab_sched_tab.h b/fsw/platform_inc/sch_lab_sched_tab.h new file mode 100644 index 0000000..cc7b9c2 --- /dev/null +++ b/fsw/platform_inc/sch_lab_sched_tab.h @@ -0,0 +1,106 @@ +/************************************************************************ +** +** GSC-18128-1, "Core Flight Executive Version 6.6" +** +** Copyright (c) 2006-2019 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: sch_lab_sched_tab.h +** +** Purpose: +** This file contains the schedule tables for the SCH Lab app. +** It is intended to go in the platform include directory so the SCH_LAB +** app source code does not have to be modified. +** +** Notes: +** +** $Log: sch_lab_sched_tab.h $ +** Revision 1.1 2014/07/17 12:36:57GMT-05:00 acudmore +** Initial revision +** Member added to project c:/MKSDATA/MKS-REPOSITORY/MKS-CFE-PROJECT/tools/sch_lab/fsw/platform_inc/project.pj +** +*************************************************************************/ + + +#include "cfe_msgids.h" + +/* +** Include headers for message IDs here +*/ +#include "ci_lab_msgids.h" +#include "to_lab_msgids.h" + +#include "sample_app_msgids.h" + +#if 0 +#include "sc_msgids.h" +#include "hs_msgids.h" +#include "fm_msgids.h" +#include "ds_msgids.h" +#include "lc_msgids.h" +#endif + +/* +** Defines +*/ +#define SCH_LAB_END_OF_TABLE 0 +#define SCH_LAB_MAX_SCHEDULE_ENTRIES 32 + +/* +** Typedefs +*/ +typedef struct +{ + CFE_SB_MsgId_t MessageID; /* Message ID for the table entry */ + uint32 PacketRate; /* Rate: Send packet every N seconds */ + uint32 Counter; /* Counter used to send packet */ + +} SCH_LAB_ScheduleTable_t; + + +/* +** SCH Lab schedule table +** When populating this table: +** 1. Make sure the table is terminated by the SCH_LAB_END_OF_TABLE entry +** 2. You can have commented out entries, but a zero MID will terminate the table processing, +** skipping the remaining entries. +** 3. If the table grows too big, increase SCH_LAB_MAX_SCHEDULE_ENTRIES +*/ +SCH_LAB_ScheduleTable_t SCH_LAB_ScheduleTable[SCH_LAB_MAX_SCHEDULE_ENTRIES] = +{ + { CFE_ES_SEND_HK_MID, 4, 0 }, /* Housekeeping requests go out every 4 seconds */ + { CFE_EVS_SEND_HK_MID, 4, 0 }, + { CFE_TIME_SEND_HK_MID, 4, 0 }, + { CFE_SB_SEND_HK_MID, 4, 0 }, + { CFE_TBL_SEND_HK_MID, 4, 0 }, + + { CI_LAB_SEND_HK_MID, 4, 0 }, + { TO_LAB_SEND_HK_MID, 4, 0 }, + { SAMPLE_APP_SEND_HK_MID, 4, 0 }, + +#if 0 + { SC_SEND_HK_MID, 4, 0 }, + { SC_1HZ_WAKEUP_MID, 1, 0 }, /* Example of a 1hz packet */ + { HS_SEND_HK_MID, 4, 0 }, + { FM_SEND_HK_MID, 4, 0 }, + { DS_SEND_HK_MID, 4, 0 }, + { LC_SEND_HK_MID, 4, 0 }, + +#endif + + { SCH_LAB_END_OF_TABLE, 0, 0 } +}; + diff --git a/fsw/src/sch_lab_app.c b/fsw/src/sch_lab_app.c new file mode 100644 index 0000000..dcc231e --- /dev/null +++ b/fsw/src/sch_lab_app.c @@ -0,0 +1,156 @@ +/************************************************************************ +** +** GSC-18128-1, "Core Flight Executive Version 6.6" +** +** Copyright (c) 2006-2019 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: sch_lab_app.c +** +** Purpose: +** This file contains the source code for the SCH lab application +** +** Notes: +** +** $Log: sch_lab_app.c $ +** Revision 1.5 2014/07/17 12:36:12GMT-05:00 acudmore +** Created schedule table in platform_inc header file. +** Revision 1.4 2010/11/17 08:12:58EST wmoleski +** The TO_Lab_APP, CI_Lab_APP and SCH_Lab_APP did not compile with cFE6.1.0.An include statement of cfe_error.h needed to be added to each app. +** Revision 1.3 2010/09/20 13:28:52EDT wmoleski +** Modified the CI_LAB, SCH_LAB and TO_LAB applications to use unique message IDs and Pipe Names. The "_LAB" was +** added to all definitions so that a mission can use these "Lab" apps as well as their own mission apps together. +** Revision 1.2 2008/09/19 15:31:17EDT rjmcgraw +** DCR4337:1 Added #include version.h and display version after initialization is complete +** Revision 1.1 2008/04/30 16:07:53EDT rjmcgraw +** Initial revision +** Member added to project c:/MKSDATA/MKS-REPOSITORY/CFS-REPOSITORY/sch_lab/fsw/src/project.pj +** +*************************************************************************/ + +/* +** Include Files +*/ + +#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" + +/* +** SCH Lab Schedule table from the platform inc directory +*/ +#include "sch_lab_sched_tab.h" + +/* +** Global Variables +*/ +CFE_SB_CmdHdr_t SCH_CmdHeaderTable[SCH_LAB_MAX_SCHEDULE_ENTRIES]; +CFE_SB_Msg_t *SCH_CmdPipePktPtr; + +/* +** AppMain +*/ +void SCH_Lab_AppMain(void) +{ + int i; + int32 rtnStat; + uint32 SCH_OneHzPktsRcvd = 0; + uint32 RunStatus = CFE_ES_APP_RUN; + CFE_SB_PipeId_t SCH_CmdPipe; + + CFE_ES_PerfLogEntry(SCH_MAIN_TASK_PERF_ID); + + CFE_ES_RegisterApp(); + + /* + ** Initialize the command headers + */ + for (i = 0; i < SCH_LAB_MAX_SCHEDULE_ENTRIES; i++) + { + if ( SCH_LAB_ScheduleTable[i].MessageID != SCH_LAB_END_OF_TABLE ) + { + CFE_SB_InitMsg(&SCH_CmdHeaderTable[i], + SCH_LAB_ScheduleTable[i].MessageID, + sizeof(CFE_SB_CmdHdr_t), TRUE); + } + else + { + break; + } + } + + /* Create pipe and subscribe to the 1Hz pkt */ + rtnStat = CFE_SB_CreatePipe(&SCH_CmdPipe,8,"SCH_LAB_CMD_PIPE"); + if ( rtnStat != CFE_SUCCESS ) + { + OS_printf("SCH Error creating pipe!\n"); + } + + rtnStat = CFE_SB_Subscribe(CFE_TIME_1HZ_CMD_MID,SCH_CmdPipe); + if ( rtnStat != CFE_SUCCESS ) + { + OS_printf("SCH Error subscribing to 1hz!\n"); + } + + OS_printf ("SCH Lab Initialized. Version %d.%d.%d.%d\n", + SCH_LAB_MAJOR_VERSION, + SCH_LAB_MINOR_VERSION, + SCH_LAB_REVISION, + SCH_LAB_MISSION_REV); + + /* Loop Forever */ + while (CFE_ES_RunLoop(&RunStatus) == TRUE) + { + CFE_ES_PerfLogExit(SCH_MAIN_TASK_PERF_ID); + + /* Pend on receipt of 1Hz packet */ + rtnStat = CFE_SB_RcvMsg(&SCH_CmdPipePktPtr,SCH_CmdPipe,CFE_SB_PEND_FOREVER); + + CFE_ES_PerfLogEntry(SCH_MAIN_TASK_PERF_ID); + + if(rtnStat == CFE_SUCCESS) + { + SCH_OneHzPktsRcvd++; + /* + ** Process table every second, sending packets that are ready + */ + for (i = 0; i < SCH_LAB_MAX_SCHEDULE_ENTRIES; i++) + { + if ( SCH_LAB_ScheduleTable[i].MessageID != SCH_LAB_END_OF_TABLE ) + { + SCH_LAB_ScheduleTable[i].Counter++; + if ( SCH_LAB_ScheduleTable[i].Counter >= SCH_LAB_ScheduleTable[i].PacketRate ) + { + SCH_LAB_ScheduleTable[i].Counter = 0; + CFE_SB_SendMsg((CFE_SB_MsgPtr_t)&SCH_CmdHeaderTable[i]); + } + } + else + { + break; + } + } + } + + }/* end while */ + + CFE_ES_ExitApp(RunStatus); + +}/* end SCH_Lab_AppMain */ diff --git a/fsw/src/sch_lab_version.h b/fsw/src/sch_lab_version.h new file mode 100644 index 0000000..b24af3d --- /dev/null +++ b/fsw/src/sch_lab_version.h @@ -0,0 +1,53 @@ +/************************************************************************ +** +** GSC-18128-1, "Core Flight Executive Version 6.6" +** +** Copyright (c) 2006-2019 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: +** $Id: sch_lab_version.h 1.2 2010/11/16 14:20:20GMT-05:00 bmedina Exp $ +** +** Purpose: +** The SCH Lab Application header file containing version number +** +** Notes: +** +** $Log: sch_lab_version.h $ +** Revision 1.3 2016/06/17 sstrege +** changed version number to 2.2.0.0 for updates made to resolve compiler warnings +** Revision 1.2 2010/11/16 14:20:20GMT-05:00 bmedina +** changed version to 2.1.0.0 +** Revision 1.1 2008/09/19 15:04:16EDT rjmcgraw +** Initial revision +** Member added to project c:/MKSDATA/MKS-REPOSITORY/CFS-REPOSITORY/sch_lab/fsw/src/project.pj +** +*************************************************************************/ +#ifndef _sch_lab_version_h_ +#define _sch_lab_version_h_ + + +#define SCH_LAB_MAJOR_VERSION 2 +#define SCH_LAB_MINOR_VERSION 2 +#define SCH_LAB_REVISION 0 +#define SCH_LAB_MISSION_REV 0 + + +#endif /* _sch_lab_version_h_ */ + +/************************/ +/* End of File Comment */ +/************************/