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

 
 
> Принцип построения консоли управления устройством, Поделитесь опытом кто как делает :)
mempfis_
сообщение Aug 12 2009, 08:43
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Стоит задача разаработать устройство которое должно иметь возможность управляться через UART.
Думаю встроить отладочную консоль чтобы можно было посылать в устройство комманды и получать ответы.
Комманды в виде одиночных символов реализовал. Теперь хочу расширить функциональность консоли и реализовать длинные команды
(наподобие АТ-комманд). Причём хочется сделать аппаратно-независимую консоль чтобы можно было переносить из проекта в проект меняя только низкоуровневые функции приёма/отправки символовов через UART.

Подскажите кто как делает подобные консоли. Интересует прежде всего как осуществляется поиск комманд в потоке принимаемых символов (выделение слов длиной 2 и более символа)? Какие стандартные библиотеки можно использовать?

Сейчас реализована входная FIFO-UART которая заполняется в прерываниях и функция считывания символа из FIFO которая возвращает -1 если нет данных или принятый символ. Одиночные символы отлавливать легко (считал - обработал), два - уже сложнее но пока реализую устанавливая флаги.
Как отловить три и более символа - вот тут нужны идеи smile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Goodefine
сообщение Aug 12 2009, 19:32
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 6-08-07
Из: Приднестровье, Тирасполь
Пользователь №: 29 581



Цитата(Dog Pawlowa @ Aug 12 2009, 20:21) *
И что, как контрпример себя ведет?
Использую односимвольные наборы команд в обе стороны. Никаких проблем.
Очень удобно - в одну сторону идут коды нажатых клавиш, а в другую - коды символов, подлежащих отображению...

У Вас все просто: все что отдал - сканкод, все что принял - подлежит отображению...
Я другое имел ввиду. К примеру возьмем дисплей с управляемой внешне подсветкой. Скажем, увеличить на одну градацию - символ "h", уменьшить - "l" . Остальное - отображаем. Как тогда контроллер отреагирует на на сообщение "hello world", если не использовать детерминацию ни по длине строки, ни по времени между поступлениями символов? Если же команды будут длинными, типа "light_background_down" / "light_background_up", то лишними проверками можно себя не утруждать - шанс, что потребуется отобразить именно такую строку, минимален. В этом суть моего первого замечания...


--------------------
Любой, заслуживающий внимания, опыт приобретается себе в убыток...
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Aug 13 2009, 02:18
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Goodefine @ Aug 12 2009, 22:32) *
В этом суть моего первого замечания...

