roboforum.ru

Технический форум по робототехнике.

МиниБот Студия

Готовая электроника для самодельного робота. Уровень от начинающих до опытных конструкторов.

Re: МиниБот Студия

Сообщение MiBBiM » 25 авг 2008, 11:45

EdGull писал(а):Запускаете приложение

Упс.
EdGull писал(а):с точки зрения бутлоадера ничем

А с точки зрения прошивок? Надо ли делить прошивки простой и про версии? Т.е. разрешать ли пользователю прошивать версию прошивки для мбпро на мб?
EdGull писал(а):уарт

Прошу прощения, аппаратные средства подключения. В магазине вот это:
*Запаяная плата без кода для моста USB-ZigBee (FT232-Mega88-CC2500)
*Микросхема интерфейса UART-RS485 MAX485 (ST485, ADM485) SO8
*Плата интерфейсная USB-UART со шнурами и подачей питания для робота МиниБот
Таким образом, получается три пресета: c виртуальным компортом и радиомодулем, с виртуальным компортом и проводом и, напоследок, с реальным компортом.
Вложения
MBSReincornation 0.027nc.rar
(635 КиБ) Скачиваний: 38
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: МиниБот Студия

Сообщение EdGull » 25 авг 2008, 12:05

аппаратные средства подключения. В магазине вот это:

с точки зрения ПК и минибота это всё равно уарты

Добавлено спустя 8 минут 15 секунд:
А с точки зрения прошивок? Надо ли делить прошивки простой и про версии? Т.е. разрешать ли пользователю прошивать версию прошивки для мбпро на мб?

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

Re: МиниБот Студия

Сообщение MiBBiM » 25 авг 2008, 17:12

Ок.
EdGull писал(а):аппаратные средства подключения. В магазине вот это: с точки зрения ПК и минибота это всё равно уарты

Я понимаю, что это уарт. Другое дело то, что для этих видов подключения будут необходимы различные настройки компорта. Например, для радиомодуля - это пониженный битрейт, а для прямого подключения к компорту - включенный аппаратный контроль потока, например.
Вобщем, сейчас я сделаю изменяемые пресетя настроек для порта (раньше из нельзя было изменить).
EdGull писал(а):хороший вопрос, вообще-то по хорошему надо прописывать в миниботов какой avr у него на борту

Вот из чего состоит проект. Скажите, что ещё необходимо добавить (комментарии добавлены)
Код: Выделить всёРазвернуть
    {ABOUT}
    FProjectName:string; имя проекта
    FShortComment: string; короткий комментарий
    FVersion: single; версия проекта
    FFromSite: boolean; проект авляется проектом с сайта. изменение такого проекта запрещено
    FDate: TDateTime; дата последних изменений
    FFileSize: cardinal; размер файла-проекта вместе с файлами(скрытое свойство, нужно только в текущей сессии)
    FFilePath: string; путь до файла-проекта а этой машине(скрытое свойство, нужно только в текущей сессии)
    {HEX}
    FHasHex: Has; имеет ли проект хекс(да,нет, встроенный)
    FHexPath: string; путь до внешнего файла-проекта
    FHexStr: TStrings; строки хекса
    {CODE}
    FHasCode: Has;
    FCodePath: string; тоже самое что и с хексом
    FCodeStr: TStrings;
    {WIDECOMMENT}
    FHasWideComment: boolean; имеет ли проект расширенный комментарий
    FWideCommentStr: TStrings;  строки его
    {TERMINAL CODES}
    FHasTerminalCodes: boolean; имеет ли терминальные коды
    {FILES}
    FHasFiles: boolean; имеет ли файлы
    FFiles: TStrings; строки описатели файлов

Сейчас сделал активацию-дезактивацию кнопок меню. Работаю над причесыванием программатора
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: МиниБот Студия

Сообщение EdGull » 25 авг 2008, 17:36

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

Re: МиниБот Студия

Сообщение Сергей » 25 авг 2008, 17:40

Чтобы избавить пользователей форума от китайских грамот, рекомендую сделать просто ChangeLog хороший, и сюда выкладывать только новые версии, кому нужно тот сам почитает ChangeLog и поможет если захочет.
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: МиниБот Студия

Сообщение MiBBiM » 25 авг 2008, 17:43

комментарии к каждой строке ведь есть.
2 Сергей: оно конечно и надо, но жуть не хочется. гораздо проще здесь написать, а первую страницу все-равно никто не просматривает 100%.
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: МиниБот Студия

Сообщение Сергей » 25 авг 2008, 17:48

Не, я не говорю что нада первый пост обновлять, его никто не читает. Просто новым постом прикрепляешь новую версию
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: МиниБот Студия

