Полная версия этой страницы:
GPRS on GE864
gsm_starter
Mar 7 2010, 14:10
В общем проблема следующая хочу присоединится к GPRS в командном режиме, делаю для этого:
at+cgdcont=1,"IP","internet","0.0.0.0",0,0
OK
at#scfg=1,1,300,90,600,50
OK
AT#SGACT=1,1
#SGACT: 91.145.244.159
OK
AT#SD=1,0,25,"77.88.21.38",0,0,1
CONNECT
И попадаю в фоновый режим, я конечно могу с него выйти по "+++", но все же как-то не красиво получается...
И тем более комманды SCFGEXT, SSEND возвращают ошибку так как буд-то модем вообще не знает этих комманд (возращает не с кодом ошибки а просто error)
SELINT = 2, устанавливаю.
Господа, что я упускаю?
mempfis_
Mar 8 2010, 22:11
Что по вашему обозначает фоновый режим?
После connect вы получаете прямое соединение с сервером.
Переход в командный режим (управление модемомом) по +++.
Возврат в online mode по SO=1.
Не нравится переключаться из command mode в online mode переходите в режим мультиплексирования (CMUX). Управлять модемом проще от этого не станет но зато будет 3 независимых канала один из которых можно использовать для работы с сервером а один для управления модемом.
gsm_starter
Mar 9 2010, 14:09
В документации на GPRS просто было написано что последний параметр в команде #SD, обозначает, если 0, то фоновый режим, 1 если коммандный. Разница в том что ф воновом команды не обрабатываются а все отправленное в ком-порт идет на сервер. А в коммандном для отправки сообщений необходимо использовать команду #SSEND (прием сообщений осуществляется через SRING).
Но вот выйти в коммандный режим не выходит, а комманды SCFGEXT, SSEND вообще возвращают ошибку как буд-то не существую. В чем проблема?
mempfis_
Mar 9 2010, 15:08
Цитата(gsm_starter @ Mar 9 2010, 18:09)

В документации на GPRS просто было написано что последний параметр в команде #SD, обозначает, если 0, то фоновый режим, 1 если коммандный. Разница в том что ф воновом команды не обрабатываются а все отправленное в ком-порт идет на сервер. А в коммандном для отправки сообщений необходимо использовать команду #SSEND (прием сообщений осуществляется через SRING).
Но вот выйти в коммандный режим не выходит, а комманды SCFGEXT, SSEND вообще возвращают ошибку как буд-то не существую. В чем проблема?
Ну так попробуйте подключится в online-mode (SD=1,0,80,"www.google.com" например).
Получайте connect. По +++ выходите в command mode. Делаете всё что нужно возвращаетесь в online mode по AT#SO=1
Если связь оборвётся то в command mode вам вернётся сообщение NO CARRIER.
Проверил на воём GE864-PY - команды SCFGEXT, SSEND, SRECV он не поддерживает в принципе.
А команду SD всегда выполняет в online mode (даже если установить последний бит в команде).
gsm_starter
May 5 2010, 12:49
Цитата(mempfis_ @ Mar 9 2010, 18:08)

Ну так попробуйте подключится в online-mode (SD=1,0,80,"www.google.com" например).
Получайте connect. По +++ выходите в command mode. Делаете всё что нужно возвращаетесь в online mode по AT#SO=1
Если связь оборвётся то в command mode вам вернётся сообщение NO CARRIER.
Проверил на воём GE864-PY - команды SCFGEXT, SSEND, SRECV он не поддерживает в принципе.
А команду SD всегда выполняет в online mode (даже если установить последний бит в команде).
Зачем тогда писать в даташите на AT-команды что они поддерживаются? Вообще их не понимаю.
mempfis_
May 6 2010, 06:47
Цитата(gsm_starter @ May 5 2010, 15:49)

Зачем тогда писать в даташите на AT-команды что они поддерживаются? Вообще их не понимаю.
Вероятно это общий список АТ-команд для всех модемов телит. Конкретные модели могут не поддерживать некоторые команды.
gsm_starter
Jun 21 2010, 20:10
Такая проблема. Я работаю с сервером, когда нужно выйт я как вы и советовали использую "+++". Так вот проблема в том что сервер получает эту строку "+++" в виде данных, это он характеризует как некорректные данные и закрывает сокет. У меня вопрос, как этого избежать? Как выйти с онлайн-режима ничего не слав при этом на сервер? В железе используется только rx и tx.
av-master
Jun 22 2010, 06:08
подобрать длительность пауз между плюсами.
mempfis_
Jun 22 2010, 06:43
Цитата(gsm_starter @ Jun 21 2010, 23:10)

Такая проблема. Я работаю с сервером, когда нужно выйт я как вы и советовали использую "+++". Так вот проблема в том что сервер получает эту строку "+++" в виде данных, это он характеризует как некорректные данные и закрывает сокет. У меня вопрос, как этого избежать? Как выйти с онлайн-режима ничего не слав при этом на сервер? В железе используется только rx и tx.
Вы как эти +++ подаёте?
Нужно подавать просто +++ без \r\n в конце.
Мои ge864/863 всегда понимают что это команда перехода в командный режим, даже если они в online-режиме.
gsm_starter
Jun 22 2010, 08:43
Цитата(av-master @ Jun 22 2010, 09:08)

