Новый протокол под ORFA

Разработка стандартизированных модулей для домашнего робостроения.
Правила форума
Правила раздела OpenRobotics

Новый протокол под ORFA

Сообщение =DeaD= » 23 авг 2010, 23:03

Цели:
1. Получить более человек-читаемый протокол работы с контроллерами OR;
2. Унифицировать прошивки ORFA и ORC-32 (которая совместимая по командам с SSC-32);
3. Позволить в протоколе выполнять не только унифицированные i2c-команды, но и обращаться к конкретным устройствам удобным, а не унифицированным способом. Например выставление сервы 0 в положение 1600 будет "#0 P1600<cr>";
4. Встроить минимальную подсказку прямо в контроллер, чтобы можно было в терминале написать "?" и получить подсказку по синтаксису основных команд;

Начал работу, для начала свел оба парсера в одно место (сейчас парсинг идёт в два захода - сначала парсится команда из уарта - идёт контроль синтаксиса + все числа из текста переводятся в байты, а потом это выполняется).

Так что вместо прежних parser.c + command.c теперь будет чистый parcer.c.

Проверил - всё работает, дальше пропишу процедуру регистрации парсеров по первым буквам и вынесу в отдельные процедуры парсеры под каждую команду. А после сделаем механизм регистрации парсеров такой же, как механизм регистрации драйверов.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Новый протокол под ORFA

Сообщение setar » 23 авг 2010, 23:54

похоже Вы приблизились к линукс подобному командному интерфейсу
что то типа усеченного функционала применяемого в загрузчиках типа u-boot
возможно есть смысл посмотреть готовый код парсинга параметров командной стороки и выдачи хелпа в коде u-boot

Добавлено спустя 2 минуты 52 секунды:
если длинна строки не очень коротка то возможно есть смысл парсить полные команды с их укороченными алиасами
например чтобы можно было написать
set port 0 direction out
или
s p 0 d o
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: Новый протокол под ORFA

Сообщение Виталий » 24 авг 2010, 00:05

Мы с товарищем решили для сделать немного по-другому.
Просто сделали RPC для контроллера и все, на мой взгляд это удобнее.
Скоро выложим версию для Ардуино.

Кратко суть такая...
Пишешь функцию на контроллере, которая реализует какую-то работу с периферией:
Код: Выделить всё
void SetUART1Baud(int baud);

Жмешь в Ардуине спец. кнопку, генерируются привязки, при помощи которых можно вызвать эту функцию с ПК.

Пользоваться надо будет так (для C#):
Код: Выделить всё
var robot = new RemoteObject();
robot.SetUART1Baud(9600);
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Новый протокол под ORFA

Сообщение =DeaD= » 24 авг 2010, 07:52

Виталий писал(а):Мы с товарищем решили для сделать немного по-другому.
Просто сделали RPC для контроллера и все, на мой взгляд это удобнее.

Это не то чтобы удобнее, это вообще другая задача :) хотя тоже нужная и полезная.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Новый протокол под ORFA

Сообщение EdGull » 24 авг 2010, 08:27

=DeaD= писал(а):1. Получить более человек-читаемый протокол работы с контроллерами OR;
3. Позволить в протоколе выполнять не только унифицированные i2c-команды, но и обращаться к конкретным устройствам удобным, а не унифицированным способом. Например выставление сервы 0 в положение 1600 будет "#0 P1600<cr>";
4. Встроить минимальную подсказку прямо в контроллер, чтобы можно было в терминале написать "?" и получить подсказку по синтаксису основных команд;

а я тебе сколько лет назад говорил об этом? :wink:
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Новый протокол под ORFA

Сообщение =DeaD= » 24 авг 2010, 08:38

Говорил-то говорил, а вот ключевой пункт 2 из-за которого по большому счету всё и затевается ты упустил :)
Очень уж утомительно объяснять людям 2 протокола и поддерживать 2 прошивки :pardon: остальное - приятный бонус :roll:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Новый протокол под ORFA

Сообщение Grem » 24 авг 2010, 09:41

что будет с существующим вариантом ORFA?
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1530
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия
прог. языки: Java, C

Re: Новый протокол под ORFA

Сообщение =DeaD= » 24 авг 2010, 10:05

Я думаю он будет интегрирован в новый вариант, т.е. система будет понимать как команды "S40 11 00 05BC P", так и "#0 P1500", первый формат останется по большому счету для работы с подчиненными i2c-девайсами, а совместимость со старым протоколом - приятный бонус.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Новый протокол под ORFA

Сообщение Grem » 24 авг 2010, 10:38

да, я совместимость и имел ввиду. хотя мне, как конечному пользователю, существующий. вариант команд более нравится.
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1530
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия
прог. языки: Java, C

Re: Новый протокол под ORFA

Сообщение =DeaD= » 24 авг 2010, 11:20

Существующий вариант команд, или в самом плохом случае - аналогичный, будет сохранён. Я просто убьюсь писать весь софт с нуля под шестиногов и прочую живность, поэтому крайне хочется иметь совместимость по командам с SSC-32.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Новый протокол под ORFA

Сообщение =DeaD= » 26 авг 2010, 11:42

Текущий вариант файлов (от command.* отказался) для папки serialgate
Вложения
serialgate.zip
(7.16 КиБ) Скачиваний: 0
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Новый протокол под ORFA

Сообщение Vooon » 26 авг 2010, 18:52

Выкинул serialgate, orc32.
i2c_slave сделал системной библиотекой i2c. ее еще нужно научить перекидывать свои сообщения мастер-внутренний слейв.

Написал eTerm, в нем набор парсеров sg и orc32 (TODO).
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: Новый протокол под ORFA

Сообщение =DeaD= » 01 окт 2010, 00:04

Добавил в orc32 парсер обработку команды управления сервами #+P с модификаторами S и T
Добавил в sg парсер обработку локальных i2c запросов

Уже близко к релизу. Осталось сделать парсеры и простые команды для работы с портами и АЦП.

Текущие результаты в репозитарии, ветка new_parser
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Новый протокол под ORFA

Сообщение Michael_K » 01 окт 2010, 02:07

Dead, а можно прояснить вот такой вопрос.
Допустим, я хочу подключить к I2C на OR-контроллере внешние датчики (ну, компас, например и термометр)... Cможет ли штатная ORFA с ними работать, или надо вписывать свои драйверы-адаптеры?
Или тот же вопрос с другой стороны - допустим, я хочу сделать I2C датчик. Что мне нужно знать, чтобы ОРФЕ было хорошо?

Пытался читать доку - не въехал...
(для кого вы ее писали - для себя?)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Новый протокол под ORFA

Сообщение =DeaD= » 01 окт 2010, 07:27

Штатная ORFA должна без вопросов работать с внешними i2c-slave устройствами.

Пытался читать доку - не въехал...
(для кого вы ее писали - для себя?)

Обожаю такие глубокомысленные замечания.
1. Какую конкретно доку пытался читать?
2. М.б. для пущей конструктивности критики стоит указать что конкретно непонятным осталось?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

След.

Вернуться в Open Robotics

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5