Skip to content

Commit

Permalink
Initial Telemetry Output (TO)
Browse files Browse the repository at this point in the history
  • Loading branch information
jtovias committed Dec 11, 2017
1 parent 0f9e401 commit ce50d40
Show file tree
Hide file tree
Showing 88 changed files with 15,802 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 @@
Telemetry Output (TO) application for use with Core Flight Systems (CFS) missions.
Telemetry Output

NASA core Flight System Scheduler Application

Description

Telemetry Output (TO) 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 Telemetry Output (TO) Application is responsible for transmitting telemetry to external destination(s) (such as a ground station) over transport devices(s).


1 change: 1 addition & 0 deletions analysis/cppcheck_errors_to.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[../../io_lib/fsw/public_inc/tm_sync.h:33]: (error) Invalid number of character ({) when these macros are defined: '__cplusplus'.
18 changes: 18 additions & 0 deletions analysis/run_cppcheck_to.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash
# Runs cppcheck on TO

to_app="../fsw"
io_lib="../../io_lib/fsw"

output_file="./cppcheck_to.txt"
error_file="./cppcheck_errors_to.txt"

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

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

include_dirs="-I $to_app/platform_inc/ -I $to_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/to_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 multi


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
}
77 changes: 77 additions & 0 deletions fsw/examples/multi/MISSION_to_types.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
/******************************************************************************/
/** \file MISSION_to_types.h
*
* \author Guy de Carufel (Odyssey Space Research), NASA, JSC, ER6
*
* \brief Command and telemetry data strucutres for TO application (Multi)
*
* \par
* This header file contains definitions of command and telemetry data
* structures for TO applications for the Multi 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.
* - Standard command messages are defined in to_cmds.h
* - Default HK Telemetry structure is defined in to_hktlm.h
*
* \par Modification History:
* - 2015-06-02 | Guy de Carufel | Code Started
* - 2015-09-22 | Guy de Carufel | Moved hktlm to to_hktlm.h
*******************************************************************************/
#ifndef _MISSION_TO_TYPES_H_
#define _MISSION_TO_TYPES_H_

#ifdef __cplusplus
extern "C" {
#endif

/*
** Include Files
*/
#include "cfe.h"
#include "../to/fsw/src/to_hktlm.h"

/*
** Defines
*/
#define TO_MAX_IP_STRING_SIZE 16

/* Define enable / disable commands */
typedef struct
{
uint8 ucCmdHeader[CFE_SB_CMD_HDR_SIZE];
char cDestIp[TO_MAX_IP_STRING_SIZE]; /**< Destination IP */
uint16 usDestPort; /**< Destination PORT */
int32 iFileDesc; /**< File Descriptor of Port to use. */
} TO_EnableOutputCmd_t;


typedef struct
{
uint8 ucCmdHeader[CFE_SB_CMD_HDR_SIZE];
} TO_DisableOutputCmd_t;


/*************** Telemetry **************/
typedef struct
{
uint8 ucTlmHeader[CFE_SB_TLM_HDR_SIZE];
} TO_InData_t;

typedef struct
{
uint8 ucTlmHeader[CFE_SB_TLM_HDR_SIZE];
uint32 uiCounter;
} TO_OutData_t;


#ifdef __cplusplus
}
#endif

#endif /* _MISSION_TO_TYPES_H_ */

/*==============================================================================
** End of file MISSION_to_types.h
**============================================================================*/
Loading

0 comments on commit ce50d40

Please sign in to comment.