|
|
  |
Описание конфигурации для пользователя. |
|
|
|
Jul 8 2006, 08:20
|

Профессионал
    
Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380

|
Возможно несколько  , но мне кажеться, что это касаеться и AVR. Сейчас на выходе устройство которое в значительной мере будет конфигурироваться потребителем. (калибровочные таблицы, включение/выключение некоторых функций, порядок реакции на внешние события) Некоторое время назад здесь обсуждалась возможность использования скриптовых языков (Tcl,Lua) для подобных целей и Evgeny_CD снабдил меня подробнейшей документацией по этому вопросу, за что ему огромное спасибо. Но встраивать в каждый проект интерпретатор дело достаточно трудоемкое и для AVR не всегда выполнимое. Поэтому хочется пойти более простым путем и описывать конфигурацию обычным текстовым файлом. Придумывать свой формат откровенно лень(да и времени особо нет). Из стандартных я знаю ini и xml. ini несколько устарел, да и найти на него готовый парсер достаточно сложно. xml мне кажеться слишком громоздким. Я знаю, что есть готовые компоненты для Билдера и классы в MFC для этих типов данных, но мне хотелось бы максимально отвязаться от конкретной среды и иметь код на чистом С/С++, с возможностью включать его куда угодно. Итак, кто подскажет, или готовый парсер, или достаточно простой текстовый формат, для описания конфигураций. Кто как поступает в подобных случаях.
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|
|
|
|
|
Jul 8 2006, 11:55
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(beer_warrior @ Jul 8 2006, 16:20)  Возможно несколько  , но мне кажеться, что это касаеться и AVR. Сейчас на выходе устройство которое в значительной мере будет конфигурироваться потребителем. (калибровочные таблицы, включение/выключение некоторых функций, порядок реакции на внешние события) Вышеприведенная цитата относится почти ко всем, относительно сложным, изделиям бытовой техники: TV, VIDEO, AUDIO etc. Я, конечно, в этом деле не профи, но может быть это как то поможет Вам...
--------------------
|
|
|
|
|
Jul 8 2006, 12:33
|

Профессионал
    
Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380

|
Цитата Вышеприведенная цитата относится почти ко всем, относительно сложным, изделиям бытовой техники: TV, VIDEO, AUDIO etc. Я, конечно, в этом деле не профи, но может быть это как то поможет Вам.. Замечательно, только эта техника управляется в диалоговом режиме, через пользовательское или системное меню.Меня интересует, чтобы пользователь описывал, допустим калибровочные коэффициеты, в файле и заливал в EEPROM, через UART или USB, не трогая собсно прошивку. С этим все понятно, а вот от перспективы редактировать бинарный файл образа EEPROM думаю пользователь будет не в восторге. Нужен текстовый формат. Причем совершенно все равно будет ли этот файл парситься программой-конфигуратором, или внутри самого девайса. Главное простой и удобный формат этих данных.
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|
|
|
|
|
Jul 8 2006, 13:59
|
Участник

Группа: Новичок
Сообщений: 50
Регистрация: 1-10-05
Пользователь №: 9 136

