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

 
 
> Как обрабатывать сообщение REMOTE IP:
david_off
сообщение Nov 7 2008, 11:19
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 37
Регистрация: 15-10-08
Из: Одесса, Украина
Пользователь №: 40 978



В моей программе все сообщения обрабатываются по установке флага получения нового сообщения. Анализатор флага работает так: получив CRLF (начало) - начинает ожидать CRLF(конец). Как только получен конец - флаг устанавливается. Обработчик сообщений, получив флаг, смотрит в буфер и обрабатывает пришедшее сообщение. После обработки флаг сбрасывается.

Алгоритм работает шикарно. Единственный его нюанс - нельзя работать с командами типа CLCC, которые возращают несколько строк и строки начиная со втрой не имеют CRLF (начало). Данные ответы имеют вид: CRLF<line1>CRLF<line2>CRLF...<lineN>CRLF OK CRLF. Проблема решается путём отказа от таких комманд - они мне не нужны.

Так вот с сообщением <CRLF REMOTE IP:> тоже наблюдается лажа.
Есть вариант выхода из сложившейся ситуации следующий: после соединения модулей посылать текст, который всегда будет заканчиватся на CRLF. Тогда сообщение будет иметь вид
<CRLF REMOTE IP: текст CRLF> - такое корректно обработается.

Но вот найти решение корректной обработки, когда приходит RING или ещё какое-то неожиданное сообщение - не могу. По сему спрашиваю здесь. Как обрабатывать REMOTE IP на тот случай, если влазит кто-то?

Сообщение отредактировал david_off - Nov 7 2008, 11:20
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
FormatCft
сообщение Nov 7 2008, 11:28
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 331
Регистрация: 22-07-08
Из: Р О С С И Я
Пользователь №: 39 145



Цитата(david_off @ Nov 7 2008, 16:19) *
В моей программе все сообщения обрабатываются по установке флага получения нового сообщения. Анализатор флага работает так: получив CRLF (начало) - начинает ожидать CRLF(конец). Как только получен конец - флаг устанавливается. Обработчик сообщений, получив флаг, смотрит в буфер и обрабатывает пришедшее сообщение. После обработки флаг сбрасывается.

Алгоритм работает шикарно. Единственный его нюанс - нельзя работать с командами типа CLCC, которые возращают несколько строк и строки начиная со втрой не имеют CRLF (начало). Данные ответы имеют вид: CRLF<line1>CRLF<line2>CRLF...<lineN>CRLF OK CRLF. Проблема решается путём отказа от таких комманд - они мне не нужны.

Так вот с сообщением <CRLF REMOTE IP:> тоже наблюдается лажа.
Есть вариант выхода из сложившейся ситуации следующий: после соединения модулей посылать текст, который всегда будет заканчиватся на CRLF. Тогда сообщение будет иметь вид
<CRLF REMOTE IP: текст CRLF> - такое корректно обработается.

Но вот найти решение корректной обработки, когда приходит RING или ещё какое-то неожиданное сообщение - не могу. По сему спрашиваю здесь. Как обрабатывать REMOTE IP на тот случай, если влазит кто-то?

ИМХО идея хорошая, но лучше таймаутами пользоваться. Тогда будет работать всегда и везде.
Go to the top of the page
 
+Quote Post
_zag_
сообщение Nov 7 2008, 11:49
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 20-10-07
Пользователь №: 31 529



Цитата(FormatCft @ Nov 7 2008, 15:28) *
ИМХО идея хорошая, но лучше таймаутами пользоваться. Тогда будет работать всегда и везде.


абсолютно согласен!
получили CRLF и/или любой байт начинаем счтитать время (у меня 5-10мС при скорости 115200 ), получили следующий байт -сбросили счетчик и заново считаем... смогли досчитать до 10мС идем обрабатывать то что получили (время на свой вкус выставляй, ибо 10мС достаточно много, но для моих задач самое то что дохтор прописал)

Сообщение отредактировал _zag_ - Nov 7 2008, 11:49
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- david_off   Как обрабатывать сообщение REMOTE IP:   Nov 7 2008, 11:19
- - PIC_Embedder   У меня получилось что-то среднее. Алгоритм такой. ...   Nov 7 2008, 12:31
|- - david_off   Цитата(PIC_Embedder @ Nov 7 2008, 16:31) ...   Nov 7 2008, 12:38
|- - _zag_   Цитата(david_off @ Nov 7 2008, 16:38) неп...   Nov 7 2008, 13:54
||- - david_off   Думал, думал и надумал... По суте у меня выбор ме...   Nov 7 2008, 16:24
||- - @Ark   Цитата(david_off @ Nov 7 2008, 19:24) Дум...   Nov 7 2008, 17:11
||- - david_off   Цитата(@Ark @ Nov 7 2008, 21:11) Предложу...   Nov 7 2008, 18:30
||- - @Ark   Цитата(david_off @ Nov 7 2008, 21:30) Вы ...   Nov 7 2008, 18:53
||- - david_off   Цитата(@Ark @ Nov 7 2008, 22:53) Здесь, к...   Nov 7 2008, 20:00
||- - @Ark   Цитата(david_off @ Nov 7 2008, 23:00) Нав...   Nov 8 2008, 00:14
|- - PIC_Embedder   Цитата(david_off @ Nov 7 2008, 16:38) неп...   Nov 7 2008, 15:40
- - Baser   Цитата(david_off @ Nov 7 2008, 13:19) В м...   Nov 7 2008, 22:23
- - david_off   Цитата(Baser @ Nov 8 2008, 02:23) А я так...   Nov 8 2008, 13:00
|- - @Ark   Цитата(david_off @ Nov 8 2008, 16:00) ......   Nov 8 2008, 13:23
|- - Baser   Цитата(david_off @ Nov 8 2008, 15:00) Не ...   Nov 8 2008, 13:45
|- - david_off   Цитата(Baser @ Nov 8 2008, 17:45) Ну, есл...   Nov 8 2008, 15:47
|- - Baser   Цитата(david_off @ Nov 8 2008, 17:47) Кст...   Nov 8 2008, 17:19
- - FormatCft   Цитата(Baser @ Nov 8 2008, 03:23) А я так...   Nov 9 2008, 10:18
- - Baser   Цитата(FormatCft @ Nov 9 2008, 12:18) А п...   Nov 9 2008, 16:38


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

 


RSS Текстовая версия Сейчас: 19th August 2025 - 21:52
Рейтинг@Mail.ru


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