Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: UDP Extended Mode в SIM900
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
maxgrind
Поднимаю UDP соединение в режиме Extended (AT+CIPUDPMODE=1). До тех пор, пока не пошлю данные, прием идет нормально. Стоит только сделать AT+CIPSEND и уже ничего не читается. Приходится закрывать соединение (AT+CIPCLOSE) и заново открывать его(AT+CIPSTART=...), тогда чтение работает, но опять пока не будет что-нибудь отправлено.

Ход действий:
AT+CGATT=1
AT+CSTT="FixedIP.nw","megafon","megafon"
AT+CIICR
AT+CLPORT="UDP",55554
AT+CIPUDPMODE=1
AT+CIFSR
AT+CIPSTART="UDP","х.х.х.х",уууу

В аппноуте есть пример, но там как как будто специально сначала идет прием с разных IP, а потом рассылка на разные IP. Нет такого, что после приема идет посылка, а потом опять прием и все в как надо работает, без переоткрытия соединения.
GeGeL
Причина может быть как в модуле, так в во вне.
Какой IP назначается модулю? По идее, должен быть внешний "белый". И даже в этом случае у многих сисопов пакеты из сети не доходят до модуля, если он не проявляет сетевой активности (по любому протоколу и в любом направлении). Думаю, связано это с временем жизни arp-таблиц и блокировкой arp на каких-либо транзитных узлах сисопа. Поэтому при организации слушающего UDP-сокета может потребоваться хотя-бы раз в 10-20 сек посылать с модуля куда-то любой пакет.
У вас же противоположная ситуация, но в любом случае перед тем как грешить на прошивку модуля, надо бы исключить внешние причины. И еще - попробуйте порт ниже взять, высокие порты используются NAT, могут быть всякие непредвиденные эффекты
maxgrind
Цитата(GeGeL @ Oct 1 2012, 12:53) *
Причина может быть как в модуле, так в во вне.
Какой IP назначается модулю? По идее, должен быть внешний "белый". И даже в этом случае у многих сисопов пакеты из сети не доходят до модуля, если он не проявляет сетевой активности (по любому протоколу и в любом направлении). Думаю, связано это с временем жизни arp-таблиц и блокировкой arp на каких-либо транзитных узлах сисопа. Поэтому при организации слушающего UDP-сокета может потребоваться хотя-бы раз в 10-20 сек посылать с модуля куда-то любой пакет.
У вас же противоположная ситуация, но в любом случае перед тем как грешить на прошивку модуля, надо бы исключить внешние причины. И еще - попробуйте порт ниже взять, высокие порты используются NAT, могут быть всякие непредвиденные эффекты

Да, IP внешний статический. Порты взял пониже - что то не помогло(

Причем такое ощущение что модуль все таки принимает данные, но мне их не показывает. Т.к. дроссель в блоке питания платы жужжит когда я посылаю с компа в модуль пакетик. На AT+CIPRXGET=4 (сколько принятых байтов лежит в буфере) модуль отвеачает ERROR. В UDP extended mode так и должно быть.
GeGeL
Ну, если так, то тогда баг модуля, и вопрос к саппорту.
Я не пользовал сим900 в таком виде, поднимал ррр извне и использовал свой стек, так что конкретно не скажу. А вобще то ждем обновленную ЕАТ, чтобы не заниматься извращениями, а использовать линукс-подобные функции для работы с сокетами, как сейчас в Quectel OCPU.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.