ublox-gsm-config: Add factory reset feature

BugzID: 57487
This commit is contained in:
Alexandre Bard 2019-06-14 10:48:15 +02:00
parent bb22100f77
commit 3548aee12a
1 changed files with 30 additions and 11 deletions

View File

@ -114,6 +114,25 @@ def apn_setup(ser):
print("Full functionality mode")
execute_and_check(ser, b'AT+CFUN=1\r')
def reset_modem(ser):
print("Resetting modem")
ser.write(b'AT+CFUN=16\r')
ser.close()
while os.path.exists(SERIAL_DEV):
time.sleep(1)
while not os.path.exists(SERIAL_DEV):
time.sleep(1)
return serial.Serial(SERIAL_DEV, 115200, timeout=0.5)
def factory_reset():
print('factory reset the modem')
if not os.path.exists(SERIAL_DEV):
print('serial interface is not available, abort')
return -1
ser = serial.Serial(SERIAL_DEV, 115200, timeout=0.5)
execute_and_check(ser, b'AT+UFACTORY=2,1')
reset_modem(ser)
def poweroff(gpio):
print('poweroff')
if not os.path.exists(SERIAL_DEV):
@ -128,12 +147,20 @@ def poweroff(gpio):
gpio.set_value(0)
def help():
print('Usage : {} [stop|factory-reset]'.format(sys.argv[0]))
def main():
line = gpiod.find_line('GSM_SUP_EN')
line.request(consumer='ublox-config', type=gpiod.LINE_REQ_DIR_OUT)
if len(sys.argv) == 2 and sys.argv[1] == 'stop':
return poweroff(line)
if len(sys.argv) == 2:
if sys.argv[1] == 'stop':
return poweroff(line)
elif sys.argv[1] == 'factory-reset':
return factory_reset()
else:
return help()
# Power on
line.set_value(1)
@ -158,15 +185,7 @@ def main():
rst = sim_config(ser) or rst
if rst:
print("Resetting modem")
ser.write(b'AT+CFUN=16\r')
ser.close()
while os.path.exists(SERIAL_DEV):
time.sleep(1)
while not os.path.exists(SERIAL_DEV):
time.sleep(1)
ser = serial.Serial(SERIAL_DEV, 115200, timeout=0.5)
ser = reset_modem(ser)
apn_setup(ser)
config_dump.dump_modem_config(ser)