Skip to content

Commit

Permalink
seperate tracker screen, initial radio support
Browse files Browse the repository at this point in the history
  • Loading branch information
tomvdb committed Apr 26, 2022
1 parent 986b38b commit 7877ec0
Show file tree
Hide file tree
Showing 9 changed files with 598 additions and 133 deletions.
22 changes: 22 additions & 0 deletions app/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,25 @@ class Satellite(db.Model):
def __repr__(self):
return '<Satellite {}>'.format(self.satellite_name)

class SatelliteTransmitter(db.Model):
__tablename__ = 'satellite_transmitter'

transmitter_id = db.Column(db.Integer, primary_key=True)
satellite_norad_id = db.Column(db.BigInteger, nullable=False)
transmitter_description = db.Column(db.Text)
transmitter_alive = db.Column(db.Boolean)
transmitter_type = db.Column(db.Text)
transmitter_uplink_low = db.Column(db.BigInteger)
transmitter_uplink_high = db.Column(db.BigInteger)
transmitter_uplink_mode = db.Column(db.Text)
transmitter_downlink_low = db.Column(db.BigInteger)
transmitter_downlink_high = db.Column(db.BigInteger)
transmitter_downlink_mode = db.Column(db.Text)
transmitter_invert = db.Column(db.Boolean)
transmitter_baud = db.Column(db.BigInteger)
transmitter_citation = db.Column(db.Text)
transmitter_coordination = db.Column(db.Text)
transmitter_coordination_url = db.Column(db.Text)



5 changes: 4 additions & 1 deletion app/routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
@app.route('/index')
def index():

return render_template('index.html', title='Home')
# get available collections
collections = SatelliteCollection.query.all()

return render_template('index.html', title='Home', collections=collections)


34 changes: 32 additions & 2 deletions app/routes_jsapi.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from flask import jsonify
from app import app, db
from app.models import Satellite, SatelliteCollection, SatelliteCollectionAssignmment
from app.models import Satellite, SatelliteCollection, SatelliteCollectionAssignmment,SatelliteTransmitter
from app.forms import CreateCollectionForm, AddSatelliteCollectionForm
from sqlalchemy import and_
from app import config
Expand Down Expand Up @@ -36,6 +36,28 @@ def satellite_data(collection_id):
satObject['title'] = satellite.satellite_tle0
satObject['tle1'] = satellite.satellite_tle1
satObject['tle2'] = satellite.satellite_tle2
satObject['transmitters'] = []

# do we have any transmitters for this satellite ?
transmitterData = SatelliteTransmitter.query.filter_by(satellite_norad_id=satellite.satellite_norad_id).all()

for item in transmitterData:
satObject['transmitters'].append({
'description' : item.transmitter_description,
'type' : item.transmitter_type,
'uplink_low' : item.transmitter_uplink_low,
'uplink_high' : item.transmitter_uplink_high,
'uplink_mode' : item.transmitter_uplink_mode,
'downlink_low' : item.transmitter_downlink_low,
'downlink_high' : item.transmitter_downlink_high,
'downlink_mode' : item.transmitter_downlink_mode,
'invert' : item.transmitter_invert,
'baud' : item.transmitter_baud,
'citation' : item.transmitter_citation,
'coordination' : item.transmitter_coordination,
'coordination_url' : item.transmitter_coordination_url,
})

data['satellites'].append(satObject)

data['success'] = True
Expand All @@ -52,6 +74,14 @@ def tle_api(norad_id):

return jsonify([{}])


'''
@app.route('/browser/transmitter_api/<norad_id>')
def transmitter_api(norad_id):
req = requests.get("https://db.satnogs.org/api/transmitters/?alive=true&format=json&satellite__norad_cat_id=" + norad_id)
if req.status_code == 200:
data = req.json()
return jsonify(data)
return jsonify([{}])
'''
2 changes: 0 additions & 2 deletions app/routes_satellites.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
from app import config
from app.satellite_functions import calc_future_passes, get_satellite_record



@app.route('/view_satellites')
def view_satellites():
satellites = Satellite.query.all()
Expand Down
3 changes: 2 additions & 1 deletion app/static/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@

.small {
font: 10px sans-serif;
}
}

50 changes: 50 additions & 0 deletions app/static/js/radio.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
var radioConnected = false;

function connectRadio()
{
if ( radioConnected == true )
{
return;
}

try {

radio_header.innerHTML = "Radio Control <span class='badge bg-danger'>Connecting</span>";

connectWS("ws://localhost:1880/ws/radio", radioConnectionOpen, radioConnectionClosed, radioConnectionMessageReceived);
}
catch (err) {
console.log("Couldn't connect to radio websocket")
}

}

function radioConnectionOpen(event) {
console.log("Radio Connected");

radio_header.innerHTML = "Radio Control <span class='badge bg-success'>Connected</span>";

radioConnected = true;
$("#radioEnabled").attr("disabled", false);
}

function radioConnectionClosed(event) {
radio_header.innerHTML = "Radio Control <a onClick='connectRadio()'><span class='badge bg-danger'>Disconnected</span></a>";

$("#radioEnabled").attr("disabled", true);

console.log("Radio Disconnected");
radioConnected = false;
}

function radioConnectionMessageReceived(event) {
console.log(JSON.parse(event.data))

radioData = JSON.parse(event.data)
/*
azActual = rotatorData.az;
elActual = rotatorData.el;
rot_actual_el.innerHTML = rotatorData.el;
rot_actual_az.innerHTML = rotatorData.az;
*/
}
Loading

0 comments on commit 7877ec0

Please sign in to comment.