Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM300 Встроенный TCP. Как различить принимаемые данные от сообщений самого модема.
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
=F8=
Запустил встроенный TCP/IP, соединился с сервером, данные отправляются, принимаются нормально, но есть одно "но". Как различать данные принимаемые модемом от сообщений самого модема(RING итд)?
zltigo
Цитата(=F8= @ Dec 15 2008, 19:07) *
Как различать данные принимаемые модемом от сообщений самого модема(RING итд)?

Слова CONNECT, NO CARRIER видели? Так вот подумайте для чего они, или сигнал DCD
Baser
Цитата(=F8= @ Dec 15 2008, 18:07) *
Как различать данные принимаемые модемом от сообщений самого модема(RING итд)?
Естественно, при помощи анализа всего того, что приходит от модема smile.gif

- во-первых, какие-то сообщения или данные вы будете ожидать в данной точке своего алгоритма;
- во-вторых, нужно анализировать ответы на случай получения сообщения из набора типовых, наиболее часто встречающихся "незапрашиваемых сообщений" (unsolicited result codes);
- в-третьих, алгоритм должен уметь корректно выходить из ситуаций, когда от модема приходит "неизвестно что" (или вообще ничего не приходит);

- ну и в-четвертых, для упрощения приема данных, можно включить выдачу хедера данных командой AT+CIPHEAD=1
тогда все принятые данные будут предваряться заголовком +IPD(data length):(data)
т.е. будет точно известно, что это данные, и известно их количество.
Но, заголовок, это на любителя, т.к. обычно данные - это не просто случайные числа, а законченные логические пакеты с известной структурой, которые всегда можно выделить из входного потока и проверить их целостность...
=F8=
Цитата(zltigo @ Dec 15 2008, 20:19) *
Слова CONNECT, NO CARRIER видели? Так вот подумайте для чего они, или сигнал DCD

Видел, более того именно DCD при обычном соеденении и использую для определения разрыва соединения, но в данном случае я говорю не про обычный сеанс связи, а про использование встроенного TCP/IP и в этом случае сообщения модема идут ВМЕСТЕ с принимаемыми данными.
M_Z
Цитата(=F8= @ Dec 16 2008, 10:06) *
Видел, более того именно DCD при обычном соеденении и использую для определения разрыва соединения, но в данном случае я говорю не про обычный сеанс связи, а про использование встроенного TCP/IP и в этом случае сообщения модема идут ВМЕСТЕ с принимаемыми данными.

Чтото я не замечал чтоб сообщения вклинивались в принимаемые данные по TCP/IP.
Они разделены по времени. Сообщения модема всегда заканчиваются комбинацией 0x0D 0x0A. формат данных принимаемых по TCP/IP тож известен, обычно это оговорено протоколом. Так что отличить эти посылки не трудно.
=F8=
Цитата(Baser @ Dec 16 2008, 00:42) *
Естественно, при помощи анализа всего того, что приходит от модема smile.gif

- во-первых, какие-то сообщения или данные вы будете ожидать в данной точке своего алгоритма;
- во-вторых, нужно анализировать ответы на случай получения сообщения из набора типовых, наиболее часто встречающихся "незапрашиваемых сообщений" (unsolicited result codes);
- в-третьих, алгоритм должен уметь корректно выходить из ситуаций, когда от модема приходит "неизвестно что" (или вообще ничего не приходит);

- ну и в-четвертых, для упрощения приема данных, можно включить выдачу хедера данных командой AT+CIPHEAD=1
тогда все принятые данные будут предваряться заголовком +IPD(data length):(data)
т.е. будет точно известно, что это данные, и известно их количество.
Но, заголовок, это на любителя, т.к. обычно данные - это не просто случайные числа, а законченные логические пакеты с известной структурой, которые всегда можно выделить из входного потока и проверить их целостность...

СПАСИБО!!!!!!!!!!!!!!!!!!!! AT+CIPHEAD=1 как раз то что надо! И вродеж читал TCP_IP_AN, но в упор не видил.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.