Cast all incoming lat/lon/alt data to float before processing.

pull/12/head
Mark Jessop 2019-09-05 18:27:59 +09:30
rodzic 37bed6b70e
commit 210b5870a5
2 zmienionych plików z 20 dodań i 13 usunięć

Wyświetl plik

@ -573,9 +573,9 @@ def ozi_listener_callback(data):
# OziMux message contains:
# {'lat': -34.87915, 'comment': 'Telemetry Data', 'alt': 26493.0, 'lon': 139.11883, 'time': datetime.datetime(2018, 7, 16, 10, 55, 49, tzinfo=tzutc())}
output = {}
output['lat'] = data['lat']
output['lon'] = data['lon']
output['alt'] = data['alt']
output['lat'] = float(data['lat'])
output['lon'] = float(data['lon'])
output['alt'] = float(data['alt'])
output['callsign'] = "Payload"
output['time_dt'] = data['time']
@ -602,9 +602,9 @@ def udp_listener_summary_callback(data):
# Extract the fields we need.
# Convert to something generic we can pass onwards.
output = {}
output['lat'] = data['latitude']
output['lon'] = data['longitude']
output['alt'] = data['altitude']
output['lat'] = float(data['latitude'])
output['lon'] = float(data['longitude'])
output['alt'] = float(data['altitude'])
output['callsign'] = data['callsign']
logging.info("Horus UDP Data: %.5f, %.5f, %.1f" % (output['lat'], output['lon'], output['alt']))
@ -635,11 +635,11 @@ def udp_listener_car_callback(data):
# TODO: Make a generic car position function, and have this function pass data into it
# so we can add support for other chase car position inputs.
global car_track, habitat_uploader, bearing_store
_lat = data['latitude']
_lon = data['longitude']
_alt = data['altitude']
_lat = float(data['latitude'])
_lon = float(data['longitude'])
_alt = float(data['altitude'])
_comment = "CAR"
_time_dt = pytz.utc.localize(datetime.utcnow())#datetime.utcnow()
_time_dt = pytz.utc.localize(datetime.utcnow())
logging.debug("Car Position: %.5f, %.5f" % (_lat, _lon))

Wyświetl plik

@ -147,7 +147,7 @@ def send_balloon_telemetry(json_data, udp_port=55672):
s.sendto(json.dumps(packet), ('127.0.0.1', udp_port))
def playback_json(filename, udp_port=55672, speed=1.0):
def playback_json(filename, udp_port=55672, speed=1.0, start_time = 0):
""" Read in a JSON log file and play it back in real-time, or with a speed factor """
with open(filename, 'r') as _log_file:
@ -173,6 +173,9 @@ def playback_json(filename, udp_port=55672, speed=1.0):
# Running timer
_run_time = (_new_time - _first_time).total_seconds()
if _run_time < start_time:
continue
_time_min = int(_run_time)//60
_time_sec = _run_time%60.0
@ -181,7 +184,6 @@ def playback_json(filename, udp_port=55672, speed=1.0):
if _log_data['log_type'] == 'CAR POSITION':
send_car_position(_log_data, udp_port)
print("%02d:%.2f - Car Position" % (_time_min, _time_sec))
elif _log_data['log_type'] == 'BEARING':
send_bearing(_log_data, udp_port)
@ -208,6 +210,7 @@ if __name__ == '__main__':
filename = ""
speed = 1.0
start_time = 0
hostname = 'localhost'
udp_port = 55672
@ -216,6 +219,10 @@ if __name__ == '__main__':
elif len(sys.argv) == 3:
filename = sys.argv[1]
speed = float(sys.argv[2])
elif len(sys.argv) == 4:
filename = sys.argv[1]
speed = float(sys.argv[2])
start_time = float(sys.argv[3])*60
playback_json(filename, udp_port, speed)
playback_json(filename, udp_port, speed, start_time)