реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> SIM300 Встроенный TCP. Как различить принимаемые данные от сообщений самого модема.
=F8=
сообщение Dec 15 2008, 16:07
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954



Запустил встроенный TCP/IP, соединился с сервером, данные отправляются, принимаются нормально, но есть одно "но". Как различать данные принимаемые модемом от сообщений самого модема(RING итд)?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 15 2008, 16:19
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(=F8= @ Dec 15 2008, 19:07) *
Как различать данные принимаемые модемом от сообщений самого модема(RING итд)?

Слова CONNECT, NO CARRIER видели? Так вот подумайте для чего они, или сигнал DCD


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Baser
сообщение Dec 15 2008, 20:42
Сообщение #3


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



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

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

- ну и в-четвертых, для упрощения приема данных, можно включить выдачу хедера данных командой AT+CIPHEAD=1
тогда все принятые данные будут предваряться заголовком +IPD(data length):(data)
т.е. будет точно известно, что это данные, и известно их количество.
Но, заголовок, это на любителя, т.к. обычно данные - это не просто случайные числа, а законченные логические пакеты с известной структурой, которые всегда можно выделить из входного потока и проверить их целостность...
Go to the top of the page
 
+Quote Post
=F8=
сообщение Dec 16 2008, 06:06
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954



Цитата(zltigo @ Dec 15 2008, 20:19) *
Слова CONNECT, NO CARRIER видели? Так вот подумайте для чего они, или сигнал DCD

Видел, более того именно DCD при обычном соеденении и использую для определения разрыва соединения, но в данном случае я говорю не про обычный сеанс связи, а про использование встроенного TCP/IP и в этом случае сообщения модема идут ВМЕСТЕ с принимаемыми данными.

Сообщение отредактировал =F8= - Dec 16 2008, 06:07
Go to the top of the page
 
+Quote Post
M_Z
сообщение Dec 16 2008, 06:25
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 483
Регистрация: 1-09-06
Из: Гродно РБ
Пользователь №: 20 011



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

Чтото я не замечал чтоб сообщения вклинивались в принимаемые данные по TCP/IP.
Они разделены по времени. Сообщения модема всегда заканчиваются комбинацией 0x0D 0x0A. формат данных принимаемых по TCP/IP тож известен, обычно это оговорено протоколом. Так что отличить эти посылки не трудно.
Go to the top of the page
 
+Quote Post
=F8=
сообщение Dec 16 2008, 06:26
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954



Цитата(Baser @ Dec 16 2008, 00:42) *
Естественно, при помощи анализа всего того, что приходит от модема smile.gif

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

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

СПАСИБО!!!!!!!!!!!!!!!!!!!! AT+CIPHEAD=1 как раз то что надо! И вродеж читал TCP_IP_AN, но в упор не видил.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 16:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.0141 секунд с 7
ELECTRONIX ©2004-2016