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

 
 
> Подскажите алгоритм, ATmega + SIM300
DeVOuR
сообщение Feb 21 2010, 22:40
Сообщение #1


Участник
*

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



Привет всем.
Подскажите пожалуйста алгоритм разделения посылок от модема к МК (будь-то ответ на команду, включение, либо какие либо сообщения о пониженном питании).
В принципе, распознать, что за ответ - проблем нету. Проблемма в том, как определить конец посылки от модема.
Конец строки - CR LF. Но иногда модем возвращает пару строк подряд. т.е. определив конец строки и пойдя ее обрабатывать в это время могет заломится следующая строка и поламать мне преридущую.
Вариант нескольких буферов приема не катит.

Единственное, до чего дошел - по приему CR LF врубать таймер на n мсек. Если в течении этого времени что-то придет - то продолжить писать в буфер. Если нет - то обработать буфер, разделенный все теми же CR LF на строки.
Возникает вопрос, каково должно быть это вот n сек, не все же команды обрабатываются одинаково по времени.

Ну и за одно, начитался,что модемы эти, бывает, лагают, и иногда их приходится ресетить. Кроме как отсутствия ответа от модема (опять же вопрос, какое время стоит ожидать ответа?) есть ли какие-то еще явные признаки о глюках на уровне МК?

Или стоит раз в несколько часов его принудительно ресетить?

Работа планируется только с смс и гпрс. Пока не будет получет ответ от одной команды - вторая не отправится.


Может, кто поделится опытом?

Спасибо за внимание.

Сообщение отредактировал DeVOuR - Feb 21 2010, 22:42
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DeVOuR
сообщение Feb 22 2010, 08:45
Сообщение #2


Участник
*

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



Спасибо за ответы.

Цитата
Где-то в документации видел примерные времена выполнения каждой команды (хотя может видел у telit).

Цитата
расписана табличка ат-команд и возможные таймауты ожидания ответа.

Я руководствуюсь пдф-иной SIM300_ATC_V2, в ней нет ниодного указания времени. (Если ошибаюсь, то извините, прошу ткнуть носом).

Вот тут почитал, что все экспериментально. Вот наверное тоже буду подбирать экспериментально под каждую команду отдельно.

Опять возник вопрос. Отправив команду и не получив ответа, можно ли как-то попытаться сбросить ее выполнение? Чтобы повторить попытку,к примеру.
Go to the top of the page
 
+Quote Post



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

 


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


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