Skip to content
CAWilson edited this page Jun 23, 2017 · 1 revision

Ground Station System: Mission Planning and Satellite Tracking software

Overview

CES-GSS is a satellite tracking and mission planning application. It tracks up to three days worth of satellite passes for user defined missions: where a user mission is a group of selected satellite passes each with their own priority for tracking. The system asks the user to select one satellite at a time and give it a priority or leave the priority at default ( neither low nor high priority). Once the user has met the selection criteria, the satellite passes are scheduled using one of three scheduling algorithms. These passes are displayed on the "next passes" table along with the missions currently selected shown on the "missions" table. Each mission may be deleted from within the table which results in the satellites being rescheduled and the new schedule displayed. There is also an output to CSV for the current schedule for use in reporting or use with other software.

Requirements

Python 3.6.0

Microsoft Visual C++ Build Tools (for pyephem)

Erlang (may require Microsoft Redistributable C libraries)

RabbitMQ (for Celery)

Node (for front end)

Libraries Required

Libraries required can be downloaded using the requirements.pip file in the CES-Ground-Station folder using the command:

pip install -r requirements.pip

Additionally the libraries can be installed individually.

Django (1.11) - pip install Django

Django REST (3.6.2) - pip install djangorestframework

CORS (2.0.2) - pip install django-cors-headers

Celery (3.2.1) - pip install django-celery

Requests (2.13.0) - pip install requests

PyEphem (3.7.6.0) - pip install pyephem

Tweepy (3.5.0) - pip install tweepy

PySerial (3.3) - pip install pyserial

Getting Started

From a command line, go to the CES-Ground-Station folder and run the command

CESGSS all

This will open three command line windows. To also open the site use CESGSS all site. The first runs Celery, the asynchronous task manager. The second runs Node, the server which hosts the Angular GUI. And the final one starts the Ground Station Django app (the back end).

To open the terminals individually run:

  1. CESGSS celery for just the Celery Terminal
  2. CESGSS node for just the Node Server
  3. CESGSS django for just the Django Server

Add the -c flag at the end of the command to open the individual server in the currently open command line window.

To view the app in action, open a web browser and go to "http://localhost:8081", or using the batch file, run the CESGSS site command.

Alteratively, each server can be started manually:

  1. Django : python manage.py runserver
  2. Celery: celery -A cesGroundStation worker
  3. Node:
  4. Go to CES-Ground-Station/frontend/client
  5. node server
  6. Webpage: The webpage can be found at localhost:8081

FAQ

1. Celery isn't starting, complains about cookies, but I have installed RabbitMQ and Erlang installed. What do I do?

First check RabbitMQ is actually running. You can do this by starting Task Manager, and click the Services tab.

RabbitMQ works with Erlang, and it validates cookies with Erlang first, sometimes the cookies can be different. Go to the erlang installation folder (probably "C:/Program Files/erl8.3") copy the ".erlang.cookie" file and paste it in your user directory ("C:/Users/Me").

From a command line go to the RabbitMQ installation folder and find the sbin folder ("C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.8\sbin") and run the command:

rabbitmqctl status

If you get something with a lot of curly brackets, RabbitMQ is now working properly.