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

 
 
> А может ли быть такое?..., Порядок получения ответов на AT-комманды
david_off
сообщение Oct 18 2008, 13:21
Сообщение #1


Участник
*

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



Не знает ли кто-то из местных жителей, может ли влезть какое-то сообщение между эхом и ответом на команду.

например,
1) шлю команду AT CR
2) приходит эхо <AT> CR.
3) теперь я жду подтверждения OK, а в этот момент звонит кто-то и я получаю crlf <RING> crlf crlf <OK> crlf.

От этого зависит, как обрабатывать комманды контроллером. Не очень хочется после получения эха быть готовым к сообщениям любого содержания (RING, потерял сеть и т.д.)
PS: использую модуль SIMCOM300C.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
PIC_Embedder
сообщение Oct 19 2008, 13:30
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 30-07-08
Из: Украина Луганск
Пользователь №: 39 308



Мне кажется, что ты несколько драматизируешь ситуацию. У меня похожий алгоритм обработки. При ответе ожидаю LF. Если это будет LF от RING, а не от OK, то ничего страшного не произойдёт. Максимум пришедший позже ОК, будет воспринят как входящее сообщение. Поскольку его нет в списке на обработку, программа его просто проигнорирует.
Go to the top of the page
 
+Quote Post
david_off
сообщение Oct 19 2008, 15:44
Сообщение #3


Участник
*

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



Цитата(PIC_Embedder @ Oct 19 2008, 16:30) *
Мне кажется, что ты несколько драматизируешь ситуацию. У меня похожий алгоритм обработки. При ответе ожидаю LF. Если это будет LF от RING, а не от OK, то ничего страшного не произойдёт. Максимум пришедший позже ОК, будет воспринят как входящее сообщение. Поскольку его нет в списке на обработку, программа его просто проигнорирует.


В том то вся соль, что распознать вместо OK, приход двух сообщений RING, а потом ОК не получится.
Допустим что RING влез, тогда данные поступившие с порта будут:

CRLF O CRLF RING CRLF K CRLF

CRLF O CRLF RING CRLF K CRLF
Тогда контроллер, по алгоритму который я описал, получит сообщение O, после него мусор RING, он как бы не взят с двух сторон CRLF, а затем ещё какое-то K.

Так как же по твоему распознать два сообщения OK и RING, не делая тот мудрый буфер с накоплением и дополнительным анализом?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 05:23
Рейтинг@Mail.ru


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