diff --git a/pkgs/qmi-nmea/qmi-nmea.py b/pkgs/qmi-nmea/qmi-nmea.py index 46e3a21..843af7b 100644 --- a/pkgs/qmi-nmea/qmi-nmea.py +++ b/pkgs/qmi-nmea/qmi-nmea.py @@ -44,20 +44,14 @@ def release_client_ready(dev,result,user_data=None): def release_client(client): device.release_client(client, Qmi.DeviceReleaseClientFlags.RELEASE_CID, 10, None, release_client_ready, None) - -def on_operation_mode(client, output, task): - print("on operation mode ", client, output, task) - print(output.get_operation_mode()) - def get_operation_mode_ready(client, result, user_data=None): try: output = client.get_operation_mode_finish(result) - # should be None for no error - print("operation mode result", output.get_result()) - client.connect("get-operation-mode", on_operation_mode) + if output.get_result() != None: + die(sys.stderr.write("unexpected result from get_operation_mode:", output.get_result())) except GLib.GError as error: - sys.stderr.write("error: couldn't get operation mode: %s\n" % error.message) + die(sys.stderr.write("error: couldn't get operation mode: %s\n" % error.message)) def on_gnss_data(client, output, user_data=None): sys.stdout.write(output.get_nmea_string()) @@ -65,24 +59,24 @@ def on_gnss_data(client, output, user_data=None): def register_events_ready(client, result, user_data=None): try: output = client.register_events_finish(result) - print("output", output.get_result()) + if output.get_result() != None: + die(sys.stderr.write("unexpected result from register_events:", output.get_result())) + client.connect("nmea", on_gnss_data) except GLib.GError as error: - sys.stderr.write("error: couldn't register events: %s\n" % error.message) + die(sys.stderr.write("error: couldn't register events: %s\n" % error.message)) def start_streaming_ready(client, result, user_data=None): - print("streaming ready", client, result) try: output = client.start_finish(result) if output.get_result() == None: events = Qmi.MessageLocRegisterEventsInput() events.set_event_registration_mask(Qmi.LocEventRegistrationFlag.NMEA) - print("events, dear boy", events) client.register_events(events, 10, None, register_events_ready, None) except GLib.GError as error: - sys.stderr.write("error: couldn't start: %s\n" % error.message) + die(sys.stderr.write("error: couldn't start: %s\n" % error.message)) def start_streaming(client): fix_type = Qmi.LocFixRecurrenceType.PERIODIC_FIXES @@ -95,7 +89,7 @@ def start_streaming(client): def on_get_operation_mode(client, output): - print("operation mode indication ", output.get_operation_mode()) + print("operation mode indication ", output.get_operation_mode(), file=sys.stderr) start_streaming(client) def allocate_client_ready(dev,result,user_data=None): @@ -105,7 +99,6 @@ def allocate_client_ready(dev,result,user_data=None): sys.stderr.write("error: couldn't allocate QMI client: %s\n" % error.message) device_close() return - print("client id ", client.get_cid()) client.connect("get-operation-mode", on_get_operation_mode) client.get_operation_mode(None, 10, None, get_operation_mode_ready, None) @@ -151,7 +144,5 @@ if __name__ == "__main__": GLib.unix_signal_add(GLib.PRIORITY_HIGH, signal.SIGTERM, signal_handler, None) try: main_loop.run() - except TypeError: - print(traceback.format_exc()) except KeyboardInterrupt: pass