Понятно.
Пожалуй, мы ушли далеко от обычного определения консоли.
Если устройство выдает "промпт", а человек как-то реагирует в пределах предоставленных ему возможностей, то подобные коллизии исключаются.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- mempfis_   Принцип построения консоли управления устройством   Aug 12 2009, 08:43
- - ukpyr   нужен приемный буфер на макс.количество символов в...   Aug 12 2009, 10:17
- - _Pasha   Собираете словарь команд (ASCIIZ), например Кодcon...   Aug 12 2009, 10:26
|- - zltigo   Цитата(_Pasha @ Aug 12 2009, 13:26) Собир...   Aug 12 2009, 11:24
|- - _Pasha   Цитата(zltigo @ Aug 12 2009, 14:24) Станд...   Aug 12 2009, 11:40
|- - AlexMad   Цитата(zltigo @ Aug 12 2009, 15:24) С раз...   Aug 20 2009, 18:52
|- - zltigo   Цитата(AlexMad @ Aug 20 2009, 20:52) А не...   Aug 20 2009, 19:23
- - DpInRock   Длинные команды - бессмысленное пижонство.   Aug 12 2009, 12:06
- - Goodefine   Зато обеспечивают детерминированное поведение сист...   Aug 12 2009, 14:31
|- - Dog Pawlowa   Цитата(Goodefine @ Aug 12 2009, 17:31) За...   Aug 12 2009, 15:44
- - Goodefine   Цитата(Dog Pawlowa @ Aug 12 2009, 18:44) ...   Aug 12 2009, 15:50
|- - Dog Pawlowa   Цитата(Goodefine @ Aug 12 2009, 18:50) В ...   Aug 12 2009, 17:21
|- - AHTOXA   Цитата(Dog Pawlowa @ Aug 12 2009, 23:21) ...   Aug 12 2009, 17:49
|- - Dog Pawlowa   Цитата(AHTOXA @ Aug 12 2009, 20:49) Гораз...   Aug 12 2009, 18:27
|- - AHTOXA   Цитата(Dog Pawlowa @ Aug 13 2009, 00:27) ...   Aug 12 2009, 19:06
|- - _Pasha   Цитата(Dog Pawlowa @ Aug 12 2009, 21:27) ...   Aug 12 2009, 19:10
- - SasaVitebsk   Читал протокол Пирамида. Правда это надпротокольны...   Aug 12 2009, 19:08
- - _Pasha   Цитата(zltigo @ Aug 12 2009, 14:24) Код.....   Aug 13 2009, 05:02
|- - AHTOXA   Цитата(_Pasha @ Aug 13 2009, 11:02) Ничег...   Aug 13 2009, 05:45
|- - _Pasha   Цитата(AHTOXA @ Aug 13 2009, 08:45) Как р...   Aug 13 2009, 05:52
|- - AHTOXA   Что-то не могу себе представить... Расскажите чуть...   Aug 13 2009, 06:00
|- - _Pasha   Цитата(AHTOXA @ Aug 13 2009, 09:00) как, ...   Aug 13 2009, 06:09
|- - AHTOXA   Насколько я понял, автор темы хочет консоль управл...   Aug 13 2009, 06:17
|- - mempfis_   Цитата(AHTOXA @ Aug 13 2009, 09:17) Наско...   Aug 13 2009, 06:41
|- - SasaVitebsk   Цитата(mempfis_ @ Aug 13 2009, 09:41) ...   Aug 13 2009, 16:01
- - _Pasha   Цитата(AHTOXA @ Aug 13 2009, 09:17) Наско...   Aug 13 2009, 07:02
|- - AHTOXA   Цитата(_Pasha @ Aug 13 2009, 13:02) Но, в...   Aug 13 2009, 07:23
|- - _Pasha   Цитата(AHTOXA @ Aug 13 2009, 10:23) проще...   Aug 13 2009, 07:33
|- - AHTOXA   Цитата(_Pasha @ Aug 13 2009, 13:33) Ага. ...   Aug 13 2009, 09:30
- - rezident   В дополнение ко всему хотел бы заметить, что конфи...   Aug 13 2009, 19:03
|- - SasaVitebsk   Цитата(rezident @ Aug 13 2009, 22:03) В д...   Aug 14 2009, 06:54
|- - MrYuran   Цитата(SasaVitebsk @ Aug 14 2009, 10:54) ...   Aug 14 2009, 07:13
- - amaora   Обычно использую бинарный протокол для отладки, но...   Aug 14 2009, 17:02
|- - defunct   ЦитатаПринцип построения консоли управления устрой...   Aug 15 2009, 15:52
- - C.S.   Цитата(mempfis_ @ Aug 12 2009, 12:43) Сей...   Aug 25 2009, 11:56
|- - _Pasha   Цитата(C.S. @ Aug 25 2009, 14:56) Смущает...   Aug 25 2009, 12:08
- - C.S.   2_Pasha Кхм, я путаюсь уровнем ниже. Как принимаем...   Aug 25 2009, 12:25
|- - _Pasha   Цитата(C.S. @ Aug 25 2009, 15:25) Первый ...   Aug 25 2009, 12:58
|- - AHTOXA   Цитата(C.S. @ Aug 25 2009, 18:25) Как при...   Aug 25 2009, 13:03
- - C.S.   На время между символами. Наверное, может и не нуж...   Aug 25 2009, 13:02
|- - _Pasha   Цитата(C.S. @ Aug 25 2009, 16:02) А sym_p...   Aug 25 2009, 13:17
- - C.S.   ЦитатаРазворачиваем это все в другой буфер (к сожа...   Aug 25 2009, 13:26
|- - _Pasha   Цитата(C.S. @ Aug 25 2009, 16:26) Аааа...   Aug 25 2009, 13:36
- - C.S.   Цитатаэто ж ответ от девайса пойдет только после п...   Aug 25 2009, 13:54
|- - _Pasha   Цитата(C.S. @ Aug 25 2009, 16:54) Так вед...   Aug 25 2009, 14:03
- - C.S.   Так а если надо будет вернуть чего-то более разумн...   Aug 25 2009, 14:17
|- - _Pasha   Цитата(C.S. @ Aug 25 2009, 17:17) Так а е...   Aug 25 2009, 14:36
- - C.S.   Понял. Идиот. Спасибо большое!   Aug 25 2009, 15:18
- - C.S.   Парсинг команд сделал. Использовал побайтовое срав...   Aug 27 2009, 09:33
|- - _Pasha   Цитата(C.S. @ Aug 27 2009, 12:33) Команды...   Aug 27 2009, 14:19
- - C.S.   Хм, попробую и так. Просто делить их по запятой. А...   Aug 27 2009, 14:45


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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 08:47
Рейтинг@Mail.ru


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