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: # 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())} # {'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 = {}
output['lat'] = data['lat'] output['lat'] = float(data['lat'])
output['lon'] = data['lon'] output['lon'] = float(data['lon'])
output['alt'] = data['alt'] output['alt'] = float(data['alt'])
output['callsign'] = "Payload" output['callsign'] = "Payload"
output['time_dt'] = data['time'] output['time_dt'] = data['time']
@ -602,9 +602,9 @@ def udp_listener_summary_callback(data):
# Extract the fields we need. # Extract the fields we need.
# Convert to something generic we can pass onwards. # Convert to something generic we can pass onwards.
output = {} output = {}
output['lat'] = data['latitude'] output['lat'] = float(data['latitude'])
output['lon'] = data['longitude'] output['lon'] = float(data['longitude'])
output['alt'] = data['altitude'] output['alt'] = float(data['altitude'])
output['callsign'] = data['callsign'] output['callsign'] = data['callsign']
logging.info("Horus UDP Data: %.5f, %.5f, %.1f" % (output['lat'], output['lon'], output['alt'])) 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 # 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. # so we can add support for other chase car position inputs.
global car_track, habitat_uploader, bearing_store global car_track, habitat_uploader, bearing_store
_lat = data['latitude'] _lat = float(data['latitude'])
_lon = data['longitude'] _lon = float(data['longitude'])
_alt = data['altitude'] _alt = float(data['altitude'])
_comment = "CAR" _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)) 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)) 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 """ """ 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: with open(filename, 'r') as _log_file:
@ -173,6 +173,9 @@ def playback_json(filename, udp_port=55672, speed=1.0):
# Running timer # Running timer
_run_time = (_new_time - _first_time).total_seconds() _run_time = (_new_time - _first_time).total_seconds()
if _run_time < start_time:
continue
_time_min = int(_run_time)//60 _time_min = int(_run_time)//60
_time_sec = _run_time%60.0 _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': if _log_data['log_type'] == 'CAR POSITION':
send_car_position(_log_data, udp_port) send_car_position(_log_data, udp_port)
print("%02d:%.2f - Car Position" % (_time_min, _time_sec)) print("%02d:%.2f - Car Position" % (_time_min, _time_sec))
elif _log_data['log_type'] == 'BEARING': elif _log_data['log_type'] == 'BEARING':
send_bearing(_log_data, udp_port) send_bearing(_log_data, udp_port)
@ -208,6 +210,7 @@ if __name__ == '__main__':
filename = "" filename = ""
speed = 1.0 speed = 1.0
start_time = 0
hostname = 'localhost' hostname = 'localhost'
udp_port = 55672 udp_port = 55672
@ -216,6 +219,10 @@ if __name__ == '__main__':
elif len(sys.argv) == 3: elif len(sys.argv) == 3:
filename = sys.argv[1] filename = sys.argv[1]
speed = float(sys.argv[2]) 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)