From 3fe9bd183bc67f76bb312e912c1524a86d2bb9be Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Thu, 4 Apr 2024 13:38:01 +0000 Subject: broadband-modem-hso: don't assume GPS control port always exists --- src/plugins/option/mm-broadband-modem-hso.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/plugins/option/mm-broadband-modem-hso.c b/src/plugins/option/mm-broadband-modem-hso.c index 308991b5..02cea99a 100644 --- a/src/plugins/option/mm-broadband-modem-hso.c +++ b/src/plugins/option/mm-broadband-modem-hso.c @@ -513,9 +513,19 @@ disable_location_gathering (MMIfaceModemLocation *self, } if (stop_gps) { + MMPortSerialAt *gps_control; + /* We enable continuous GPS fixes with AT_OGPS=0 */ + gps_control = mm_base_modem_peek_port_gps_control (MM_BASE_MODEM (self)); + if (!gps_control) { + g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, + "Cannot stop GPS: no control port"); + g_object_unref (task); + return; + } + mm_base_modem_at_command_full (MM_BASE_MODEM (self), - mm_base_modem_peek_port_gps_control (MM_BASE_MODEM (self)), + gps_control, "_OGPS=0", 3, FALSE, @@ -617,9 +627,19 @@ parent_enable_location_gathering_ready (MMIfaceModemLocation *_self, } if (start_gps) { + MMPortSerialAt *gps_control; + /* We enable continuous GPS fixes with AT_OGPS=2 */ + gps_control = mm_base_modem_peek_port_gps_control (MM_BASE_MODEM (self)); + if (!gps_control) { + g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, + "Cannot start GPS: no control port"); + g_object_unref (task); + return; + } + mm_base_modem_at_command_full (MM_BASE_MODEM (self), - mm_base_modem_peek_port_gps_control (MM_BASE_MODEM (self)), + gps_control, "_OGPS=2", 3, FALSE, -- cgit v1.2.3-70-g09d2