diff options
-rw-r--r-- | unattended-lte-firmware-upgrade | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/unattended-lte-firmware-upgrade b/unattended-lte-firmware-upgrade index d38b917..087e32d 100644 --- a/unattended-lte-firmware-upgrade +++ b/unattended-lte-firmware-upgrade @@ -18,16 +18,22 @@ :if ([ :typeof $Firmware ] = "array") do={ :if (($Firmware->"installed") != ($Firmware->"latest")) do={ :log info ("Scheduling LTE firmware upgrade for interface " . $IntName . "."); + :global LTEFirmwareUpgrade do={ :global LTEFirmwareUpgrade; :set LTEFirmwareUpgrade; + /system/scheduler/remove ($1 . "-firmware-upgrade"); /interface/lte/firmware-upgrade $1 upgrade=yes; - :log info ("LTE firmware upgrade finished, waiting for installation before reset."); + :log info ("LTE firmware upgrade on '" . $1 . "' finished, waiting for reset."); :delay 150s; - /interface/lte/at-chat $1 input="AT+RESET"; - :log info ("Reset device, waiting to finish and reconnect."); + :local Firmware [ /interface/lte/firmware-upgrade $1 once as-value ]; + :if (($Firmware->"installed") != ($Firmware->"latest")) do={ + :log warning ("LTE firmware versions still differ. Resetting again..."); + /interface/lte/at-chat $1 input="AT+RESET"; + } } + /system/scheduler/add name=($IntName . "-firmware-upgrade") start-time=startup interval=2s \ on-event=(":global LTEFirmwareUpgrade; \$LTEFirmwareUpgrade \"" . $IntName . "\";"); } else={ |