Форум сайта python.su
20
День добрый.
Необходимо написать скрипт, который бы резетил модем после загрузки файла (под windows 7).
Подскажите с помощью PyUSB я смогу это сделать? (Честно 2 дня гуглил не нашёл) Или лучше использовать DevCon?
Для devcon'а решение нашел, но не хотелось бы вставлять костыли.
Спасибо.
Офлайн
31
Можно просто пользовать DevCon
devcon restart "USB\VID_16D5&PID_6501"
AT+WDWL
Примечание: Переключение в режим загрузки.
AT+CFUN=1
Примечание: Перезагрузка модема после заверше-ния обновления ПО.
15.44. Перезагрузка: +WRST
15.44.1. Описание
Данная команда перезагружает модуль через отрезок времени, опреде-ленный параметром <delay>.
15.44.2. Синтаксис
Синтаксис команды: AT+WRST =<mode>,<Delay>
Синтаксис ответа: +WRST: <Mode>,<Delay>,<RemainTime>
Офлайн
20
sanodin, спасибо за помощь!!!
Я решил воспользоваться at-командами:
import serial mod=serial.Serial("COM5",460800,timeout=5) mod.write("AT+CFUN=1,1\r") mod.close()
Отредактировано noob_saibot (Март 21, 2014 09:49:44)
Офлайн
31
Считывал смс таким кодом
#!/usr/bin/env python import serial port = serial.Serial('COM4',115200, timeout=1) port.write('AT+CMGF=1\r\n') #set text mode port.write('AT+CSCS="UCS2"\r\n')#set encoding to UCS2 port.write('AT+CNUM\r\n')#number tel port.write('AT+CMGL="ALL"\r\n') #get all messages def __decode(str): ustr = u'' str = str.strip().replace('"', '') for i in range(len(str)): if not i % 4: ustr += unichr(int(str[i:i+4], 16)) return ustr gotmsg = False while(1): line = port.readline() print line if line.startswith('+CMGL'): info = line.split(',') print 'message#%s from %s date %s time %s %s' \ %(info[0].split(':')[1], __decode(info[2]), \ info[4], info[5], __decode(port.readline())) gotmsg = True if gotmsg and line.startswith('OK'): break
Отредактировано sanodin (Март 21, 2014 17:54:17)
Прикреплённый файлы:
sms_modul_.zip (5,0 KБ)
Офлайн