Skip to content

Commit

Permalink
Merge pull request #64 from nasa/integration-candidate
Browse files Browse the repository at this point in the history
Integration Candidate 2020-03-18
  • Loading branch information
astrogeco authored Mar 27, 2020
2 parents c982339 + 49a9d0f commit bfe112a
Show file tree
Hide file tree
Showing 4 changed files with 140 additions and 136 deletions.
121 changes: 61 additions & 60 deletions Guide-GroundSystem.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
cFS Ground System Version 2.1.4
cFS Ground System Version 2.1.5

cFS Ground System Info:

The GroundSystem directory contains the new Ground System project for the cFS, that incorporates a main window to launch commands and telemetry systems, and other utilities like FDL/FUL and FT managers to send and receive files. The main window runs alongside the Routing Service (RoutingService.py). The Routing Service handles all incoming data and publishes(PUB-SUB) the data to specific zeroMQ channels, so that the different ground system utilities can receive(subscribe) only the desired data.

This ground system supports commanding and receiving telemetry from multiple spacecrafts using UDP.

The Ground System contains a main window that lets you launch the different utilities. To start receiving data from the cFS, you need to enable telemetry first. To enable telemetry, click the "Start Command System" button from the main window, then from the Command System Main Page click the "Enable Tlm" button (you will need to enter the target/destination IP address as an input to this command).
The Ground System contains a main window that lets you launch the different utilities. To start receiving data from the cFS, you need to enable telemetry first. To enable telemetry, click the "Start Command System" button from the main window, then from the Command System Main Page click the "Enable Tlm" button (you will need to enter the target/destination IP address as an input to this command).

Note: The Main Window needs to be opened at all times so that the telemetry messages can be forwarded to the Telemetry System.

Expand All @@ -19,70 +19,28 @@ Future enhancements:

Before launching the Ground System make sure that:
-> PyQt4 is installed.
-> PyZMQ is installed.
-> PyZMQ is installed.
-> cmdUtil is compiled.


Installing and running cFS Ground System on Mac:
Install using Homebrew on Mac (http://brew.sh/)
$ brew install pyqt
$ brew install zeromq
$ ( cd Subsystems/cmdUtil/ && make )
$ python GroundSystem.py

Installing and running cFS Ground System on Ubuntu:
$ sudo apt-get install python-qt4 python-qt4-dev
$ sudo apt-get install python-zmq
$ sudo apt-get install python3-pyqt4
$ sudo apt-get install python3-zmq
$ sudo apt-get install libcanberra-gtk-module
$ ( cd Subsystems/cmdUtil/ && make )
$ python GroundSystem.py
$ python3 GroundSystem.py


Installing and running cFS Ground System on CentOS 6:
$ su
$ <type password>
$ yum -y update

#### Install pip and python-development ####
# If you are on a 64-bit CentOS / RHEL based system:
$ wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ rpm -ivh epel-release-6-8.noarch.rpm

# If you are on a 32-bit CentOS / RHEL based system:
$ wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
$ rpm -ivh epel-release-6-8.noarch.rpm

$ yum install -y python-pip
$ yum install -y python-devel

#### Install zeroMQ and pyZMQ messaging system ####
$ yum install -y uuid-devel
$ yum install -y pkgconfig
$ yum install -y libtool
$ yum install -y gcc-c++
$ wget http://download.zeromq.org/zeromq-4.0.5.tar.gz
$ tar xzvf zeromq-4.0.5.tar.gz
$ cd zeromq-4.0.5
$ ./configure
$ make
$ make install
$ echo /usr/local/lib > /etc/ld.so.conf.d/local.conf
$ ldconfig
$ pip install pyzmq

#### Install pyQT4 ####
$ yum install -y PyQt4
$ yum install -y qt qt-demos qt-designer qt4 qt4-designer


### Running Ground System ###
$ python GroundSystem.py
The historically included instructions for running on Mac or CentOS are inluded at the bottom of this document for referance.
Please note that instructions have not been maintained.
Welcoming instruction contributions if any of these are your platform of choice.


##############################################################################

ADDING NEW FLIGHT SOFTWARE APPLICATION TO GROUND SYSTEM COMMAND GUI

This section was made to help developers who are adding core Flight Software (cFS) Applications to the Python-based Ground System that comes with this cFS distribution.
This section was made to help developers who are adding core Flight Software (cFS) Applications to the Python-based Ground System that comes with this cFS distribution.

The CHeaderParser.py program that should be found in: GroundSystem/Subsystems/cmdGui is an interactive, command line based program to help walk developers through the process of adding custom cFS applications to the Ground System. Along with CHeaderParser.py is a configuration file that CHeaderParser uses to find the proper header files for your "new" cFS application. This file is named 'CHeaderParser-hdr-paths.txt', and should be placed in the same directory as CHeaderParser.py.

Expand All @@ -97,14 +55,14 @@ cFE-6.4.x-OSS-release/cfe/tools/cFS-GroundSystem/Subsystems/cmdGui/command-pages
Steps to adding application commands to the Ground System:

1) Edit 'CHeaderParser-hdr-paths.txt'
1.1) Locate any header files that contain command code definitions or command structure definitions.
1.1) Locate any header files that contain command code definitions or command structure definitions.
These files typically end in '*app_msg.h' or '*app_msgdefs.h' but could be named anything.
1.2) Add each one of the paths to a new line in CHeaderParser-hdr-paths.txt
1.2) Add each one of the paths to a new line in CHeaderParser-hdr-paths.txt
1.3) Comment out any paths/lines that aren't needed with '#' (at the beginning of the line)

