csm7 0 29 сентября, 2016 Опубликовано 29 сентября, 2016 · Жалоба Доброго времени суток! Писал скрипт для GL868 на Python Алгоритм следующий Основной скрипт настраивает модуль запускает монитор событий и переводит его в режим малого энергопотребления. Когда приходит входящий звонок монитор событий должен запустить следующий скрипт. Монитор событий срабатывает а скрипт не запускается. Может кто поможет Привожу код где в нем ошибка? import MOD import MDM import SER import sys SER.set_speed('115200','8N1') class SerWriter: def __init__(self): SER.set_speed('115200','8N1') def write(self,s): SER.send(s+'\r') sys.stdout = sys.stderr = SerWriter() def checkNetwork(): MOD.sleep(20) REC_TIME = 200 for _ in range(10): MDM.send('AT+CREG?\r',0) res = MDM.receive(REC_TIME) if (res.find('0,1')!=-1): return 1 else: MOD.sleep(50) return 0 print "Start" MDM.send('AT+CLIP=1\r',0) MDM.send('AT#ENAEVMONI=0\r',0) # clear all evants MDM.send('AT#ENAEVMONICFG=3,1,2\r',0) # MDM.send('AT#EVMONI="RING",0,1,1\r',0) #Ring 1-th timeout 2 minute a = MDM.send('AT#EVMONI="RING",0,0,"AT#ESCRIPT="runRING.pyo";AT#EXECSCR"\r',0) # Запуск скрипта по обработке входящего звонка print "runRING.py Ok " + str(a) MDM.send('AT#EVMONI="RING",1\r',0) MDM.send('AT#ENAEVMONI=1\r',0) # set all evants #MDM.send('AT&W\r',0) print "MONI = Ok " + str(a) runRING.pyo import MOD import MDM import sys MDM.send('AT\r',5) # Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nixon 4 29 сентября, 2016 Опубликовано 29 сентября, 2016 · Жалоба Я поступал проще: # запускаем пользовательское приложение try: import user except: pass где user - это пользовательский скрипт user.pyo На try-exсept не обращайте внимания - это просто защита от глюков в пользовательском приложении Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
csm7 0 30 сентября, 2016 Опубликовано 30 сентября, 2016 · Жалоба Спасибо за совет Я обнаружил что в строке a = MDM.send('AT#EVMONI="RING",0,0,"AT#ESCRIPT="runRING.pyo";AT#EXECSCR"\r',0) # Запуск скрипта по обработке входящего звонка указано две команды "AT#ESCRIPT="runRING.pyo";AT#EXECSCR", которые должны выполнятся по срабатыванию монитора событий Однако наличие скобок "runRING.pyo" нарушает конструкцию В документации вместо скобок советуют использовать символ \22 Но и это не помогает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
csm7 0 5 февраля, 2017 Опубликовано 5 февраля, 2017 · Жалоба Появилась необходимость сохранять данные в файле на SIM карте или в памяти модуля GSM. Позволяет скриптовый язык Python сохранять и и считывать файлы данных? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smalcom 0 5 февраля, 2017 Опубликовано 5 февраля, 2017 · Жалоба да Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nixon 4 6 февраля, 2017 Опубликовано 6 февраля, 2017 · Жалоба для примера работа с SIM: # КЛАСС РАБОТЫ С НАСТРОЙКАМИ В SIM карте class CCfg: def __init__ (self): try: # установили хранилище для телефонной книги на SIM карту CMD('AT+CPBS="SM"\r', 10) # ожидаем готовность SIM карты (фейковое чтение) while 1: res = CMD('AT+CPBR=50\r', 10) if (res[len(res) - 1] != 'ERROR'): break else: MOD.sleep(1) except: pass # функция чтения переменной из SIM карты def getvar (self, index): data = '' try: res = CMD('AT+CPBR=' + str(50 + index) + '\r', 10) if (res[0].find('+CPBR: ' + str(50 + index)) != -1): data = res[0].split('"')[1] except: pass return data # функция записи переменной на SIM карту def setvar (self, index, data): return CMD('AT+CPBW=' + str(50 + index) + ',' + str(data) + '\r', 10) и пример с файлами: # ЧТЕНИЕ ИЗ ФАЙЛА КОНФИГУРАЦИИ ПАРАМЕТРОВ GPRS И FTP def GET_CFG (): apn = ext = ftp = '' try: # открываем файл конфигурации программы обновления cfg = open('boot.cfg', "r") apn = cfg.readline().replace('\r\n', '') ext = cfg.readline().replace('\r\n', '') ftp = cfg.readline().replace('\r\n', '') cfg.close() except: pass # возвращаем параметры программы обновления return apn, ext, ftp Тут только чтение, как записывать думаю понятно будет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
csm7 0 7 февраля, 2017 Опубликовано 7 февраля, 2017 · Жалоба Спасибо, интересные идеи Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
energostart 0 7 февраля, 2018 Опубликовано 7 февраля, 2018 · Жалоба Доброго времени суток! Писал скрипт для GL868 на Python Алгоритм следующий Основной скрипт настраивает модуль запускает монитор событий и переводит его в режим малого энергопотребления. Когда приходит входящий звонок монитор событий должен запустить следующий скрипт. Монитор событий срабатывает а скрипт не запускается. Может кто поможет Привожу код где в нем ошибка? import MOD import MDM import SER import sys SER.set_speed('115200','8N1') class SerWriter: def __init__(self): SER.set_speed('115200','8N1') def write(self,s): SER.send(s+'\r') sys.stdout = sys.stderr = SerWriter() def checkNetwork(): MOD.sleep(20) REC_TIME = 200 for _ in range(10): MDM.send('AT+CREG?\r',0) res = MDM.receive(REC_TIME) if (res.find('0,1')!=-1): return 1 else: MOD.sleep(50) return 0 print "Start" MDM.send('AT+CLIP=1\r',0) MDM.send('AT#ENAEVMONI=0\r',0) # clear all evants MDM.send('AT#ENAEVMONICFG=3,1,2\r',0) # MDM.send('AT#EVMONI="RING",0,1,1\r',0) #Ring 1-th timeout 2 minute a = MDM.send('AT#EVMONI="RING",0,0,"AT#ESCRIPT="runRING.pyo";AT#EXECSCR"\r',0) # Запуск скрипта по обработке входящего звонка print "runRING.py Ok " + str(a) MDM.send('AT#EVMONI="RING",1\r',0) MDM.send('AT#ENAEVMONI=1\r',0) # set all evants #MDM.send('AT&W\r',0) print "MONI = Ok " + str(a) runRING.pyo import MOD import MDM import sys MDM.send('AT\r',5) # Требуется помощь в коррекции скрипта для Telit GL868. Работу оплачу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
csm7 0 13 марта, 2018 Опубликовано 13 марта, 2018 (изменено) · Жалоба Ув коллеги в процессе отлаживания скрипта под GL868-DUAL V3 (AT+CGMR 16.01.181) обнаружил, что не работает команда MDM.send('AT+CPBW=50,' + str(abonent) + ',145,smsNum\r', 15) Согласно документации переменные str(abonent) и smsNum должны находиться в кавычках (") Пробовал всячески прописать кавычки но пока безрезультатно При вожу функцию в которой сбоит эта команда Может не в команде дело а в задержках def findCall(self): out = 0 while (1==1): res = MDM.receive(10) if (res.find('+CLIP:') != -1): abonent = res.split('"')[1] MDM.send('AT+CPBF=' + str(abonent) + '\r', 0) res = MDM.receive(1) if (res.find('ERROR') == -1): MDM.send('ata\r', 1) SER.send('Connenct ' + str(abonent) + '\r\n') #MDM.send('AT+CPBW=50,' + str(abonent) + ',145,smsNum\r', 15) res = MDM.receive(30) SER.send(str(res)) out = 1 else: MDM.send('ath0\r', 2) SER.send('Disconnect\r\n') out = -1 break return out Изменено 13 марта, 2018 пользователем csm7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
molecul 0 14 марта, 2018 Опубликовано 14 марта, 2018 · Жалоба Ув коллеги в процессе отлаживания скрипта под GL868-DUAL V3 (AT+CGMR 16.01.181) обнаружил, что не работает команда MDM.send('AT+CPBW=50,' + str(abonent) + ',145,smsNum\r', 15) Согласно документации переменные str(abonent) и smsNum должны находиться в кавычках (") Пробовал всячески прописать кавычки но пока безрезультатно При вожу функцию в которой сбоит эта команда Может не в команде дело а в задержках def findCall(self): out = 0 while (1==1): res = MDM.receive(10) if (res.find('+CLIP:') != -1): abonent = res.split('"')[1] MDM.send('AT+CPBF=' + str(abonent) + '\r', 0) res = MDM.receive(1) if (res.find('ERROR') == -1): MDM.send('ata\r', 1) SER.send('Connenct ' + str(abonent) + '\r\n') #MDM.send('AT+CPBW=50,' + str(abonent) + ',145,smsNum\r', 15) res = MDM.receive(30) SER.send(str(res)) out = 1 else: MDM.send('ath0\r', 2) SER.send('Disconnect\r\n') out = -1 break return out +CPBF ищет не номер (который вы получаете из +CLIP), а имя из телефонной книги, соответственно вы никогда не попадете в ветку с +CPBW Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
csm7 0 19 марта, 2018 Опубликовано 19 марта, 2018 (изменено) · Жалоба Send: at+cpbf=+38067*******<cr><lf> at+cpbf=+38067****** +CPBF: 51,"+38067*******",145,"+38067*******" OK По алгоритму все работает нормально. Проблема оказалась в том что когда трубка поднята нет возможности записывать номер в телефонную книгу Доброго времени суток Появился другой вопрос Как отослать СМС записанному в телефонной книге абоненту. Номер ячейки известен. а также известно ник этого номера в телефонной книге. Определять мобильный номер нет желания, где-то видел команду - отсылает СМС по номеру ячейки или по нику записанного в телефонной книге абонента Изменено 19 марта, 2018 пользователем csm7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
csm7 0 20 марта, 2018 Опубликовано 20 марта, 2018 (изменено) · Жалоба Доброго времени суток! В модуле GL868 работает скрипт. Вопрос . Запустится ли при этом другой скрипт если придет СМС с кодом запуска скрипта типа AT#ESCRIPT="user.pyo";#execscr;\r И еще по ходу один вопрос. Работает скрипт - в какой-то момент он запускает другой скрипт. Возможно ли запускаемому скрипту передать параметры с работающего скрипта Изменено 20 марта, 2018 пользователем csm7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться