raw_parser: Added ukhas format encoder

master
Richard Meadows 2015-08-01 18:23:05 +01:00
rodzic 61a17fa643
commit 078bc30736
2 zmienionych plików z 37 dodań i 0 usunięć

Wyświetl plik

@ -12,6 +12,7 @@ else will be ignored.
import re
import sys
from ukhas_format import *
from datetime import datetime
from math import log, exp
@ -135,4 +136,5 @@ with open(file_name, 'r') as data_file:
# Print data
for datum in data:
ukhas_format(datum)
print "%s: %s, %s" % ((str(datum['time']),) + datum['coords'][:2])

Wyświetl plik

@ -0,0 +1,35 @@
"""
Formats ukhas telemetry strings for the pico tracker.
Expects to be passed a dict, with keys 'time', 'coords',
'battery', 'solar', 'temperature' and 'satellites'.
"""
import crc16
from datetime import datetime
"""
Builds ukhas string from supplied datum
"""
def ukhas_format(datum):
callsign = "UBSEDSX"
# Time
time_str = "{:02}:{:02}:{:02}".format(
datum['time'].hour, datum['time'].minute, datum['time'].second)
# Location
coords = datum['coords']
location_str = "{:.6f},{:.6f},{}".format(
coords[0], coords[1], int(round(coords[2])))
# Everything
ukhas_str = "{},{},{},{},{},{},{},-1".format(
callsign, time_str, location_str, datum['satellites'],
datum['battery'], datum['solar'], datum['temperature']);
# Checksum
checksum = "{:04X}".format(crc16.crc16xmodem(ukhas_str))
return "$${}*{}".format(ukhas_str, checksum)