|
|
@ -103,6 +103,8 @@ def hw_state_thread(end_event, hw_queue): |
|
|
|
modem_version = None |
|
|
|
modem_version = None |
|
|
|
modem_nv = None |
|
|
|
modem_nv = None |
|
|
|
modem_configured = False |
|
|
|
modem_configured = False |
|
|
|
|
|
|
|
modem_restarted = False |
|
|
|
|
|
|
|
modem_missing_count = 0 |
|
|
|
|
|
|
|
|
|
|
|
while not end_event.is_set(): |
|
|
|
while not end_event.is_set(): |
|
|
|
# these are expensive calls. update every 10s |
|
|
|
# these are expensive calls. update every 10s |
|
|
@ -120,6 +122,16 @@ def hw_state_thread(end_event, hw_queue): |
|
|
|
|
|
|
|
|
|
|
|
if (modem_version is not None) and (modem_nv is not None): |
|
|
|
if (modem_version is not None) and (modem_nv is not None): |
|
|
|
cloudlog.event("modem version", version=modem_version, nv=modem_nv) |
|
|
|
cloudlog.event("modem version", version=modem_version, nv=modem_nv) |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
if not modem_restarted: |
|
|
|
|
|
|
|
# TODO: we may be able to remove this with a MM update |
|
|
|
|
|
|
|
# ModemManager's probing on startup can fail |
|
|
|
|
|
|
|
# rarely, restart the service to probe again. |
|
|
|
|
|
|
|
modem_missing_count += 1 |
|
|
|
|
|
|
|
if modem_missing_count > 3: |
|
|
|
|
|
|
|
modem_restarted = True |
|
|
|
|
|
|
|
cloudlog.event("restarting ModemManager") |
|
|
|
|
|
|
|
os.system("sudo systemctl restart --no-block ModemManager") |
|
|
|
|
|
|
|
|
|
|
|
tx, rx = HARDWARE.get_modem_data_usage() |
|
|
|
tx, rx = HARDWARE.get_modem_data_usage() |
|
|
|
|
|
|
|
|
|
|
|