Сообщение Vooon » 25 авг 2008, 19:58

Эх, всеже придется ткнуть носом, что и где...

  1. Идем на http://www.bitbucket.org регистрируемся, создаем репо (бесплатно предлагают только одно и 150 метров места)
  2. Смотрим робовику [[Установка DVCS Mercurial]], выполняем.
  3. Перегружаем машину (актуально только для винды)
  4. Заходим в папку с проектом, Файл -> TortoiseHG -> Settings -> Global --> закладка User, пишем в поле Username
    строку вида username or nick <email>
  5. Файл -> TortoiseHG -> Create Repository Here
  6. Файл -> TortoiseHG -> Add Files
  7. Файл -> HG Commit, Пишешь initial а с новой строки перечисляешь что сейчас есть.
  8. Файл -> TortoiseHG -> Synchronize, адресс берешь на битбукете (Clone/Push URL), выполняеш Push

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

Re: МиниБот Студия

Сообщение Сергей » 25 авг 2008, 20:03

Не думаю что человек которому лень писать changelog и искать иконки будет юзать репо..
Сергей
 
Сообщения: 3744
Зарегистрирован: 29 дек 2004, 23:15
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей

Re: МиниБот Студия

Сообщение Vooon » 25 авг 2008, 20:07

Пример того, что получится можно видеть здесь: https://www.bitbucket.org/vooon/minibot-sercontrol/
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: МиниБот Студия

Сообщение MiBBiM » 25 авг 2008, 21:36

Vooon писал(а):Эх, всеже придется ткнуть носом, что и где... Идем на http://www.bitbucket.org регистрируемся, создаем репо (бесплатно предлагают только одно и 150 метров места) Смотрим робовику [[Установка DVCS Mercurial]], выполняем. Перегружаем машину (актуально только для винды) Заходим в папку с проектом, Файл -> TortoiseHG -> Settings -> Global --> закладка User, пишем в поле Usernameстроку вида username or nick <email> Файл -> TortoiseHG -> Create Repository Here Файл -> TortoiseHG -> Add Files Файл -> HG Commit, Пишешь initial а с новой строки перечисляешь что сейчас есть. Файл -> TortoiseHG -> Synchronize, адресс берешь на битбукете (Clone/Push URL), выполняеш PushПосле этого на битбукете можно будет увидеть короткий лог что сделано.Нужно только после изменения кода коммитить с внятным описанием что ты сделал и ремя от времени производить push в основной репозитарий

Вы уже писали про контроль версий. Не думайте, что я о нём забыл :) Прст по моему мнению, проект не дорос ещё до стадии чего-то приличного. Но если вы настаиваете...
Сергей писал(а):Не думаю что человек которому лень писать changelog и искать иконки будет юзать репо..

