A web-based remote control for your HAM radio RIG, in python, html5 and javascript.
Goals:
- display the rig freqency, mode, etc.
- display everything
- control everything less PTT
- 2-way audio streams
- control PTT
Note that part of 1. is that I own transverters and this code displays the input/output freq. of the transverter.
So further goals:
- Control transverter off-set
- Select a transverter
- Top: The transverter frequency: click the MHz part to select a different offset
- vfo: The current VFO, click to switch VFO
- split: split mode: clcik to switch the split mode on, text becomes green when in split mode
- HI SWR: Hi SWR indication, text becomes red when teh TRX replorts a high SWR
- centered: green when in FM and the frequencies match
- usb: current modulation, click to get a drop-down to select a mode
- Green dot: Squelsh is open, will turn red when transmitting, greq when the squelsh is closed in receive mode
- Bottom: the real frequency the rig is tuned to
Code is in alpha state. I've been able to display the freq. on the rig on the website, but nothing more has been tested.
install:
- nginx
- uwsgi
- uwsgi-python3
- python3
- python3-flask
- python3-redis
- python3-serial
- redis-server
or whatever these packages are called on your favourite OS/Distro. Be sure to have something fairly recent. Debian stable won't do, testing will. Most notably you want a recent version of flask (0.12) and redis (3.2.6 or 'better'). Of course nobody forces you to user nginx and uwsgi, but this is what I use and works for me.
I just started woring in /var/www/html and /var/www/wrr, if you like other paths better, feel free to adjust the nginx and uwsgi configs as you see fit.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
location = /wrr { rewrite ^ /wrr/; }
location /wrr {
try_files $uri @wrr;
# proxy_set_header Connection '';
# proxy_http_version 1.1;
# chunked_transfer_encoding off;
# proxy_buffering off;
# proxy_cache off;
}
location @wrr {
include uwsgi_params;
uwsgi_pass unix:/tmp/wrr.sock;
}
}
[uwsgi]
uid = www-data
gid = www-data
socket = /tmp/wrr.sock
plugins = python3
mount = /wrr=wrr.py
callable = app
chdir = /var/www/wrr
touch-reload = /var/www/wrr/touch
manage-script-name