|
На мой взгляд редактирование руками XML приближается по сложности к редактированию в бинарном виде Для парсинга внутри устройтва ИМХО проще ini вы ничего не найдете, что вообще может быть проще чем список ключ= параметр? Я бы описал обьектную модель на Си , и возможно сделал для нее несколько оберток для одного\нескольких из скриптовых языков(лично для меня это был бы один из этих: python,ruby, tcl, jscript наверное можно найти и интерпретируемый Си или сделать самому из csh  ) .
Сообщение отредактировал shevek - Jul 8 2006, 14:02
--------------------
Мы не просто идем в будущее, мы его атакуем.
|
|
|
|
|
Jul 8 2006, 21:54
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(beer_warrior @ Jul 8 2006, 15:33)  Замечательно, только эта техника управляется в диалоговом режиме, через пользовательское или системное меню.Меня интересует, чтобы пользователь описывал, допустим калибровочные коэффициеты, в файле и заливал в EEPROM, через UART или USB, не трогая собсно прошивку. С этим все понятно, а вот от перспективы редактировать бинарный файл образа EEPROM думаю пользователь будет не в восторге. Нужен текстовый формат. Причем совершенно все равно будет ли этот файл парситься программой-конфигуратором, или внутри самого девайса. Главное простой и удобный формат этих данных. Не проще ли просто написать сопроводительную GUI оболочку, которая будет заливать в девайс все что надо. По большей части я поступаю так: - Вначале пишу подробную доку на еще несуществующие структуры конфигурационных полей (eeprom); - реализую по доке функциональность конфигурации девайса; - снабжаю девайс двумя дополнительными командами read/write epprom с указанного адреса и требуемое кол-во; - пишу GUI оболочку где в удобном для пользователя виде задаются и показываются все настройки девайса. - Оболочка при подключении к девайсу считывает eeprom и отображает пользователю настройки в удобном и понятном виде, а также позволяет изменять эти настройки "мышкой" и заливает их обратно в девайс. - после выполнения команды записи конфигурационных полей eeprom, девайс автоматически ребутится. Tcl/Lui тоже проще разбирать на Host application layer'е.
|
|
|
|
|
Jul 8 2006, 22:25
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Alex B._ @ Jul 9 2006, 01:00)  С одной стороны defunct прав (сам так делаю), с другой есть такое желание - отвязать юзера от дополнительных примочек. .... Если в ТЗ однозначно прописано - правлю сам в любом редакторе - тогда наверное ini-список - параметр-значение. Не получится все так гладко. В случае с ini-списком все равно должна быть тулза, которая разгребает данные из ини файла и заливает их в устройство. GUI оболочка в этом отношении много лучше. Если есть желание полностью отвязать юзера от дополнительных примочек, тогда достаточно предоставить ему: - подробную документацию конфигурационных полей. (фактически подробная карта памяти eeprom) - команды для записи/чтения произвольной ячейки eeprom.
|
|
|
|
|
Jul 8 2006, 23:05
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(sensor_ua @ Jul 9 2006, 01:32)  Есть у меня весёлая железяка - демокит на PGA309 - такой программируемый усилитель-"кондиционер" для мостовых сенсоров. Все калибровки/конфигурации производятся в обезумевшем от макросов exel-файле, а на выходе безмозглая утилита грузит вниз это всё через компорт. Видел, вроде, на телесиськах в проектах инструкцию на применение activeX в практических целях с exel. Честно говоря, от пользования таким вариантом остался только один неприятный момент - нужна была какая-то супер-полная версия офиса от мелкомягких, чтобы оно заработало  но, правда, в доке всё было написано. Это imho плохой путь. Почему плохой - потому что пользователю вместо того чтобы взять и просто отконфигурировать девайс придется изучать еще кучу всего лишнего - excel, названия полей конфигурации, безграмотную утилиту для заливки, разбираться каких компонетов не хватает для работы всего этого тандема... Не проще ли сразу написать грамотную и красивую утилиту, где все поля конфигурации описаны русским (или англ.) языком и расположены в удобной для поиска форме самими разработчиками девайса. Еще лучше встроить Web интерфейс. Лучше разработчиков все равно никто не сможет сделать утилиту конфигурирования, разве только разработчики совсем не обладают вкусом и никак не заботятся о пользователе. Простота конфигурирования устройства, напрямую зависит от желания разработчков помочь пользователю в этом вопросе. Если разработчику все-равно, что о нем подумает пользователь, тогда утилита будет сложной, кривой, некрасивой и непонятной в использовании. За примерами откровенно г....ых(вставить подходящее по смыслу слово) конфигурационных утилит, которые никогда нельзя делать, далеко ходить не надо (зачастую таковыми являются утилиты, написанные любым крупным гос предприятием СНГ, т.к. вопросы написания конфигурационных утилит на таких предприятиях, как правило, поручаются бывшим студентам-недоучкам). Как говорится, "не буду показывать пальцем", однако в своей практике сталкивался с таковыми и без мата с ними работать никак не получалось.
|
|
|
|
|
Jul 9 2006, 05:34
|

Дух погибшего транзистора
   
Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288

|
Цитата(beer_warrior @ Jul 8 2006, 12:20)  ini несколько устарел, да и найти на него готовый парсер достаточно сложно. прошу извинить топик дальше не читал. Нате вот лучше библиотечку ANSI C для парсинга ini. Пригодится если не в этом проекте так еще где-нить.  Я ее уже использовал, при этом пришлось дописать малюсенькую функцию strdup, которую она требовала.
--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
|
|
|
|
|
Jul 10 2006, 13:29
|
Участник

Группа: Новичок
Сообщений: 25
Регистрация: 27-02-06
Пользователь №: 14 736

|
Для питона есть такая приблуда как Cog, могет генерить нужный код. Тем самым избавляя пользователя от необходимости ручками править конечный код.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|