Первые впечатления о ucos/GUI(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Константин Т 21 ноября 2003 г. 09:43

Заинтересовался ucos/gui так как что-то подобное слепил для себя. Вообще, как я понял, ее выпускают две фирмы SEGGER и Micrium по крайней мере даташиты у них очень похожи. Описание очень впечатлило!

Все крутилось на меге128 и жки 128х64.
За пол дня подстегнул драйвер, компилил в среде 2.28. Сразу обнаружились следующие недостатки:

1.Большой расход ОЗУ. Что-то более серъезное, чем рисование кружочков, квадратиков и вывод текста не получится без внешней памяти.
2. Не работает GUI_FLASH, придется ручками перепахивать код, чтобы хотя бы фонты держать в о флеше.
3.Отсутствие поддержки русских фонтов, тулзами конвертить и подключать виндовские фонты не пробовал.
4.На кой ляд там столько шрифтов, да еще пропорциональных :), мне кажется для встроенных систем это из пушки по воробъям.
5.Разочаровало отсутствие поддержки printf, хотя с этим можно смириться.

Мой вывод - для проектов на PIC, AVR итд без внешней памяти проще взять что-нибудь попроще, типа ramtex, еще лучше свое написать. Конечно, впечатляет оконный менеджер, когда два окошка , каждое для свое задачи, ну прямо Embedder Windows:).

Из плюсов - может сильно облегчить жизнь, когда надо сделать поддержку многоцветных дисплеев, точскринов, море памяти.
На мой взгляд, для проектов средней сложности, более перспективно избегать средний уровень типа оконного менеджера и писать сразу же унифицированный пользовательский интерфейс для ввода и настройки приборов, систем.

Например, пришлось разрабтывать такой интерфейс для своих приборов, уже написано коло 10 видов окон для двух разных дисплеев (типа выбор одного значения из нескольких, тракбар для введения чисовых значений, чекбоксы, поддержка встроенной помощи...). Пример структуры для главного меню

typedef struct{
char const __flash *name_menu;
unsigned char type;
void const __flash* high_menu;
char const __flash *help_menu;
void const __flash* funcrun;

void const __flash* (*setting_menu);
unsigned char *chData;
unsigned char cnt_setting;
char const __flash *bmp;
}TMainMenu;

Те для любого проекта, надо просто проинициализировать структуры во флеше и интерфейс работы с пользователем готов. Еще плюсы такого подходо - минимальный расход ОЗУ.
Кстати, хотелось бы увидеть удачные реализации такого пользователського интерфейса в инете, самому приходилось смотреть на мобильники и выбирать удачные варианты. Может кто-нибудь поделится своим опытом, есть ли интересные наработки?

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru