# TMTC Commander EIVE
This application can be used to test the EIVE On-Board Software. Furthermore, it can
also be used to retrieve all sorts of telemetry data like housekeeping data.
It is recommended to use this application with a virtual environment.
The [virtual environemnt](#venv) chapter describes how to set one up. The [requirements](#reqs)
describes how to install all required packages.
The configuration file can currently be found at `tmtc_conf.json`. It caches settings
like the default communication interface or parameters like the TCP port when using the TCP
communication interface.
# Examples
Assuming you are running in a [virtual environment](#venv) and all [package requirements](#reqs)
were installed properly.
Run CLI mode
```sh
./tmtccli.py
```
Run GUI mode
```sh
./tmtcgui.py
```
# Set up virtual environment
## Linux
1. Create virtual environment
```sh
python3 -m venv venv
```
2. Activate virtual environment
```sh
. venv/bin/activate
```
## Windows
1. Create virtual environment
```sh
py -m venv .
```
2. Activate virtual environment
```sh
venv\Scripts\activate.bat
```
# Install requirements
There are two ways to install the requirements. One is to install the primary dependency
`tmtccmd` interactively. This is the recommended way
Assuming you are running in a virtual environment:
1. Install `tmtccmd` for virtual environment. `-e` for interactive installation.
```sh
cd tmtccmd
pip install -e .[gui]
```
2. You can also install the `spacepackets` package locally/interactively
Normally, it will be installed as a `tmtccmd` dependency.
```sh
cd spacepackets
pip install -e .
```
Alternatively you can also install the packages from PyPI completely, but the risk of
incompatibilities will be high there
```sh
pip install -r requirements.txt
```
# Run Linter
Can be used to quickly check validity of script. Install `flake8` first
```sh
python3 -m pip install flake8
```
or on Windows
```sh
py -m pip install flake8
```
and then run the `lint.py` script
```sh
./lint.py
```
# Run Auto-Formatter
This repo is auto-formatted using `black`. Assuming `black` is installed, you can simply run
```sh
black .
```