plugins/quectel/mm-shared-quectel: use QGMR to set version

Quectel modems report only their major firmware version through
AT+GMR, use AT+QGMR instead to report the full firmware version.
This commit is contained in:
Dylan Van Assche
2022-01-11 08:42:53 +00:00
committed by Aleksander Morgado
parent 3f76b3b7d1
commit 07d7f596d3
+29 -2
View File
@@ -143,6 +143,26 @@ mm_shared_quectel_firmware_load_update_settings_finish (MMIfaceModemFirmware *s
return g_task_propagate_pointer (G_TASK (res), error);
}
static void
quectel_get_firmware_version_ready (MMBaseModem *modem,
GAsyncResult *res,
GTask *task)
{
MMFirmwareUpdateSettings *update_settings;
const gchar *version;
update_settings = g_task_get_task_data (task);
/* Set full firmware version */
version = mm_base_modem_at_command_finish (modem, res, NULL);
if (version)
mm_firmware_update_settings_set_version (update_settings, version);
g_task_return_pointer (task, update_settings, g_object_unref);
g_object_unref (task);
g_object_ref(update_settings);
}
static void
qfastboot_test_ready (MMBaseModem *self,
GAsyncResult *res,
@@ -150,6 +170,7 @@ qfastboot_test_ready (MMBaseModem *self,
{
MMFirmwareUpdateSettings *update_settings;
/* Set update method */
if (!mm_base_modem_at_command_finish (self, res, NULL))
update_settings = mm_firmware_update_settings_new (MM_MODEM_FIRMWARE_UPDATE_METHOD_NONE);
else {
@@ -157,8 +178,14 @@ qfastboot_test_ready (MMBaseModem *self,
mm_firmware_update_settings_set_fastboot_at (update_settings, "AT+QFASTBOOT");
}
g_task_return_pointer (task, update_settings, g_object_unref);
g_object_unref (task);
/* Get full firmware version */
g_task_set_task_data (task, update_settings, g_object_unref);
mm_base_modem_at_command (MM_BASE_MODEM (self),
"+QGMR?",
3,
FALSE,
(GAsyncReadyCallback) quectel_get_firmware_version_ready,
task);
}
void