diff options
Diffstat (limited to 'tools/mmd/tracker.wsgi')
-rw-r--r-- | tools/mmd/tracker.wsgi | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/tools/mmd/tracker.wsgi b/tools/mmd/tracker.wsgi new file mode 100644 index 0000000..cd64971 --- /dev/null +++ b/tools/mmd/tracker.wsgi @@ -0,0 +1,106 @@ +#!/usr/bin/env python + +from cgi import escape +from urlparse import parse_qs + +def application (environ, response): + """ + beginning of WSGI/python application for + MURSAT1 Tracker + """ + + body = ''' +<!doctype html> +<html> +<head> + <meta charset="utf-8" /> + <title>MURSAT1 tracker</title> + <link rel="stylesheet" type="text/css" href="http://hofos.at/mmd/static/mmd.css" /> + <script src="http://www.openlayers.org/api/OpenLayers.js"></script> + <script src="static/predictlib.js" type="text/javascript"></script> + <script src="static/tle.js" type="text/javascript"></script> + <script src="static/orbtrak.js" type="text/javascript"></script> + <script type="text/javascript"> + function load() + {{ + Orb.startOSMTracking(90, {longitude}, {latitude}, {altitude}, '{name}'); + }} + </script> +</head> +<body onload="load ()"> + <div class="groundstation"> + <span id="gsName"></span>, + Lon: + <span id="gsLongitude"></span>, + Lat: + <span id="gsLatitude"></span>, + Alt: + <span id="gsAltitude"></span> + </div> + <div id="osm"></div> + <table class="current"> + <tr> + <th class="telemetry">Longitude</th> + <th class="telemetry">Latitude</th> + <th class="telemetry">Azimuth</th> + <th class="telemetry">Elevation</th> + <th class="telemetry">Altitude</th> + </tr> + <tr> + <td class="telemetry" id="longitude"> + </td> + <td class="telemetry" id="latitude"> + </td> + <td class="telemetry" id="azimuth"> + </td> + <td class="telemetry" id="elevation"> + </td> + <td class="telemetry" id="altitude"> + </td> + </tr> + </table> + <div class="telemetry">Set refresh rate to <span> + <select class="telemetry" name="refresh" id="refresh"> + <option value="100">0.1</option> + <option value="500">0.5</option> + <option value="1000">1.0</option> + <option value="2000">2.0</option> + <option value="5000" selected="selected">5.0</option> + </select> seconds</span> + </div> + <div class="telemetry"> + <input class="telemetry" type="submit" value="update" id="setPreviewMinutes" onClick="Orb.createSatelliteTrack ()" /> + preview for the next <input class="telemetry" type="text" name="previewMinutes" id="previewMinutes" value="30" size="5" /> + minutes + </div> + <pre id="debug"></pre> +</body> +''' + + qs = parse_qs (environ['QUERY_STRING'], True) + if qs.has_key ('longitude') and qs.has_key ('latitude') and qs.has_key ('altitude'): + query = { + 'longitude': escape (qs.get ('longitude')[0]), + 'latitude': escape (qs.get ('latitude')[0]), + 'altitude': escape (qs.get ('altitude')[0]) + } + if qs.has_key ('name'): + query ['name'] = escape (qs.get ('name')[0]) + else: + query ['name'] = 'unknown set' + else: + query = { + 'longitude': 15.44226, + 'latitude': 47.06576, + 'altitude': 376, + 'name': 'Graz' + } + + body = body.format (**query) + headers = ([('Content-Type', 'text/html'), ('Content-Length', str (len (body)))]) + response ('200 OK', headers) + + return [body] + +# vim: tw=0 ts=2 expandtab +# EOF |