17#define ITEM_FLAG_RO 0x00
19#define ITEM_FLAG_RW 0x01
21#define ITEM_FLAG_SU 0x02
71#define MENU_PROTOTYPE(name) \
75#define MENU_ITEMS_COUNT(menu) (sizeof(menu) / sizeof(menu_item_t))
79#define MENU_ITEM(text, type, flags, param, ptr) \
80{text, type, (flags), (param), (void *)(ptr)}
84#define BEGIN_MENU(name) \
85 const menu_item_t name##_items[] = {
89#define END_MENU(name, text) \
91 const menu_t name = { \
93 MENU_ITEMS_COUNT(name##_items), \
112#define BEGIN_STRING_LIST(name) const char * const list_##name[] = {
116#define END_STRING_LIST };
119#define LIST_ITEMS_COUNT(list) (sizeof(list) / sizeof(char *))
122#define DECLARE_COMBOBOX(name, slot, lst) const combobox_t name = { \
124 .count = LIST_ITEMS_COUNT(list_##lst), \
125 .strings = list_##lst, };
240void lcd_puts(
const char *s);
241void lcd_printf(
const char *fmtstr, ...);
menu_item_type_t
Типы элементов меню
Definition: smart_hmi.h:24
@ ITEM_TYPE_SUBMENU
Подменю
Definition: smart_hmi.h:44
@ ITEM_TYPE_UPTIME
Форматированный вывод интервала времени
Definition: smart_hmi.h:40
@ ITEM_TYPE_STRING
Форматированный вывод строки
Definition: smart_hmi.h:32
@ ITEM_TYPE_ACTION
Действие (вызов обработчика)
Definition: smart_hmi.h:43
@ ITEM_TYPE_BIT_P
Форматированный вывод бита в битовом поле через указатель
Definition: smart_hmi.h:26
@ ITEM_TYPE_CHECK
Чек-бокс (вкл/выкл)
Definition: smart_hmi.h:35
@ ITEM_TYPE_DATE
Форматированный вывод даты
Definition: smart_hmi.h:37
@ ITEM_TYPE_FLOAT_P
Форматированный вывод вещественного числа через указатель
Definition: smart_hmi.h:31
@ ITEM_TYPE_IPV4
IPv4 IP-адрес
Definition: smart_hmi.h:42
@ ITEM_TYPE_INT
Форматированный вывод целого числа
Definition: smart_hmi.h:28
@ ITEM_TYPE_BIT
Форматированный вывод бита в битовом поле
Definition: smart_hmi.h:25
@ ITEM_TYPE_FLOAT
Форматированный вывод вещественного числа
Definition: smart_hmi.h:30
@ ITEM_TYPE_INT_P
Форматированный вывод целого числа через указатель
Definition: smart_hmi.h:29
@ ITEM_TYPE_SETTING
Уставка (переменная с метаданными)
Definition: smart_hmi.h:34
@ ITEM_TYPE_HEADER
Разделитель/заголовок группы элементов
Definition: smart_hmi.h:41
@ ITEM_TYPE_DATETIME
Форматированный вывод даты и времени события
Definition: smart_hmi.h:39
@ ITEM_TYPE_STRING_P
Форматированный вывод строки через указатель
Definition: smart_hmi.h:33
@ ITEM_TYPE_TIME
Форматированный вывод времени
Definition: smart_hmi.h:38
@ ITEM_TYPE_COMBO
Комбо-бокс (выбор из списка вариантов)
Definition: smart_hmi.h:36
@ ITEM_TYPE_BIT8
Форматированный вывод битового поля
Definition: smart_hmi.h:27
void lcd_draw_dialog(const char *title, const char *text, dlg_type_t type)
Отрисовать шаблон диалогового окна
dlg_result_t
Коды результата работы диалога
Definition: smart_hmi.h:98
@ DIALOG_CANCEL
Отмена
Definition: smart_hmi.h:99
@ DIALOG_OK
ОК
Definition: smart_hmi.h:100
dlg_result_t hmi_message_box(const char *title, const char *msg, dlg_type_t type)
Вызов диалога с текстовым сообщением
void lcd_clear()
Очистить экран
keycode_t kbd_get()
Получить клавишу из буфера клавиатуры
int menu_handler(const menu_t *m)
Обработчик отрисовки меню HMI.
void lcd_invert_block(int col, int row)
Инвертировать пиксели знакоместа стандартного шрифта 6х8.
hmi_event_t hmi_wait()
Ожидать события HMI.
void hmi_service()
Обработка сервисных задач, связанных с HMI.
keycode_t
Коды клавиш
Definition: smart_hmi.h:158
void lcd_buffer_clear()
Очистить буфера экрана без перерисовки
hmi_event_t
События HMI.
Definition: smart_hmi.h:128
@ HMI_EVENT_REDRAW
Перерисовка
Definition: smart_hmi.h:129
@ HMI_EVENT_KEY
Нажатие кноки
Definition: smart_hmi.h:130
void lcd_fill()
Отрисовать буфер на экране
void lcd_draw_rectangle(uint32_t x, uint32_t y, uint32_t w, uint32_t h)
Отрисовать прямоугольник
void lcd_goto(uint8_t col, uint8_t row)
Переместить курсор в позицию (col:row)
dlg_type_t
Тип диалога
Definition: smart_hmi.h:104
@ DLG_SAVECANCEL
Сохранить/Отмена
Definition: smart_hmi.h:106
@ DLG_YESNO
Да/Нет
Definition: smart_hmi.h:107
@ DLG_MSGBOX
Простое сообщение (ОК)
Definition: smart_hmi.h:105
keycode_t kbd_peek()
Проверить клавишу в буфере без изъятия
void lcd_draw_bitmap(const uint8_t *xbm, uint8_t w, uint8_t h, uint8_t x, uint8_t y)
Отрисовать изображение в формате XBM.
Метаданные элемента меню ComboBox.
Definition: smart_hmi.h:64
uint32_t count
Кол-ко элементов
Definition: smart_hmi.h:66
void * value_ptr
Указатель индекс выбранного элемента
Definition: smart_hmi.h:65
const char *const * strings
Указатель на список элементов
Definition: smart_hmi.h:67