реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Организация меню.
_pv
сообщение Nov 4 2016, 12:38
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(Jenya7 @ Nov 4 2016, 17:50) *
я понял. спасибо.
чтоб не открывать отдельную тему хочу спросить. по сути дела это Linked List. Каждый член структуры имеет тип этой структуры, ну кроме указателей на функции. но такого типа в принципе нет, есть uint8_t, uint32_t , но Menu_item_t это наше определение. так сколько байт займет структура после компиляции?

6 указателей по 4 (для кортекса) байта.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Nov 4 2016, 13:10
Сообщение #32


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(_pv @ Nov 4 2016, 18:38) *
6 указателей по 4 (для кортекса) байта.

спасибо.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jul 29 2018, 07:12
Сообщение #33


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Вобщем прикрутил таки
https://github.com/abcminiuser/micromenu-v2
Оч доволен. Навигация по пунктам меню, с колбэками, все работает четко. Но пункты дбавляю в дизайн тайм
Код
//MAIN MENU
//            NAME      NEXT,       PREVIOUS    PARENT,      CHILD       //SELECT    //ENTER
MENU_ITEM(m_manual, m_fails,    m_auto,       NULL_MENU,   NULL_MENU,  NULL_FUNC,   NULL_FUNC,  "MANUAL");
MENU_ITEM(m_fails,  m_muxbus,   m_manual,   NULL_MENU,   m_mf,       NULL_FUNC,   GoToChild,  "FAILS ");
MENU_ITEM(m_maint,  m_auto,     m_muxbus,   NULL_MENU,   m_lmfls,    NULL_FUNC,   GoToChild,  "MAINT ");
MENU_ITEM(m_auto,   m_manual,   m_maint,    NULL_MENU,   NULL_MENU,  NULL_FUNC,   NULL_FUNC,  "AUTO  ");
Но я как всегда со своими идеями - а что если добавлять пункты в ран тайм
Код
void MenuItemCreate (Menu_Item_t Name, Menu_Item_t Next)
{
    MENU_ITEM(Name, Next, NULL_MENU, NULL_MENU, NULL_MENU, NULL_FUNC, NULL_FUNC, "TEST");
}
Компайлер конечно орет - он хочет extern. а я не могу передать extern в функцию.
Можно как то схитрожопить?

Сообщение отредактировал Jenya7 - Jul 29 2018, 07:27
Go to the top of the page
 
+Quote Post
inventor
сообщение Sep 6 2018, 15:59
Сообщение #34


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



я взял за образец меню от миландра
перетащил на свой контроллер и другой дисплей
все работает.

Прикрепленные файлы
Прикрепленный файл  mdr1986ve3_menu_test.rar ( 1.1 мегабайт ) Кол-во скачиваний: 34
 
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 7 2018, 06:37
Сообщение #35


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(inventor @ Sep 6 2018, 20:59) *
я взял за образец меню от миландра
перетащил на свой контроллер и другой дисплей
все работает.


спасибо. очень даже интересная идея.
Go to the top of the page
 
+Quote Post
x893
сообщение Sep 7 2018, 07:00
Сообщение #36


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Если не секрет - Какая идея очень даже интересная ?
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 12 2018, 10:28
Сообщение #37


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(x893 @ Sep 7 2018, 13:00) *
Если не секрет - Какая идея очень даже интересная ?


Код
void ReadKey(void)
{
    uint32_t key;

    while (1) {
    key = GetKey();
    switch (key) {
    case SEL:
        SelFunc();
        break;
    case UP:
        UpFunc();
        break;
    case DOWN:
        DownFunc();
        break;
    case BACK:
        ReturnFunc();
        break;
    }
    WAIT_UNTIL_KEY_RELEASED(key);
    }
}
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th April 2024 - 11:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01417 секунд с 7
ELECTRONIX ©2004-2016