at: ensure we don't skip steps

After the modem send "RDY", other messages are received. With the
current implementation, this causes eg25-manager to mark the modem as
configured before it is even picked up by ModemManager. Adding an
additional status check helps preventing this issue.
This commit is contained in:
Arnaud Ferraris
2021-10-06 00:56:39 +02:00
parent f03f086fcb
commit cfd7ebf156

View File

@@ -129,12 +129,14 @@ gboolean at_send_command(struct EG25Manager *manager)
if (manager->modem_state < EG25_STATE_CONFIGURED) {
if (manager->modem_iface == MODEM_IFACE_MODEMMANAGER) {
#ifdef HAVE_MMGLIB
MMModemState modem_state = mm_modem_get_state(manager->mm_modem);
if (manager->modem_state == EG25_STATE_ACQUIRED) {
MMModemState modem_state = mm_modem_get_state(manager->mm_modem);
if (manager->mm_modem && modem_state >= MM_MODEM_STATE_REGISTERED)
modem_update_state(manager, modem_state);
else
manager->modem_state = EG25_STATE_CONFIGURED;
if (manager->mm_modem && modem_state >= MM_MODEM_STATE_REGISTERED)
modem_update_state(manager, modem_state);
else
manager->modem_state = EG25_STATE_CONFIGURED;
}
#endif
} else {
manager->modem_state = EG25_STATE_CONFIGURED;