Size: a a a

2021 April 26

ED

Electronics Designer in Embedded Group
Самый простой пример - как в том образце кода, переход к главному меню.
источник

VK

Valentin Kornienko in Embedded Group
Сурово. Справедливо.
источник

VK

Valentin Kornienko in Embedded Group
Отчасти поддерживаю мысль.
источник

ED

Electronics Designer in Embedded Group
Целиком по очевидным причинам показать не могу, но вот обрезанный фрагмент. Надеюсь, из него будет понятно.

const menu_item_t ..._submenu[] = {
   {"Back",ITEM_TYPE_MENU,main_menu},
   {"...",ITEM_TYPE_ACTION,set_...},
   ...
   {"\0",ITEM_TYPE_LIST_END,NULL}
};

const menu_item_t PI_submenu[] = {
   {"Back",ITEM_TYPE_MENU,main_menu},
   {"Setpoint",ITEM_TYPE_ACTION,set_PI_setpoint},
   {"View values",ITEM_TYPE_ACTION,show_PI_params},
   ...
   {"\0",ITEM_TYPE_LIST_END,NULL}
};

const menu_item_t main_menu[] = {
   ...
   {"PI controller",ITEM_TYPE_MENU,PI_submenu},
   {"...",ITEM_TYPE_MENU,..._submenu},
   ...
   {"\0",ITEM_TYPE_LIST_END,NULL}
};
источник

VK

Valentin Kornienko in Embedded Group
Хм
источник

VK

Valentin Kornienko in Embedded Group
Нашел прикольный репозиторий. Прямо, полезный будет тем, кто с Pure C работает и задумывается об организации архитектуры приложения.

https://github.com/huawenyu/Design-Patterns-in-C
источник

VK

Valentin Kornienko in Embedded Group
Посмотрите тут примеры кода, вам может что-то пригодится.
источник

RS

Roman Storozhenko in Embedded Group
Получается что отдельно инстанцируешь и отдельно заполняешь дерево
источник

ED

Electronics Designer in Embedded Group
В смысле? Это все константные массивы.
источник

ED

Electronics Designer in Embedded Group
Это не плюсы. Тут все просто. :)
источник

ED

Electronics Designer in Embedded Group
Отдельно существуют только обработчики. При этом, теоретически, один и тот же обработчик может быть использован для разных пунктов меню, если это зачем-то надо.
источник

ED

Electronics Designer in Embedded Group
Во флеше.
источник

RS

Roman Storozhenko in Embedded Group
источник

RS

Roman Storozhenko in Embedded Group
Инстанцирлвание объектов и заполнение дерева единое.
Все в compile time
источник

ED

Electronics Designer in Embedded Group
На мой вкус, как-то очень много указателей на функции. Но может это и оправдано, я не разбирался глубоко. Или просто что-то не так понял...

У меня к каждому пункту меню прикреплен только один универсальный указатель, тип которого определяется другим полем.
источник

RS

Roman Storozhenko in Embedded Group
Пока не придумал как сделать без forward declaration
источник

ED

Electronics Designer in Embedded Group
У меня инстанциирования вообще как бы нет.
источник

ED

Electronics Designer in Embedded Group
Или что мы понимаем под инстанциированием в этом контексте?
источник

ED

Electronics Designer in Embedded Group
У меня есть массивы во флеше, которые описывают структуру меню. Все они одинаковые, за исключением того, что один из них зарезервирован как точка входа и движок начинает обход с него.
источник

ED

Electronics Designer in Embedded Group
Дальше движок читает данные из флеша и рисует меню, дает пользователю выбирать пункты и т.п.
источник