40 lines
749 B
Python
Executable File
40 lines
749 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import serial
|
|
import sys
|
|
import time
|
|
|
|
MAX_TRY = 5
|
|
tries = 0
|
|
ser = serial.Serial('/dev/ttyACM0', 115200, timeout=0.5)
|
|
|
|
def execute_and_check(cmd):
|
|
global tries
|
|
ser.flushInput()
|
|
ser.write(cmd)
|
|
ser.write(b'\r')
|
|
s = ser.read_until(b'OK')
|
|
if b'OK' not in s:
|
|
print("Failed cmd : " + str(cmd))
|
|
print("Output: " + str(s))
|
|
tries += 1
|
|
if tries < MAX_TRY:
|
|
time.sleep(1)
|
|
execute_and_check(cmd)
|
|
else:
|
|
sys.exit(-1)
|
|
tries = 0
|
|
|
|
|
|
print("Setting up bridge mode")
|
|
execute_and_check(b'AT+UBMCONF=2')
|
|
|
|
|
|
print("Setting up USB mode to ECM")
|
|
execute_and_check(b'AT+UUSBCONF=2,"ECM",0')
|
|
|
|
|
|
print("Resetting modem")
|
|
ser.write(b'AT+CFUN=16\r')
|
|
|