Можно сделать структуру с нужной "разбитовкой" и длиной 2 байта. Будет пол R 5 бит, G 6 бит и B 5 бит. ну или как там. А далее преобразование типов или union
uint16_t clock_col = display->color565(color);
color = (0, 255, 255);
....
if (portal.uri()=="/secret") {
GP.LABEL("Cтраница");
}
...
GP_MAKE_BLOCK_TAB(
"Первый",
GP_MAKE_BOX(GP.LABEL("Темп-ра начала "); GP.NUMBER_F("RSartT", "number", StartTemp););
GP_MAKE_BOX(GP.LABEL("Темп-ра завершения"); GP.NUMBER_F("RStopT", "number", StopTemp);););
if (width.length()) {
*_gp_page += F("' style='width:");
*_gp_page += width;
}
можно задать ширину поля ввода.Еще вопросик - как выровнять
GP.NUMBER_F(имя, подсказка, число, знаков, ширина); // + ширина строкой "100px", "25%" и так далее (умолч 90%)
GP_MAKE_BLOCK_THIN_TAB(
"Подстройка",
GP_MAKE_BOX(GP.LABEL("Усиление");
GP_MAKE_BOX(GP_RIGHT, "200px",
GP.SLIDER("bright_constant", bright_constant, 0, 1000, 100);
);
);
GP_MAKE_BOX(GP.LABEL("Фильтр");
GP_MAKE_BOX(GP_RIGHT, "200px",
GP.SLIDER("coef", coef, 0, 1, 0.1);
);
);
);
GP_MAKE_BLOCK_TAB(getNameRoom,
GP_MAKE_BOX(GP_EDGES,
GP.LABEL(CoreGR.getNameRelay(h)
);
GP_MAKE_BOX(GP_RIGHT,
GP.LED_RED("LedRedRelay@"+String(h),!CoreGR.getStateRelay(h)
);
);
void loop()
{
portal.tick();
Serial.println(temptest);
}
GP.JQ_SUPPORT();
GP.JQ_UPDATE_BEGIN(1000);
rand1 = random(0, 100);
rand2 = random(0, 100);
temptest = rand1 + rand2 / 100
GP_MAKE_BLOCK_TAB(
"Температура",
GP_MAKE_BOX(GP.LABEL("верх"); GP.LABEL_BLOCK(temptest + (String(" °C")), "lbb"););
GP_MAKE_BOX(GP.LABEL("низ"); GP.LABEL_BLOCK(temptest + (String(" °C")), "lbb");););
GP.BUILD_END();
GP.JQ_UPDATE_END();
GP.JQ_SUPPORT();
GP.JQ_UPDATE_BEGIN(1000);
rand1 = random(0, 100);
rand2 = random(0, 100);
temptest = rand1 + rand2 / 100
Serial.println(temptest);
GP_MAKE_BLOCK_TAB("Температура",
GP_MAKE_BOX(GP.LABEL("верх"); GP.LABEL_BLOCK(temptest + (String(" °C")), "lbb"););
GP_MAKE_BOX(GP.LABEL("низ"); GP.LABEL_BLOCK(temptest + (String(" °C")), "lbb"););
);
GP.JQ_UPDATE_END();
GP.BUILD_END();
#define AP_SSID ""
#define AP_PASS ""
#include <LittleFS.h>
#include <GyverPortal.h>
GyverPortal portal(&LittleFS);
// конструктор страницы
void build() {
//для подключения скриптов из файла /gp_data/scripts.js
GP.BUILD_BEGIN_FILE();
//для подключения файла css и js в папке с проектом надо создать папку data, в ней надо создать gp_data и туда положить файл GP_DARK.css
// с помощью инструментов залить файлы на ESP32
GP.THEME_FILE("GP_DARK")
GP.JQ_SUPPORT_FILE(); // Загрузка jquery /gp_data/jquery.js (он по факту 1 раз грузанёт и закешет, но его тоже надо положить в папку)
//тут Ваш код конструктора
GP.BUILD_END();
}
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.begin(AP_SSID, AP_PASS);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(WiFi.localIP());
if (!LittleFS.begin()) Serial.println("FS Error");
portal.attachBuild(build);
portal.attach(action);
portal.start();
portal.uploadAuto(true); //включите автодовнлоад
}
void action() {
// код обработчика
}
void loop() {
portal.tick();
}
GP.UPDATE("reboot",3000); // так раз в 3 секунды броузер будет спрашивать у МК не надо ли перезагрузить страницу
GP.RELOAD("reboot");
//в action надо ловить в виде
if (portal.update()){
if (portal.update("reboot")){
portal.answer(1); //flag_reboot вам надо делать программно, когда требуется обновление
flag_reboot=false; //сбрасываем флаг после того, как сообщим браузеру о необходимости обновить страницу
}
}
//В глабальных переменных
bool flag_reboot=false;
//В конструкторе, в начале
GP.BUILD_BEGIN();
GP.THEME(GP_DARK);
GP.UPDATE("reboot",3000); // так раз в 3 секунды броузер будет спрашивать у МК не надо ли перезагрузить страницу
GP.RELOAD("reboot");
//в action надо ловить в виде
if (portal.update()){
if (portal.update("reboot")){
Serial.println(flag_reboot); //Чисто для отладки, если всё правильно, то раз в 3 секунды в сериал будет сыпаться либо 0, либо 1
portal.answer(flag_reboot); //flag_reboot вам надо делать программно, когда требуется обновление
flag_reboot=false; //сбрасываем флаг после того, как сообщим браузеру о необходимости обновить страницу
}
}