подобрать длительность пауз между плюсами.
Пробовал ждать по 2 секунды до и после.
Цитата(mempfis_ @ Jun 22 2010, 09:43)

Вы как эти +++ подаёте?
Нужно подавать просто +++ без \r\n в конце.
Мои ge864/863 всегда понимают что это команда перехода в командный режим, даже если они в online-режиме.
Разумеется без \r\n в конце. Шлю исключительно 3 байта.
У меня вопрос может нужно модуль сперва как-то сконфигурировать. Какими командами вы начинаете работу с самим модулем и какими коммандами переводите его в онлайн-режим?
Для модема GM864-GPS использовал команду запрета передачи ESC последовательности еа сервер:
AT#SKIPESC=1
Модем возвращается в командный режим без передачи +++ на сервер.
Ошибся чуток, модем GM862-GPS.
mempfis_
Jun 22 2010, 10:24
Цитата(gsm_starter @ Jun 22 2010, 11:43)

Пробовал ждать по 2 секунды до и после.
У меня вопрос может нужно модуль сперва как-то сконфигурировать. Какими командами вы начинаете работу с самим модулем и какими коммандами переводите его в онлайн-режим?
Если настройки сокета такие как в первом посте
Код
at#scfg=1,1,300,90,600,50
то таймаут отправки данных составляет 5 секунд (50 сотен милисекунд). Нужно ждать не менее 5 секунд.
Никаих особых настроек не выполняю - всё приблизительно как в первом вашем посте.
Через терминал отправляю настройки как у Вас. Только таймаут у меня 1 - 100 мС и всё прекрасно работает.
Перепроверил - даже с 5секундным таймаутом всё хорошо работает
gsm_starter
Jun 22 2010, 13:44
Цитата(tamam @ Jun 22 2010, 12:23)

Для модема GM864-GPS использовал команду запрета передачи ESC последовательности еа сервер:
AT#SKIPESC=1
Модем возвращается в командный режим без передачи +++ на сервер.
Ошибся чуток, модем GM862-GPS.
Проблема решилась AT#SKIPESC=1.
СПАСИБО.
Теперь можно вообще никаких пауз не выдерживать.
gsm_starter
Jul 21 2010, 15:33
У меня вопрос ещё по поводу AT#SD.
Бывает такое что сервер недоступен и ожидание от это команды очень длинное. И самое интересное что иногда команда дает ответ через 45 секунд иногда через 75. И что самое плохое, это то что по время ожидания если выполнить какую-то команду, то ответа и от неё не дождешся, возможно во время работы этой команды они игнорируются.
У меня вопрос, как задать время ожидания комманды AT#SD? И можно ли как-то обрубить выполнение? К примеру я пусть таймаут большой, если мне ничего больше не нужно делать я могу и подождать, но тут вдруг мне нужно позвонить, то можно как-то сбросить выполнение комманды недожидаясь ответа и выполнить другую?
В описании АТ команд для Telit, насколько я помню, указано максимальное время ответа для команд.
И еще там прямо написано, что надо обязательно дождаться ответа перед подачей следующей команды.
Иначе их модем просто игнорирует.
Так что, скорее всего, придется ждать ответа.
mempfis_
Jul 22 2010, 11:24
Цитата(gsm_starter @ Jul 21 2010, 18:33)

У меня вопрос, как задать время ожидания комманды AT#SD? И можно ли как-то обрубить выполнение? К примеру я пусть таймаут большой, если мне ничего больше не нужно делать я могу и подождать, но тут вдруг мне нужно позвонить, то можно как-то сбросить выполнение комманды недожидаясь ответа и выполнить другую?
Посмотрите на команду AT#SCFG - задаёт параметры соккета.
Надо проверить - может можно подать SD а потом по +++ перейти в командный режим.
Если управление идёт питоном то там есть модули MDM, MDM2 которые работают независимо.
Если процом - то перевод модема в мультиплексорный режим даст 3 полноценных независимых канала управления.
gsm_starter
Aug 4 2010, 23:34
В описании на AT-комманды написано что при AT+CFUN=5 включается режим энергосбережения и перед отправкой комманды нужно ждать линию CTS.А если доступа к этой линии нет, то как тогда действовать?
И вообще насколько сильно помогает опция AT+CFUN=5? Интересует вопрос для портативного устройства.
gsm_starter
Aug 5 2010, 18:33
С AT+CFUN=5 вообще кто-нибудь работал? Расскажите про резуультаты использования?
В общем устрйство портативное. Можете подсказать на какие механизмы нужно обратить, что снизить потребление модуля до миннимума?
Master of Nature
Aug 6 2010, 06:20
Цитата(gsm_starter @ Aug 5 2010, 22:33)

С AT+CFUN=5 вообще кто-нибудь работал? Расскажите про резуультаты использования?
В общем устрйство портативное. Можете подсказать на какие механизмы нужно обратить, что снизить потребление модуля до миннимума?
Если у вас не используется управление потоком, то наиболее эффективным для вас будет включать прибор на момент активного информационного обмена, а потом выключать модуль и снимать с него питание.
Вот только устройство в этом случае будет недоступно извне.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.