2) Run CHeaderParser
2.1) Call CHeaderParser using python
~$ python CHeaderParser.py
~$ python3 CHeaderParser.py
2.2) The program will prompt you to enter a filename for the application.
This will create a pickle file for your application named CommandFiles/<user_defined_name>. Notice that this file will be stored in the CommandFiles directory. This same filename will be used in command-pages.txt later.
2.3) Type 'yes' if any commands in your application have parameters
Expand All @@ -123,7 +81,7 @@ Steps to adding application commands to the Ground System:
3.6) Column 6 - Command Send Address (default 127.0.0.1)
3.7) Column 7 - Command Send Port (default 1234)

Notes:
Notes:
- USE ONLY SPACES, NO TABS (Remember, it's Python.)
- Don't leave any empty lines in command-pages.txt, this could cause errors when running GroundSystem.py and
CommandSystem.py
Expand All @@ -145,9 +103,9 @@ Issue: Cannot Send Command, receiving the following error:
> Traceback (most recent call last):
> File "Parameter.py", line 100, in ProcessSendButton
> subprocess.Popen(cmd_args, stdout=subprocess.PIPE)
> File "/usr/lib/python2.6/subprocess.py", line 642, in __init__
> File "/usr/lib/python3.7/subprocess.py", line 642, in __init__
> errread, errwrite)
> File "/usr/lib/python2.6/subprocess.py", line 1234, in _execute_child
> File "/usr/lib/python3.7/subprocess.py", line 1234, in _execute_child
> raise child_exception
> OSError: [Errno 8] Exec format error

Expand All @@ -157,12 +115,55 @@ To fix this problem, use the Makefile inside of the cmdUtil directory to compile
$ cd Subsystems/cmdUtil
$ make
$ cd ../..
$ python GroundSystem.py
$ python3 GroundSystem.py

-----------------------------------------------------------------------------

Historically included instructions for running on Mac or CentOS:

Installing and running cFS Ground System on Mac:
Install using Homebrew on Mac (http://brew.sh/)
$ brew install pyqt
$ brew install zeromq
$ ( cd Subsystems/cmdUtil/ && make )
$ python GroundSystem.py

Installing and running cFS Ground System on CentOS 6:
$ su
$ <type password>
$ yum -y update

#### Install pip and python-development ####
# If you are on a 64-bit CentOS / RHEL based system:
$ wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ rpm -ivh epel-release-6-8.noarch.rpm

# If you are on a 32-bit CentOS / RHEL based system:
$ wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
$ rpm -ivh epel-release-6-8.noarch.rpm

$ yum install -y python-pip
$ yum install -y python-devel

#### Install zeroMQ and pyZMQ messaging system ####
$ yum install -y uuid-devel
$ yum install -y pkgconfig
$ yum install -y libtool
$ yum install -y gcc-c++
$ wget http://download.zeromq.org/zeromq-4.0.5.tar.gz
$ tar xzvf zeromq-4.0.5.tar.gz
$ cd zeromq-4.0.5
$ ./configure
$ make
$ make install
$ echo /usr/local/lib > /etc/ld.so.conf.d/local.conf
$ ldconfig
$ pip install pyzmq

#### Install pyQT4 ####
$ yum install -y PyQt4
$ yum install -y qt qt-demos qt-designer qt4 qt4-designer


### Running Ground System ###
$ python GroundSystem.py
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,17 @@ See Guide-GroundSystem.txt for more information.

## Version Notes

- 2.1.5: DEVELOPMENT
- Updated build instructions for Python 3
- See https://github.com/nasa/cFS-GroundSystem/pull/64
- 2.1.4: DEVELOPMENT
- Finish conversion to python 3
- cmdutil now accepts --word as alias to --long
- See https://github.com/nasa/cFS-GroundSystem/pull/54
- 2.1.3: DEVELOPMENT
- Minor updates to work with python 3
- No longer compatible with python 2.7
- Note issue #50 is to update the related documentation
- Note issue #50 is to update the related documentation
- See https://github.com/nasa/cFS-GroundSystem/pull/47
- 2.1.2: DEVELOPMENT
- Minor updates (see https://github.com/nasa/cFS-GroundSystem/pull/39)
Expand All @@ -36,4 +39,3 @@ As a lab application, extensive testing is not performed prior to release and on
For best results, submit issues:questions or issues:help wanted requests at https://github.com/nasa/cFS.

Official cFS page: http://cfs.gsfc.nasa.gov

4 changes: 2 additions & 2 deletions Subsystems/cmdGui/CHeaderParser-hdr-paths.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@
# This program does support relative paths but if the program cannot
# find your header files, try using absolute paths.
#
#../../../../../apps/to_lab/fsw/src/to_lab_msg.h
#../../../../../apps/ci_lab/fsw/src/ci_lab_msg.h
#../../../../apps/to_lab/fsw/src/to_lab_msg.h
#../../../../apps/ci_lab/fsw/src/ci_lab_msg.h
Loading

0 comments on commit bfe112a

Please sign in to comment.