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

 
 
> Исходники для 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
Ответов
vesago
сообщение Nov 3 2008, 06:54
Сообщение #2


Тутэйшы
****

Группа: Свой
Сообщений: 708
Регистрация: 30-11-04
Пользователь №: 1 263



Можно тут глянуть принцип.
Go to the top of the page
 
+Quote Post
david_off
сообщение Nov 4 2008, 09:20
Сообщение #3


Участник
*

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



Цитата(vesago @ Nov 3 2008, 10:54) *
Можно тут глянуть принцип.


Почитал я эту статью и так и не понял зачем она в данной теме. Там что между строк надо находить нужную информацию?! Вообще ни одного слова, которые были бы полезны 07.gif




Что касается моего сообщения выше (там где описывал принцип обработки AT комманд), то продолжая свои опыты и общаясь с очень уже осведомлённым программистом <@Аrk> пришёл к окончательному варианту. Уже реализовал и проверил работоспособность.

Кусок из переписки с @Ark. Вот что он мне писал:
Я Вам рекомендую всегда использовать следующие настройки модема:
E1 “Эхо”команд включено
Q0 Ответы не подавляются
V1 Текстовая форма ответов
X4 Стандартный полный набор ответов
Тогда избежите массы ненужных проблем.

Действительно один из самых удобных вариантов. Единственно что эхо можно не использовать, тогда незначительно снижается надёжность системы, но упрощается обработка сообщений. Это уже решать каждому по себе. Я для себя эхо убрал и получил вот такой алгоритм.

Можно все сообщения ловить по наличию CRLF в начале и в конце каждого сообщения. После получения очередного сообщения, необходимо его проверить на наличие внештатных кодов. Например ERROR, +CME ERROR, +PDP DEACT, RING, +CSMI. Внештатными я называю всё, что может прийти неожиданно. Так вот, если сообщение не содержит внештатных кодов, то увеличивается счётчик полученных сообщений и процедура, пославшая ат команду, может быть уверена, что в буфере лежит всё, что относится именно к её ответу. Надо хорошо проработать обработку всех внештатных сообщений, что бы обеспечить 100% отлов всего, что не относится к нормальным ответам на команды.
Т.е. алгоритм таков.
- послал команду
- ждешь увеличения счётчика полученных сообщений (внештатные сообщения счётчик не увеличивают)
- увидев пришедший ответ, обрабатываем его.


Кроме того необходимо реализовать механизм аварийного вываливания из цикла ожидания ответа при условии получения кодов ошибки (ERROR, +CME ERROR и т.д.). После получения таких кодов, модуль уже не возращает нормальный ответ.
Т.е. к приведённому выше алгоритму прибавляется ожидание не только нормального ответа, а проверка флага наличия аварийных ответов.

Так же добавлю, что при использовании GPRS и некоторых типов команд (писал выше) возможно появление следующих форм ответов:
1) CRLF <ответ> CRLF <ответ> CRLF <ответ> CRLF (пример CLCC)
2) CRLF <ответ> (пример REMOTE IP: xxx.xxx.xxx.xxx).
Эти ответы не будут корректно обработаны моим алгоритмом, но проблема просто решается. С командами типа CLCC я вообще не работаю - они мне не нужны. А со второрым типом ответа тоже всё очень просто. Это сообщение вылазит после появления подлкючения от другого устройства. Если все подключившиеся устройства будут начинать передавать данные, в начале которых будут стоять байты 0x0D 0x0A, то это и закроет не законченный формат CRLF <ответ> - модуль корректно получив данное сообщение, может продолжать правильно функционировать.
Go to the top of the page
 
+Quote Post
RomanRom
сообщение Nov 4 2008, 17:09
Сообщение #4


Местный
***

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



Есть предложение оформить все разумные мысли в единую библиотеку функций для SIM300 по подобию Procyon AVRlib http://www.mil.ufl.edu/~chrisarnold/compon...ard/AVR/avrlib/

Архив функций можно было бы выкладывать в этой ветке или у кого-нибудь на хостинге для всеобщего обозрения и дополнения
Go to the top of the page
 
+Quote Post
david_off
сообщение Nov 7 2008, 09:44
Сообщение #5


Участник
*

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



Цитата(RomanRom @ Nov 4 2008, 21:09) *
Есть предложение оформить все разумные мысли в единую библиотеку функций для SIM300 по подобию Procyon AVRlib http://www.mil.ufl.edu/~chrisarnold/compon...ard/AVR/avrlib/

Архив функций можно было бы выкладывать в этой ветке или у кого-нибудь на хостинге для всеобщего обозрения и дополнения


Думаю затея хорошая, но нереализуемая.
1) Мало кто будет писать такие библиотеки, в которых будет всё прокоменчено и понятно друг другу.
2) Мало кто будет закладывать всеобщую универсальность = пригодность использования одной библиотеки многими пользователями.
3) В данной ветке будет просто невозможно найти что либо полезное. Надо 100% хостинг + что бы кто-то один следил за порядком там. Что бы не было повторов, глюкнутых библиотек.
4) Ни кто не захочет писать хелпы, как в приведённом примере.

В доказательство своих изречений могу поставить себя в пример. Пункт №1 я бы ещё к себе не применил, но вот 2, 3, 4 - это моё. Библиотека для AT-комманд у меня есть, но к её 1000 сточек кода нужно 5000 строчек объяснения как ей пользоваться.
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
- - david_off   Запоздал конечно я со своим коментом, но лучше поз...   Nov 1 2008, 15:37
- - Dron_Gus   А я свой драйвер реализовал аля State Machine с та...   Nov 3 2008, 00:37
- - vesago   Цитата(david_off @ Nov 4 2008, 11:20) Поч...   Nov 7 2008, 15:13


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

 


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


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