From d86f14fc61f59cb83315ab2979f4f53d77960b59 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Fri, 30 Aug 2024 20:53:30 +0800 Subject: [PATCH] update --- README.md | 1 + usrc/service/front_end_controler.cpp | 44 ++++++++++++++++++++++--- usrc/service/front_end_controler.hpp | 10 +++++- usrc/service/page/submenu/Page_changePasswd.cpp | 3 +- 4 files changed, 50 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 23ea0b5..41e890e 100644 --- a/README.md +++ b/README.md @@ -25,5 +25,6 @@ UI 4. 主页控制模式,支持触摸 5. 调整5s的位置 6. 首页添加加酸间隔时间单位显示 + 7. 修改confirm页面取消按键和确定按键位置 ``` diff --git a/usrc/service/front_end_controler.cpp b/usrc/service/front_end_controler.cpp index 650093e..ef947d5 100644 --- a/usrc/service/front_end_controler.cpp +++ b/usrc/service/front_end_controler.cpp @@ -188,6 +188,15 @@ void FrontEndControler::processUsrButtonEvent(uint8_t* data, size_t len) { event_cache.pid = data[1]; event_cache.bid = data[2]; + if (event_cache.pid == pg_confirm && event_cache.bid == ob_confirm_confirm) { + if (m_onConfirmPageConfirmKey) m_onConfirmPageConfirmKey(true); + m_onConfirmPageConfirmKey = nullptr; + } else if (event_cache.pid == pg_confirm && event_cache.bid == ob_confirm_canclekey) { + if (m_onAlertPageConfirmKey) m_onAlertPageConfirmKey(false); + m_onAlertPageConfirmKey = nullptr; + } else if (event_cache.pid == pg_alert && event_cache.bid == ob_alert_confirmkey) { + } + callUsrEventCb(&event_cache); } void FrontEndControler::processUsrDoubleStateButtonEvent(uint8_t* data, size_t len) { @@ -336,18 +345,43 @@ bool FrontEndControler::vis(uint16_t buuid, int32_t val) { return true; } -void FrontEndControler::alert(const char* info, ...) { +void FrontEndControler::alert(const char* info, function onConfirm) { zlock_guard lg(m_cmdlock); - - va_list args; - va_start(args, info); + m_onAlertPageConfirmKey = onConfirm; static char buf[128]; - vsprintf(buf, info, args); + sprintf(buf, "%s", info); sendcmd("p[%d].b[%d].val=dp", pg_alert, ob_alert_frompage); sendcmd("p[%d].b[%d].txt=\"%s\"", pg_alert, ob_alert_info, buf); sendcmd("page alert"); } + +void FrontEndControler::confirmNoCancle(const char* info, function onConfirm) { + zlock_guard lg(m_cmdlock); + m_onConfirmPageConfirmKey = onConfirm; + + static char buf[128]; + sprintf(buf, "%s", info); + + sendcmd("p[%d].b[%d].val=dp", pg_confirm, ob_confirm_frompage); + sendcmd("p[%d].b[%d].txt=\"%s\"", pg_confirm, ob_confirm_info, buf); + sendcmd("page confirm"); + vis(ob_confirm_canclekey, 0); +} + +void FrontEndControler::confirm(const char* info, function onConfirm) { + zlock_guard lg(m_cmdlock); + m_onConfirmPageConfirmKey = onConfirm; + + static char buf[128]; + sprintf(buf, "%s", info); + + sendcmd("p[%d].b[%d].val=dp", pg_confirm, ob_confirm_frompage); + sendcmd("p[%d].b[%d].txt=\"%s\"", pg_confirm, ob_confirm_info, buf); + sendcmd("page confirm"); + vis(ob_confirm_canclekey, 1); +} + void FrontEndControler::chpage(uint8_t page) { sendcmd("page %d", page); } void FrontEndControler::sendcmd(const char* format, ...) { diff --git a/usrc/service/front_end_controler.hpp b/usrc/service/front_end_controler.hpp index db8d131..0c4696e 100644 --- a/usrc/service/front_end_controler.hpp +++ b/usrc/service/front_end_controler.hpp @@ -30,6 +30,9 @@ class FrontEndControler { int32_t m_nowPage = 0; + function m_onConfirmPageConfirmKey; + function m_onAlertPageConfirmKey; + public: FrontEndControler() {}; ~FrontEndControler() {}; @@ -61,7 +64,12 @@ class FrontEndControler { bool readTxt(uint16_t buuid, char* txt, int32_t txtbuflen) { return readTxt(buuid >> 8, buuid & 0xff, txt, txtbuflen); } bool readInt(uint16_t buuid, int32_t* val) { return readInt(buuid >> 8, buuid & 0xff, val); } - void alert(const char* info, ...); + void alert(const char* info) { alert(info, nullptr); } + void alert(const char* info, function onConfirm); + void confirmNoCancle(const char* info) { confirmNoCancle(info, nullptr); } + void confirmNoCancle(const char* info, function onConfirm); + void confirm(const char* info, function onConfirm); + void chpage(uint8_t page); void virtualClick(uint8_t pid, uint8_t bid, uint8_t event); void setTouchEnableState(uint8_t bid, uint8_t enable); diff --git a/usrc/service/page/submenu/Page_changePasswd.cpp b/usrc/service/page/submenu/Page_changePasswd.cpp index 379cb1e..261968b 100644 --- a/usrc/service/page/submenu/Page_changePasswd.cpp +++ b/usrc/service/page/submenu/Page_changePasswd.cpp @@ -13,7 +13,6 @@ static CfgItermCache cfgcache; bool Page_changePasswd::isBelongThisPage(int page) { return page == PAGE; } void Page_changePasswd::OnPageLoad() { - // 设置加酸间隔时间 }; void Page_changePasswd::OnInputFieldContentChange(uint8_t bid, const char* text) { @@ -46,7 +45,7 @@ void Page_changePasswd::OnButton(uint8_t bid, uint8_t val) { return; } setPasswd(GSM->getLoginUsr(), newpasswdBuf); - UIS->alert("密码修改成功"); + UIS->confirmNoCancle("密码修改成功"); } };