Skip to content

Commit

Permalink
Initial Command Ingest (CI)
Browse files Browse the repository at this point in the history
  • Loading branch information
jtovias committed Dec 11, 2017
1 parent ec7d8e6 commit a4d3a81
Show file tree
Hide file tree
Showing 76 changed files with 10,106 additions and 1 deletion.
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
Command Ingest (CI) application for use with Core Flight Systems (CFS) missions.
Command Ingest

NASA core Flight System Scheduler Application

Description

Command Ingest (CI) application is a core Flight System (cFS) application that is a plug in to the Core Flight Executive (cFE) component of the cFS.

The cFS is a platform and project independent reusable software framework and set of reusable applications developed by NASA Goddard Space Flight Center. This framework is used as the basis for the flight software for satellite data systems and instruments, but can be used on other embedded systems. More information on the cFS can be found at http://cfs.gsfc.nasa.gov

The Command Ingest (CI) Application is responsible for receiving commands from an external source (such as a ground station) over a transport channel, and to forward the command to the appropriate application over the cFE Software Bus (SB).


18 changes: 18 additions & 0 deletions analysis/run_cppcheck_ci.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash
# Runs cppcheck on CI

ci_app="../fsw"
io_lib="../../io_lib/fsw"

output_file="./cppcheck_ci.txt"
error_file="./cppcheck_errors_ci.txt"

command -v cppcheck >/dev/null 2>&1 || { echo >&2 "Error: Requires cppcheck but it's not installed. Aborting."; exit 1; }

paths_to_check="$ci_app/src/ $ci_app/examples/multi/ $ci_app/examples/multi_tf/ $ci_app/examples/rs422/ $ci_app/examples/udp/"

include_dirs="-I $ci_app/platform_inc/ -I $ci_app/mission_inc -I $io_lib/public_inc"

flags="-v --report-progress --std=c89"

cppcheck $flags $include_dirs $paths_to_check 2> $error_file > $output_file
Binary file added docs/SDD_Generic_CI-TO_V1_5.doc
Binary file not shown.
Binary file added docs/SDD_Generic_CI-TO_V1_5.pdf
Binary file not shown.
43 changes: 43 additions & 0 deletions fsw/examples/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Author: Guy de Carufel (Odyssey Space Research)
# Date: Jan 26, 2016

This directory holds example implementations of the custom layer for this application.

To make use of an example, use the setup.sh
> ./setup.sh -h

The normal setup is to copy the files in the appropriate locations and then modify then
according to your mission needs.
For the "ci_lab" application equivalent, use the udp example.
>./setup.sh udp

You can link to files in the examples in this directory rather than making copies
by using the -l option
>./setup.sh -l udp


DEVELOPERS NOTE:
1. Always revert back to the udp example as a copy (not a link) before comitting to
the repo if you made changes to example files.
We want to keep the udp to_custom.c as the default example.
>./setup.sh udp

2. If you add examples, make sure to name the directory the same in both CI & TO.


USEFUL TIP:
Add the following to your .bashrc to update both CI/TO at the same time:

setCustomLink() {
cd ${MISSION_HOME}/apps/ci/fsw/examples/
./setup.sh -l $1
cd ${MISSION_HOME}/apps/to/fsw/examples/
./setup.sh -l $1
}

setCustomCopy() {
cd ${MISSION_HOME}/apps/ci/fsw/examples/
./setup.sh $1
cd ${MISSION_HOME}/apps/to/fsw/examples/
./setup.sh $1
}
75 changes: 75 additions & 0 deletions fsw/examples/multi/MISSION_ci_types.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
/******************************************************************************/
/** \file MISSION_ci_types.h
*
* \author Guy de Carufel (Odyssey Space Research), NASA, JSC, ER6
*
* \brief Command and telemetry data strucutres for CI application
*
* \par
* This header file contains definitions of command and telemetry data
* structures for CI applications for the RS422 transport protocol example.
*
* \par Limitations, Assumptions, External Events, and Notes:
* - Make use of the setup.sh script to move / link this file to the
* {MISSION_HOME}/apps/inc/ folder.
* - Default HK Telemetry structure is defined in ci_hktlm.h
*
* \par Modification History:
* - 2015-01-09 | Guy de Carufel | Code Started
* - 2015-10-16 | Guy de Carufel | Moved hktlm to ci_hktlm.h
*******************************************************************************/
#ifndef _MISSION_CI_TYPES_H_
#define _MISSION_CI_TYPES_H_

#ifdef __cplusplus
extern "C" {
#endif

/*
** Pragmas
*/

/*
** Include Files
*/
#include "cfe.h"
#include "../ci/fsw/src/ci_hktlm.h"
#include "../to/fsw/mission_inc/to_mission_cfg.h"

/*
** Local Defines
*/

/*
** Local Structure Declarations
*/
typedef struct
{
uint8 ucCmdHeader[CFE_SB_CMD_HDR_SIZE];
} CI_NoArgCmd_t;

typedef struct
{
uint8 ucCmdHeader[CFE_SB_CMD_HDR_SIZE];
char cDestIp[TO_MAX_IP_STRING_SIZE]; /* Destination Socket IP */
uint16 usDestPort; /* Destination Socket Port */
} CI_EnableTOCmd_t;


/* NOTE: In this example, the OutData is empty (not used.) */
typedef struct
{
uint8 ucTlmHeader[CFE_SB_TLM_HDR_SIZE];
} CI_OutData_t;


#ifdef __cplusplus
}
#endif

#endif /* _CI_TO_DEV_CI_TYPES_H_ */

/*==============================================================================
** End of file MISSION_ci_types.h
**============================================================================*/

Loading

0 comments on commit a4d3a81

Please sign in to comment.