# 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 environment](#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
./tmtcc.py
```
Run GUI mode
```sh
./tmtcc.py -g
```
# 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 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.
## Installing via PyPI
It is recommended to install `eive-tmtc` itself interactively, which also installs
all required dependencies.
```sh
pip install -e .
```
If you only want to install all dependencies:
```sh
pip install -r requirements.txt
```
## Install interactively
Clone the dependency first inside the `deps` folder
```sh
cd deps
./install_tmtccmd.sh
```
Then you can install `tmtccmd` interactively
```sh
cd tmtccmd
pip install -e .
```
# Run Linter
Can be used to quickly check validity of script. Install `flake8` first
```sh
python3 -m pip install ruff
```
or on Windows
```sh
py -m pip install ruff
```
and then run it
```sh
ruff .
```
# Run Auto-Formatter
This repo is auto-formatted using `black`. Assuming `black` is installed, you can simply run
```sh
black .
```