horus-gui/README.md

108 wiersze
3.5 KiB
Markdown
Czysty Zwykły widok Historia

2020-06-22 12:10:39 +00:00
# Project Horus Telemetry Decoder
Telemetry demodulator for the following modems in use by Project Horus
2020-07-11 08:29:46 +00:00
* Horus Binary Modes (4FSK)
2020-06-22 12:10:39 +00:00
* v1 - Legacy 22 byte mode, Golay FEC
2020-06-29 11:42:41 +00:00
* v2 - 16/32-byte modes, LDPC FEC (Still in development)
2020-07-11 08:29:46 +00:00
* RTTY (7N2 and 8N2, standard UKHAS sentences with CRC16 only)
This project serves as a graphical front-end to [horusdemodlib](https://github.com/projecthorus/horusdemodlib) a Python/C library of telemetry demodulators based off the [codec2](https://github.com/drowe67/codec2) FSK modem. The core modem used in this library is very well tested, and performs in line with incoherent FSK demodulator theory. The RTTY decoder is approximately [2dB better](http://www.rowetel.com/?p=5906) than dl-fldigi, and the Horus Binary v1 modem approximately 7 dB better again. Once finished, the Horus Binary v2 modes should provide an additional few dB more performance yet again.
2020-06-22 12:10:39 +00:00
2020-07-10 12:38:00 +00:00
Written by:
* GUI & Glue Code - Mark Jessop <vk5qi@rfhead.net>
* FSK Modem - David Rowe <david@rowetel.com>
2020-07-11 08:29:46 +00:00
* FSK Modem Wrapper - XSSFox
2020-07-10 12:38:00 +00:00
* LDPC Codes - Bill Cowley
2020-06-22 11:36:55 +00:00
2020-06-22 12:10:39 +00:00
**Note: This is very much a work in progress!**
2020-07-10 08:24:35 +00:00
![Screenshot](doc/horusgui_screenshot.png)
2020-06-22 11:36:55 +00:00
2020-06-22 11:48:08 +00:00
### TODO LIST - Important Stuff
2020-07-10 12:38:00 +00:00
* Better build system via Travis (@xssfox)
2020-06-22 11:48:08 +00:00
### TODO LIST - Extras
* UDP input from GQRX
2020-07-05 08:02:05 +00:00
* Waterfall Display (? Need something GPU accelerated if possible...)
2020-07-10 12:38:00 +00:00
* rotctld rotator control?
2020-06-22 11:36:55 +00:00
## Usage
2020-07-10 12:38:00 +00:00
### Build HorusDemodLib
2020-06-29 11:53:26 +00:00
```console
$ git clone https://github.com/projecthorus/horusdemodlib.git
$ cd horusdemodlib && mkdir build && cd build
2020-06-29 11:53:26 +00:00
$ cmake ..
$ make
$ make install
2020-06-29 11:53:26 +00:00
```
2020-07-06 09:12:03 +00:00
### Grab this Repo
2020-06-22 11:36:55 +00:00
```console
$ git clone https://github.com/projecthorus/horus-gui.git
$ cd horus-gui
2020-07-06 09:12:03 +00:00
```
### (Optional) Create a Virtual Environment
Create a virtual environment and install dependencies.
```console
2020-06-22 11:36:55 +00:00
$ python3 -m venv venv
$ source venv/bin/activate
(venv) $ pip install pip -U (Optional - this updates pip)
```
2020-07-06 09:12:03 +00:00
### Install Python Dependencies
```console
$ pip install -r requirements.txt
```
NOTE: If you get errors relating to pyaudio when trying to install into a venv, make sure that portaudio is installed (`libportaudio-dev` under Linux distros, or `portaudio` under Macports), and then install pyaudio pointing to the portaudio lib by running:
```
(Linux) $ pip install --global-option='build_ext' --global-option='-I/usr/include' --global-option='-L/usr/lib' pyaudio
(OSX) $ pip install --global-option='build_ext' --global-option='-I/opt/local/include' --global-option='-L/opt/local/lib' pyaudio
```
You should then be able to re-run the install requirements command above.
2020-06-22 11:36:55 +00:00
### Install Package
Install package in a editable state. This type of installation allows a
developer to make changes to the source code while retaining the installation
entry points so it can be used like a normal install.
```console
(venv) $ pip install -e .
```
### Run
```console
$ python -m horusgui.gui
2020-07-10 12:38:00 +00:00
```
Or run the helper startup script:
```console
$ python horus-gui.py
2020-07-11 08:29:46 +00:00
```
## Updating
As this repository is under regular development, you will likely need to update frequently.
This means updating both this repository, and horusdemodlib, on which it depends.
```console
$ cd ~/horusdemodlib
$ git pull
$ rm -rf build
$ cd horusdemodlib && mkdir build && cd build
$ cmake ..
$ make
$ make install
$ cd ~/horus-gui
# git pull
$ . venv/bin/activate (if using a venv)
$ pip install horusdemodlib --upgrade
```
You should then be OK to run horusgui. Configuration settings will be reset when the version number of horus-gui is incremented, until I settle on on a configuration parameter set.