Closed gausstechno closed 9 months ago
@gausstechno Привет!
На такой комбинации железа лично не тестил, увы. Но первое, что приходит в голову: для начала попробовать отключить поддержку float'ов в config.h , как описано вот тут (даже если непосредственно в проекте float'ов нет, косвенно может быть связано). И заодно лишние библиотеки (AltSerialGraphicLCD и Adafruit GFX), как описано ниже. Т.е. просто закомментить строки:
// #include "config/enable-glcd.h"
// #include "config/enable-adafruit-gfx.h"
// #include "config/support-float-edit.h"
Отключил все пункты, так же не отображает. Но, что интересно, когда тыкаешь на поле, а потом сохраняешь, в UART прилетают изменения, но на дисплее не отображается ничего. Может ли это зависеть от IDE? в плане кодировки или подобного
От IDE не должно зависеть, у самого такая же=) С ESP32 периодически пишут о проблемах, но ко мне отладочная плата на нём приедет чуть позже. Но и не факт, что в этом случае дело в нём.
Есть ещё такая гипотеза. Судя по скриншоту, места для значения переменной на экране немного, судя по положению чекбокса всего 1 символ. Может быть просто значение левого смещения подобрано таким образом, что алгоритм решил, что не уместится и не стал рисовать. Думаю, можно попробовать при инициализации GEM_u8g2
передать другое значение menuValuesLeftOffset_
(последний аргумент в конструкторе).
Из характеристик чипа дисплея, что я нагуглил, выходит что он всего 96x68? При смещении в 86px слева это действительно могло стать причиной. Нужно попробовать уменьшить его, скажем, до 62.
GEM_u8g2 menu(u8g2, /*menuPointerType_ =*/ GEM_POINTER_ROW, /*menuItemsPerScreen_ =*/ GEM_ITEMS_COUNT_AUTO, /*menuItemHeight_ =*/ 10, /*menuPageScreenTopOffset_ =*/ 10, /*menuValuesLeftOffset_ = */ 62)
Йоууу, это сработало! Я подозревал, что ему не хватает места, но не совсем понимал, куда копать.
U8G2_HX1230_96X68_F_3W_SW_SPI u8g2();
При этой инициализации надо бы тогда эти параметры по умолчанию добавить, было бы классно) Тысячу благодарностей за поддержу и такую классную библиотеку
Надо будет подумать, как облегчить задание параметров кастомизации меню. Например, позволять задавать их не только большой цепочкой аргументов через конструктор, но и по-отдельности через методы, как было предложено тут. Подумаю в этом направлении.
Рад, что удалось разобраться!=)
Привет! Чуть апну тему.
В версии 1.5.0 появилась возможность задавать стили меню индивидуально для каждой страницы: это может быть полезным для небольших экранов (например, когда требуется на страничке настроек задать побольше места для названий пунктов в случае, если сами значения представляют собой чекбоксы и большой отступ для них не нужен).
Так же теперь можно задавать значения параметров внешнего вида поимённо через объект типа GEMAppearance
.
Дисплей с контроллером HX1230 (или же STE2007, типа Nokia 1220) ESP32-WROOM-32 (с гравировкой QR кода) на собственной плате GEM 1.4.6 U8g2 2.34.22 Arduino IDE 2.2.1
Не могу понять, почему не отображаются значение в пунктах меню? В названии пункта числа отображаются, а в значении - нет
Загружаю примеры с кириллицей - ничего, не с кириллицей - тоже ничего, в чём может быть причина? Делаю список опций - не работает, вывожу просто значение с помощью GEMItem digit("Цифра", cyfra); и всё так же нет значения cyfra - int, пробовал int, byte, через GEMSelect - тоже ничего.