From e7e855049a9d9e0b4933f085a9582e89fc8a6df2 Mon Sep 17 00:00:00 2001 From: Pavel Valach Date: Tue, 2 Feb 2021 11:39:40 +0100 Subject: [PATCH] sms_functions: added unlock_and_enable_modem --- sms_functions.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/sms_functions.py b/sms_functions.py index ab8fb10..56af08b 100644 --- a/sms_functions.py +++ b/sms_functions.py @@ -68,12 +68,8 @@ def unlock_sim(modem): remaining_attempts = modem.UnlockRetries raise SIMError('Failed to unlock PIN, remaining attempts: {}'.format(remaining_attempts)) from exc +def unlock_and_enable_modem(): -def send_sms(recipients, smsstring): - - # Assemble SMS - logger.info("Sending SMS: %s", smsstring) - retries = 0 # Retry the whole block, because once pydbus fetches the properties # it does not really refresh them, including modems @@ -82,18 +78,31 @@ def send_sms(recipients, smsstring): # enable the modem # Get modem, unlock SIM modem = get_modem() + + logger.debug("Unlocking SIM (if needed)") unlock_sim(modem) + + logger.debug("Enabling modem") modem.Enable(True) - break + return modem + except SIMError: # cannot continue with this one (could be a wrong PIN # and then we waste our attempts) raise + except: retries += 1 time.sleep(1) if retries > 15: raise + +def send_sms(recipients, smsstring): + + # Assemble SMS + logger.info("Sending SMS: %s", smsstring) + + unlock_and_enable_modem() # test sending SMS modem_msg = modem['org.freedesktop.ModemManager1.Modem.Messaging']