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

 
 
> Исходники для SIM300x, AVR
RomanRom
сообщение Oct 23 2008, 08:59
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 231
Регистрация: 14-02-05
Пользователь №: 2 635



Как-то не густо в сети с исходниками на Си для AVR.
Интересует момент полноценного приема ответов от SIM300x по UART (глубина буфера, тайминги между посылками, использование прерываний или постоянный опрос UART, длительность таймаута, если не пришел очередной символ). Где глянуть образец?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
david_off
сообщение Nov 1 2008, 15:37
Сообщение #2


Участник
*

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



Запоздал конечно я со своим коментом, но лучше поздно чем никогда.
На горьком опыте убедился, что ЭХО действительно абсолютно не нужно. Хотя в моей первой реализации эхо обрабатывалось и довольно успешно, лафа закончилась, когда программа стала ветвится и очень глубоко. Отладка стала практически невозможной.
Короче пришлось всё полностью убить и переписать заново.

Долго анализировал и пришёл к выводу, что практически все команды, которые я использую, будут состоять из кусков двух типов. Только предварительно нужно указать короткий формат команд (ATV0).
Тогда куски будут следующие:
1) <byte>CR - назвал shortMessage;
2) CRLF<string>CRLF - назвал longMessage.
Если в прерывании по приёму данных создать процедуру, которая бы ловила и считала количество shortMessage и longMessage, то можно можно достаточно достоверно знать, что пришёл ответ. Только перед посылкой команды нужно не забыть "счётчики кусков" обнулить. Для каждой комманды заведомо известно из каких кусков она будет состоять. Исключение из правил составляют два случая:
1) Команды, ответ на которые состоит из нескольких строк CRLF<string1>CRLF<string2>...CRLF<stringN>OK. Примером такой команды может быть AT+CLCC.
2) Когда ответ на команду ERROR или +CME ERROR и т.д.

С первым случаем решил просто. Они мне не нужны и я не использую такие команды.
Со вторым - после получения и shortMessage и longMessage анализирую их на содержание возможных неожиданных кодов, которые должны досрочно прервать ожидание корректного ответа. Если такое наблюдается, то вспомогательный флаг экстренного прерывания устанавливается и процедура, ожидающая прихода ответа нужного формата вываливается досрочно. Причём в анализаторе содержания встроена логика, которая на полезные неожиданные сообщения реагирует нужным образом (например на сообщение RING).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- RomanRom   Исходники для SIM300x   Oct 23 2008, 08:59
- - ivstech   Для ПИКа есть исходники на Си от олимекса. http:/...   Oct 23 2008, 09:24
- - david_off   Я для своих нужд написал свои процедуры. Заняло 2 ...   Oct 24 2008, 17:21
|- - RomanRom   Цитата(david_off @ Oct 24 2008, 21:21) Я ...   Oct 27 2008, 10:54
||- - gora_electric   Цитата(RomanRom @ Oct 27 2008, 13:54) Есл...   Oct 27 2008, 20:57
|- - ivstech   На мой взгляд, эхо лучше отключить. Заодно и прогр...   Oct 28 2008, 07:55
|- - Baser   Цитата(ivstech @ Oct 28 2008, 09:55) На м...   Oct 28 2008, 10:52
|- - PIC_Embedder   Цитата(Baser @ Oct 28 2008, 14:52) +1 Ана...   Oct 28 2008, 11:27
|- - Baser   Цитата(PIC_Embedder @ Oct 28 2008, 13:27)...   Oct 28 2008, 14:14
- - david_off   Проект коммерческий, но на свой страх и риск подел...   Oct 27 2008, 21:34
- - PIC_Embedder   Ещё раз убедился, что лучше всё делать самому. На ...   Oct 27 2008, 22:53
|- - david_off   Цитата(PIC_Embedder @ Oct 28 2008, 02:53)...   Oct 28 2008, 05:00
- - Dron_Gus   А я свой драйвер реализовал аля State Machine с та...   Nov 3 2008, 00:37
- - vesago   Можно тут глянуть принцип.   Nov 3 2008, 06:54
- - david_off   Цитата(vesago @ Nov 3 2008, 10:54) Можно ...   Nov 4 2008, 09:20
- - RomanRom   Есть предложение оформить все разумные мысли в еди...   Nov 4 2008, 17:09
|- - david_off   Цитата(RomanRom @ Nov 4 2008, 21:09) Есть...   Nov 7 2008, 09:44
- - vesago   Цитата(david_off @ Nov 4 2008, 11:20) Поч...   Nov 7 2008, 15:13


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

 


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


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