Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: GPRS on GE864
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
gsm_starter
В общем проблема следующая хочу присоединится к 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_
Что по вашему обозначает фоновый режим?
После connect вы получаете прямое соединение с сервером.
Переход в командный режим (управление модемомом) по +++.
Возврат в online mode по SO=1.

Не нравится переключаться из command mode в online mode переходите в режим мультиплексирования (CMUX). Управлять модемом проще от этого не станет но зато будет 3 независимых канала один из которых можно использовать для работы с сервером а один для управления модемом.
gsm_starter
В документации на GPRS просто было написано что последний параметр в команде #SD, обозначает, если 0, то фоновый режим, 1 если коммандный. Разница в том что ф воновом команды не обрабатываются а все отправленное в ком-порт идет на сервер. А в коммандном для отправки сообщений необходимо использовать команду #SSEND (прием сообщений осуществляется через SRING).
Но вот выйти в коммандный режим не выходит, а комманды SCFGEXT, SSEND вообще возвращают ошибку как буд-то не существую. В чем проблема?
mempfis_
Цитата(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
Цитата(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_
Цитата(gsm_starter @ May 5 2010, 15:49) *
Зачем тогда писать в даташите на AT-команды что они поддерживаются? Вообще их не понимаю.


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


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

Пробовал ждать по 2 секунды до и после.

Цитата(mempfis_ @ Jun 22 2010, 09:43) *
Вы как эти +++ подаёте?
Нужно подавать просто +++ без \r\n в конце.
Мои ge864/863 всегда понимают что это команда перехода в командный режим, даже если они в online-режиме.

Разумеется без \r\n в конце. Шлю исключительно 3 байта.

У меня вопрос может нужно модуль сперва как-то сконфигурировать. Какими командами вы начинаете работу с самим модулем и какими коммандами переводите его в онлайн-режим?
tamam
Для модема GM864-GPS использовал команду запрета передачи ESC последовательности еа сервер:

AT#SKIPESC=1

Модем возвращается в командный режим без передачи +++ на сервер.

Ошибся чуток, модем GM862-GPS.
mempfis_
Цитата(gsm_starter @ Jun 22 2010, 11:43) *
Пробовал ждать по 2 секунды до и после.

У меня вопрос может нужно модуль сперва как-то сконфигурировать. Какими командами вы начинаете работу с самим модулем и какими коммандами переводите его в онлайн-режим?


Если настройки сокета такие как в первом посте
Код
at#scfg=1,1,300,90,600,50

то таймаут отправки данных составляет 5 секунд (50 сотен милисекунд). Нужно ждать не менее 5 секунд.
Никаих особых настроек не выполняю - всё приблизительно как в первом вашем посте.

Через терминал отправляю настройки как у Вас. Только таймаут у меня 1 - 100 мС и всё прекрасно работает.
Перепроверил - даже с 5секундным таймаутом всё хорошо работает
gsm_starter
Цитата(tamam @ Jun 22 2010, 12:23) *
Для модема GM864-GPS использовал команду запрета передачи ESC последовательности еа сервер:

AT#SKIPESC=1

Модем возвращается в командный режим без передачи +++ на сервер.

Ошибся чуток, модем GM862-GPS.

Проблема решилась AT#SKIPESC=1.
СПАСИБО.
Теперь можно вообще никаких пауз не выдерживать.
gsm_starter
У меня вопрос ещё по поводу AT#SD.
Бывает такое что сервер недоступен и ожидание от это команды очень длинное. И самое интересное что иногда команда дает ответ через 45 секунд иногда через 75. И что самое плохое, это то что по время ожидания если выполнить какую-то команду, то ответа и от неё не дождешся, возможно во время работы этой команды они игнорируются.
У меня вопрос, как задать время ожидания комманды AT#SD? И можно ли как-то обрубить выполнение? К примеру я пусть таймаут большой, если мне ничего больше не нужно делать я могу и подождать, но тут вдруг мне нужно позвонить, то можно как-то сбросить выполнение комманды недожидаясь ответа и выполнить другую?
tamam
В описании АТ команд для Telit, насколько я помню, указано максимальное время ответа для команд.
И еще там прямо написано, что надо обязательно дождаться ответа перед подачей следующей команды.
Иначе их модем просто игнорирует.

Так что, скорее всего, придется ждать ответа.
mempfis_
Цитата(gsm_starter @ Jul 21 2010, 18:33) *
У меня вопрос, как задать время ожидания комманды AT#SD? И можно ли как-то обрубить выполнение? К примеру я пусть таймаут большой, если мне ничего больше не нужно делать я могу и подождать, но тут вдруг мне нужно позвонить, то можно как-то сбросить выполнение комманды недожидаясь ответа и выполнить другую?


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

Если у вас не используется управление потоком, то наиболее эффективным для вас будет включать прибор на момент активного информационного обмена, а потом выключать модуль и снимать с него питание.
Вот только устройство в этом случае будет недоступно извне.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.