1. Если это позволит экономить время, то почему бы и нет?
2. Почему бы кому-нибудь и не поискать их? Вдруг кто-нить найдется добрый :D . Хотя, врядли. :(
3. Откуда вы черпаете такую слепую уверенность?
P.S. Changelog ведется с этой версии.
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: МиниБот Студия

Сообщение MiBBiM » 27 авг 2008, 11:18

Итак, вот и очередное обновление. Версия 0,028nc.
Все изменения - в changelog'e. Если вкрадце, то добавлен терминал и полностью доведен программатор+не удержался и добавил возможность менять цветовую палитру скина и насыщенность цвета)
Кто хочет, может проверить терминал. запуск - terminalstart, стоп - terminalstop и очистка - terminalclear. Пока возможности не было проверить, вечером кину перемычку на ком-порт и проверю.

2Edgull. Программаторная часть программы уже врядли будет меняться. Проверяйте.
Инструкция:
Инструкция писал(а):Запуск
Настройки - порт - настраиваете
Файл-новый
Проект - добавить - хекс - ДИНАМИЧЕСКИЙ.
кнопочка flasherbegin, отменить можно flasherstop

Вот проект если без кода:
Проект писал(а):
  • Имя проекта
  • Короткий комментарий
  • Версия проекта
  • Проект авляется проектом с сайта или нет. Проекты с сайта изменять нельзя.
  • Дата последних изменений
  • Hex
  • Исходник
  • Расширенный комментарий - файл .rtf - поддерживает стили текста (делается Microsoft Word'ом)
  • Терминальные коды
  • Файлы

Добавляем пункт о платформе? Что-нибудь ещё?
Вложения
MBS 0.028nc.rar
(668.62 КиБ) Скачиваний: 38
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: МиниБот Студия

Сообщение MiBBiM » 28 авг 2008, 08:21

И ещё. Какой бутлодер используется? Которому надо отсылать "P" или тот, что на "S" реагирует?

Добавлено спустя 48 минут 25 секунд:
P.S. Быть может, отключить вообще возможность создания своих проектов? Т.е. сделать прст просмотровщик этих самых проектов?
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: МиниБот Студия

Сообщение MiBBiM » 28 авг 2008, 12:55

P.P.S. Да, кст. Терминал работает (с утра проверял). Только нзн насчет спец символов: у меня есть подозрение, что они обрабатываться не будут. Ближе к ночи проверю и подумаю что с этим можно сделать
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: МиниБот Студия

Сообщение svp » 29 авг 2008, 15:48

Насчет формата файла проекта.
Так-как речь не идёт о хранении внутри проекта больших объёмов мультимедийной информации формат XML будет предпочтительнее чем бинарный файл. И вот основные достоинства:
1. Полно стандартных парсеров.
2. Легко разобраться со структурой.
3. Легко отлаживать (просто видно глазами что не так).
4. Легко реализовать свой механизм сереализации в XML.
5. Полная поддержка UTF-8.
6. Сторонние разработчики легко смогут присоединиться к пректу и добавлять в файл проета свои вложения с данными плагинов.
7! Не нужно дополнительно заботиться об обратной совместимости пректов, сохранённых в разных версиях программы.
8. В XML можно добавлять бинарные данные.

Простейший механизм сериализации:
1. Каждый класс должен уметь сохранять и загружать себя из узла XML. Для этого у него должна быть пара методов: SaveToXML и LoadFromXML. Первый метод-функция возвращает XML-узел с сериализованным экземпляром класса. Второй процедура -- получает через параметр узел и пытается из него загрузиь своё состояние. При ошибке должен генерироваться excepton определённого класса с указанием причины ошибки.
2. Активно используем наследование, инкапсуляцию и полиморфизм. Создаём абстрактных предков с виртуальными методами описанными выше. Потомки этих классов должны лишь перекрыть виртуальные методы и добавить в узел свои поля и вложенные узлы.
3. Каждый класс должен знать свой тег. В качестве тега можно использовать название класса, а классы зарегистрировать в едином списке, дабы по имени можно было получить класс (это, кстати, можно поручить RTTI). Таким образом каждый класс сможет определить может ли он грузиться из данного ему узла или следует сгенерировать exception.
4. Используем коллекции. Делаем предка всех сохраняемых коллекций и учим его сохранять в XML-узел своё содержимое.
5. Делаем предка всех элементов коллекций и учим его сохраняться в XML. (Всё! Любые коллекции сохраняются одной строчкой!)

Как это применить в конкретном случае.
Берём простенький и шустренький парсер XML. Например этот:
SimpleXML_1.0.1.rar
Простой и быстрый парсер XML
(82.73 КиБ) Скачиваний: 20

Объектная модель этого парсера построена на основе интерфейсов. Работать с ним просто. Не надо заботиться об освобождении памяти и уничтожении объектов. В прилагаемом примере и справке всё просто и наглядно показано.

Так же в XML можно хранить и настройки программы опираясь на ту же самую модель сериализации. Можно хранить пресеты с настройками, а так же настройки плагинов, которые когда-то таки появятся, если проект не зачахнет.
Аналогичной расширяемости с использованием бинарных файлов можно добиться только реализовав чунковую структуру, аналогичную формату файлов, например 3dMAX. Однако о читабельности, прозрачности и простом стандартном парсере придётся забыть.

Если бы мне удалось посмотреть последнюю версию Ваших исходников, возможно я ещё каким-нибудь советом мог бы облегчить вам жизнь=).
Ну и вопросы.. Задавайте, если что не понятно.

Насчет того, что ещё нужно добавить в данные о проекте:
1. Глобальный уникальный идентификатор проекта.
2. Глобальный уникальный иднтификатор версии.
В качестве них можно использовать обычные GUIDы, которые используются в технологии COM. Для их генерации помимо WIN API есть, также, и независимые от платформы функции.
Нужны эти идентификаторы, чтобы однозначно определять и различать разные версии одного и того же проекта. Ведь в перспективе речь идёт о каком-то интернет-хранилище?
В любом случае используя XML структуру нам не придётся дополнительно заботиться об обратной совместимости проектов. Это очень важный плюс, который я, кстати, чуть не забыл упомянуть выше.
Аватара пользователя
svp
 
Сообщения: 42
Зарегистрирован: 13 дек 2005, 16:01
Откуда: Белгород
прог. языки: object pascal, c++, Lisp, Prolog

Пред.След.

Вернуться в МиниБот — национальный класс роботов

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

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