From ddf31ff2b23efd65f2afe9b92136d720bcc4b591 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Mon, 18 Nov 2024 09:43:34 +0800 Subject: [PATCH] recode --- usrc/service/app_core.cpp | 9 +- usrc/service/front_end_controler.cpp | 550 --------------------- usrc/service/front_end_controler.hpp | 125 ----- usrc/service/page/Page_login.cpp | 97 ---- usrc/service/page/Page_login.hpp | 27 - usrc/service/page/Page_main.cpp | 244 --------- usrc/service/page/Page_main.hpp | 30 -- usrc/service/page/Page_menu.cpp | 28 -- usrc/service/page/Page_menu.hpp | 25 - usrc/service/page/keyboard/Page_keybAcidCh.cpp | 32 -- usrc/service/page/keyboard/Page_keybAcidCh.hpp | 20 - usrc/service/page/page.hpp | 19 - usrc/service/page/page_processer.hpp | 66 --- usrc/service/page/submenu/Page_changePasswd.cpp | 79 --- usrc/service/page/submenu/Page_changePasswd.hpp | 31 -- usrc/service/page/submenu/Page_muAcidType.cpp | 105 ---- usrc/service/page/submenu/Page_muAcidType.hpp | 28 -- usrc/service/page/submenu/Page_muAudit.cpp | 20 - usrc/service/page/submenu/Page_muAudit.hpp | 26 - usrc/service/page/submenu/Page_muBleHandSett.cpp | 71 --- usrc/service/page/submenu/Page_muBleHandSett.hpp | 30 -- usrc/service/page/submenu/Page_muDeviceInfo.cpp | 19 - usrc/service/page/submenu/Page_muDeviceInfo.hpp | 27 - usrc/service/page/submenu/Page_muInterval.cpp | 46 -- usrc/service/page/submenu/Page_muInterval.hpp | 25 - usrc/service/page/submenu/Page_muMotorSett.cpp | 83 ---- usrc/service/page/submenu/Page_muMotorSett.hpp | 30 -- usrc/service/page/submenu/Page_muPumpSett.cpp | 163 ------ usrc/service/page/submenu/Page_muPumpSett.hpp | 30 -- usrc/service/page/submenu/Page_muPumpTest.cpp | 128 ----- usrc/service/page/submenu/Page_muPumpTest.hpp | 46 -- usrc/service/page/submenu/Page_muSettings.cpp | 32 -- usrc/service/page/submenu/Page_muSettings.hpp | 30 -- usrc/service/page/submenu/Page_muUsrMgr.cpp | 117 ----- usrc/service/page/submenu/Page_muUsrMgr.hpp | 28 -- usrc/service/page/utils/page_bak_router.cpp | 29 -- usrc/service/page/utils/page_bak_router.hpp | 8 - usrc/service/remote_controler_event_processer.cpp | 6 +- usrc/service/tjc/tjc.hpp | 2 - usrc/service/tjc/tjc_constant.cpp | 485 ------------------ usrc/service/tjc/tjc_constant.hpp | 151 ------ usrc/uicontroler/front_end_controler.cpp | 547 ++++++++++++++++++++ usrc/uicontroler/front_end_controler.hpp | 125 +++++ usrc/uicontroler/page/Page_login.cpp | 97 ++++ usrc/uicontroler/page/Page_login.hpp | 27 + usrc/uicontroler/page/Page_main.cpp | 244 +++++++++ usrc/uicontroler/page/Page_main.hpp | 30 ++ usrc/uicontroler/page/Page_menu.cpp | 28 ++ usrc/uicontroler/page/Page_menu.hpp | 25 + usrc/uicontroler/page/keyboard/Page_keybAcidCh.cpp | 32 ++ usrc/uicontroler/page/keyboard/Page_keybAcidCh.hpp | 20 + usrc/uicontroler/page/page.hpp | 19 + usrc/uicontroler/page/page_processer.hpp | 66 +++ .../uicontroler/page/submenu/Page_changePasswd.cpp | 79 +++ .../uicontroler/page/submenu/Page_changePasswd.hpp | 31 ++ usrc/uicontroler/page/submenu/Page_muAcidType.cpp | 105 ++++ usrc/uicontroler/page/submenu/Page_muAcidType.hpp | 28 ++ usrc/uicontroler/page/submenu/Page_muAudit.cpp | 20 + usrc/uicontroler/page/submenu/Page_muAudit.hpp | 26 + .../page/submenu/Page_muBleHandSett.cpp | 71 +++ .../page/submenu/Page_muBleHandSett.hpp | 30 ++ .../uicontroler/page/submenu/Page_muDeviceInfo.cpp | 19 + .../uicontroler/page/submenu/Page_muDeviceInfo.hpp | 27 + usrc/uicontroler/page/submenu/Page_muInterval.cpp | 46 ++ usrc/uicontroler/page/submenu/Page_muInterval.hpp | 25 + usrc/uicontroler/page/submenu/Page_muMotorSett.cpp | 83 ++++ usrc/uicontroler/page/submenu/Page_muMotorSett.hpp | 30 ++ usrc/uicontroler/page/submenu/Page_muPumpSett.cpp | 163 ++++++ usrc/uicontroler/page/submenu/Page_muPumpSett.hpp | 30 ++ usrc/uicontroler/page/submenu/Page_muPumpTest.cpp | 128 +++++ usrc/uicontroler/page/submenu/Page_muPumpTest.hpp | 46 ++ usrc/uicontroler/page/submenu/Page_muSettings.cpp | 32 ++ usrc/uicontroler/page/submenu/Page_muSettings.hpp | 30 ++ usrc/uicontroler/page/submenu/Page_muUsrMgr.cpp | 117 +++++ usrc/uicontroler/page/submenu/Page_muUsrMgr.hpp | 28 ++ usrc/uicontroler/page/utils/page_bak_router.cpp | 29 ++ usrc/uicontroler/page/utils/page_bak_router.hpp | 8 + usrc/uicontroler/tjc/tjc.hpp | 2 + usrc/uicontroler/tjc/tjc_constant.cpp | 485 ++++++++++++++++++ usrc/uicontroler/tjc/tjc_constant.hpp | 130 +++++ 80 files changed, 3118 insertions(+), 3137 deletions(-) delete mode 100644 usrc/service/front_end_controler.cpp delete mode 100644 usrc/service/front_end_controler.hpp delete mode 100644 usrc/service/page/Page_login.cpp delete mode 100644 usrc/service/page/Page_login.hpp delete mode 100644 usrc/service/page/Page_main.cpp delete mode 100644 usrc/service/page/Page_main.hpp delete mode 100644 usrc/service/page/Page_menu.cpp delete mode 100644 usrc/service/page/Page_menu.hpp delete mode 100644 usrc/service/page/keyboard/Page_keybAcidCh.cpp delete mode 100644 usrc/service/page/keyboard/Page_keybAcidCh.hpp delete mode 100644 usrc/service/page/page.hpp delete mode 100644 usrc/service/page/page_processer.hpp delete mode 100644 usrc/service/page/submenu/Page_changePasswd.cpp delete mode 100644 usrc/service/page/submenu/Page_changePasswd.hpp delete mode 100644 usrc/service/page/submenu/Page_muAcidType.cpp delete mode 100644 usrc/service/page/submenu/Page_muAcidType.hpp delete mode 100644 usrc/service/page/submenu/Page_muAudit.cpp delete mode 100644 usrc/service/page/submenu/Page_muAudit.hpp delete mode 100644 usrc/service/page/submenu/Page_muBleHandSett.cpp delete mode 100644 usrc/service/page/submenu/Page_muBleHandSett.hpp delete mode 100644 usrc/service/page/submenu/Page_muDeviceInfo.cpp delete mode 100644 usrc/service/page/submenu/Page_muDeviceInfo.hpp delete mode 100644 usrc/service/page/submenu/Page_muInterval.cpp delete mode 100644 usrc/service/page/submenu/Page_muInterval.hpp delete mode 100644 usrc/service/page/submenu/Page_muMotorSett.cpp delete mode 100644 usrc/service/page/submenu/Page_muMotorSett.hpp delete mode 100644 usrc/service/page/submenu/Page_muPumpSett.cpp delete mode 100644 usrc/service/page/submenu/Page_muPumpSett.hpp delete mode 100644 usrc/service/page/submenu/Page_muPumpTest.cpp delete mode 100644 usrc/service/page/submenu/Page_muPumpTest.hpp delete mode 100644 usrc/service/page/submenu/Page_muSettings.cpp delete mode 100644 usrc/service/page/submenu/Page_muSettings.hpp delete mode 100644 usrc/service/page/submenu/Page_muUsrMgr.cpp delete mode 100644 usrc/service/page/submenu/Page_muUsrMgr.hpp delete mode 100644 usrc/service/page/utils/page_bak_router.cpp delete mode 100644 usrc/service/page/utils/page_bak_router.hpp delete mode 100644 usrc/service/tjc/tjc.hpp delete mode 100644 usrc/service/tjc/tjc_constant.cpp delete mode 100644 usrc/service/tjc/tjc_constant.hpp create mode 100644 usrc/uicontroler/front_end_controler.cpp create mode 100644 usrc/uicontroler/front_end_controler.hpp create mode 100644 usrc/uicontroler/page/Page_login.cpp create mode 100644 usrc/uicontroler/page/Page_login.hpp create mode 100644 usrc/uicontroler/page/Page_main.cpp create mode 100644 usrc/uicontroler/page/Page_main.hpp create mode 100644 usrc/uicontroler/page/Page_menu.cpp create mode 100644 usrc/uicontroler/page/Page_menu.hpp create mode 100644 usrc/uicontroler/page/keyboard/Page_keybAcidCh.cpp create mode 100644 usrc/uicontroler/page/keyboard/Page_keybAcidCh.hpp create mode 100644 usrc/uicontroler/page/page.hpp create mode 100644 usrc/uicontroler/page/page_processer.hpp create mode 100644 usrc/uicontroler/page/submenu/Page_changePasswd.cpp create mode 100644 usrc/uicontroler/page/submenu/Page_changePasswd.hpp create mode 100644 usrc/uicontroler/page/submenu/Page_muAcidType.cpp create mode 100644 usrc/uicontroler/page/submenu/Page_muAcidType.hpp create mode 100644 usrc/uicontroler/page/submenu/Page_muAudit.cpp create mode 100644 usrc/uicontroler/page/submenu/Page_muAudit.hpp create mode 100644 usrc/uicontroler/page/submenu/Page_muBleHandSett.cpp create mode 100644 usrc/uicontroler/page/submenu/Page_muBleHandSett.hpp create mode 100644 usrc/uicontroler/page/submenu/Page_muDeviceInfo.cpp create mode 100644 usrc/uicontroler/page/submenu/Page_muDeviceInfo.hpp create mode 100644 usrc/uicontroler/page/submenu/Page_muInterval.cpp create mode 100644 usrc/uicontroler/page/submenu/Page_muInterval.hpp create mode 100644 usrc/uicontroler/page/submenu/Page_muMotorSett.cpp create mode 100644 usrc/uicontroler/page/submenu/Page_muMotorSett.hpp create mode 100644 usrc/uicontroler/page/submenu/Page_muPumpSett.cpp create mode 100644 usrc/uicontroler/page/submenu/Page_muPumpSett.hpp create mode 100644 usrc/uicontroler/page/submenu/Page_muPumpTest.cpp create mode 100644 usrc/uicontroler/page/submenu/Page_muPumpTest.hpp create mode 100644 usrc/uicontroler/page/submenu/Page_muSettings.cpp create mode 100644 usrc/uicontroler/page/submenu/Page_muSettings.hpp create mode 100644 usrc/uicontroler/page/submenu/Page_muUsrMgr.cpp create mode 100644 usrc/uicontroler/page/submenu/Page_muUsrMgr.hpp create mode 100644 usrc/uicontroler/page/utils/page_bak_router.cpp create mode 100644 usrc/uicontroler/page/utils/page_bak_router.hpp create mode 100644 usrc/uicontroler/tjc/tjc.hpp create mode 100644 usrc/uicontroler/tjc/tjc_constant.cpp create mode 100644 usrc/uicontroler/tjc/tjc_constant.hpp diff --git a/usrc/service/app_core.cpp b/usrc/service/app_core.cpp index 2862f78..b831362 100644 --- a/usrc/service/app_core.cpp +++ b/usrc/service/app_core.cpp @@ -1,16 +1,18 @@ #include "app_core.hpp" + #include #include #include "remote_controler_event_processer.hpp" -#include "service/front_end_controler.hpp" #include "service/pump_ctrl_service.hpp" #include "service/remote_controler.hpp" #include "service/remote_controler_state_sync_service.hpp" #include "valve_state_ctrl_service.hpp" // -#include "service/page/page.hpp" #include "ucomponents/zcan/zcan.hpp" +// +#include "uicontroler/front_end_controler.hpp" +#include "uicontroler/page/page.hpp" #define TAG "main" using namespace iflytop; @@ -174,7 +176,7 @@ void AppCore::test() { while (true) { // 扫描到 0x50 说明EEPROM在线 uint8_t tx = 0x10; - uint8_t rx = 0; + uint8_t rx = 0; bool suc = FrontEndControler::ins()->echo(tx, &rx); ZLOGI(TAG, "echo suc:%d tx:%x rx:%x", suc, tx, rx); osDelay(100); @@ -263,6 +265,5 @@ void AppCore::initialize() { test(); - while (true) osDelay(30); } diff --git a/usrc/service/front_end_controler.cpp b/usrc/service/front_end_controler.cpp deleted file mode 100644 index d9ec91d..0000000 --- a/usrc/service/front_end_controler.cpp +++ /dev/null @@ -1,550 +0,0 @@ -#include "front_end_controler.hpp" - -#include -#include -#include -#include - -#include "tjc/tjc_constant.hpp" -using namespace iflytop; -#define TAG "UIScheduler" -#define MODULE_DEBUG 1 - -#define CMD_OVERTIME 50 - -static ZThread uart_rx_thread; -static ZThread rx_processed_thread; - -static ZQueue ackQueue; -static ZQueue eventQueue; -static ZThread usartRxThread; -static ZThread eventProcessThread; -static bool m_isWaitingForAck; -static UART_HandleTypeDef* tjcUart; - -static const char* zhex2str(uint8_t* data, size_t len) { - static char buf[256]; - memset(buf, 0, sizeof(buf)); - for (size_t i = 0; i < len; i++) { - sprintf(buf + i * 2, "%02X", data[i]); - } - return buf; -} - -void FrontEndControler::initialize() { // - ackQueue.initialize(5, sizeof(tjc_rx_packet_t)); - eventQueue.initialize(5, sizeof(tjc_rx_packet_t)); - usartRxThread.init("usartRxThread", 1024); - eventProcessThread.init("eventProcessThread", 1024); - - tjcUart = AppHardware::ins()->tjcUart; - m_cmdlock.init(); -} -#define UART_RX_OVERTIME 5 -void FrontEndControler::startSchedule() { - usartRxThread.start([this]() { - static uint8_t rxbuf[128]; - tjcUart->USR_UartITRxing = 1; - tjcUart->USR_UartITRxBuf = rxbuf; - tjcUart->USR_UartITRxBufSize = 128; - tjcUart->USR_UartITRxOff = 0; - - HAL_UART_Receive_IT(tjcUart, &tjcUart->USR_UartITRxBufCache, 1); - while (1) { - static uint8_t processbuf[128]; - int32_t rxsize = 0; - if (tjcUart->USR_UartITRxOff != 0 && zos_haspassedms(tjcUart->USR_UartITLastRxTicket) > UART_RX_OVERTIME) { - vPortEnterCritical(); - if (tjcUart->USR_UartITRxOff != 0 && zos_haspassedms(tjcUart->USR_UartITLastRxTicket) > UART_RX_OVERTIME) { - memcpy(processbuf, tjcUart->USR_UartITRxBuf, tjcUart->USR_UartITRxOff); - rxsize = tjcUart->USR_UartITRxOff; - tjcUart->USR_UartITRxOff = 0; - } - vPortExitCritical(); - } - - if (rxsize != 0) { - processScreenRxPacket(processbuf, rxsize); - } - osDelay(1); - } - }); - - eventProcessThread.start([this]() { - while (1) { - static tjc_rx_packet_t packet; - bool suc = eventQueue.receive(&packet, 10); - if (suc) { - memset(&event_cache, 0, sizeof(event_cache)); - uint8_t packetType = packet.data[0]; - if (packetType == tjc::kpt_inputfield_content_change_event1) { - processInputfieldContentChangeEvent1(packet.data, packet.datalen); - } else if (packetType == tjc::kpt_inputfield_content_change_event0) { - processInputfieldContentChangeEvent0(packet.data, packet.datalen); - } else if (packetType == tjc::kpt_double_state_button_event) { - processUsrDoubleStateButtonEvent(packet.data, packet.datalen); - } else if (packetType == tjc::kpt_unlogin_request) { - event_cache.eventId = packet.data[0]; - event_cache.pid = packet.data[1]; - event_cache.bid = packet.data[2]; - callUsrEventCb(&event_cache); - } else if (packetType == tjc::kpt_login_request) { - processLoginRequestEvent(packet.data, packet.datalen); - } else if (tjc::kpt_button_event == packetType) { - event_cache.eventId = packet.data[0]; - event_cache.pid = packet.data[1]; - event_cache.bid = packet.data[2]; - event_cache.d.button_event.val = packet.data[3]; - callUsrEventCb(&event_cache); - } else if (tjc::kpt_sys_event_page_id == packetType) { - event_cache.eventId = packet.data[0]; - event_cache.pid = packet.data[1]; - event_cache.bid = 0; - - if (m_nowPage == packet.data[1]) { - // page not change - } else { - m_lastPage = m_nowPage; - m_nowPage = packet.data[1]; - } - event_cache.d.sys_event_page_id.isFromPopWin = m_isInPopWin; -#if MODULE_DEBUG - ZLOGD(TAG, "page change from %d to %d frompoppage %d", m_lastPage, m_nowPage, m_isInPopWin); -#endif - m_isInPopWin = false; - - callUsrEventCb(&event_cache); - if (input_file_event_cache_state) { - callUsrEventCb(&input_file_event_cache); - input_file_event_cache_state = false; - } - - } else if (tjc::kpt_on_promopt_page_load == packetType) { - event_cache.eventId = packetType; - event_cache.pid = packet.data[1]; - event_cache.bid = 0; - callUsrEventCb(&event_cache); - m_isInPopWin = true; // - - } else if (tjc::kpt_on_keyboard_page_load == packetType) { - event_cache.eventId = packetType; - event_cache.pid = packet.data[1]; - event_cache.bid = 0; - callUsrEventCb(&event_cache); - m_isInPopWin = true; - } else { - event_cache.eventId = packet.data[0]; - callUsrEventCb(&event_cache); - ZLOGI(TAG, "[eventprocess-thread]: rx_event:%s", tjc::pt2str(packetType)); - } - } - osDelay(1); - } - }); -} - -// GVAR_triET -// GVAR_triBId -// GVAR_triPageId - -void FrontEndControler::processScreenRxPacket(uint8_t* data, size_t len) { - // 判断包是否合法 -#if MODULE_DEBUG - ZLOGI(TAG, "[rx-thread] : rx :%s(%d)", zhex2str(data, len), len); -#endif - - if (!(data[len - 1] == 0xff && data[len - 2] == 0xff && data[len - 3] == 0xff)) { - ZLOGI(TAG, "rx invalid packet %s", zhex2str(data, len)); - return; - } - if (TJC_MAX_PACKET_SIZE < len) { - ZLOGI(TAG, "rx invalid packet(tool long) %s", zhex2str(data, len)); - return; - } - - uint8_t packetType = data[0]; - - static tjc_rx_packet_t packet; - packet.datalen = len; - memcpy(packet.data, data, len); - if (tjc::kpt_ack == packetType) { - if (m_isWaitingForAck) { - bool suc = ackQueue.send(&packet, 10); - if (!suc) { - ZLOGI(TAG, "ackQueue send failed"); - } - m_isWaitingForAck = false; - } - - } else { - bool suc = eventQueue.send(&packet, 10); - if (!suc) { - ZLOGI(TAG, "eventQueue send failed"); - } - } -} - -void FrontEndControler::regOnUsrEventCb(on_usr_event_cb_t cb) { - m_cb[m_ncb] = cb; - m_ncb++; -} - -static const char* zcpystr(char* cpyto, const char* strbegin, int32_t maxlen) { - if (strbegin == NULL) return NULL; - int32_t i = 0; - for (i = 0; i < maxlen; i++) { - cpyto[i] = strbegin[i]; - if (strbegin[i] == 0) { - return &strbegin[i + 1]; - } - } - return NULL; -} -void FrontEndControler::processUsrButtonEvent(uint8_t* data, size_t len) { - /** - * @brief - * 指令格式: - * printh 65 - * prints dp,1 - * prints '&id&',1 - * printh FF FF FF - * - * AB Page cidName/0 FF FF FF - * - */ - // ButtonEventContext_t buttonEventCxt; - - // event_cache - memset(&event_cache, 0, sizeof(event_cache)); - event_cache.eventId = data[0]; - 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) { - /** - * @brief - * 指令格式: - * printh AD - * prints dp,1 - * prints '&id&',1 - * prints '&val&',1 - * printh FF FF FF - * - * AB Page cidName/0 FF FF FF - * - */ - // ButtonEventContext_t buttonEventCxt; - - // event_cache - memset(&event_cache, 0, sizeof(event_cache)); - event_cache.eventId = data[0]; - event_cache.pid = data[1]; - event_cache.bid = data[2]; - event_cache.d.double_state_button.val = data[3]; - - callUsrEventCb(&event_cache); -} -void FrontEndControler::callUsrEventCb(tjc::tjc_usr_event_t* event) { - for (int32_t i = 0; i < m_ncb; i++) { - m_cb[i](event); - } -} - -void FrontEndControler::processInputfieldContentChangeEvent0(uint8_t* data, size_t len) { - /** - * @brief - * - * printh AB - * prints loadpageid.val,1 - * prints loadcmpid.val,1 - * prints p[loadpageid.val].b[loadcmpid.val].txt,0 - * printh 00 - * printh FF FF FF - * page loadpageid.val - * - */ - ZLOGI(TAG, "processInputfieldContentChangeEvent0"); - memset(&event_cache, 0, sizeof(event_cache)); - event_cache.eventId = data[0]; - event_cache.pid = data[1]; - event_cache.bid = data[2]; - const char* strbegin = (const char*)&data[3]; - strbegin = zcpystr(event_cache.d.inputfield_content.text, strbegin, sizeof(event_cache.d.inputfield_content.text)); - callUsrEventCb(&event_cache); - // input_file_event_cache = event_cache; - // input_file_event_cache_state = true; -} - -void FrontEndControler::processInputfieldContentChangeEvent1(uint8_t* data, size_t len) { - /** - * @brief - * - * printh AC - * prints loadpageid.val,1 - * prints loadcmpid.val,1 - * prints p[loadpageid.val].b[loadcmpid.val].txt,0 - * printh 00 - * printh FF FF FF - * page loadpageid.val - * - */ - // ZLOGI(TAG, "processInputfieldContentChangeEvent1"); - memset(&event_cache, 0, sizeof(event_cache)); - event_cache.eventId = data[0]; - event_cache.pid = data[1]; - event_cache.bid = data[2]; - const char* strbegin = (const char*)&data[3]; - strbegin = zcpystr(event_cache.d.inputfield_content.text, strbegin, sizeof(event_cache.d.inputfield_content.text)); - // callUsrEventCb(&event_cache); - input_file_event_cache = event_cache; - input_file_event_cache_state = true; -} - -void FrontEndControler::processLoginRequestEvent(uint8_t* data, size_t len) { - /* - * printh AE - * prints dp,1 - * prints '&id&',1 - * prints cUsrName.txt,0 - * printh 00 - * prints txt_passwd.txt,0 - * printh 00 - * printh FF FF FF - */ - - // ZLOGI(TAG, "processLoginRequestEvent"); - memset(&event_cache, 0, sizeof(event_cache)); - event_cache.eventId = data[0]; - event_cache.pid = data[1]; - event_cache.bid = data[2]; - const char* strbegin = (const char*)&data[3]; - strbegin = zcpystr(event_cache.d.login_request.usrName, strbegin, MAX_USR_NAME_SIZE); - strbegin = zcpystr(event_cache.d.login_request.passwd, strbegin, MAX_USR_PASSWD_LENGTH); - - callUsrEventCb(&event_cache); -} - -bool FrontEndControler::readTxt(uint8_t pid, uint8_t cId, char* txt, int32_t txtbuflen) { - zlock_guard lg(m_cmdlock); - - startReceiveAck(); - sendcmd("com_stop"); - sendcmd("printh AA"); - sendcmd("prints p[%d].b[%d].txt,0", pid, cId); - sendcmd("printh 00"); - sendcmd("printh FF FF FF"); - sendcmd("com_start"); - - bool suc = ackQueue.receive(&ackcache, CMD_OVERTIME); - if (!suc) { - ZLOGI(TAG, "readTxt failed"); - return false; - } - int32_t cpysize = ackcache.datalen - 3; - if (cpysize > txtbuflen) { - cpysize = txtbuflen - 1; - } - - memcpy(txt, &ackcache.data[1], cpysize); - return true; -} -bool FrontEndControler::readInt(uint8_t pid, uint8_t cId, int32_t* val) { - zlock_guard lg(m_cmdlock); - - startReceiveAck(); - sendcmd("com_stop"); - sendcmd("printh AA"); - sendcmd("prints p[%d].b[%d].val,4", pid, cId); - sendcmd("printh FF FF FF"); - sendcmd("com_start"); - - bool suc = ackQueue.receive(&ackcache, CMD_OVERTIME); - if (!suc) { - ZLOGI(TAG, "readTxt failed"); - return false; - } - - uint8_t int32val[4] = {0}; - memcpy(int32val, &ackcache.data[1], 4); - *val = *(int32_t*)int32val; - return true; -} - -bool FrontEndControler::echo(uint8_t tx, uint8_t* rx) { - zlock_guard lg(m_cmdlock); - - startReceiveAck(); - sendcmd("com_stop"); - sendcmd("printh AA"); - sendcmd("printh %02X", tx); - sendcmd("printh FF FF FF"); - sendcmd("com_start"); - - bool suc = ackQueue.receive(&ackcache, CMD_OVERTIME); - if (!suc) { - ZLOGI(TAG, "readTxt failed"); - return false; - } - - uint8_t int32val = 0; - memcpy(&int32val, &ackcache.data[1], 1); - *rx = int32val; - - if (tx != int32val) { - return false; - } - - return true; -} - -bool FrontEndControler::setTxt(uint8_t pid, uint8_t bid, const char* txt, ...) { - zlock_guard lg(m_cmdlock); - - va_list args; - va_start(args, txt); - static char buf[128]; - vsprintf(buf, txt, args); - va_end(args); - - sendcmd("p[%d].b[%d].txt=\"%s\"", pid, bid, buf); - return true; -} -bool FrontEndControler::setVal(uint8_t pid, uint8_t cid, int32_t val) { - zlock_guard lg(m_cmdlock); - sendcmd("p[%d].b[%d].val=%d", pid, cid, val); - return true; -} -bool FrontEndControler::vis(uint16_t buuid, int32_t val) { - zlock_guard lg(m_cmdlock); - sendcmd("vis %d,%d", buuid & 0xff, val); - return true; -} - -void FrontEndControler::alert(const char* info, function onConfirm) { - zlock_guard lg(m_cmdlock); - if (m_isInPopWin) { - ZLOGE(TAG, "isInPopWin,alert failed"); - return; - } - - m_onAlertPageConfirmKey = onConfirm; - static char buf[128]; - sprintf(buf, "%s", info); - - sendcmd("p[%d].b[%d].val=%d", pg_alert, ob_alert_frompage, m_nowPage); - sendcmd("p[%d].b[%d].txt=\"%s\"", pg_alert, ob_alert_info, buf); - sendcmd("page alert"); -} -void FrontEndControler::alertNoConfirm(const char* info) { - zlock_guard lg(m_cmdlock); - if (m_isInPopWin) { - ZLOGE(TAG, "isInPopWin,alertNoConfirm failed"); - return; - } - - static char buf[128]; - 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"); - vis(ob_alert_confirmkey, 0); -} - -void FrontEndControler::confirmNoCancle(const char* info, function onConfirm) { - zlock_guard lg(m_cmdlock); - if (m_isInPopWin) { - ZLOGE(TAG, "isInPopWin,confirmNoCancle failed"); - return; - } - - 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); - if (m_isInPopWin) { - ZLOGE(TAG, "isInPopWin,confirm failed"); - return; - } - - 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::bakpage() { sendcmd("page %d", m_lastPage); } -void FrontEndControler::sendcmd(const char* format, ...) { - static char buf[128]; - va_list args; - va_start(args, format); - vsprintf(buf, format, args); - va_end(args); - - uint8_t len = strlen(buf); - if (len > (128 - 3)) { - ZLOGI(TAG, "sendcmd too long"); - return; - } - - buf[len] = 0xff; - buf[len + 1] = 0xff; - buf[len + 2] = 0xff; - - HAL_UART_Transmit(tjcUart, (uint8_t*)buf, len + 3, 100); - while (true) { - osDelay(1); - if (tjcUart->gState == HAL_UART_STATE_READY) { - return; - } - } -} - -void FrontEndControler::startReceiveAck() { - ackQueue.clear(); - m_isWaitingForAck = true; -} - -void FrontEndControler::virtualClick(uint8_t pid, uint8_t bid, uint8_t event) { - zlock_guard lg(m_cmdlock); - sendcmd("click b[%d],%d", bid, event); -} - -void FrontEndControler::setTouchEnableState(uint8_t bid, uint8_t enable) { - // tsw obj,state - zlock_guard lg(m_cmdlock); - sendcmd("tsw b[%d],%d", bid, enable); -} - -void FrontEndControler::setEnumComponentState(uint8_t pid, uint8_t bid, int32_t state) { - // 枚举类型使用动画组件 - sendcmd("p[%d].b[%d].tim=%d", pid, bid, state * 50); -} -void FrontEndControler::setPic(uint8_t pid, uint8_t bid, int32_t picNum) { sendcmd("p[%d].b[%d].pic=%d", pid, bid, picNum); } - -void FrontEndControler::setAph(uint8_t pid, uint8_t bid, int32_t state) { sendcmd("p[%d].b[%d].aph=%d", pid, bid, state); } diff --git a/usrc/service/front_end_controler.hpp b/usrc/service/front_end_controler.hpp deleted file mode 100644 index 6833311..0000000 --- a/usrc/service/front_end_controler.hpp +++ /dev/null @@ -1,125 +0,0 @@ -#pragma once -#include "apphardware/apphardware.hpp" -#include "config/config.hpp" -#include "uappbase/base.hpp" -// -#include "tjc/tjc.hpp" - -namespace iflytop { -using namespace std; -typedef struct { - uint8_t data[TJC_MAX_PACKET_SIZE]; - uint16_t datalen; -} tjc_rx_packet_t; - -typedef std::function on_usr_event_cb_t; - -#define UIS FrontEndControler::ins() -class FrontEndControler { - ZThread m_thread; - - tjc_rx_packet_t ackcache; - zmutex m_cmdlock = {"FrontEndControler_LOCK"}; - - tjc::tjc_usr_event_t event_cache; - - tjc::tjc_usr_event_t input_file_event_cache; - bool input_file_event_cache_state = false; - - // on_usr_event_cb_t cb; - - on_usr_event_cb_t m_cb[50]; - int32_t m_ncb = 0; - - int32_t m_nowPage = 0; - int32_t m_lastPage = 0; - - function m_onConfirmPageConfirmKey; - function m_onAlertPageConfirmKey; - - bool m_isInPopWin = false; - - public: - FrontEndControler() {}; - ~FrontEndControler() {}; - - static FrontEndControler* ins() { - static FrontEndControler instance; - return &instance; - } - - void initialize(); - void regOnUsrEventCb(on_usr_event_cb_t onclik); - int getNowPage() { return m_nowPage; } - - void startSchedule(); - - // cmd list - bool readTxt(uint8_t pid, uint8_t bid, char* txt, int32_t txtbuflen); - bool readInt(uint8_t pid, uint8_t bid, int32_t* val); - bool echo(uint8_t tx, uint8_t* rx); - - bool setTxt(uint8_t pid, uint8_t bid, const char* txt, ...); - bool setTxt(uint8_t bid, const char* txt) { return setTxt(m_nowPage, bid, txt); } - - bool setVal(uint8_t pid, uint8_t bid, int32_t val); - bool setVal(uint8_t bid, int32_t val) { return setVal(m_nowPage, bid, val); } - - bool vis(uint16_t bid, int32_t val); // 不支持跨页面隐藏 - // vis b0,0 - - // 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) { alert(info, nullptr); } - void alertNoConfirm(const char* info); - 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 bakpage(); - void virtualClick(uint8_t pid, uint8_t bid, uint8_t event); - void setTouchEnableState(uint8_t bid, uint8_t enable); - - void setEnumComponentState(uint8_t pid, uint8_t bid, int32_t state); - void setPic(uint8_t pid, uint8_t bid, int32_t picNum); - - void setAph(uint8_t pid, uint8_t bid, int32_t state); // 组件透明度,最大127,设置为0则隐藏组件 - void sendcmd(const char* format, ...); - - private: - void processScreenRxPacket(uint8_t* data, size_t len); - void processUsrButtonEvent(uint8_t* data, size_t len); - void processInputfieldContentChangeEvent1(uint8_t* data, size_t len); - void processInputfieldContentChangeEvent0(uint8_t* data, size_t len); - void processUsrDoubleStateButtonEvent(uint8_t* data, size_t len); - void processLoginRequestEvent(uint8_t* data, size_t len); - - void startReceiveAck(); - - void callUsrEventCb(tjc::tjc_usr_event_t* event); -}; - -static inline const char* zitoa(int val) { - static char buf[32]; - sprintf(buf, "%d", val); - return buf; -} -static inline const char* zfmt(const char* fmt, ...) { - static char buf[128]; - va_list args; - va_start(args, fmt); - vsnprintf(buf, sizeof(buf), fmt, args); - va_end(args); - return buf; -} - -static inline const char* refmt(const char* fmt, const char* floatval) { - static char buf[128]; - sprintf(buf, fmt, atof(floatval)); - return buf; -} - -} // namespace iflytop diff --git a/usrc/service/page/Page_login.cpp b/usrc/service/page/Page_login.cpp deleted file mode 100644 index 69e291a..0000000 --- a/usrc/service/page/Page_login.cpp +++ /dev/null @@ -1,97 +0,0 @@ -#include "Page_login.hpp" - -#include - -#include "db/dao/user_dao.hpp" - -using namespace iflytop; -#define TAG "Page_login" - -#define PAGE pg_login -#define OBJ(name) ob_login_##name - -static int usrNum; -static char usrName[10][20]; - -// UIS->sendcmd("p[%d].b[%d].picc=%d", PAGE, OBJ(txtUser##i), 2); -#define EN_USR(i, enable) \ - if (enable) { \ - UIS->setTxt(PAGE, OBJ(txtUser##i), usrName[i]); \ - UIS->setVal(PAGE, OBJ(uen##i), 1); \ - } else { \ - UIS->setTxt(PAGE, OBJ(txtUser##i), ""); \ - UIS->setVal(PAGE, OBJ(uen##i), (int32_t)0); \ - } - -bool Page_login::isBelongThisPage(int page) { return page == PAGE; } - -void Page_login::OnPageLoad(OnPageLoadContext* cxt) { - // - - user_t* users = nullptr; - UserDao::getUsers(&users, &usrNum); - for (int i = 0; i < usrNum; i++) { - strcpy(usrName[i], users[i].name); - } - - /** - * @brief 加载用户信息 - */ - - // EN_USR(0, enusrNum >= 1); - // EN_USR(1, enusrNum >= 2); - // EN_USR(2, enusrNum >= 3); - // EN_USR(3, enusrNum >= 4); - // EN_USR(4, enusrNum >= 5); - // EN_USR(5, enusrNum >= 6); - - // if (!cxt->isFromPopWin) { - // UIS->setVal(PAGE, OBJ(chooseUsr), (int32_t)0); - // UIS->setTxt(PAGE, OBJ(cUsrName), getCfgStr((config_index_t)(kusr_name0))); - // UIS->setTxt(PAGE, OBJ(txtPasswd), ""); - // } - - // UIS->sendcmd("click m0,0"); -} -void Page_login::OnInputFieldContentChange(uint8_t bid, const char* text) { - if (bid == OBJ(txtPasswd)) { - UIS->setTxt(PAGE, bid, text); - UIS->virtualClick(PAGE, OBJ(blogin), 0); // 触发一次登录按钮虚拟点击事件 - } -} - -void Page_login::OnLoginButtonClick(uint8_t bid, const char* userName, const char* passwd) { - - // // - // ZLOGI(TAG, "try login %s %s", userName, passwd); - // const char* curUsrPasswd = getPasswd(userName, &passwdcfgcache); - // if (!curUsrPasswd) { - // UIS->setTxt(PAGE, OBJ(txtPasswd), ""); - // UIS->alert("用户不存在"); - // return; - // } - // if (strlen(curUsrPasswd) == 0) { - // UIS->setTxt(PAGE, OBJ(txtPasswd), ""); - // UIS->alert("密码为空"); - // return; - // } - - // if (strcmp(curUsrPasswd, passwd) != 0) { - // UIS->setTxt(PAGE, OBJ(txtPasswd), ""); - // UIS->alert("密码错误"); - // return; - // } - - // if (strcmp(userName, getCfgStr(kusr_name0)) == 0) { - // ZLOGI(TAG, "%s(admin) login success ", userName); - // GSM->setLogin(true, false, userName); - // } else { - // ZLOGI(TAG, "%s login success ", userName); - // GSM->setLogin(false, false, userName); - // } - - // UIS->chpage(pg_main); - // GSM->setMenuPage(GSM->isAdmin() ? pg_menuAdmin2 : pg_menuUsr); - - return; -} diff --git a/usrc/service/page/Page_login.hpp b/usrc/service/page/Page_login.hpp deleted file mode 100644 index abd51b5..0000000 --- a/usrc/service/page/Page_login.hpp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once -#include "page_processer.hpp" -namespace iflytop { -using namespace std; - -class Page_login : public IPageProcesser { - private: - /* data */ - - - public: - static Page_login* ins() { - static Page_login instance; - return &instance; - } - - private: - bool isBelongThisPage(int page); - - virtual void OnPageLoad(OnPageLoadContext*cxt) override; - virtual void OnLoginButtonClick(uint8_t bid, const char* userName, const char* passwd) override; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; -}; - -} // namespace iflytop - -// kpt_sys_event_page_id \ No newline at end of file diff --git a/usrc/service/page/Page_main.cpp b/usrc/service/page/Page_main.cpp deleted file mode 100644 index f26ac29..0000000 --- a/usrc/service/page/Page_main.cpp +++ /dev/null @@ -1,244 +0,0 @@ -#include "Page_main.hpp" - -#include "db/dao/acid_ch_cfg_dao.hpp" -#include "db/dao/device_setting_dao.hpp" -#include "service\pump_ctrl_service.hpp" -#include "ui/usrui.h" -using namespace iflytop; - -#define PAGE pg_main -#define TAG "Page_main" - -#define ADMIN_MENU_ID pg_menuAdmin2 -#define USR_MENU_ID pg_menuUsr - -static const char* fmt(const char* fmt, ...) { - static char buf[128]; - va_list args; - va_start(args, fmt); - vsnprintf(buf, sizeof(buf), fmt, args); - va_end(args); - return buf; -} - -/** - * @brief - * - * 1.对接遥控器状态 - * 2.对接阀门控制板的状态(直接隐藏掉) - * - */ -void Page_main::updateRunModeState() { - // 更新底部状态栏 - if ((int32_t)GSM->getRunMode() == khand_acid_m_jog_mode) { - UIS->setPic(PAGE, ob_main_RunMode, pic_jog_mode); - } else { - UIS->setPic(PAGE, ob_main_RunMode, pic_continuous_mode); - } - - UIS->setEnumComponentState(PAGE, ob_main_RunMode, (int32_t)GSM->getRunMode()); // 运行模式 - if (GSM->getRunMode() == khand_acid_m_jog_mode) { - UIS->vis(ob_main_RunModeVal, 0); - UIS->vis(ob_main_RunModeValUint, 0); - } else { - UIS->vis(ob_main_RunModeVal, 1); - UIS->vis(ob_main_RunModeValUint, 1); - UIS->setTxt(PAGE, ob_main_RunModeVal, "%.1f", DeviceSettingDao::get()->distrIntervalS); // 加酸间隔状态更新 - } -} - -bool Page_main::isBelongThisPage(int page) { return page == PAGE; } - -void Page_main::OnPageLoad(OnPageLoadContext* cxt) { - // 只有管理员能够修改,酸液通道名称 - if (GSM->isAdmin()) { - UIS->setTouchEnableState(ob_main_acidname0, 1); - UIS->setTouchEnableState(ob_main_acidname1, 1); - UIS->setTouchEnableState(ob_main_acidname2, 1); - UIS->setTouchEnableState(ob_main_acidname3, 1); - } else { - UIS->setTouchEnableState(ob_main_acidname0, 0); - UIS->setTouchEnableState(ob_main_acidname1, 0); - UIS->setTouchEnableState(ob_main_acidname2, 0); - UIS->setTouchEnableState(ob_main_acidname3, 0); - } - // 更新底部 - updateRunModeState(); - - // 更新酸液种类 - UIS->setTxt(PAGE, ob_main_acidname0, AcidChCfgDao::getCfg(0)->acidChooseName); - UIS->setTxt(PAGE, ob_main_acidname1, AcidChCfgDao::getCfg(1)->acidChooseName); - UIS->setTxt(PAGE, ob_main_acidname2, AcidChCfgDao::getCfg(2)->acidChooseName); - UIS->setTxt(PAGE, ob_main_acidname3, AcidChCfgDao::getCfg(3)->acidChooseName); - // 更新加液体积 - UIS->setTxt(PAGE, ob_main_acideval0, "%.2f", AcidChCfgDao::getCfg(0)->acidEachDistriVal); - UIS->setTxt(PAGE, ob_main_acideval1, "%.2f", AcidChCfgDao::getCfg(1)->acidEachDistriVal); - UIS->setTxt(PAGE, ob_main_acideval2, "%.2f", AcidChCfgDao::getCfg(2)->acidEachDistriVal); - UIS->setTxt(PAGE, ob_main_acideval3, "%.2f", AcidChCfgDao::getCfg(3)->acidEachDistriVal); - // 更新顶部状态栏 - UIS->setEnumComponentState(PAGE, ob_main_AcidState, GSM->getAcidState()); // 酸液锁是否在线 - UIS->setAph(PAGE, ob_main_AcidState, 0); // 暂时隐藏掉Aph - UIS->setEnumComponentState(PAGE, ob_main_RemoterS, GSM->getRemoterS()); // 遥控器是否在线 - - UIS->setVal(PAGE, ob_main_acidch0, GSM->getPumpSelectState(0)); - UIS->setVal(PAGE, ob_main_acidch1, GSM->getPumpSelectState(1)); - UIS->setVal(PAGE, ob_main_acidch2, GSM->getPumpSelectState(2)); - UIS->setVal(PAGE, ob_main_acidch3, GSM->getPumpSelectState(3)); - - // 时间位置暂时显示版本号 - UIS->setTxt(PAGE, ob_main_clock, ""); - // UIS->setTxt(PAGE, ob_main_clock, "版本:%s", APP_VERSION); - - // 根据当前登录用户设置菜单页面 -} - -void Page_main::OnAppEvent(AppEvent_t* event) { - if (event->type == kAppEvent_RunModeChangeEvent) { - updateRunModeState(); - UIS->setTxt(PAGE, ob_main_sysInfo, "切换模式"); - } - - if (event->type == kAppEvent_RemoterConnectStateChangeEvent) { - UIS->setEnumComponentState(PAGE, ob_main_RemoterS, GSM->getRemoterS()); - if (GSM->getRemoterS()) { - UIS->setTxt(PAGE, ob_main_sysInfo, "连接上手柄"); - } else { - UIS->setTxt(PAGE, ob_main_sysInfo, "断开手柄连接"); - } - } - - if (event->type == kAppEvent_StateDisplayInfo) { - UIS->setTxt(PAGE, ob_main_sysInfo, event->d.stateDisplayInfo); - } - - return; -}; - -void Page_main::OnInputFieldContentChange(uint8_t bid, const char* text) { - /*********************************************************************************************************************** - * 事件过滤 * - ***********************************************************************************************************************/ - if (PumpCtrlService::ins()->isWorking()) { - UIS->alert("工作中,请稍后再操作"); - return; - } - - // 运行间隔设定值 - if (bid == ob_main_RunModeVal) { - float distrIntervalSSecond = atof(text); - if (distrIntervalSSecond <= 0) { - UIS->alert("酸液间隔时间不能小于0"); - return; - } - if (distrIntervalSSecond > 30) { - UIS->alert("酸液间隔时间不能大于30"); - return; - } - } - - // 加酸设定值过滤 - if (bid == ob_main_acideval0 || // - bid == ob_main_acideval1 || // - bid == ob_main_acideval2 || // - bid == ob_main_acideval3) { - float add_ml = atof(text); - if (add_ml < 0.009) { - UIS->alert("设定值不能小于0"); - return; - } else if (add_ml > DeviceSettingDao::get()->echDitrUpLimit) { - UIS->alert(fmt("设定值不能大于%d", DeviceSettingDao::get()->echDitrUpLimit)); - return; - } - } - - /*********************************************************************************************************************** - * 业务逻辑 * - ***********************************************************************************************************************/ - // 更新酸液每次分配设定值 - if (bid == ob_main_acideval0) { - processAcidevalUpdateEvent(bid, text, 0); - } else if (bid == ob_main_acideval1) { - processAcidevalUpdateEvent(bid, text, 1); - } else if (bid == ob_main_acideval2) { - processAcidevalUpdateEvent(bid, text, 2); - } else if (bid == ob_main_acideval3) { - processAcidevalUpdateEvent(bid, text, 3); - } - - // 修改酸液名称 - else if (bid == ob_main_acidname0) { - ZLOGI(TAG, "acidname0:%s", text); - AcidChCfgDao::updatekCfgAcidChooseName(0, text); - UIS->setTxt(PAGE, bid, text); - } else if (bid == ob_main_acidname1) { - ZLOGI(TAG, "acidname1:%s", text); - AcidChCfgDao::updatekCfgAcidChooseName(1, text); - UIS->setTxt(PAGE, bid, text); - } else if (bid == ob_main_acidname2) { - ZLOGI(TAG, "acidname2:%s", text); - AcidChCfgDao::updatekCfgAcidChooseName(2, text); - UIS->setTxt(PAGE, bid, text); - } else if (bid == ob_main_acidname3) { - ZLOGI(TAG, "acidname3:%s", text); - AcidChCfgDao::updatekCfgAcidChooseName(3, text); - UIS->setTxt(PAGE, bid, text); - } - - // 设置加酸间隔 - if (bid == ob_main_RunModeVal) { - float distrIntervalSSecond = atof(text); - UIS->setTxt(PAGE, bid, zfmt("%.1f", distrIntervalSSecond)); - // CS->setcfgAndFlush(kcfg_distrIntervalS, zfmt("%.1f", distrIntervalSSecond)); - DeviceSettingDao::updatedistrIntervalS(distrIntervalSSecond); - } -} - -void Page_main::OnButton(uint8_t bid, uint8_t val) { - /*********************************************************************************************************************** - * 事件过滤 * - ***********************************************************************************************************************/ - if (bid == ob_main_RunMode || // - bid == ob_main_acidch0 || // - bid == ob_main_acidch1 || // - bid == ob_main_acidch2 || // - bid == ob_main_acidch3 || // - bid == ob_main_MenuButton // - ) { - if (PumpCtrlService::ins()->isWorking()) { - UIS->alert("工作中,请稍后再操作"); - return; - } - } - - /*********************************************************************************************************************** - * 业务逻辑 * - ***********************************************************************************************************************/ - if (bid == ob_main_RunMode) { - // 切换模式 - GSM->changeToNextRunMode(); - } else if (bid == ob_main_acidch0) { - // 选中(取消选中)加酸泵0 - ZLOGI(TAG, "choose acid ch%d,%d", 0, val); - GSM->setPumpSelectState(0, val); - } else if (bid == ob_main_acidch1) { - // 选中(取消选中)加酸泵1 - ZLOGI(TAG, "choose acid ch%d,%d", 1, val); - GSM->setPumpSelectState(1, val); - } else if (bid == ob_main_acidch2) { - // 选中(取消选中)加酸泵2 - ZLOGI(TAG, "choose acid ch%d,%d", 2, val); - GSM->setPumpSelectState(2, val); - } else if (bid == ob_main_acidch3) { - // 选中(取消选中)加酸泵3 - ZLOGI(TAG, "choose acid ch%d,%d", 3, val); - GSM->setPumpSelectState(3, val); - } else if (bid == ob_main_MenuButton) { - UIS->chpage(GSM->getMenuPage()); - } -} - -void Page_main::processAcidevalUpdateEvent(uint8_t bid, const char* text, int ch) { - ZLOGI(TAG, "set acid ch%d:%s", ch, text); - UIS->setTxt(PAGE, bid, refmt("%.1f", text)); - AcidChCfgDao::updateAcidEachDistriVal(ch, atof(text)); -} diff --git a/usrc/service/page/Page_main.hpp b/usrc/service/page/Page_main.hpp deleted file mode 100644 index a5cfaf4..0000000 --- a/usrc/service/page/Page_main.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once -#include "page_processer.hpp" - -namespace iflytop { -using namespace std; - -class Page_main : public IPageProcesser { - private: - /* data */ - - public: - static Page_main* ins() { - static Page_main instance; - return &instance; - } - - private: - virtual bool isBelongThisPage(int page)override; - - virtual void OnPageLoad(OnPageLoadContext*cxt) override; - virtual void OnButton(uint8_t bid, uint8_t val) override; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; - virtual void OnAppEvent(AppEvent_t* event) override; - - private: - void processAcidevalUpdateEvent(uint8_t bid, const char* text, int ch); - void updateRunModeState(); -}; - -} // namespace iflytop diff --git a/usrc/service/page/Page_menu.cpp b/usrc/service/page/Page_menu.cpp deleted file mode 100644 index 2dd128f..0000000 --- a/usrc/service/page/Page_menu.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include "Page_menu.hpp" -using namespace iflytop; - -#define PAGE pg_main -#define TAG "Page_menu" - -/** - * @brief - * - * 1.对接遥控器状态 - * 2.对接阀门控制板的状态(直接隐藏掉) - * - */ - -bool Page_menu::isBelongThisPage(int page) { - if (page == pg_menuAdmin) return true; - if (page == pg_menuAdmin2) return true; - if (page == pg_menuUsr) return true; - if (page == pg_muneWarehouse) return true; - return false; -} - -void Page_menu::OnUnLoginButtonClick(uint8_t bid) { - ZLOGI(TAG, "OnUnLoginButtonClick"); - GSM->setUnLogin(); - UIS->chpage(pg_login); - return; -}; diff --git a/usrc/service/page/Page_menu.hpp b/usrc/service/page/Page_menu.hpp deleted file mode 100644 index a3ff911..0000000 --- a/usrc/service/page/Page_menu.hpp +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once -#include "page_processer.hpp" - -namespace iflytop { -using namespace std; - -class Page_menu : public IPageProcesser { - private: - /* data */ - - public: - static Page_menu* ins() { - static Page_menu instance; - return &instance; - } - - private: - virtual bool isBelongThisPage(int page)override; - - - - virtual void OnUnLoginButtonClick(uint8_t bid); -}; - -} // namespace iflytop diff --git a/usrc/service/page/keyboard/Page_keybAcidCh.cpp b/usrc/service/page/keyboard/Page_keybAcidCh.cpp deleted file mode 100644 index 5a1a5b4..0000000 --- a/usrc/service/page/keyboard/Page_keybAcidCh.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "Page_keybAcidCh.hpp" - -#include "db/dao/acid_name_dao.hpp" -using namespace iflytop; - -#define TAG "Page_keybAcidCh" -#define PAGE pg_keybAcidCh -#define OBJ(name) ob_keybAcidCh_##name - -bool Page_keybAcidCh::isBelongThisPage(int page) { return page == PAGE; } - -void Page_keybAcidCh::OnKeyboardPageLoad() { - ZLOGI(TAG, "Page_keybAcidCh::OnKeyboardPageLoad"); - UIS->setTxt(PAGE, OBJ(b0), AcidNameDao::getAcidName(0)); - UIS->setTxt(PAGE, OBJ(b1), AcidNameDao::getAcidName(1)); - UIS->setTxt(PAGE, OBJ(b2), AcidNameDao::getAcidName(2)); - UIS->setTxt(PAGE, OBJ(b3), AcidNameDao::getAcidName(3)); - UIS->setTxt(PAGE, OBJ(b4), AcidNameDao::getAcidName(4)); - UIS->setTxt(PAGE, OBJ(b5), AcidNameDao::getAcidName(5)); - UIS->setTxt(PAGE, OBJ(b6), AcidNameDao::getAcidName(6)); - UIS->setTxt(PAGE, OBJ(b7), AcidNameDao::getAcidName(7)); - UIS->setTxt(PAGE, OBJ(b8), AcidNameDao::getAcidName(8)); - UIS->setTxt(PAGE, OBJ(b9), AcidNameDao::getAcidName(9)); - UIS->setTxt(PAGE, OBJ(b10), AcidNameDao::getAcidName(10)); - UIS->setTxt(PAGE, OBJ(b11), AcidNameDao::getAcidName(11)); - UIS->setTxt(PAGE, OBJ(b12), AcidNameDao::getAcidName(12)); - UIS->setTxt(PAGE, OBJ(b13), AcidNameDao::getAcidName(13)); - UIS->setTxt(PAGE, OBJ(b14), AcidNameDao::getAcidName(14)); - return; -}; - -// muAcidType \ No newline at end of file diff --git a/usrc/service/page/keyboard/Page_keybAcidCh.hpp b/usrc/service/page/keyboard/Page_keybAcidCh.hpp deleted file mode 100644 index fd77018..0000000 --- a/usrc/service/page/keyboard/Page_keybAcidCh.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#pragma once -// -#include "../page_processer.hpp" - -namespace iflytop { -using namespace std; -// page: keybAcidCh -class Page_keybAcidCh : public IPageProcesser { - public: - static Page_keybAcidCh* ins() { - static Page_keybAcidCh instance; - return &instance; - } - - private: - virtual bool isBelongThisPage(int page) override; - virtual void OnKeyboardPageLoad() override; -}; - -} // namespace iflytop diff --git a/usrc/service/page/page.hpp b/usrc/service/page/page.hpp deleted file mode 100644 index 32aa9f4..0000000 --- a/usrc/service/page/page.hpp +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once - -#include "Page_login.hpp" -#include "Page_main.hpp" -#include "Page_menu.hpp" -#include "keyboard/Page_keybAcidCh.hpp" -#include "submenu/Page_changePasswd.hpp" -#include "submenu/Page_muAcidType.hpp" -#include "submenu/Page_muAudit.hpp" -#include "submenu/Page_muDeviceInfo.hpp" -#include "submenu/Page_muInterval.hpp" -#include "submenu/Page_muPumpTest.hpp" -#include "submenu/Page_muSettings.hpp" -#include "submenu/Page_muUsrMgr.hpp" - -// -#include "submenu/Page_muBleHandSett.hpp" -#include "submenu/Page_muMotorSett.hpp" -#include "submenu/Page_muPumpSett.hpp" \ No newline at end of file diff --git a/usrc/service/page/page_processer.hpp b/usrc/service/page/page_processer.hpp deleted file mode 100644 index 3aae729..0000000 --- a/usrc/service/page/page_processer.hpp +++ /dev/null @@ -1,66 +0,0 @@ -#pragma once - -#include "apphardware/apphardware.hpp" -#include "uappbase/base.hpp" -#include "service\front_end_controler.hpp" -#include "utils/page_bak_router.hpp" -#include "config/config.hpp" -#include "ui/ui.h" -namespace iflytop { -using namespace std; - -class OnPageLoadContext { - public: - bool isFromPopWin = false; -}; - -class IPageProcesser { - private: - /* data */ - - public: - virtual void initialize() { - UIS->regOnUsrEventCb([this](tjc::tjc_usr_event_t* event) { - if (!isBelongThisPage(event->pid)) { - return; - } - if (event->eventId == tjc::kpt_sys_event_page_id) { - OnPageLoadContext cxt = {0}; - cxt.isFromPopWin = event->d.sys_event_page_id.isFromPopWin; - OnPageLoad(&cxt); - } else if (event->eventId == tjc::kpt_double_state_button_event) { - OnButton(event->bid, event->d.double_state_button.val); - } else if (event->eventId == tjc::kpt_button_event) { - OnButton(event->bid, event->d.button_event.val); - } else if (event->eventId == tjc::kpt_inputfield_content_change_event1 || event->eventId == tjc::kpt_inputfield_content_change_event0) { - OnInputFieldContentChange(event->bid, event->d.inputfield_content.text); - } else if (event->eventId == tjc::kpt_login_request) { - OnLoginButtonClick(event->bid, event->d.login_request.usrName, event->d.login_request.passwd); - } else if (event->eventId == tjc::kpt_unlogin_request) { - OnUnLoginButtonClick(event->bid); - } else if(event->eventId == tjc::kpt_on_keyboard_page_load){ - OnKeyboardPageLoad(); - } - }); - - AppEventBus::ins()->regOnEvent([this](AppEvent_t* event) { - if (!isBelongThisPage(UIS->getNowPage())) { - return; - } - OnAppEvent(event); - }); - } - - private: - virtual bool isBelongThisPage(int page) = 0; - - virtual void OnPageLoad(OnPageLoadContext* cxt) { return; }; - virtual void OnKeyboardPageLoad() { return; }; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) { return; }; - virtual void OnButton(uint8_t bid, uint8_t val) { return; }; - virtual void OnLoginButtonClick(uint8_t bid, const char* userName, const char* passwd) { return; }; - virtual void OnUnLoginButtonClick(uint8_t bid) { return; }; - virtual void OnAppEvent(AppEvent_t* event) { return; }; -}; - -} // namespace iflytop diff --git a/usrc/service/page/submenu/Page_changePasswd.cpp b/usrc/service/page/submenu/Page_changePasswd.cpp deleted file mode 100644 index ace73fc..0000000 --- a/usrc/service/page/submenu/Page_changePasswd.cpp +++ /dev/null @@ -1,79 +0,0 @@ -#include "Page_changePasswd.hpp" - -#include "db/dao/user_dao.hpp" -using namespace iflytop; - -/** - * @brief - * 酸类修改页面 - */ - -#define PAGE pg_changePasswd -#define TAG "Page_changePasswd" - -bool Page_changePasswd::isBelongThisPage(int page) { return page == PAGE; } - -void Page_changePasswd::OnPageLoad(OnPageLoadContext* cxt) { - if (!cxt->isFromPopWin) { - memset(oldpasswdBuf, 0, sizeof(oldpasswdBuf)); - memset(newpasswdBuf, 0, sizeof(newpasswdBuf)); - memset(confirmPasswdBuf, 0, sizeof(confirmPasswdBuf)); - } - - UIS->setTxt(PAGE, ob_changePasswd_oldPwd, oldpasswdBuf); - UIS->setTxt(PAGE, ob_changePasswd_newPwd, newpasswdBuf); - UIS->setTxt(PAGE, ob_changePasswd_newPwdCfm, confirmPasswdBuf); -}; - -void Page_changePasswd::OnInputFieldContentChange(uint8_t bid, const char* text) { - user_t* user = UserDao::getUserByName(GSM->getLoginUsr()); - - if (user == nullptr) { - UIS->alert("用户不存在"); - return; - } - - if (bid == ob_changePasswd_oldPwd) { // 旧密码 - if (strcmp(user->passwd, text) != 0) { - UIS->alert("旧密码错误"); - return; - } - UIS->setTxt(PAGE, bid, text); - strcpy(oldpasswdBuf, text); - - } else if (bid == ob_changePasswd_newPwd) { // 新密码 - strcpy(newpasswdBuf, text); - UIS->setTxt(PAGE, bid, text); - } else if (bid == ob_changePasswd_newPwdCfm) { // 新密码确认 - strcpy(confirmPasswdBuf, text); - UIS->setTxt(PAGE, bid, text); - } -} -void Page_changePasswd::OnButton(uint8_t bid, uint8_t val) { - - // - if (bid == ob_changePasswd_confirm) { - user_t* user = UserDao::getUserByName(GSM->getLoginUsr()); - - if (user == nullptr) { - UIS->alert("用户不存在"); - return; - } - - if (strcmp(user->passwd, oldpasswdBuf) != 0) { - UIS->alert("旧密码错误"); - return; - } - if (strcmp(newpasswdBuf, confirmPasswdBuf) != 0) { - UIS->alert("两次密码不一致"); - return; - } - UserDao::updateUserPasswd(GSM->getLoginUsr(), newpasswdBuf); - - UIS->confirmNoCancle("密码修改成功"); - } else if (bid == ob_changePasswd_bak) { - UIS->chpage(GSM->getMenuPage()); - } -}; - -// muAcidType \ No newline at end of file diff --git a/usrc/service/page/submenu/Page_changePasswd.hpp b/usrc/service/page/submenu/Page_changePasswd.hpp deleted file mode 100644 index 119c109..0000000 --- a/usrc/service/page/submenu/Page_changePasswd.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once -// -#include "../page_processer.hpp" -namespace iflytop { -using namespace std; -// page: keybAcidCh -class Page_changePasswd : public IPageProcesser { - private: - /* data */ - - char oldpasswdBuf[30]; - char newpasswdBuf[30]; - char confirmPasswdBuf[30]; - - public: - static Page_changePasswd* ins() { - static Page_changePasswd instance; - return &instance; - } - - private: - virtual bool isBelongThisPage(int page) override; - - virtual void OnPageLoad(OnPageLoadContext*cxt) override; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; - virtual void OnButton(uint8_t bid, uint8_t val) override; - - private: -}; - -} // namespace iflytop diff --git a/usrc/service/page/submenu/Page_muAcidType.cpp b/usrc/service/page/submenu/Page_muAcidType.cpp deleted file mode 100644 index 12414da..0000000 --- a/usrc/service/page/submenu/Page_muAcidType.cpp +++ /dev/null @@ -1,105 +0,0 @@ -#include "Page_muAcidType.hpp" - -#include "db/dao/acid_name_dao.hpp" -using namespace iflytop; - -/** - * @brief - * 酸类修改页面 - */ - -#define PAGE pg_muAcidType -#define OBJ(name) ob_muAcidType_##name -#define TAG "Page_muAcidType" -bool Page_muAcidType::isBelongThisPage(int page) { return page == PAGE; } - -static int getAcidOff(int bid) { - switch (bid) { - case OBJ(t1): - return 0; - case OBJ(t2): - return 1; - case OBJ(t3): - return 2; - case OBJ(t4): - return 3; - case OBJ(t5): - return 4; - case OBJ(t6): - return 5; - case OBJ(t7): - return 6; - case OBJ(t8): - return 7; - case OBJ(t9): - return 8; - case OBJ(t10): - return 9; - case OBJ(t11): - return 10; - case OBJ(t12): - return 11; - case OBJ(t13): - return 12; - case OBJ(t14): - return 13; - case OBJ(t15): - return 14; - default: - return 0; - } -} - -void Page_muAcidType::OnPageLoad(OnPageLoadContext* cxt) { // - UIS->setTxt(PAGE, OBJ(t1), AcidNameDao::getAcidName(0)); - UIS->setTxt(PAGE, OBJ(t2), AcidNameDao::getAcidName(1)); - UIS->setTxt(PAGE, OBJ(t3), AcidNameDao::getAcidName(2)); - UIS->setTxt(PAGE, OBJ(t4), AcidNameDao::getAcidName(3)); - UIS->setTxt(PAGE, OBJ(t5), AcidNameDao::getAcidName(4)); - UIS->setTxt(PAGE, OBJ(t6), AcidNameDao::getAcidName(5)); - UIS->setTxt(PAGE, OBJ(t7), AcidNameDao::getAcidName(6)); - UIS->setTxt(PAGE, OBJ(t8), AcidNameDao::getAcidName(7)); - UIS->setTxt(PAGE, OBJ(t9), AcidNameDao::getAcidName(8)); - UIS->setTxt(PAGE, OBJ(t10), AcidNameDao::getAcidName(9)); - UIS->setTxt(PAGE, OBJ(t11), AcidNameDao::getAcidName(10)); - UIS->setTxt(PAGE, OBJ(t12), AcidNameDao::getAcidName(11)); - UIS->setTxt(PAGE, OBJ(t13), AcidNameDao::getAcidName(12)); - UIS->setTxt(PAGE, OBJ(t14), AcidNameDao::getAcidName(13)); - UIS->setTxt(PAGE, OBJ(t15), AcidNameDao::getAcidName(14)); -}; -void Page_muAcidType::updateAcidName(uint8_t bid, const char* txt) { - ZLOGI(TAG, "updateAcidName: cindex %d : %s", getAcidOff(bid), txt); - UIS->setTxt(PAGE, bid, txt); - AcidNameDao::updateAcidName(getAcidOff(bid), txt); -} - -void Page_muAcidType::OnInputFieldContentChange(uint8_t bid, const char* text) { // - switch (bid) { - case OBJ(t1): - case OBJ(t2): - case OBJ(t3): - case OBJ(t4): - case OBJ(t5): - case OBJ(t6): - case OBJ(t7): - case OBJ(t8): - case OBJ(t9): - case OBJ(t10): - case OBJ(t11): - case OBJ(t12): - case OBJ(t13): - case OBJ(t14): - case OBJ(t15): - updateAcidName(bid, text); - break; - default: - break; - } -}; -void Page_muAcidType::OnButton(uint8_t bid, uint8_t val) { // - if (bid == OBJ(bak)) { - UIS->chpage(GSM->getMenuPage()); - } -}; - -// muAcidType \ No newline at end of file diff --git a/usrc/service/page/submenu/Page_muAcidType.hpp b/usrc/service/page/submenu/Page_muAcidType.hpp deleted file mode 100644 index f478043..0000000 --- a/usrc/service/page/submenu/Page_muAcidType.hpp +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once -// -#include "../page_processer.hpp" -namespace iflytop { -using namespace std; -// page: keybAcidCh -class Page_muAcidType : public IPageProcesser { - private: - /* data */ - - public: - static Page_muAcidType* ins() { - static Page_muAcidType instance; - return &instance; - } - - private: - virtual bool isBelongThisPage(int page) override; - - virtual void OnPageLoad(OnPageLoadContext*cxt) override; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; - virtual void OnButton(uint8_t bid, uint8_t val) override; - - private: - void updateAcidName(uint8_t bid, const char* txt); -}; - -} // namespace iflytop diff --git a/usrc/service/page/submenu/Page_muAudit.cpp b/usrc/service/page/submenu/Page_muAudit.cpp deleted file mode 100644 index 8d41637..0000000 --- a/usrc/service/page/submenu/Page_muAudit.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "Page_muAudit.hpp" -using namespace iflytop; - -#define PAGE pg_muAudit -#define OBJ(name) ob_muAudit_##name -#define TAG "Page_muAudit" -bool Page_muAudit::isBelongThisPage(int page) { return page == PAGE; } - -void Page_muAudit::OnPageLoad(OnPageLoadContext* cxt) { // -}; - -void Page_muAudit::OnInputFieldContentChange(uint8_t bid, const char* text) { // -}; -void Page_muAudit::OnButton(uint8_t bid, uint8_t val) { // - if (bid == OBJ(bak)) { - UIS->chpage(GSM->getMenuPage()); - } -}; - -// muAcidType \ No newline at end of file diff --git a/usrc/service/page/submenu/Page_muAudit.hpp b/usrc/service/page/submenu/Page_muAudit.hpp deleted file mode 100644 index 9202122..0000000 --- a/usrc/service/page/submenu/Page_muAudit.hpp +++ /dev/null @@ -1,26 +0,0 @@ -#pragma once -// -#include "../page_processer.hpp" - -namespace iflytop { -using namespace std; -// page: keybAcidCh -class Page_muAudit : public IPageProcesser { - private: - /* data */ - - public: - static Page_muAudit* ins() { - static Page_muAudit instance; - return &instance; - } - - private: - virtual bool isBelongThisPage(int page) override; - - virtual void OnPageLoad(OnPageLoadContext*cxt) override; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; - virtual void OnButton(uint8_t bid, uint8_t val) override; - -}; -} diff --git a/usrc/service/page/submenu/Page_muBleHandSett.cpp b/usrc/service/page/submenu/Page_muBleHandSett.cpp deleted file mode 100644 index 74d09d5..0000000 --- a/usrc/service/page/submenu/Page_muBleHandSett.cpp +++ /dev/null @@ -1,71 +0,0 @@ -#include "Page_muBleHandSett.hpp" - -#include "db/dao/device_setting_dao.hpp" -#include "service/remote_controler.hpp" - -using namespace iflytop; - -/** - * @brief - * 酸类修改页面 - */ - -#define PAGE pg_muBleHandSett -#define TAG "Page_muBleHandSett" - -static bool m_scaning; -void Page_muBleHandSett::initialize() { // - IPageProcesser::initialize(); - RCTRL->regOnReport([this](uint8_t* rx, int32_t len) { - zble_proto_packet_t* packet = (zble_proto_packet_t*)rx; - if (UIS->getNowPage() != PAGE) { - return; - } - if (packet->cmd == kzble_app_report_key_event) { - int32_t keyEvent = *(int32_t*)packet->data; - if (keyEvent == hand_acid_remoter_kevent_add_liquid) { - UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, "加液"); - } - if (keyEvent == hand_acid_remoter_kevent_change_next_mode) { - UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, "模式切换"); - } - if (keyEvent == hand_acid_remoter_kevent_reflux) { - UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, "液路回流"); - } - if (keyEvent == hand_acid_remoter_kevent_preFilling) { - UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, "液路预充"); - } - return; - } - }); -} -bool Page_muBleHandSett::isBelongThisPage(int page) { return page == PAGE; } -void Page_muBleHandSett::updatePage() { UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, DeviceSettingDao::get()->bleClientName); } -void Page_muBleHandSett::OnPageLoad(OnPageLoadContext* cxt) { // - updatePage(); -}; -void Page_muBleHandSett::OnAppEvent(AppEvent_t* event) { - if (event->type == kAppEvent_BleConnectEvent) { - ZLOGI(TAG, "ble connect success"); - UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, "绑定成功"); - DeviceSettingDao::updateBleClientName(event->d.bleName); - m_scaning = false; - } -} -void Page_muBleHandSett::OnInputFieldContentChange(uint8_t bid, const char* text) { updatePage(); } -void Page_muBleHandSett::OnButton(uint8_t bid, uint8_t val) { - ZLOGI(TAG, "bid:%d", bid); - if (bid == ob_muBleHandSett_bak) { - if (m_scaning) { - RCTRL->startScan("XXXXXXXXX", false); // 相当于停止扫描 - } - UIS->chpage(getBakPage(PAGE)); - } else if (bid == ob_muBleHandSett_bleScan) { - ZLOGI(TAG, "bleScan"); - bool suc = RCTRL->startScan(BLENAME, true); - if (suc) UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, "扫描中..."); - m_scaning = true; - } -}; - -// muAcidType \ No newline at end of file diff --git a/usrc/service/page/submenu/Page_muBleHandSett.hpp b/usrc/service/page/submenu/Page_muBleHandSett.hpp deleted file mode 100644 index b8833bc..0000000 --- a/usrc/service/page/submenu/Page_muBleHandSett.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once -// -#include "../page_processer.hpp" -namespace iflytop { -using namespace std; -// page: keybAcidCh -class Page_muBleHandSett : public IPageProcesser { - private: - /* data */ - - public: - static Page_muBleHandSett* ins() { - static Page_muBleHandSett instance; - return &instance; - } - virtual void initialize() override; - - private: - virtual bool isBelongThisPage(int page) override; - - virtual void OnPageLoad(OnPageLoadContext* cxt) override; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; - virtual void OnButton(uint8_t bid, uint8_t val) override; - virtual void OnAppEvent(AppEvent_t* event) override; - - private: - void updatePage(); -}; - -} // namespace iflytop diff --git a/usrc/service/page/submenu/Page_muDeviceInfo.cpp b/usrc/service/page/submenu/Page_muDeviceInfo.cpp deleted file mode 100644 index d558232..0000000 --- a/usrc/service/page/submenu/Page_muDeviceInfo.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include "Page_muDeviceInfo.hpp" - -using namespace iflytop; - -#define PAGE pg_muDeviceInfo -#define TAG "Page_muDeviceInfo" -bool Page_muDeviceInfo::isBelongThisPage(int page) { return page == PAGE; } - -void Page_muDeviceInfo::OnPageLoad(OnPageLoadContext* cxt) { - UIS->setTxt(PAGE, ob_muDeviceInfo_deviceId, "SN000001"); - UIS->setTxt(PAGE, ob_muDeviceInfo_manufa, "中国黄金"); - UIS->setTxt(PAGE, ob_muDeviceInfo_softVers, APP_VERSION); -} -void Page_muDeviceInfo::OnInputFieldContentChange(uint8_t bid, const char* text) {} -void Page_muDeviceInfo::OnButton(uint8_t bid, uint8_t val) { - if (bid == ob_muDeviceInfo_bak) { - UIS->chpage(GSM->getMenuPage()); - } -} \ No newline at end of file diff --git a/usrc/service/page/submenu/Page_muDeviceInfo.hpp b/usrc/service/page/submenu/Page_muDeviceInfo.hpp deleted file mode 100644 index 891c796..0000000 --- a/usrc/service/page/submenu/Page_muDeviceInfo.hpp +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once -// -#include "../page_processer.hpp" -namespace iflytop { -using namespace std; -// page: keybAcidCh -class Page_muDeviceInfo : public IPageProcesser { - private: - /* data */ - - public: - static Page_muDeviceInfo* ins() { - static Page_muDeviceInfo instance; - return &instance; - } - - private: - virtual bool isBelongThisPage(int page) override; - - virtual void OnPageLoad(OnPageLoadContext*cxt) override; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; - virtual void OnButton(uint8_t bid, uint8_t val) override; - - private: -}; - -} // namespace iflytop diff --git a/usrc/service/page/submenu/Page_muInterval.cpp b/usrc/service/page/submenu/Page_muInterval.cpp deleted file mode 100644 index d9a0cbb..0000000 --- a/usrc/service/page/submenu/Page_muInterval.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include "Page_muInterval.hpp" - -#include "db/dao/device_setting_dao.hpp" -using namespace iflytop; - -/** - * @brief - * 酸类修改页面 - */ - -#define PAGE pg_muInterval -#define TAG "Page_muInterval" - -bool Page_muInterval::isBelongThisPage(int page) { return page == PAGE; } - -void Page_muInterval::OnPageLoad(OnPageLoadContext* cxt) { - // 设置加酸间隔时间 - UIS->setTxt(PAGE, ob_muInterval_stAcidInte, "%.1f", DeviceSettingDao::get()->distrIntervalS); -}; - -void Page_muInterval::OnInputFieldContentChange(uint8_t bid, const char* text) { - if (bid == ob_muInterval_stAcidInte) { - float distrIntervalSSecond = atof(text); - if (distrIntervalSSecond <= 0) { - UIS->alert("酸液间隔时间不能小于0"); - UIS->setTxt(PAGE, ob_muInterval_stAcidInte,"%.1f", DeviceSettingDao::get()->distrIntervalS); - return; - } - - if (distrIntervalSSecond > 30) { - UIS->alert("酸液间隔时间不能大于30"); - UIS->setTxt(PAGE, ob_muInterval_stAcidInte,"%.1f", DeviceSettingDao::get()->distrIntervalS); - return; - } - UIS->setTxt(PAGE, bid, zfmt("%.1f", distrIntervalSSecond)); - DeviceSettingDao::updatedistrIntervalS(distrIntervalSSecond); - } -}; -void Page_muInterval::OnButton(uint8_t bid, uint8_t val) { - // - if (bid == ob_muInterval_bak) { - UIS->chpage(GSM->getMenuPage()); - } -}; - -// muAcidType \ No newline at end of file diff --git a/usrc/service/page/submenu/Page_muInterval.hpp b/usrc/service/page/submenu/Page_muInterval.hpp deleted file mode 100644 index 7b1e8e2..0000000 --- a/usrc/service/page/submenu/Page_muInterval.hpp +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once -// -#include "../page_processer.hpp" -namespace iflytop { -using namespace std; -// page: keybAcidCh -class Page_muInterval : public IPageProcesser { - private: - /* data */ - - public: - static Page_muInterval* ins() { - static Page_muInterval instance; - return &instance; - } - - private: - virtual bool isBelongThisPage(int page) override; - - virtual void OnPageLoad(OnPageLoadContext*cxt) override; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; - virtual void OnButton(uint8_t bid, uint8_t val) override; -}; - -} // namespace iflytop diff --git a/usrc/service/page/submenu/Page_muMotorSett.cpp b/usrc/service/page/submenu/Page_muMotorSett.cpp deleted file mode 100644 index e80c651..0000000 --- a/usrc/service/page/submenu/Page_muMotorSett.cpp +++ /dev/null @@ -1,83 +0,0 @@ -#include "Page_muMotorSett.hpp" - -#include "db/dao/acid_ch_cfg_dao.hpp" -#include "service/remote_controler.hpp" - -using namespace iflytop; - -/** - * @brief - * 酸类修改页面 - */ - -#define PAGE pg_muMotorSett -#define TAG "Page_muMotorSett" - -static bool m_scaning; -void Page_muMotorSett::initialize() { // - IPageProcesser::initialize(); -} - -static int32_t getMxIRun(int32_t index) { - if (index < 0 || index > 3) return 0; - return AcidChCfgDao::getCfg(index)->irun; -} -static int32_t setMxIRun(int32_t index, int32_t irun) { - if (index < 0 || index > 3) return 0; - AcidChCfgDao::updateIRUN(index, irun); - return 0; -} - -bool Page_muMotorSett::isBelongThisPage(int page) { return page == PAGE; } - -void Page_muMotorSett::updatePage() { - UIS->setTxt(PAGE, ob_muMotorSett_irun0, zitoa(getMxIRun(0))); - UIS->setTxt(PAGE, ob_muMotorSett_irun1, zitoa(getMxIRun(1))); - UIS->setTxt(PAGE, ob_muMotorSett_irun2, zitoa(getMxIRun(2))); - UIS->setTxt(PAGE, ob_muMotorSett_irun3, zitoa(getMxIRun(3))); -} - -void Page_muMotorSett::OnPageLoad(OnPageLoadContext* cxt) { // - updatePage(); -}; -void Page_muMotorSett::OnAppEvent(AppEvent_t* event) {} -void Page_muMotorSett::OnInputFieldContentChange(uint8_t bid, const char* text) { - /*********************************************************************************************************************** - * irunx * - ***********************************************************************************************************************/ - - if (bid == ob_muMotorSett_irun0 || bid == ob_muMotorSett_irun1 || bid == ob_muMotorSett_irun2 || bid == ob_muMotorSett_irun3) { - int irun = atoi(text); - if (irun < 1 || irun > 31) { - UIS->alert("IRUN需要限制在1..31"); - return; - } - } - - if (bid == ob_muMotorSett_irun0) { - setMxIRun(0, atoi(text)); - UIS->setTxt(bid, zfmt("%d", getMxIRun(0))); - } else if (bid == ob_muMotorSett_irun1) { - setMxIRun(1, atoi(text)); - UIS->setTxt(bid, zfmt("%d", getMxIRun(1))); - } else if (bid == ob_muMotorSett_irun2) { - setMxIRun(2, atoi(text)); - UIS->setTxt(bid, zfmt("%d", getMxIRun(2))); - } else if (bid == ob_muMotorSett_irun3) { - setMxIRun(3, atoi(text)); - UIS->setTxt(bid, zfmt("%d", getMxIRun(3))); - } - - /*********************************************************************************************************************** - * addAcidVel * - ***********************************************************************************************************************/ - - updatePage(); -} -void Page_muMotorSett::OnButton(uint8_t bid, uint8_t val) { - if (bid == ob_muMotorSett_bak) { - UIS->chpage(getBakPage(PAGE)); - } -}; - -// muAcidType \ No newline at end of file diff --git a/usrc/service/page/submenu/Page_muMotorSett.hpp b/usrc/service/page/submenu/Page_muMotorSett.hpp deleted file mode 100644 index 0e7d7e7..0000000 --- a/usrc/service/page/submenu/Page_muMotorSett.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once -// -#include "../page_processer.hpp" -namespace iflytop { -using namespace std; -// page: keybAcidCh -class Page_muMotorSett : public IPageProcesser { - private: - /* data */ - - public: - static Page_muMotorSett* ins() { - static Page_muMotorSett instance; - return &instance; - } - virtual void initialize() override; - - private: - virtual bool isBelongThisPage(int page) override; - - virtual void OnPageLoad(OnPageLoadContext* cxt) override; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; - virtual void OnButton(uint8_t bid, uint8_t val) override; - virtual void OnAppEvent(AppEvent_t* event) override; - - private: - void updatePage(); -}; - -} // namespace iflytop diff --git a/usrc/service/page/submenu/Page_muPumpSett.cpp b/usrc/service/page/submenu/Page_muPumpSett.cpp deleted file mode 100644 index 58e1d5a..0000000 --- a/usrc/service/page/submenu/Page_muPumpSett.cpp +++ /dev/null @@ -1,163 +0,0 @@ -#include "Page_muPumpSett.hpp" - -#include "db/dao/acid_ch_cfg_dao.hpp" -#include "service/remote_controler.hpp" - -using namespace iflytop; - -/** - * @brief - * 酸类修改页面 - */ - -#define PAGE pg_muPumpSett -#define TAG "Page_muPumpSett" - -static float getMotorMLPR(int32_t index) { - if (index < 0 || index > 3) return 0; - return AcidChCfgDao::getCfg(index)->mLPR; -} - -static float setMotorMLPR(int32_t index, float mlpr) { - if (index < 0 || index > 3) return 0; - // AcidChCfgDao::updateMLPR(index, mlpr); - return 0; -} - -static bool m_scaning; -void Page_muPumpSett::initialize() { // - IPageProcesser::initialize(); - - RCTRL->regOnReport([this](uint8_t* rx, int32_t len) { - zble_proto_packet_t* packet = (zble_proto_packet_t*)rx; - if (UIS->getNowPage() != PAGE) { - return; - } - - if (packet->cmd == kzble_app_report_key_event) { - int32_t keyEvent = *(int32_t*)packet->data; - - return; - } - }); -} -bool Page_muPumpSett::isBelongThisPage(int page) { return page == PAGE; } - -void Page_muPumpSett::updatePage() { - UIS->setTxt(PAGE, ob_muPumpSett_pumpCoef0, zfmt("%.4f", getMotorMLPR(0))); - UIS->setTxt(PAGE, ob_muPumpSett_pumpCoef1, zfmt("%.4f", getMotorMLPR(1))); - UIS->setTxt(PAGE, ob_muPumpSett_pumpCoef2, zfmt("%.4f", getMotorMLPR(2))); - UIS->setTxt(PAGE, ob_muPumpSett_pumpCoef3, zfmt("%.4f", getMotorMLPR(3))); - // UIS->setTxt(PAGE, ob_muPumpSett_pipeLen0, zfmt("%.2f", getCfgPipeLengthML(0))); - // UIS->setTxt(PAGE, ob_muPumpSett_pipeLen1, zfmt("%.2f", getCfgPipeLengthML(1))); - // UIS->setTxt(PAGE, ob_muPumpSett_pipeLen2, zfmt("%.2f", getCfgPipeLengthML(2))); - // UIS->setTxt(PAGE, ob_muPumpSett_pipeLen3, zfmt("%.2f", getCfgPipeLengthML(3))); - // TODO:改成4个输入框 - // UIS->setTxt(PAGE, ob_muPumpSett_addAcidVel0, zitoa(getMxRunRPM(0))); - // UIS->setTxt(PAGE, ob_muPumpSett_addAcidVel1, zitoa(getMxRunRPM(1))); - // UIS->setTxt(PAGE, ob_muPumpSett_addAcidVel2, zitoa(getMxRunRPM(2))); - // UIS->setTxt(PAGE, ob_muPumpSett_addAcidVel3, zitoa(getMxRunRPM(3))); -} - -void Page_muPumpSett::OnPageLoad(OnPageLoadContext* cxt) { // - updatePage(); -}; -void Page_muPumpSett::OnAppEvent(AppEvent_t* event) {} - -void Page_muPumpSett::OnInputFieldContentChange(uint8_t bid, const char* text) { - /*********************************************************************************************************************** - * irunx * - ***********************************************************************************************************************/ - - /*********************************************************************************************************************** - * pumpCoef * - ***********************************************************************************************************************/ - - if (bid == ob_muPumpSett_pumpCoef0) { - setMotorMLPR(0, atof(text)); - UIS->setTxt(bid, zfmt("%.4f", getMotorMLPR(0))); - } else if (bid == ob_muPumpSett_pumpCoef1) { - setMotorMLPR(1, atof(text)); - UIS->setTxt(bid, zfmt("%.4f", getMotorMLPR(1))); - } else if (bid == ob_muPumpSett_pumpCoef2) { - setMotorMLPR(2, atof(text)); - UIS->setTxt(bid, zfmt("%.4f", getMotorMLPR(2))); - } else if (bid == ob_muPumpSett_pumpCoef3) { - setMotorMLPR(3, atof(text)); - UIS->setTxt(bid, zfmt("%.4f", getMotorMLPR(3))); - } - - /*********************************************************************************************************************** - * pipeLen * - ***********************************************************************************************************************/ - - if (bid == ob_muPumpSett_pipeLen0 || bid == ob_muPumpSett_pipeLen1 || bid == ob_muPumpSett_pipeLen2 || bid == ob_muPumpSett_pipeLen3) { - float len = atof(text); - if (len < 0.1) { - UIS->alert("管道长度不能小于0.1"); - return; - } - } - - // if (bid == ob_muPumpSett_pipeLen0) { - // setCfgPipeLengthML(0, atof(text)); - // UIS->setTxt(bid, zfmt("%.2f", getCfgPipeLengthML(0))); - // } - - // if (bid == ob_muPumpSett_pipeLen1) { - // setCfgPipeLengthML(1, atof(text)); - // UIS->setTxt(bid, zfmt("%.2f", getCfgPipeLengthML(1))); - // } - - // if (bid == ob_muPumpSett_pipeLen2) { - // setCfgPipeLengthML(2, atof(text)); - // UIS->setTxt(bid, zfmt("%.2f", getCfgPipeLengthML(2))); - // } - - // if (bid == ob_muPumpSett_pipeLen3) { - // setCfgPipeLengthML(3, atof(text)); - // UIS->setTxt(bid, zfmt("%.2f", getCfgPipeLengthML(3))); - // } - - /*********************************************************************************************************************** - * addAcidVel * - ***********************************************************************************************************************/ - // TODO改成4个输入框 - if (bid == ob_muPumpSett_addAcidVel0 || bid == ob_muPumpSett_addAcidVel1 || bid == ob_muPumpSett_addAcidVel2 || bid == ob_muPumpSett_addAcidVel3) { - int rpm = atoi(text); - if (rpm < 10) { - UIS->alert("转速不能小于10"); - return; - } - - if (rpm > 2000) { - UIS->alert("转速不能大于2000"); - return; - } - - // switch (bid) { - // case ob_muPumpSett_addAcidVel0: - // setMxRunRPM(0, rpm); - // break; - // case ob_muPumpSett_addAcidVel1: - // setMxRunRPM(1, rpm); - // break; - // case ob_muPumpSett_addAcidVel2: - // setMxRunRPM(2, rpm); - // break; - // case ob_muPumpSett_addAcidVel3: - // setMxRunRPM(3, rpm); - // break; - // } - UIS->setTxt(bid, zitoa(rpm)); - } - - updatePage(); -} -void Page_muPumpSett::OnButton(uint8_t bid, uint8_t val) { - if (bid == ob_muPumpSett_bak) { - UIS->chpage(getBakPage(PAGE)); - } -}; - -// muAcidType \ No newline at end of file diff --git a/usrc/service/page/submenu/Page_muPumpSett.hpp b/usrc/service/page/submenu/Page_muPumpSett.hpp deleted file mode 100644 index 365a41c..0000000 --- a/usrc/service/page/submenu/Page_muPumpSett.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once -// -#include "../page_processer.hpp" -namespace iflytop { -using namespace std; -// page: keybAcidCh -class Page_muPumpSett : public IPageProcesser { - private: - /* data */ - - public: - static Page_muPumpSett* ins() { - static Page_muPumpSett instance; - return &instance; - } - virtual void initialize() override; - - private: - virtual bool isBelongThisPage(int page) override; - - virtual void OnPageLoad(OnPageLoadContext* cxt) override; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; - virtual void OnButton(uint8_t bid, uint8_t val) override; - virtual void OnAppEvent(AppEvent_t* event) override; - - private: - void updatePage(); -}; - -} // namespace iflytop diff --git a/usrc/service/page/submenu/Page_muPumpTest.cpp b/usrc/service/page/submenu/Page_muPumpTest.cpp deleted file mode 100644 index ae97ac6..0000000 --- a/usrc/service/page/submenu/Page_muPumpTest.cpp +++ /dev/null @@ -1,128 +0,0 @@ -#include "Page_muPumpTest.hpp" - -#include "service/pump_ctrl_service.hpp" -#include "service/remote_controler.hpp" -using namespace iflytop; - -#define PAGE pg_muPumpTest -#define TAG "Page_muPumpTest" - -static void Page_muPumpTest_onTimer(const void* tid) { - Page_muPumpTest* thisClass = (Page_muPumpTest*)pvTimerGetTimerID((TimerHandle_t)tid); - thisClass->onTimer(); -} - -void Page_muPumpTest::initialize() { // - IPageProcesser::initialize(); - - osTimerDef(statiUpdateTimer, Page_muPumpTest_onTimer); - statiUpdateTimerId = osTimerCreate(osTimer(statiUpdateTimer), osTimerPeriodic, this); - - RCTRL->regOnReport([this](uint8_t* rx, int32_t len) { - zble_proto_packet_t* packet = (zble_proto_packet_t*)rx; - // ZLOGI(TAG, "TRACE process ble report start"); - if (UIS->getNowPage() != PAGE) { - // ZLOGI(TAG, "TRACE process ble report end...."); - return; - } - - if (packet->cmd == kzble_app_report_key_event) { - int32_t keyEvent = *(int32_t*)packet->data; - if (keyEvent == hand_acid_remoter_kevent_add_liquid) { - if (m_workFlag) { - pumpStart(1); - } else { - pumpStop(); - } - } - } - // ZLOGI(TAG, "TRACE process ble report end...."); - }); -} - -bool Page_muPumpTest::isBelongThisPage(int page) { return page == PAGE; } - -void Page_muPumpTest::OnPageLoad(OnPageLoadContext* cxt) { - // motorTrunsBegin - if (!cxt->isFromPopWin) { - updateStatiInfo(0, 0); - m_pumpId = 0; - m_workFlag = false; - } - ZLOGI(TAG, "m_pumpId:%d %d", m_pumpId, cxt->isFromPopWin); - UIS->setTxt(ob_muPumpTest_pumpId, zfmt("%d", m_pumpId + 1)); -} - -void Page_muPumpTest::OnInputFieldContentChange(uint8_t bid, const char* text) { // - ZLOGI(TAG, "bid:%d %s", bid, text); - // ob_muPumpTest_frompage - if (bid == ob_muPumpTest_pumpId) { - pumpChangeSelectId(atoi(text) - 1); - } -} -void Page_muPumpTest::OnButton(uint8_t bid, uint8_t val) { - ZLOGI(TAG, "bid:%d", bid); - if (bid == ob_muPumpTest_bak) { - pumpStop(); - UIS->chpage(pg_muSettings); - } else if (bid == ob_muPumpTest_clearStati) { - ZLOGI(TAG, "clearStati"); - clearStatisInfo(); - } else if (bid == ob_muPumpTest_forward) { - ZLOGI(TAG, "forward"); - pumpStart(1); - } else if (bid == ob_muPumpTest_bakward) { - ZLOGI(TAG, "bakward"); - pumpStart(-1); - } else if (bid == ob_muPumpTest_stop) { - ZLOGI(TAG, "stop"); - pumpStop(); - } -} -/*********************************************************************************************************************** - * LOGIC * - ***********************************************************************************************************************/ -void Page_muPumpTest::pumpStop() { - PUMPCS->stopRotate(); - osTimerStop(statiUpdateTimerId); - updateStatiInfo(); - m_workFlag = false; -} -void Page_muPumpTest::pumpStart(int32_t direction) { - ZLOGI(TAG, "pumpStart %d %d", m_pumpId, direction); - PUMPCS->rotate(m_pumpId, direction); - osTimerStop(statiUpdateTimerId); - osTimerStart(statiUpdateTimerId, 300); - m_workFlag = true; -} -void Page_muPumpTest::pumpChangeSelectId(int id) { - if (id < 0 || id > 3) { - ZLOGW(TAG, "pumpId out of range"); - return; - } - if ((id) != m_pumpId) { - ZLOGI(TAG, "pumpId change to %d", id); - m_pumpId = id; - PUMPCS->stopRotate(); - clearStatisInfo(); - } -} -void Page_muPumpTest::updateStatiInfo(float statiTruns, float statiVolum) { - m_statiTruns = statiTruns; - m_statiVolum = statiVolum; - UIS->setTxt(ob_muPumpTest_statiTrun, zfmt("%.2f", m_statiTruns)); - UIS->setTxt(ob_muPumpTest_statiVolum, zfmt("%.1f", m_statiVolum)); -} -void Page_muPumpTest::clearStatisInfo() { - updateStatiInfo(0, 0); - PUMPCS->setCurrentPosAsZero(m_pumpId); -} - -void Page_muPumpTest::updateStatiInfo() { - double nowPos = PUMPCS->getMotorNowPosR(m_pumpId); - double truns = (nowPos); - // float motorX_mLPR = getMotorMLPR(m_pumpId); - // double volum = truns * motorX_mLPR; - // updateStatiInfo(truns, volum); -} -void Page_muPumpTest::onTimer() { updateStatiInfo(); } diff --git a/usrc/service/page/submenu/Page_muPumpTest.hpp b/usrc/service/page/submenu/Page_muPumpTest.hpp deleted file mode 100644 index 37707e2..0000000 --- a/usrc/service/page/submenu/Page_muPumpTest.hpp +++ /dev/null @@ -1,46 +0,0 @@ -#pragma once -// -#include "../page_processer.hpp" -namespace iflytop { -using namespace std; -// page: keybAcidCh -class Page_muPumpTest : public IPageProcesser { - private: - /* data */ - - int m_pumpId = 0; - float m_statiTruns = 0; - float m_statiVolum = 0; - bool m_workFlag = false; - - osTimerId statiUpdateTimerId; // - - public: - static Page_muPumpTest* ins() { - static Page_muPumpTest instance; - return &instance; - } - - virtual void initialize(); - - private: - virtual bool isBelongThisPage(int page) override; - - virtual void OnPageLoad(OnPageLoadContext* cxt) override; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; - virtual void OnButton(uint8_t bid, uint8_t val) override; - - private: - void updateStatiInfo(float statiTruns, float statiVolum); - void clearStatisInfo(); - void updateStatiInfo(); - - void pumpStop(); - void pumpStart(int32_t direction); - void pumpChangeSelectId(int id); - - public: - void onTimer(); -}; - -} // namespace iflytop diff --git a/usrc/service/page/submenu/Page_muSettings.cpp b/usrc/service/page/submenu/Page_muSettings.cpp deleted file mode 100644 index d781741..0000000 --- a/usrc/service/page/submenu/Page_muSettings.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "Page_muSettings.hpp" - -#include "service/remote_controler.hpp" - -using namespace iflytop; - -/** - * @brief - * 酸类修改页面 - */ - -#define PAGE pg_muSettings -#define TAG "Page_muSettings" - -static bool m_scaning; - -void Page_muSettings::initialize() { // - IPageProcesser::initialize(); -} -bool Page_muSettings::isBelongThisPage(int page) { return page == PAGE; } -void Page_muSettings::updatePage() {} -void Page_muSettings::OnPageLoad(OnPageLoadContext* cxt) { // -}; -void Page_muSettings::OnAppEvent(AppEvent_t* event) {} -void Page_muSettings::OnInputFieldContentChange(uint8_t bid, const char* text) {} -void Page_muSettings::OnButton(uint8_t bid, uint8_t val) { - if (bid == ob_muSettings_bak) { - UIS->chpage(GSM->getMenuPage()); - } -}; - -// muAcidType \ No newline at end of file diff --git a/usrc/service/page/submenu/Page_muSettings.hpp b/usrc/service/page/submenu/Page_muSettings.hpp deleted file mode 100644 index 6e398e4..0000000 --- a/usrc/service/page/submenu/Page_muSettings.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once -// -#include "../page_processer.hpp" -namespace iflytop { -using namespace std; -// page: keybAcidCh -class Page_muSettings : public IPageProcesser { - private: - /* data */ - - public: - static Page_muSettings* ins() { - static Page_muSettings instance; - return &instance; - } - virtual void initialize() override; - - private: - virtual bool isBelongThisPage(int page) override; - - virtual void OnPageLoad(OnPageLoadContext* cxt) override; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; - virtual void OnButton(uint8_t bid, uint8_t val) override; - virtual void OnAppEvent(AppEvent_t* event) override; - - private: - void updatePage(); -}; - -} // namespace iflytop diff --git a/usrc/service/page/submenu/Page_muUsrMgr.cpp b/usrc/service/page/submenu/Page_muUsrMgr.cpp deleted file mode 100644 index e5cd98c..0000000 --- a/usrc/service/page/submenu/Page_muUsrMgr.cpp +++ /dev/null @@ -1,117 +0,0 @@ -#include "Page_muUsrMgr.hpp" -using namespace iflytop; - -/** - * @brief - * 酸类修改页面 - */ - -#define PAGE pg_muUsrMgr -#define TAG "Page_muUsrMgr" - -bool Page_muUsrMgr::isBelongThisPage(int page) { return page == PAGE; } - -void Page_muUsrMgr::OnPageLoad(OnPageLoadContext* cxt) { // - ZLOGI(TAG, "OnPageLoad"); - updatePage(); -}; -void Page_muUsrMgr::updatePage() { - // UIS->setTxt(PAGE, ob_muUsrMgr_usr0name, getCfgStr(kusr_name0)); - // UIS->setTxt(PAGE, ob_muUsrMgr_usr1name, getCfgStr(kusr_name1)); - // UIS->setTxt(PAGE, ob_muUsrMgr_usr2name, getCfgStr(kusr_name2)); - // UIS->setTxt(PAGE, ob_muUsrMgr_usr3name, getCfgStr(kusr_name3)); - // UIS->setTxt(PAGE, ob_muUsrMgr_usr4name, getCfgStr(kusr_name4)); - // UIS->setTxt(PAGE, ob_muUsrMgr_usr5name, getCfgStr(kusr_name5)); - - // // UIS->setVal(PAGE, ob_muUsrMgr_usr1en, (int)getCfgBool(kusr_enable1)); - // UIS->setVal(PAGE, ob_muUsrMgr_usr2en, (int)getCfgBool(kusr_enable2)); - // UIS->setVal(PAGE, ob_muUsrMgr_usr3en, (int)getCfgBool(kusr_enable3)); - // UIS->setVal(PAGE, ob_muUsrMgr_usr4en, (int)getCfgBool(kusr_enable4)); - // UIS->setVal(PAGE, ob_muUsrMgr_usr5en, (int)getCfgBool(kusr_enable5)); -} - -void Page_muUsrMgr::OnInputFieldContentChange(uint8_t bid, const char* text) { - // if (bid == ob_muUsrMgr_usr1ReName) { - // ZLOGI(TAG, "rename usr1:%s", text); - // CS->setcfgAndFlush(kusr_name1, text); - // updatePage(); - // } // - // else if (bid == ob_muUsrMgr_usr2ReName) { - // ZLOGI(TAG, "rename usr2:%s", text); - // CS->setcfgAndFlush(kusr_name2, text); - // updatePage(); - // } // - // else if (bid == ob_muUsrMgr_usr3ReName) { - // ZLOGI(TAG, "rename usr3:%s", text); - // CS->setcfgAndFlush(kusr_name3, text); - // updatePage(); - // } // - // else if (bid == ob_muUsrMgr_usr4ReName) { - // ZLOGI(TAG, "rename usr4:%s", text); - // CS->setcfgAndFlush(kusr_name4, text); - // updatePage(); - // } // - // else if (bid == ob_muUsrMgr_usr5ReName) { - // ZLOGI(TAG, "rename usr5:%s", text); - // CS->setcfgAndFlush(kusr_name5, text); - // updatePage(); - // } -} - -void Page_muUsrMgr::OnButton(uint8_t bid, uint8_t val) { - ZLOGI(TAG, "bid:%d", bid); - - // if (bid == ob_muUsrMgr_bak) { - // UIS->chpage(GSM->getMenuPage()); - // } else if (bid == ob_muUsrMgr_usr1Rest) { - // ZLOGI(TAG, "reset usr1 "); - // CS->setcfgAndFlush(kusr_name1, USER1_DEFAULT_NAME); - // CS->setcfgAndFlush(kusr_passwd1, USER_DEFAULT_PWD); - // updatePage(); - // } else if (bid == ob_muUsrMgr_usr2Rest) { - // ZLOGI(TAG, "reset usr2 "); - // CS->setcfgAndFlush(kusr_name2, USER2_DEFAULT_NAME); - // CS->setcfgAndFlush(kusr_passwd2, USER_DEFAULT_PWD); - // updatePage(); - // } else if (bid == ob_muUsrMgr_usr3Rest) { - // ZLOGI(TAG, "reset usr3 "); - // CS->setcfgAndFlush(kusr_name3, USER3_DEFAULT_NAME); - // CS->setcfgAndFlush(kusr_passwd3, USER_DEFAULT_PWD); - // updatePage(); - // } else if (bid == ob_muUsrMgr_usr4Rest) { - // ZLOGI(TAG, "reset usr4 "); - // CS->setcfgAndFlush(kusr_name4, USER4_DEFAULT_NAME); - // CS->setcfgAndFlush(kusr_passwd4, USER_DEFAULT_PWD); - // updatePage(); - // } else if (bid == ob_muUsrMgr_usr5Rest) { - // ZLOGI(TAG, "reset usr5 "); - // CS->setcfgAndFlush(kusr_name5, USER5_DEFAULT_NAME); - // CS->setcfgAndFlush(kusr_passwd5, USER_DEFAULT_PWD); - // updatePage(); - // } - // // } - // // else if (bid == ob_muUsrMgr_usr1en) { - // // ZLOGI(TAG, "enable usr1 %d", val); - // // CS->setcfgAndFlush(kusr_enable1, (bool)val); - // // updatePage(); - // // } - // else if (bid == ob_muUsrMgr_usr2en) { - // ZLOGI(TAG, "enable usr2 %d", val); - // CS->setcfgAndFlush(kusr_enable2, (bool)val); - // updatePage(); - // } else if (bid == ob_muUsrMgr_usr3en) { - // ZLOGI(TAG, "enable usr3 %d", val); - // CS->setcfgAndFlush(kusr_enable3, (bool)val); - // updatePage(); - // } else if (bid == ob_muUsrMgr_usr4en) { - // ZLOGI(TAG, "enable usr4 %d", val); - // CS->setcfgAndFlush(kusr_enable4, (bool)val); - // updatePage(); - // } else if (bid == ob_muUsrMgr_usr5en) { - // ZLOGI(TAG, "enable usr5 %d", val); - // CS->setcfgAndFlush(kusr_enable5, (bool)val); - // updatePage(); - // } -}; - -// muAcidType \ No newline at end of file diff --git a/usrc/service/page/submenu/Page_muUsrMgr.hpp b/usrc/service/page/submenu/Page_muUsrMgr.hpp deleted file mode 100644 index ac0b62f..0000000 --- a/usrc/service/page/submenu/Page_muUsrMgr.hpp +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once -// -#include "../page_processer.hpp" -namespace iflytop { -using namespace std; -// page: keybAcidCh -class Page_muUsrMgr : public IPageProcesser { - private: - /* data */ - - public: - static Page_muUsrMgr* ins() { - static Page_muUsrMgr instance; - return &instance; - } - - private: - virtual bool isBelongThisPage(int page) override; - - virtual void OnPageLoad(OnPageLoadContext*cxt) override; - virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; - virtual void OnButton(uint8_t bid, uint8_t val) override; - - private: - void updatePage(); -}; - -} // namespace iflytop diff --git a/usrc/service/page/utils/page_bak_router.cpp b/usrc/service/page/utils/page_bak_router.cpp deleted file mode 100644 index 9e64e87..0000000 --- a/usrc/service/page/utils/page_bak_router.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "page_bak_router.hpp" -using namespace iflytop; - -namespace iflytop { -int getBakPage(int nowPage) { - if ( - - nowPage == pg_muInterval || // - nowPage == pg_muUsrMgr || // - nowPage == pg_muTmrMgr || // - nowPage == pg_muAcidType || // - nowPage == pg_muDeviceInfo || // - nowPage == pg_muSettings || // - nowPage == pg_muAudit // - ) { - return GSM->getMenuPage(); - } - - if (nowPage == pg_muPumpTest || // - nowPage == pg_muBleHandSett || // - nowPage == pg_muMotorSett || // - nowPage == pg_muPumpSett // - ) { - return pg_muSettings; - } - return pg_main; -} - -} // namespace iflytop diff --git a/usrc/service/page/utils/page_bak_router.hpp b/usrc/service/page/utils/page_bak_router.hpp deleted file mode 100644 index bdfa0a3..0000000 --- a/usrc/service/page/utils/page_bak_router.hpp +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once -#include "apphardware/apphardware.hpp" -#include "uappbase/base.hpp" -#include "service\front_end_controler.hpp" -#include "config/config.hpp" -namespace iflytop { -int getBakPage(int nowPage); -} \ No newline at end of file diff --git a/usrc/service/remote_controler_event_processer.cpp b/usrc/service/remote_controler_event_processer.cpp index 427c47e..b518289 100644 --- a/usrc/service/remote_controler_event_processer.cpp +++ b/usrc/service/remote_controler_event_processer.cpp @@ -1,9 +1,13 @@ #include "remote_controler_event_processer.hpp" #include "pump_ctrl_service.hpp" -#include "service/front_end_controler.hpp" #include "service/remote_controler.hpp" +// +#include "uicontroler/front_end_controler.hpp" +#include "uicontroler/page/page.hpp" +// + using namespace iflytop; #define TAG "RemoteControlerEventProcesser" static const char* zhex2str(uint8_t* data, size_t len) { diff --git a/usrc/service/tjc/tjc.hpp b/usrc/service/tjc/tjc.hpp deleted file mode 100644 index bf31e9e..0000000 --- a/usrc/service/tjc/tjc.hpp +++ /dev/null @@ -1,2 +0,0 @@ -#pragma once -#include "tjc_constant.hpp" \ No newline at end of file diff --git a/usrc/service/tjc/tjc_constant.cpp b/usrc/service/tjc/tjc_constant.cpp deleted file mode 100644 index 8be4f63..0000000 --- a/usrc/service/tjc/tjc_constant.cpp +++ /dev/null @@ -1,485 +0,0 @@ -#include "tjc_constant.hpp" - -#include - -namespace tjc { -typedef struct { - uint8_t pid; - uint8_t bid; - const char* info; - const char* pids; - const char* bidstr; -} marco_info_t; - -#define _BINFO(_pid, _bid) {pg_##_pid, ob_##_pid##_##_bid, #_pid "_" #_bid, #_pid, #_bid} -// 命名规范为驼峰命名 -// static marco_info_t infos[] = { -// _BINFO(gvar, gvar), // -// _BINFO(gvar, menupageid), // - -// _BINFO(pStart, pStart), // -// _BINFO(pStart, j0), // -// _BINFO(pStart, tm0), // -// // -// _BINFO(login, login), // -// _BINFO(login, blogin), // -// _BINFO(login, txtPasswd), // -// _BINFO(login, uen0), // -// _BINFO(login, uen1), // -// _BINFO(login, uen2), // -// _BINFO(login, uen3), // -// _BINFO(login, uen4), // -// _BINFO(login, uen5), // -// _BINFO(login, txtUser0), // -// _BINFO(login, txtUser1), // -// _BINFO(login, txtUser2), // -// _BINFO(login, txtUser3), // -// _BINFO(login, txtUser4), // -// _BINFO(login, txtUser5), // -// _BINFO(login, m0), // -// _BINFO(login, chooseUsr), // -// _BINFO(login, cUsrName), // -// // -// _BINFO(main, main), // -// _BINFO(main, acidch0), // -// _BINFO(main, MenuButton), // -// _BINFO(main, acidname0), // -// _BINFO(main, acideval0), // -// _BINFO(main, sysInfo), // -// _BINFO(main, clock), // -// _BINFO(main, acidname0id), // -// _BINFO(main, acidname1id), // -// _BINFO(main, acidname2id), // -// _BINFO(main, acidname3id), // -// _BINFO(main, RemoterS), // -// _BINFO(main, AcidState), // -// _BINFO(main, RunMode), // -// _BINFO(main, RunModeVal), // -// _BINFO(main, acidch1), // -// _BINFO(main, acidname1), // -// _BINFO(main, acideval1), // -// _BINFO(main, acidch2), // -// _BINFO(main, acidname2), // -// _BINFO(main, acideval2), // -// _BINFO(main, acidch3), // -// _BINFO(main, acidname3), // -// _BINFO(main, acideval3), // -// // -// _BINFO(keybAcidCh, keybAcidCh), // -// _BINFO(keybAcidCh, bak), // -// _BINFO(keybAcidCh, b0), // -// _BINFO(keybAcidCh, b1), // -// _BINFO(keybAcidCh, b2), // -// _BINFO(keybAcidCh, b3), // -// _BINFO(keybAcidCh, b4), // -// _BINFO(keybAcidCh, b5), // -// _BINFO(keybAcidCh, b6), // -// _BINFO(keybAcidCh, b7), // -// _BINFO(keybAcidCh, b8), // -// _BINFO(keybAcidCh, b9), // -// _BINFO(keybAcidCh, b10), // -// _BINFO(keybAcidCh, b11), // -// _BINFO(keybAcidCh, b12), // -// _BINFO(keybAcidCh, b13), // -// _BINFO(keybAcidCh, b14), // -// _BINFO(keybAcidCh, loadpageid), // -// _BINFO(keybAcidCh, loadcmpid), // -// _BINFO(keybAcidCh, loadcmname), // -// _BINFO(keybAcidCh, txt), // -// _BINFO(keybAcidCh, fn0), // -// // -// _BINFO(menuAdmin, menuAdmin), // -// _BINFO(menuAdmin, home), // -// _BINFO(menuAdmin, muInterval), // -// _BINFO(menuAdmin, changePasswd), // -// _BINFO(menuAdmin, muTmrMgr), // -// _BINFO(menuAdmin, muAcidType), // -// _BINFO(menuAdmin, muUsrMgr), // -// _BINFO(menuAdmin, muSettings), // -// _BINFO(menuAdmin, muAudit), // -// _BINFO(menuAdmin, muDeviceInfo), // -// _BINFO(menuAdmin, unlogin), // -// // -// _BINFO(menuAdmin2, menuAdmin2), // -// _BINFO(menuAdmin2, home), // -// _BINFO(menuAdmin2, muInterval), // -// _BINFO(menuAdmin2, changePasswd), // -// _BINFO(menuAdmin2, muAcidType), // -// _BINFO(menuAdmin2, muUsrMgr), // -// _BINFO(menuAdmin2, muSettings), // -// _BINFO(menuAdmin2, muDeviceInfo), // -// _BINFO(menuAdmin2, unlogin), // -// // -// _BINFO(menuUsr, menuUsr), // -// _BINFO(menuUsr, home), // -// _BINFO(menuUsr, muInterval), // -// _BINFO(menuUsr, changePasswd), // -// _BINFO(menuUsr, muDeviceInfo), // -// _BINFO(menuUsr, unlogin), // -// // -// _BINFO(muInterval, muInterval), // -// _BINFO(muInterval, t0), // -// _BINFO(muInterval, t1), // -// _BINFO(muInterval, bak), // -// _BINFO(muInterval, frompage), // -// _BINFO(muInterval, stAcidInte), // -// _BINFO(muInterval, t2), // -// // -// _BINFO(muUsrMgr, muUsrMgr), // -// _BINFO(muUsrMgr, bak), // -// _BINFO(muUsrMgr, t0), // -// _BINFO(muUsrMgr, t2), // -// _BINFO(muUsrMgr, t3), // -// _BINFO(muUsrMgr, t4), // -// _BINFO(muUsrMgr, sw1), // -// _BINFO(muUsrMgr, t6), // -// _BINFO(muUsrMgr, sw2), // -// _BINFO(muUsrMgr, t8), // -// _BINFO(muUsrMgr, sw3), // -// _BINFO(muUsrMgr, t10), // -// _BINFO(muUsrMgr, sw4), // -// _BINFO(muUsrMgr, t12), // -// _BINFO(muUsrMgr, b1), // -// _BINFO(muUsrMgr, b0), // -// _BINFO(muUsrMgr, b2), // -// _BINFO(muUsrMgr, b3), // -// _BINFO(muUsrMgr, frompage), // -// // -// _BINFO(muTmrMgr, muTmrMgr), // -// _BINFO(muTmrMgr, select0), // -// _BINFO(muTmrMgr, select1), // -// _BINFO(muTmrMgr, select2), // -// _BINFO(muTmrMgr, bak), // -// _BINFO(muTmrMgr, select3), // -// _BINFO(muTmrMgr, select4), // -// _BINFO(muTmrMgr, select5), // -// _BINFO(muTmrMgr, b0), // -// _BINFO(muTmrMgr, frompage), // -// // -// _BINFO(muAcidType, muAcidType), // -// _BINFO(muAcidType, bak), // -// _BINFO(muAcidType, t1), // -// _BINFO(muAcidType, t2), // -// _BINFO(muAcidType, t3), // -// _BINFO(muAcidType, t4), // -// _BINFO(muAcidType, t5), // -// _BINFO(muAcidType, t6), // -// _BINFO(muAcidType, t7), // -// _BINFO(muAcidType, t8), // -// _BINFO(muAcidType, t9), // -// _BINFO(muAcidType, t10), // -// _BINFO(muAcidType, t11), // -// _BINFO(muAcidType, t12), // -// _BINFO(muAcidType, t13), // -// _BINFO(muAcidType, t14), // -// _BINFO(muAcidType, t15), // -// _BINFO(muAcidType, frompage), // -// // -// _BINFO(muSettings, muSettings), // -// _BINFO(muSettings, t0), // -// _BINFO(muSettings, t1), // -// _BINFO(muSettings, bak), // -// _BINFO(muSettings, frompage), // -// _BINFO(muSettings, stAcidInte), // -// _BINFO(muSettings, t2), // -// // -// _BINFO(muDeviceInfo, muDeviceInfo), // -// _BINFO(muDeviceInfo, bak), // -// _BINFO(muDeviceInfo, t2), // -// _BINFO(muDeviceInfo, t3), // -// _BINFO(muDeviceInfo, t6), // -// _BINFO(muDeviceInfo, t7), // -// _BINFO(muDeviceInfo, t10), // -// _BINFO(muDeviceInfo, t11), // -// _BINFO(muDeviceInfo, frompage), // -// // -// _BINFO(muAudit, muAudit), // -// _BINFO(muAudit, bak), // -// _BINFO(muAudit, t0), // -// _BINFO(muAudit, t1), // -// _BINFO(muAudit, t2), // -// _BINFO(muAudit, b0), // -// _BINFO(muAudit, b1), // -// _BINFO(muAudit, frompage), // -// // -// _BINFO(alert, alert), // -// _BINFO(alert, t0), // -// _BINFO(alert, confirmkey), // -// _BINFO(alert, info), // -// _BINFO(alert, frompage), // -// // -// _BINFO(confirm, confirm), // -// _BINFO(confirm, t0), // -// _BINFO(confirm, confirmkey), // -// _BINFO(confirm, info), // -// _BINFO(confirm, canclekey), // -// _BINFO(confirm, frompage), // -// // -// _BINFO(changePasswd, changePasswd), // -// _BINFO(changePasswd, t2), // -// _BINFO(changePasswd, t3), // -// _BINFO(changePasswd, t4), // -// _BINFO(changePasswd, t5), // -// _BINFO(changePasswd, b0), // -// _BINFO(changePasswd, b1), // -// _BINFO(changePasswd, t0), // -// _BINFO(changePasswd, t1), // -// _BINFO(changePasswd, frompage), // -// // -// _BINFO(keybdB, keybdB), // -// _BINFO(keybdB, b0), // -// _BINFO(keybdB, show), // -// _BINFO(keybdB, b210), // -// _BINFO(keybdB, b1), // -// _BINFO(keybdB, b2), // -// _BINFO(keybdB, b3), // -// _BINFO(keybdB, b4), // -// _BINFO(keybdB, b5), // -// _BINFO(keybdB, b6), // -// _BINFO(keybdB, b7), // -// _BINFO(keybdB, b8), // -// _BINFO(keybdB, b200), // -// _BINFO(keybdB, b9), // -// _BINFO(keybdB, loadpageid), // -// _BINFO(keybdB, tm0), // -// _BINFO(keybdB, loadcmpid), // -// _BINFO(keybdB, input), // -// _BINFO(keybdB, temp), // -// _BINFO(keybdB, inputlenth), // -// _BINFO(keybdB, t2), // -// _BINFO(keybdB, b251), // -// _BINFO(keybdB, temp2), // -// _BINFO(keybdB, tempstr), // -// _BINFO(keybdB, b10), // -// _BINFO(keybdB, b11), // -// _BINFO(keybdB, loadcmname), // -// // -// _BINFO(keybdAP, keybdAP), // -// _BINFO(keybdAP, loadpageid), // -// _BINFO(keybdAP, loadcmpid), // -// _BINFO(keybdAP, b0), // -// _BINFO(keybdAP, b251), // -// _BINFO(keybdAP, b210), // -// _BINFO(keybdAP, b1), // -// _BINFO(keybdAP, b2), // -// _BINFO(keybdAP, b3), // -// _BINFO(keybdAP, b4), // -// _BINFO(keybdAP, b5), // -// _BINFO(keybdAP, b6), // -// _BINFO(keybdAP, b7), // -// _BINFO(keybdAP, b8), // -// _BINFO(keybdAP, b200), // -// _BINFO(keybdAP, b20), // -// _BINFO(keybdAP, b21), // -// _BINFO(keybdAP, b22), // -// _BINFO(keybdAP, b23), // -// _BINFO(keybdAP, b24), // -// _BINFO(keybdAP, b25), // -// _BINFO(keybdAP, b26), // -// _BINFO(keybdAP, b27), // -// _BINFO(keybdAP, b28), // -// _BINFO(keybdAP, b220), // -// _BINFO(keybdAP, b40), // -// _BINFO(keybdAP, b41), // -// _BINFO(keybdAP, b42), // -// _BINFO(keybdAP, b43), // -// _BINFO(keybdAP, b44), // -// _BINFO(keybdAP, b45), // -// _BINFO(keybdAP, b46), // -// _BINFO(keybdAP, b230), // -// _BINFO(keybdAP, b240), // -// _BINFO(keybdAP, b242), // -// _BINFO(keybdAP, b241), // -// _BINFO(keybdAP, b244), // -// _BINFO(keybdAP, b231), // -// _BINFO(keybdAP, b245), // -// _BINFO(keybdAP, refshowbu), // -// _BINFO(keybdAP, tm0), // -// _BINFO(keybdAP, input), // -// _BINFO(keybdAP, show), // -// _BINFO(keybdAP, temp), // -// _BINFO(keybdAP, inputlenth), // -// _BINFO(keybdAP, b249), // -// _BINFO(keybdAP, b201), // -// _BINFO(keybdAP, b9), // -// _BINFO(keybdAP, b232), // -// _BINFO(keybdAP, b243), // -// _BINFO(keybdAP, pa_z), // -// _BINFO(keybdAP, pa_d), // -// _BINFO(keybdAP, pastr1), // -// _BINFO(keybdAP, ii), // -// _BINFO(keybdAP, loadpa), // -// _BINFO(keybdAP, pastr0), // -// _BINFO(keybdAP, bp1), // -// _BINFO(keybdAP, bp2), // -// _BINFO(keybdAP, bp3), // -// _BINFO(keybdAP, bp4), // -// _BINFO(keybdAP, bp5), // -// _BINFO(keybdAP, bp6), // -// _BINFO(keybdAP, bp7), // -// _BINFO(keybdAP, bp8), // -// _BINFO(keybdAP, bp9), // -// _BINFO(keybdAP, bp10), // -// _BINFO(keybdAP, bp11), // -// _BINFO(keybdAP, bp12), // -// _BINFO(keybdAP, bp13), // -// _BINFO(keybdAP, bp14), // -// _BINFO(keybdAP, bp15), // -// _BINFO(keybdAP, bp16), // -// _BINFO(keybdAP, bp17), // -// _BINFO(keybdAP, bp18), // -// _BINFO(keybdAP, b10), // -// _BINFO(keybdAP, b11), // -// _BINFO(keybdAP, temp2), // -// _BINFO(keybdAP, tempstr), // -// _BINFO(keybdAP, loadcmname), // -// // -// _BINFO(keybdA, keybdA), // -// _BINFO(keybdA, loadpageid), // -// _BINFO(keybdA, loadcmpid), // -// _BINFO(keybdA, b0), // -// _BINFO(keybdA, b251), // -// _BINFO(keybdA, b210), // -// _BINFO(keybdA, b1), // -// _BINFO(keybdA, b2), // -// _BINFO(keybdA, b3), // -// _BINFO(keybdA, b4), // -// _BINFO(keybdA, b5), // -// _BINFO(keybdA, b6), // -// _BINFO(keybdA, b7), // -// _BINFO(keybdA, b8), // -// _BINFO(keybdA, b200), // -// _BINFO(keybdA, b20), // -// _BINFO(keybdA, b21), // -// _BINFO(keybdA, b22), // -// _BINFO(keybdA, b23), // -// _BINFO(keybdA, b24), // -// _BINFO(keybdA, b25), // -// _BINFO(keybdA, b26), // -// _BINFO(keybdA, b27), // -// _BINFO(keybdA, b28), // -// _BINFO(keybdA, b220), // -// _BINFO(keybdA, b40), // -// _BINFO(keybdA, b41), // -// _BINFO(keybdA, b42), // -// _BINFO(keybdA, b43), // -// _BINFO(keybdA, b44), // -// _BINFO(keybdA, b45), // -// _BINFO(keybdA, b46), // -// _BINFO(keybdA, b230), // -// _BINFO(keybdA, b240), // -// _BINFO(keybdA, b242), // -// _BINFO(keybdA, b241), // -// _BINFO(keybdA, b243), // -// _BINFO(keybdA, b231), // -// _BINFO(keybdA, b244), // -// _BINFO(keybdA, refshow), // -// _BINFO(keybdA, tm0), // -// _BINFO(keybdA, input), // -// _BINFO(keybdA, show), // -// _BINFO(keybdA, temp), // -// _BINFO(keybdA, inputlenth), // -// _BINFO(keybdA, b249), // -// _BINFO(keybdA, b201), // -// _BINFO(keybdA, b9), // -// _BINFO(keybdA, b232), // -// _BINFO(keybdA, tempstr), // -// _BINFO(keybdA, temp2), // -// _BINFO(keybdA, loadcmname), // -// // -// _BINFO(keyPasswd, keyPasswd), // -// _BINFO(keyPasswd, b0), // -// _BINFO(keyPasswd, show), // -// _BINFO(keyPasswd, b210), // -// _BINFO(keyPasswd, b1), // -// _BINFO(keyPasswd, b2), // -// _BINFO(keyPasswd, b3), // -// _BINFO(keyPasswd, b4), // -// _BINFO(keyPasswd, b5), // -// _BINFO(keyPasswd, b6), // -// _BINFO(keyPasswd, b7), // -// _BINFO(keyPasswd, b8), // -// _BINFO(keyPasswd, b200), // -// _BINFO(keyPasswd, b9), // -// _BINFO(keyPasswd, loadpageid), // -// _BINFO(keyPasswd, tm0), // -// _BINFO(keyPasswd, loadcmpid), // -// _BINFO(keyPasswd, input), // -// _BINFO(keyPasswd, temp), // -// _BINFO(keyPasswd, inputlenth), // -// _BINFO(keyPasswd, t2), // -// _BINFO(keyPasswd, b251), // -// _BINFO(keyPasswd, temp2), // -// _BINFO(keyPasswd, tempstr), // -// _BINFO(keyPasswd, b249), // -// _BINFO(keyPasswd, loadcmname), // -// }; -// // - -// const char* uimarco2str(uint8_t pid, uint8_t bid) { -// for (int i = 0; i < sizeof(infos) / sizeof(infos[0]); i++) { -// if (infos[i].pid == pid && infos[i].bid == bid) { -// return infos[i].info; -// } -// } -// return "unknownUiMarco"; -// } -// const char* pageName(uint8_t pid) { -// for (int i = 0; i < sizeof(infos) / sizeof(infos[0]); i++) { -// if (infos[i].pid == pid) { -// return infos[i].pids; -// } -// } -// return "unknownPage"; -// } - -#define PT_ENUM(key) \ - case key: \ - return #key; - -const char* pt2str(uint8_t type) { - switch (type) { - PT_ENUM(kpt_sys_ecode_invalid) - PT_ENUM(kpt_sys_ecode_suc) - PT_ENUM(kpt_sys_ecode_invalid_control_id) - PT_ENUM(kpt_sys_ecode_invalid_page_id) - PT_ENUM(kpt_sys_ecode_invalid_image_id) - PT_ENUM(kpt_sys_ecode_invalid_font_id) - PT_ENUM(kpt_sys_ecode_file_op_failed) - PT_ENUM(kpt_sys_ecode_crc_failed) - PT_ENUM(kpt_sys_ecode_invalid_baudrate) - PT_ENUM(kpt_sys_ecode_invalid_curve_id) - PT_ENUM(kpt_sys_ecode_invalid_var_name) - PT_ENUM(kpt_sys_ecode_invalid_var_op) - PT_ENUM(kpt_sys_ecode_var_op_failed) - PT_ENUM(kpt_sys_ecode_flash_op_failed) - PT_ENUM(kpt_sys_ecode_invalid_param_num) - PT_ENUM(kpt_sys_ecode_io_op_failed) - PT_ENUM(kpt_sys_ecode_escape_char_failed) - PT_ENUM(kpt_sys_ecode_var_name_too_long) - PT_ENUM(kpt_sys_ecode_serial_buf_overflow) - PT_ENUM(kpt_button_event) - PT_ENUM(kpt_sys_event_page_id) - PT_ENUM(kpt_sys_event_touch_data) - PT_ENUM(kpt_sys_event_sleep_touch) - PT_ENUM(kpt_sys_event_string_var) - PT_ENUM(kpt_sys_event_number_var) - PT_ENUM(kpt_sys_event_sleep_mode) - PT_ENUM(kpt_sys_event_auto_wakeup) - PT_ENUM(kpt_sys_event_sys_start) - PT_ENUM(kpt_sys_event_sd_upgrade) - PT_ENUM(kpt_sys_event_passthrough_finish) - PT_ENUM(kpt_sys_event_passthrough_ready) - PT_ENUM(kpt_ack) - PT_ENUM(kpt_inputfield_content_change_event1) - PT_ENUM(kpt_double_state_button_event) - PT_ENUM(kpt_login_request) - PT_ENUM(kpt_unlogin_request) - - default: - return "unkown_event"; - break; - } -} - -} // namespace tjc \ No newline at end of file diff --git a/usrc/service/tjc/tjc_constant.hpp b/usrc/service/tjc/tjc_constant.hpp deleted file mode 100644 index 1142482..0000000 --- a/usrc/service/tjc/tjc_constant.hpp +++ /dev/null @@ -1,151 +0,0 @@ -#pragma once -#include - -#include "../ui/ui.h" -#include "uappbase/appcfg/appcfg.hpp" - -namespace tjc { - -/** - * @brief - * - * 约定 - * 1.用户名最大长度为15 - * 2.组件名称最大长度为14 - * 3.页面名称最大长度为14 - * 4.密码为纯数字6位数密码 - * - */ - -#define MAX_USR_PASSWD_LENGTH (6) -#define ELEMENT_ID_MAX_SIZE 14 -#define TJC_MAX_PACKET_SIZE 256 - -typedef enum { - /** - * @brief 错误码 - */ - kpt_sys_ecode_invalid = 0x00, - kpt_sys_ecode_suc = 0x01, - kpt_sys_ecode_invalid_control_id = 0x02, - kpt_sys_ecode_invalid_page_id = 0x03, - kpt_sys_ecode_invalid_image_id = 0x04, - kpt_sys_ecode_invalid_font_id = 0x05, - kpt_sys_ecode_file_op_failed = 0x06, - kpt_sys_ecode_crc_failed = 0x09, - kpt_sys_ecode_invalid_baudrate = 0x11, - kpt_sys_ecode_invalid_curve_id = 0x12, - kpt_sys_ecode_invalid_var_name = 0x1A, - kpt_sys_ecode_invalid_var_op = 0x1B, - kpt_sys_ecode_var_op_failed = 0x1C, - kpt_sys_ecode_flash_op_failed = 0x1D, - kpt_sys_ecode_invalid_param_num = 0x1E, - kpt_sys_ecode_io_op_failed = 0x1F, - kpt_sys_ecode_escape_char_failed = 0x20, - kpt_sys_ecode_var_name_too_long = 0x23, - kpt_sys_ecode_serial_buf_overflow = 0x24, - /** - * @brief 事件 - */ - kpt_button_event = 0x65, // - kpt_sys_event_page_id = 0x66, - kpt_sys_event_touch_data = 0x67, - kpt_sys_event_sleep_touch = 0x68, - kpt_sys_event_string_var = 0x70, - kpt_sys_event_number_var = 0x71, - kpt_sys_event_sleep_mode = 0x86, - kpt_sys_event_auto_wakeup = 0x87, - kpt_sys_event_sys_start = 0x88, - kpt_sys_event_sd_upgrade = 0x89, - kpt_sys_event_passthrough_finish = 0xFD, - kpt_sys_event_passthrough_ready = 0xFE, - - /** - * @brief 用户消息回执 - */ - kpt_ack = 0xAA, - kpt_inputfield_content_change_event0 = 0xAB, // 同页面输入框内容变更事件 - kpt_inputfield_content_change_event1 = 0xAC, // 跨页面键盘输入事件 - kpt_double_state_button_event = 0xAD, - kpt_login_request = 0xAE, - kpt_unlogin_request = 0xAF, - kpt_on_keyboard_page_load = 0xB0, // 键盘页面加载 - kpt_on_promopt_page_load = 0xB1, // 弹窗页面加载 -} packet_type_t; - -typedef enum { - kbutton_release = 0, - kbutton_press = 1, -} button_event_t; - -typedef struct { - int32_t eventId; - uint8_t pid; - uint8_t bid; - union { - // inputfield_content_event - struct { - char text[TJC_MAX_PACKET_SIZE]; - } inputfield_content; - - // kpt_usr_login_request - struct { - char usrName[MAX_USR_NAME_SIZE + 1]; - char passwd[MAX_USR_PASSWD_LENGTH + 1]; - } login_request; - - // kpt_double_state_button_event - struct { - uint8_t val; - } double_state_button; - - struct { - uint8_t val; // 0 抬起,1按下 - } button_event; - - struct { - uint8_t fromPage; - uint8_t fromPopPage; - } on_page_load; - - struct { - bool isFromPopWin; - } sys_event_page_id; - - } d; -} tjc_usr_event_t; - -typedef enum { - k_button_release_event = 1, - k_input_confirm_event = 2, -} usr_event_type_t; - -#define GVAR_triET "triET" -#define GVAR_triBId "triBId" -#define GVAR_triPageId "triPageId" - -const char* pt2str(uint8_t type); -const char* uimarco2str(uint8_t pid, uint8_t bid); -const char* pageName(uint8_t page); - -#define UI_UUID(pgid, obid) ((pg_##pgid << 8) + ob_##pgid##_##obid) - -/*********************************************************************************************************************** - * PublicPageName * - ***********************************************************************************************************************/ - -/** - * @brief - * - * Page: - * "alert" - * Var: - * alert.frompage - * alert.info - * - * - * - * - */ - -} // namespace tjc diff --git a/usrc/uicontroler/front_end_controler.cpp b/usrc/uicontroler/front_end_controler.cpp new file mode 100644 index 0000000..fab5e9c --- /dev/null +++ b/usrc/uicontroler/front_end_controler.cpp @@ -0,0 +1,547 @@ +#include "front_end_controler.hpp" + +#include +#include +#include +#include + +#include "tjc/tjc_constant.hpp" +using namespace iflytop; +#define TAG "UIScheduler" +#define MODULE_DEBUG 1 + +#define CMD_OVERTIME 50 + +static ZThread uart_rx_thread; +static ZThread rx_processed_thread; + +static ZQueue ackQueue; +static ZQueue eventQueue; +static ZThread usartRxThread; +static ZThread eventProcessThread; +static bool m_isWaitingForAck; +static UART_HandleTypeDef* tjcUart; + +static const char* zhex2str(uint8_t* data, size_t len) { + static char buf[256]; + memset(buf, 0, sizeof(buf)); + for (size_t i = 0; i < len; i++) { + sprintf(buf + i * 2, "%02X", data[i]); + } + return buf; +} + +void FrontEndControler::initialize() { // + ackQueue.initialize(5, sizeof(tjc_rx_packet_t)); + eventQueue.initialize(5, sizeof(tjc_rx_packet_t)); + usartRxThread.init("usartRxThread", 1024); + eventProcessThread.init("eventProcessThread", 1024); + + tjcUart = AppHardware::ins()->tjcUart; + m_cmdlock.init(); +} +#define UART_RX_OVERTIME 5 +void FrontEndControler::startSchedule() { + usartRxThread.start([this]() { + static uint8_t rxbuf[128]; + tjcUart->USR_UartITRxing = 1; + tjcUart->USR_UartITRxBuf = rxbuf; + tjcUart->USR_UartITRxBufSize = 128; + tjcUart->USR_UartITRxOff = 0; + + HAL_UART_Receive_IT(tjcUart, &tjcUart->USR_UartITRxBufCache, 1); + while (1) { + static uint8_t processbuf[128]; + int32_t rxsize = 0; + if (tjcUart->USR_UartITRxOff != 0 && zos_haspassedms(tjcUart->USR_UartITLastRxTicket) > UART_RX_OVERTIME) { + vPortEnterCritical(); + if (tjcUart->USR_UartITRxOff != 0 && zos_haspassedms(tjcUart->USR_UartITLastRxTicket) > UART_RX_OVERTIME) { + memcpy(processbuf, tjcUart->USR_UartITRxBuf, tjcUart->USR_UartITRxOff); + rxsize = tjcUart->USR_UartITRxOff; + tjcUart->USR_UartITRxOff = 0; + } + vPortExitCritical(); + } + + if (rxsize != 0) { + processScreenRxPacket(processbuf, rxsize); + } + osDelay(1); + } + }); + + eventProcessThread.start([this]() { + while (1) { + static tjc_rx_packet_t packet; + bool suc = eventQueue.receive(&packet, 10); + if (suc) { + memset(&event_cache, 0, sizeof(event_cache)); + uint8_t packetType = packet.data[0]; + if (packetType == tjc::kpt_inputfield_content_change_event1) { + processInputfieldContentChangeEvent1(packet.data, packet.datalen); + } else if (packetType == tjc::kpt_inputfield_content_change_event0) { + processInputfieldContentChangeEvent0(packet.data, packet.datalen); + } else if (packetType == tjc::kpt_double_state_button_event) { + processUsrDoubleStateButtonEvent(packet.data, packet.datalen); + } else if (packetType == tjc::kpt_unlogin_request) { + event_cache.eventId = packet.data[0]; + event_cache.pid = packet.data[1]; + event_cache.bid = packet.data[2]; + callUsrEventCb(&event_cache); + } else if (packetType == tjc::kpt_login_request) { + processLoginRequestEvent(packet.data, packet.datalen); + } else if (tjc::kpt_button_event == packetType) { + event_cache.eventId = packet.data[0]; + event_cache.pid = packet.data[1]; + event_cache.bid = packet.data[2]; + event_cache.d.button_event.val = packet.data[3]; + callUsrEventCb(&event_cache); + } else if (tjc::kpt_sys_event_page_id == packetType) { + event_cache.eventId = packet.data[0]; + event_cache.pid = packet.data[1]; + event_cache.bid = 0; + + if (m_nowPage == packet.data[1]) { + // page not change + } else { + m_lastPage = m_nowPage; + m_nowPage = packet.data[1]; + } + event_cache.d.sys_event_page_id.isFromPopWin = m_isInPopWin; +#if MODULE_DEBUG + ZLOGD(TAG, "page change from %d to %d frompoppage %d", m_lastPage, m_nowPage, m_isInPopWin); +#endif + m_isInPopWin = false; + + callUsrEventCb(&event_cache); + if (input_file_event_cache_state) { + callUsrEventCb(&input_file_event_cache); + input_file_event_cache_state = false; + } + + } else if (tjc::kpt_on_promopt_page_load == packetType) { + event_cache.eventId = packetType; + event_cache.pid = packet.data[1]; + event_cache.bid = 0; + callUsrEventCb(&event_cache); + m_isInPopWin = true; // + + } else if (tjc::kpt_on_keyboard_page_load == packetType) { + event_cache.eventId = packetType; + event_cache.pid = packet.data[1]; + event_cache.bid = 0; + callUsrEventCb(&event_cache); + m_isInPopWin = true; + } else { + event_cache.eventId = packet.data[0]; + callUsrEventCb(&event_cache); + ZLOGI(TAG, "[eventprocess-thread]: rx_event:%s", tjc::pt2str(packetType)); + } + } + osDelay(1); + } + }); +} + + +void FrontEndControler::processScreenRxPacket(uint8_t* data, size_t len) { + // 判断包是否合法 +#if MODULE_DEBUG + ZLOGI(TAG, "[rx-thread] : rx :%s(%d)", zhex2str(data, len), len); +#endif + + if (!(data[len - 1] == 0xff && data[len - 2] == 0xff && data[len - 3] == 0xff)) { + ZLOGI(TAG, "rx invalid packet %s", zhex2str(data, len)); + return; + } + if (TJC_MAX_PACKET_SIZE < len) { + ZLOGI(TAG, "rx invalid packet(tool long) %s", zhex2str(data, len)); + return; + } + + uint8_t packetType = data[0]; + + static tjc_rx_packet_t packet; + packet.datalen = len; + memcpy(packet.data, data, len); + if (tjc::kpt_ack == packetType) { + if (m_isWaitingForAck) { + bool suc = ackQueue.send(&packet, 10); + if (!suc) { + ZLOGI(TAG, "ackQueue send failed"); + } + m_isWaitingForAck = false; + } + + } else { + bool suc = eventQueue.send(&packet, 10); + if (!suc) { + ZLOGI(TAG, "eventQueue send failed"); + } + } +} + +void FrontEndControler::regOnUsrEventCb(on_usr_event_cb_t cb) { + m_cb[m_ncb] = cb; + m_ncb++; +} + +static const char* zcpystr(char* cpyto, const char* strbegin, int32_t maxlen) { + if (strbegin == NULL) return NULL; + int32_t i = 0; + for (i = 0; i < maxlen; i++) { + cpyto[i] = strbegin[i]; + if (strbegin[i] == 0) { + return &strbegin[i + 1]; + } + } + return NULL; +} +void FrontEndControler::processUsrButtonEvent(uint8_t* data, size_t len) { + /** + * @brief + * 指令格式: + * printh 65 + * prints dp,1 + * prints '&id&',1 + * printh FF FF FF + * + * AB Page cidName/0 FF FF FF + * + */ + // ButtonEventContext_t buttonEventCxt; + + // event_cache + memset(&event_cache, 0, sizeof(event_cache)); + event_cache.eventId = data[0]; + 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) { + /** + * @brief + * 指令格式: + * printh AD + * prints dp,1 + * prints '&id&',1 + * prints '&val&',1 + * printh FF FF FF + * + * AB Page cidName/0 FF FF FF + * + */ + // ButtonEventContext_t buttonEventCxt; + + // event_cache + memset(&event_cache, 0, sizeof(event_cache)); + event_cache.eventId = data[0]; + event_cache.pid = data[1]; + event_cache.bid = data[2]; + event_cache.d.double_state_button.val = data[3]; + + callUsrEventCb(&event_cache); +} +void FrontEndControler::callUsrEventCb(tjc::tjc_usr_event_t* event) { + for (int32_t i = 0; i < m_ncb; i++) { + m_cb[i](event); + } +} + +void FrontEndControler::processInputfieldContentChangeEvent0(uint8_t* data, size_t len) { + /** + * @brief + * + * printh AB + * prints loadpageid.val,1 + * prints loadcmpid.val,1 + * prints p[loadpageid.val].b[loadcmpid.val].txt,0 + * printh 00 + * printh FF FF FF + * page loadpageid.val + * + */ + ZLOGI(TAG, "processInputfieldContentChangeEvent0"); + memset(&event_cache, 0, sizeof(event_cache)); + event_cache.eventId = data[0]; + event_cache.pid = data[1]; + event_cache.bid = data[2]; + const char* strbegin = (const char*)&data[3]; + strbegin = zcpystr(event_cache.d.inputfield_content.text, strbegin, sizeof(event_cache.d.inputfield_content.text)); + callUsrEventCb(&event_cache); + // input_file_event_cache = event_cache; + // input_file_event_cache_state = true; +} + +void FrontEndControler::processInputfieldContentChangeEvent1(uint8_t* data, size_t len) { + /** + * @brief + * + * printh AC + * prints loadpageid.val,1 + * prints loadcmpid.val,1 + * prints p[loadpageid.val].b[loadcmpid.val].txt,0 + * printh 00 + * printh FF FF FF + * page loadpageid.val + * + */ + // ZLOGI(TAG, "processInputfieldContentChangeEvent1"); + memset(&event_cache, 0, sizeof(event_cache)); + event_cache.eventId = data[0]; + event_cache.pid = data[1]; + event_cache.bid = data[2]; + const char* strbegin = (const char*)&data[3]; + strbegin = zcpystr(event_cache.d.inputfield_content.text, strbegin, sizeof(event_cache.d.inputfield_content.text)); + // callUsrEventCb(&event_cache); + input_file_event_cache = event_cache; + input_file_event_cache_state = true; +} + +void FrontEndControler::processLoginRequestEvent(uint8_t* data, size_t len) { + /* + * printh AE + * prints dp,1 + * prints '&id&',1 + * prints cUsrName.txt,0 + * printh 00 + * prints txt_passwd.txt,0 + * printh 00 + * printh FF FF FF + */ + + // ZLOGI(TAG, "processLoginRequestEvent"); + memset(&event_cache, 0, sizeof(event_cache)); + event_cache.eventId = data[0]; + event_cache.pid = data[1]; + event_cache.bid = data[2]; + const char* strbegin = (const char*)&data[3]; + strbegin = zcpystr(event_cache.d.login_request.usrName, strbegin, MAX_USR_NAME_SIZE); + strbegin = zcpystr(event_cache.d.login_request.passwd, strbegin, MAX_USR_PASSWD_LENGTH); + + callUsrEventCb(&event_cache); +} + +bool FrontEndControler::readTxt(uint8_t pid, uint8_t cId, char* txt, int32_t txtbuflen) { + zlock_guard lg(m_cmdlock); + + startReceiveAck(); + sendcmd("com_stop"); + sendcmd("printh AA"); + sendcmd("prints p[%d].b[%d].txt,0", pid, cId); + sendcmd("printh 00"); + sendcmd("printh FF FF FF"); + sendcmd("com_start"); + + bool suc = ackQueue.receive(&ackcache, CMD_OVERTIME); + if (!suc) { + ZLOGI(TAG, "readTxt failed"); + return false; + } + int32_t cpysize = ackcache.datalen - 3; + if (cpysize > txtbuflen) { + cpysize = txtbuflen - 1; + } + + memcpy(txt, &ackcache.data[1], cpysize); + return true; +} +bool FrontEndControler::readInt(uint8_t pid, uint8_t cId, int32_t* val) { + zlock_guard lg(m_cmdlock); + + startReceiveAck(); + sendcmd("com_stop"); + sendcmd("printh AA"); + sendcmd("prints p[%d].b[%d].val,4", pid, cId); + sendcmd("printh FF FF FF"); + sendcmd("com_start"); + + bool suc = ackQueue.receive(&ackcache, CMD_OVERTIME); + if (!suc) { + ZLOGI(TAG, "readTxt failed"); + return false; + } + + uint8_t int32val[4] = {0}; + memcpy(int32val, &ackcache.data[1], 4); + *val = *(int32_t*)int32val; + return true; +} + +bool FrontEndControler::echo(uint8_t tx, uint8_t* rx) { + zlock_guard lg(m_cmdlock); + + startReceiveAck(); + sendcmd("com_stop"); + sendcmd("printh AA"); + sendcmd("printh %02X", tx); + sendcmd("printh FF FF FF"); + sendcmd("com_start"); + + bool suc = ackQueue.receive(&ackcache, CMD_OVERTIME); + if (!suc) { + ZLOGI(TAG, "readTxt failed"); + return false; + } + + uint8_t int32val = 0; + memcpy(&int32val, &ackcache.data[1], 1); + *rx = int32val; + + if (tx != int32val) { + return false; + } + + return true; +} + +bool FrontEndControler::setTxt(uint8_t pid, uint8_t bid, const char* txt, ...) { + zlock_guard lg(m_cmdlock); + + va_list args; + va_start(args, txt); + static char buf[128]; + vsprintf(buf, txt, args); + va_end(args); + + sendcmd("p[%d].b[%d].txt=\"%s\"", pid, bid, buf); + return true; +} +bool FrontEndControler::setVal(uint8_t pid, uint8_t cid, int32_t val) { + zlock_guard lg(m_cmdlock); + sendcmd("p[%d].b[%d].val=%d", pid, cid, val); + return true; +} +bool FrontEndControler::vis(uint16_t buuid, int32_t val) { + zlock_guard lg(m_cmdlock); + sendcmd("vis %d,%d", buuid & 0xff, val); + return true; +} + +void FrontEndControler::alert(const char* info, function onConfirm) { + zlock_guard lg(m_cmdlock); + if (m_isInPopWin) { + ZLOGE(TAG, "isInPopWin,alert failed"); + return; + } + + m_onAlertPageConfirmKey = onConfirm; + static char buf[128]; + sprintf(buf, "%s", info); + + sendcmd("p[%d].b[%d].val=%d", pg_alert, ob_alert_frompage, m_nowPage); + sendcmd("p[%d].b[%d].txt=\"%s\"", pg_alert, ob_alert_info, buf); + sendcmd("page alert"); +} +void FrontEndControler::alertNoConfirm(const char* info) { + zlock_guard lg(m_cmdlock); + if (m_isInPopWin) { + ZLOGE(TAG, "isInPopWin,alertNoConfirm failed"); + return; + } + + static char buf[128]; + 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"); + vis(ob_alert_confirmkey, 0); +} + +void FrontEndControler::confirmNoCancle(const char* info, function onConfirm) { + zlock_guard lg(m_cmdlock); + if (m_isInPopWin) { + ZLOGE(TAG, "isInPopWin,confirmNoCancle failed"); + return; + } + + 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); + if (m_isInPopWin) { + ZLOGE(TAG, "isInPopWin,confirm failed"); + return; + } + + 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::bakpage() { sendcmd("page %d", m_lastPage); } +void FrontEndControler::sendcmd(const char* format, ...) { + static char buf[128]; + va_list args; + va_start(args, format); + vsprintf(buf, format, args); + va_end(args); + + uint8_t len = strlen(buf); + if (len > (128 - 3)) { + ZLOGI(TAG, "sendcmd too long"); + return; + } + + buf[len] = 0xff; + buf[len + 1] = 0xff; + buf[len + 2] = 0xff; + + HAL_UART_Transmit(tjcUart, (uint8_t*)buf, len + 3, 100); + while (true) { + osDelay(1); + if (tjcUart->gState == HAL_UART_STATE_READY) { + return; + } + } +} + +void FrontEndControler::startReceiveAck() { + ackQueue.clear(); + m_isWaitingForAck = true; +} + +void FrontEndControler::virtualClick(uint8_t pid, uint8_t bid, uint8_t event) { + zlock_guard lg(m_cmdlock); + sendcmd("click b[%d],%d", bid, event); +} + +void FrontEndControler::setTouchEnableState(uint8_t bid, uint8_t enable) { + // tsw obj,state + zlock_guard lg(m_cmdlock); + sendcmd("tsw b[%d],%d", bid, enable); +} + +void FrontEndControler::setEnumComponentState(uint8_t pid, uint8_t bid, int32_t state) { + // 枚举类型使用动画组件 + sendcmd("p[%d].b[%d].tim=%d", pid, bid, state * 50); +} +void FrontEndControler::setPic(uint8_t pid, uint8_t bid, int32_t picNum) { sendcmd("p[%d].b[%d].pic=%d", pid, bid, picNum); } + +void FrontEndControler::setAph(uint8_t pid, uint8_t bid, int32_t state) { sendcmd("p[%d].b[%d].aph=%d", pid, bid, state); } diff --git a/usrc/uicontroler/front_end_controler.hpp b/usrc/uicontroler/front_end_controler.hpp new file mode 100644 index 0000000..6833311 --- /dev/null +++ b/usrc/uicontroler/front_end_controler.hpp @@ -0,0 +1,125 @@ +#pragma once +#include "apphardware/apphardware.hpp" +#include "config/config.hpp" +#include "uappbase/base.hpp" +// +#include "tjc/tjc.hpp" + +namespace iflytop { +using namespace std; +typedef struct { + uint8_t data[TJC_MAX_PACKET_SIZE]; + uint16_t datalen; +} tjc_rx_packet_t; + +typedef std::function on_usr_event_cb_t; + +#define UIS FrontEndControler::ins() +class FrontEndControler { + ZThread m_thread; + + tjc_rx_packet_t ackcache; + zmutex m_cmdlock = {"FrontEndControler_LOCK"}; + + tjc::tjc_usr_event_t event_cache; + + tjc::tjc_usr_event_t input_file_event_cache; + bool input_file_event_cache_state = false; + + // on_usr_event_cb_t cb; + + on_usr_event_cb_t m_cb[50]; + int32_t m_ncb = 0; + + int32_t m_nowPage = 0; + int32_t m_lastPage = 0; + + function m_onConfirmPageConfirmKey; + function m_onAlertPageConfirmKey; + + bool m_isInPopWin = false; + + public: + FrontEndControler() {}; + ~FrontEndControler() {}; + + static FrontEndControler* ins() { + static FrontEndControler instance; + return &instance; + } + + void initialize(); + void regOnUsrEventCb(on_usr_event_cb_t onclik); + int getNowPage() { return m_nowPage; } + + void startSchedule(); + + // cmd list + bool readTxt(uint8_t pid, uint8_t bid, char* txt, int32_t txtbuflen); + bool readInt(uint8_t pid, uint8_t bid, int32_t* val); + bool echo(uint8_t tx, uint8_t* rx); + + bool setTxt(uint8_t pid, uint8_t bid, const char* txt, ...); + bool setTxt(uint8_t bid, const char* txt) { return setTxt(m_nowPage, bid, txt); } + + bool setVal(uint8_t pid, uint8_t bid, int32_t val); + bool setVal(uint8_t bid, int32_t val) { return setVal(m_nowPage, bid, val); } + + bool vis(uint16_t bid, int32_t val); // 不支持跨页面隐藏 + // vis b0,0 + + // 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) { alert(info, nullptr); } + void alertNoConfirm(const char* info); + 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 bakpage(); + void virtualClick(uint8_t pid, uint8_t bid, uint8_t event); + void setTouchEnableState(uint8_t bid, uint8_t enable); + + void setEnumComponentState(uint8_t pid, uint8_t bid, int32_t state); + void setPic(uint8_t pid, uint8_t bid, int32_t picNum); + + void setAph(uint8_t pid, uint8_t bid, int32_t state); // 组件透明度,最大127,设置为0则隐藏组件 + void sendcmd(const char* format, ...); + + private: + void processScreenRxPacket(uint8_t* data, size_t len); + void processUsrButtonEvent(uint8_t* data, size_t len); + void processInputfieldContentChangeEvent1(uint8_t* data, size_t len); + void processInputfieldContentChangeEvent0(uint8_t* data, size_t len); + void processUsrDoubleStateButtonEvent(uint8_t* data, size_t len); + void processLoginRequestEvent(uint8_t* data, size_t len); + + void startReceiveAck(); + + void callUsrEventCb(tjc::tjc_usr_event_t* event); +}; + +static inline const char* zitoa(int val) { + static char buf[32]; + sprintf(buf, "%d", val); + return buf; +} +static inline const char* zfmt(const char* fmt, ...) { + static char buf[128]; + va_list args; + va_start(args, fmt); + vsnprintf(buf, sizeof(buf), fmt, args); + va_end(args); + return buf; +} + +static inline const char* refmt(const char* fmt, const char* floatval) { + static char buf[128]; + sprintf(buf, fmt, atof(floatval)); + return buf; +} + +} // namespace iflytop diff --git a/usrc/uicontroler/page/Page_login.cpp b/usrc/uicontroler/page/Page_login.cpp new file mode 100644 index 0000000..69e291a --- /dev/null +++ b/usrc/uicontroler/page/Page_login.cpp @@ -0,0 +1,97 @@ +#include "Page_login.hpp" + +#include + +#include "db/dao/user_dao.hpp" + +using namespace iflytop; +#define TAG "Page_login" + +#define PAGE pg_login +#define OBJ(name) ob_login_##name + +static int usrNum; +static char usrName[10][20]; + +// UIS->sendcmd("p[%d].b[%d].picc=%d", PAGE, OBJ(txtUser##i), 2); +#define EN_USR(i, enable) \ + if (enable) { \ + UIS->setTxt(PAGE, OBJ(txtUser##i), usrName[i]); \ + UIS->setVal(PAGE, OBJ(uen##i), 1); \ + } else { \ + UIS->setTxt(PAGE, OBJ(txtUser##i), ""); \ + UIS->setVal(PAGE, OBJ(uen##i), (int32_t)0); \ + } + +bool Page_login::isBelongThisPage(int page) { return page == PAGE; } + +void Page_login::OnPageLoad(OnPageLoadContext* cxt) { + // + + user_t* users = nullptr; + UserDao::getUsers(&users, &usrNum); + for (int i = 0; i < usrNum; i++) { + strcpy(usrName[i], users[i].name); + } + + /** + * @brief 加载用户信息 + */ + + // EN_USR(0, enusrNum >= 1); + // EN_USR(1, enusrNum >= 2); + // EN_USR(2, enusrNum >= 3); + // EN_USR(3, enusrNum >= 4); + // EN_USR(4, enusrNum >= 5); + // EN_USR(5, enusrNum >= 6); + + // if (!cxt->isFromPopWin) { + // UIS->setVal(PAGE, OBJ(chooseUsr), (int32_t)0); + // UIS->setTxt(PAGE, OBJ(cUsrName), getCfgStr((config_index_t)(kusr_name0))); + // UIS->setTxt(PAGE, OBJ(txtPasswd), ""); + // } + + // UIS->sendcmd("click m0,0"); +} +void Page_login::OnInputFieldContentChange(uint8_t bid, const char* text) { + if (bid == OBJ(txtPasswd)) { + UIS->setTxt(PAGE, bid, text); + UIS->virtualClick(PAGE, OBJ(blogin), 0); // 触发一次登录按钮虚拟点击事件 + } +} + +void Page_login::OnLoginButtonClick(uint8_t bid, const char* userName, const char* passwd) { + + // // + // ZLOGI(TAG, "try login %s %s", userName, passwd); + // const char* curUsrPasswd = getPasswd(userName, &passwdcfgcache); + // if (!curUsrPasswd) { + // UIS->setTxt(PAGE, OBJ(txtPasswd), ""); + // UIS->alert("用户不存在"); + // return; + // } + // if (strlen(curUsrPasswd) == 0) { + // UIS->setTxt(PAGE, OBJ(txtPasswd), ""); + // UIS->alert("密码为空"); + // return; + // } + + // if (strcmp(curUsrPasswd, passwd) != 0) { + // UIS->setTxt(PAGE, OBJ(txtPasswd), ""); + // UIS->alert("密码错误"); + // return; + // } + + // if (strcmp(userName, getCfgStr(kusr_name0)) == 0) { + // ZLOGI(TAG, "%s(admin) login success ", userName); + // GSM->setLogin(true, false, userName); + // } else { + // ZLOGI(TAG, "%s login success ", userName); + // GSM->setLogin(false, false, userName); + // } + + // UIS->chpage(pg_main); + // GSM->setMenuPage(GSM->isAdmin() ? pg_menuAdmin2 : pg_menuUsr); + + return; +} diff --git a/usrc/uicontroler/page/Page_login.hpp b/usrc/uicontroler/page/Page_login.hpp new file mode 100644 index 0000000..abd51b5 --- /dev/null +++ b/usrc/uicontroler/page/Page_login.hpp @@ -0,0 +1,27 @@ +#pragma once +#include "page_processer.hpp" +namespace iflytop { +using namespace std; + +class Page_login : public IPageProcesser { + private: + /* data */ + + + public: + static Page_login* ins() { + static Page_login instance; + return &instance; + } + + private: + bool isBelongThisPage(int page); + + virtual void OnPageLoad(OnPageLoadContext*cxt) override; + virtual void OnLoginButtonClick(uint8_t bid, const char* userName, const char* passwd) override; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; +}; + +} // namespace iflytop + +// kpt_sys_event_page_id \ No newline at end of file diff --git a/usrc/uicontroler/page/Page_main.cpp b/usrc/uicontroler/page/Page_main.cpp new file mode 100644 index 0000000..f26ac29 --- /dev/null +++ b/usrc/uicontroler/page/Page_main.cpp @@ -0,0 +1,244 @@ +#include "Page_main.hpp" + +#include "db/dao/acid_ch_cfg_dao.hpp" +#include "db/dao/device_setting_dao.hpp" +#include "service\pump_ctrl_service.hpp" +#include "ui/usrui.h" +using namespace iflytop; + +#define PAGE pg_main +#define TAG "Page_main" + +#define ADMIN_MENU_ID pg_menuAdmin2 +#define USR_MENU_ID pg_menuUsr + +static const char* fmt(const char* fmt, ...) { + static char buf[128]; + va_list args; + va_start(args, fmt); + vsnprintf(buf, sizeof(buf), fmt, args); + va_end(args); + return buf; +} + +/** + * @brief + * + * 1.对接遥控器状态 + * 2.对接阀门控制板的状态(直接隐藏掉) + * + */ +void Page_main::updateRunModeState() { + // 更新底部状态栏 + if ((int32_t)GSM->getRunMode() == khand_acid_m_jog_mode) { + UIS->setPic(PAGE, ob_main_RunMode, pic_jog_mode); + } else { + UIS->setPic(PAGE, ob_main_RunMode, pic_continuous_mode); + } + + UIS->setEnumComponentState(PAGE, ob_main_RunMode, (int32_t)GSM->getRunMode()); // 运行模式 + if (GSM->getRunMode() == khand_acid_m_jog_mode) { + UIS->vis(ob_main_RunModeVal, 0); + UIS->vis(ob_main_RunModeValUint, 0); + } else { + UIS->vis(ob_main_RunModeVal, 1); + UIS->vis(ob_main_RunModeValUint, 1); + UIS->setTxt(PAGE, ob_main_RunModeVal, "%.1f", DeviceSettingDao::get()->distrIntervalS); // 加酸间隔状态更新 + } +} + +bool Page_main::isBelongThisPage(int page) { return page == PAGE; } + +void Page_main::OnPageLoad(OnPageLoadContext* cxt) { + // 只有管理员能够修改,酸液通道名称 + if (GSM->isAdmin()) { + UIS->setTouchEnableState(ob_main_acidname0, 1); + UIS->setTouchEnableState(ob_main_acidname1, 1); + UIS->setTouchEnableState(ob_main_acidname2, 1); + UIS->setTouchEnableState(ob_main_acidname3, 1); + } else { + UIS->setTouchEnableState(ob_main_acidname0, 0); + UIS->setTouchEnableState(ob_main_acidname1, 0); + UIS->setTouchEnableState(ob_main_acidname2, 0); + UIS->setTouchEnableState(ob_main_acidname3, 0); + } + // 更新底部 + updateRunModeState(); + + // 更新酸液种类 + UIS->setTxt(PAGE, ob_main_acidname0, AcidChCfgDao::getCfg(0)->acidChooseName); + UIS->setTxt(PAGE, ob_main_acidname1, AcidChCfgDao::getCfg(1)->acidChooseName); + UIS->setTxt(PAGE, ob_main_acidname2, AcidChCfgDao::getCfg(2)->acidChooseName); + UIS->setTxt(PAGE, ob_main_acidname3, AcidChCfgDao::getCfg(3)->acidChooseName); + // 更新加液体积 + UIS->setTxt(PAGE, ob_main_acideval0, "%.2f", AcidChCfgDao::getCfg(0)->acidEachDistriVal); + UIS->setTxt(PAGE, ob_main_acideval1, "%.2f", AcidChCfgDao::getCfg(1)->acidEachDistriVal); + UIS->setTxt(PAGE, ob_main_acideval2, "%.2f", AcidChCfgDao::getCfg(2)->acidEachDistriVal); + UIS->setTxt(PAGE, ob_main_acideval3, "%.2f", AcidChCfgDao::getCfg(3)->acidEachDistriVal); + // 更新顶部状态栏 + UIS->setEnumComponentState(PAGE, ob_main_AcidState, GSM->getAcidState()); // 酸液锁是否在线 + UIS->setAph(PAGE, ob_main_AcidState, 0); // 暂时隐藏掉Aph + UIS->setEnumComponentState(PAGE, ob_main_RemoterS, GSM->getRemoterS()); // 遥控器是否在线 + + UIS->setVal(PAGE, ob_main_acidch0, GSM->getPumpSelectState(0)); + UIS->setVal(PAGE, ob_main_acidch1, GSM->getPumpSelectState(1)); + UIS->setVal(PAGE, ob_main_acidch2, GSM->getPumpSelectState(2)); + UIS->setVal(PAGE, ob_main_acidch3, GSM->getPumpSelectState(3)); + + // 时间位置暂时显示版本号 + UIS->setTxt(PAGE, ob_main_clock, ""); + // UIS->setTxt(PAGE, ob_main_clock, "版本:%s", APP_VERSION); + + // 根据当前登录用户设置菜单页面 +} + +void Page_main::OnAppEvent(AppEvent_t* event) { + if (event->type == kAppEvent_RunModeChangeEvent) { + updateRunModeState(); + UIS->setTxt(PAGE, ob_main_sysInfo, "切换模式"); + } + + if (event->type == kAppEvent_RemoterConnectStateChangeEvent) { + UIS->setEnumComponentState(PAGE, ob_main_RemoterS, GSM->getRemoterS()); + if (GSM->getRemoterS()) { + UIS->setTxt(PAGE, ob_main_sysInfo, "连接上手柄"); + } else { + UIS->setTxt(PAGE, ob_main_sysInfo, "断开手柄连接"); + } + } + + if (event->type == kAppEvent_StateDisplayInfo) { + UIS->setTxt(PAGE, ob_main_sysInfo, event->d.stateDisplayInfo); + } + + return; +}; + +void Page_main::OnInputFieldContentChange(uint8_t bid, const char* text) { + /*********************************************************************************************************************** + * 事件过滤 * + ***********************************************************************************************************************/ + if (PumpCtrlService::ins()->isWorking()) { + UIS->alert("工作中,请稍后再操作"); + return; + } + + // 运行间隔设定值 + if (bid == ob_main_RunModeVal) { + float distrIntervalSSecond = atof(text); + if (distrIntervalSSecond <= 0) { + UIS->alert("酸液间隔时间不能小于0"); + return; + } + if (distrIntervalSSecond > 30) { + UIS->alert("酸液间隔时间不能大于30"); + return; + } + } + + // 加酸设定值过滤 + if (bid == ob_main_acideval0 || // + bid == ob_main_acideval1 || // + bid == ob_main_acideval2 || // + bid == ob_main_acideval3) { + float add_ml = atof(text); + if (add_ml < 0.009) { + UIS->alert("设定值不能小于0"); + return; + } else if (add_ml > DeviceSettingDao::get()->echDitrUpLimit) { + UIS->alert(fmt("设定值不能大于%d", DeviceSettingDao::get()->echDitrUpLimit)); + return; + } + } + + /*********************************************************************************************************************** + * 业务逻辑 * + ***********************************************************************************************************************/ + // 更新酸液每次分配设定值 + if (bid == ob_main_acideval0) { + processAcidevalUpdateEvent(bid, text, 0); + } else if (bid == ob_main_acideval1) { + processAcidevalUpdateEvent(bid, text, 1); + } else if (bid == ob_main_acideval2) { + processAcidevalUpdateEvent(bid, text, 2); + } else if (bid == ob_main_acideval3) { + processAcidevalUpdateEvent(bid, text, 3); + } + + // 修改酸液名称 + else if (bid == ob_main_acidname0) { + ZLOGI(TAG, "acidname0:%s", text); + AcidChCfgDao::updatekCfgAcidChooseName(0, text); + UIS->setTxt(PAGE, bid, text); + } else if (bid == ob_main_acidname1) { + ZLOGI(TAG, "acidname1:%s", text); + AcidChCfgDao::updatekCfgAcidChooseName(1, text); + UIS->setTxt(PAGE, bid, text); + } else if (bid == ob_main_acidname2) { + ZLOGI(TAG, "acidname2:%s", text); + AcidChCfgDao::updatekCfgAcidChooseName(2, text); + UIS->setTxt(PAGE, bid, text); + } else if (bid == ob_main_acidname3) { + ZLOGI(TAG, "acidname3:%s", text); + AcidChCfgDao::updatekCfgAcidChooseName(3, text); + UIS->setTxt(PAGE, bid, text); + } + + // 设置加酸间隔 + if (bid == ob_main_RunModeVal) { + float distrIntervalSSecond = atof(text); + UIS->setTxt(PAGE, bid, zfmt("%.1f", distrIntervalSSecond)); + // CS->setcfgAndFlush(kcfg_distrIntervalS, zfmt("%.1f", distrIntervalSSecond)); + DeviceSettingDao::updatedistrIntervalS(distrIntervalSSecond); + } +} + +void Page_main::OnButton(uint8_t bid, uint8_t val) { + /*********************************************************************************************************************** + * 事件过滤 * + ***********************************************************************************************************************/ + if (bid == ob_main_RunMode || // + bid == ob_main_acidch0 || // + bid == ob_main_acidch1 || // + bid == ob_main_acidch2 || // + bid == ob_main_acidch3 || // + bid == ob_main_MenuButton // + ) { + if (PumpCtrlService::ins()->isWorking()) { + UIS->alert("工作中,请稍后再操作"); + return; + } + } + + /*********************************************************************************************************************** + * 业务逻辑 * + ***********************************************************************************************************************/ + if (bid == ob_main_RunMode) { + // 切换模式 + GSM->changeToNextRunMode(); + } else if (bid == ob_main_acidch0) { + // 选中(取消选中)加酸泵0 + ZLOGI(TAG, "choose acid ch%d,%d", 0, val); + GSM->setPumpSelectState(0, val); + } else if (bid == ob_main_acidch1) { + // 选中(取消选中)加酸泵1 + ZLOGI(TAG, "choose acid ch%d,%d", 1, val); + GSM->setPumpSelectState(1, val); + } else if (bid == ob_main_acidch2) { + // 选中(取消选中)加酸泵2 + ZLOGI(TAG, "choose acid ch%d,%d", 2, val); + GSM->setPumpSelectState(2, val); + } else if (bid == ob_main_acidch3) { + // 选中(取消选中)加酸泵3 + ZLOGI(TAG, "choose acid ch%d,%d", 3, val); + GSM->setPumpSelectState(3, val); + } else if (bid == ob_main_MenuButton) { + UIS->chpage(GSM->getMenuPage()); + } +} + +void Page_main::processAcidevalUpdateEvent(uint8_t bid, const char* text, int ch) { + ZLOGI(TAG, "set acid ch%d:%s", ch, text); + UIS->setTxt(PAGE, bid, refmt("%.1f", text)); + AcidChCfgDao::updateAcidEachDistriVal(ch, atof(text)); +} diff --git a/usrc/uicontroler/page/Page_main.hpp b/usrc/uicontroler/page/Page_main.hpp new file mode 100644 index 0000000..a5cfaf4 --- /dev/null +++ b/usrc/uicontroler/page/Page_main.hpp @@ -0,0 +1,30 @@ +#pragma once +#include "page_processer.hpp" + +namespace iflytop { +using namespace std; + +class Page_main : public IPageProcesser { + private: + /* data */ + + public: + static Page_main* ins() { + static Page_main instance; + return &instance; + } + + private: + virtual bool isBelongThisPage(int page)override; + + virtual void OnPageLoad(OnPageLoadContext*cxt) override; + virtual void OnButton(uint8_t bid, uint8_t val) override; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; + virtual void OnAppEvent(AppEvent_t* event) override; + + private: + void processAcidevalUpdateEvent(uint8_t bid, const char* text, int ch); + void updateRunModeState(); +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/Page_menu.cpp b/usrc/uicontroler/page/Page_menu.cpp new file mode 100644 index 0000000..2dd128f --- /dev/null +++ b/usrc/uicontroler/page/Page_menu.cpp @@ -0,0 +1,28 @@ +#include "Page_menu.hpp" +using namespace iflytop; + +#define PAGE pg_main +#define TAG "Page_menu" + +/** + * @brief + * + * 1.对接遥控器状态 + * 2.对接阀门控制板的状态(直接隐藏掉) + * + */ + +bool Page_menu::isBelongThisPage(int page) { + if (page == pg_menuAdmin) return true; + if (page == pg_menuAdmin2) return true; + if (page == pg_menuUsr) return true; + if (page == pg_muneWarehouse) return true; + return false; +} + +void Page_menu::OnUnLoginButtonClick(uint8_t bid) { + ZLOGI(TAG, "OnUnLoginButtonClick"); + GSM->setUnLogin(); + UIS->chpage(pg_login); + return; +}; diff --git a/usrc/uicontroler/page/Page_menu.hpp b/usrc/uicontroler/page/Page_menu.hpp new file mode 100644 index 0000000..a3ff911 --- /dev/null +++ b/usrc/uicontroler/page/Page_menu.hpp @@ -0,0 +1,25 @@ +#pragma once +#include "page_processer.hpp" + +namespace iflytop { +using namespace std; + +class Page_menu : public IPageProcesser { + private: + /* data */ + + public: + static Page_menu* ins() { + static Page_menu instance; + return &instance; + } + + private: + virtual bool isBelongThisPage(int page)override; + + + + virtual void OnUnLoginButtonClick(uint8_t bid); +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/keyboard/Page_keybAcidCh.cpp b/usrc/uicontroler/page/keyboard/Page_keybAcidCh.cpp new file mode 100644 index 0000000..5a1a5b4 --- /dev/null +++ b/usrc/uicontroler/page/keyboard/Page_keybAcidCh.cpp @@ -0,0 +1,32 @@ +#include "Page_keybAcidCh.hpp" + +#include "db/dao/acid_name_dao.hpp" +using namespace iflytop; + +#define TAG "Page_keybAcidCh" +#define PAGE pg_keybAcidCh +#define OBJ(name) ob_keybAcidCh_##name + +bool Page_keybAcidCh::isBelongThisPage(int page) { return page == PAGE; } + +void Page_keybAcidCh::OnKeyboardPageLoad() { + ZLOGI(TAG, "Page_keybAcidCh::OnKeyboardPageLoad"); + UIS->setTxt(PAGE, OBJ(b0), AcidNameDao::getAcidName(0)); + UIS->setTxt(PAGE, OBJ(b1), AcidNameDao::getAcidName(1)); + UIS->setTxt(PAGE, OBJ(b2), AcidNameDao::getAcidName(2)); + UIS->setTxt(PAGE, OBJ(b3), AcidNameDao::getAcidName(3)); + UIS->setTxt(PAGE, OBJ(b4), AcidNameDao::getAcidName(4)); + UIS->setTxt(PAGE, OBJ(b5), AcidNameDao::getAcidName(5)); + UIS->setTxt(PAGE, OBJ(b6), AcidNameDao::getAcidName(6)); + UIS->setTxt(PAGE, OBJ(b7), AcidNameDao::getAcidName(7)); + UIS->setTxt(PAGE, OBJ(b8), AcidNameDao::getAcidName(8)); + UIS->setTxt(PAGE, OBJ(b9), AcidNameDao::getAcidName(9)); + UIS->setTxt(PAGE, OBJ(b10), AcidNameDao::getAcidName(10)); + UIS->setTxt(PAGE, OBJ(b11), AcidNameDao::getAcidName(11)); + UIS->setTxt(PAGE, OBJ(b12), AcidNameDao::getAcidName(12)); + UIS->setTxt(PAGE, OBJ(b13), AcidNameDao::getAcidName(13)); + UIS->setTxt(PAGE, OBJ(b14), AcidNameDao::getAcidName(14)); + return; +}; + +// muAcidType \ No newline at end of file diff --git a/usrc/uicontroler/page/keyboard/Page_keybAcidCh.hpp b/usrc/uicontroler/page/keyboard/Page_keybAcidCh.hpp new file mode 100644 index 0000000..fd77018 --- /dev/null +++ b/usrc/uicontroler/page/keyboard/Page_keybAcidCh.hpp @@ -0,0 +1,20 @@ +#pragma once +// +#include "../page_processer.hpp" + +namespace iflytop { +using namespace std; +// page: keybAcidCh +class Page_keybAcidCh : public IPageProcesser { + public: + static Page_keybAcidCh* ins() { + static Page_keybAcidCh instance; + return &instance; + } + + private: + virtual bool isBelongThisPage(int page) override; + virtual void OnKeyboardPageLoad() override; +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/page.hpp b/usrc/uicontroler/page/page.hpp new file mode 100644 index 0000000..32aa9f4 --- /dev/null +++ b/usrc/uicontroler/page/page.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include "Page_login.hpp" +#include "Page_main.hpp" +#include "Page_menu.hpp" +#include "keyboard/Page_keybAcidCh.hpp" +#include "submenu/Page_changePasswd.hpp" +#include "submenu/Page_muAcidType.hpp" +#include "submenu/Page_muAudit.hpp" +#include "submenu/Page_muDeviceInfo.hpp" +#include "submenu/Page_muInterval.hpp" +#include "submenu/Page_muPumpTest.hpp" +#include "submenu/Page_muSettings.hpp" +#include "submenu/Page_muUsrMgr.hpp" + +// +#include "submenu/Page_muBleHandSett.hpp" +#include "submenu/Page_muMotorSett.hpp" +#include "submenu/Page_muPumpSett.hpp" \ No newline at end of file diff --git a/usrc/uicontroler/page/page_processer.hpp b/usrc/uicontroler/page/page_processer.hpp new file mode 100644 index 0000000..8303535 --- /dev/null +++ b/usrc/uicontroler/page/page_processer.hpp @@ -0,0 +1,66 @@ +#pragma once + +#include "apphardware/apphardware.hpp" +#include "uappbase/base.hpp" +#include "uicontroler/front_end_controler.hpp" +#include "utils/page_bak_router.hpp" +#include "config/config.hpp" +#include "ui/ui.h" +namespace iflytop { +using namespace std; + +class OnPageLoadContext { + public: + bool isFromPopWin = false; +}; + +class IPageProcesser { + private: + /* data */ + + public: + virtual void initialize() { + UIS->regOnUsrEventCb([this](tjc::tjc_usr_event_t* event) { + if (!isBelongThisPage(event->pid)) { + return; + } + if (event->eventId == tjc::kpt_sys_event_page_id) { + OnPageLoadContext cxt = {0}; + cxt.isFromPopWin = event->d.sys_event_page_id.isFromPopWin; + OnPageLoad(&cxt); + } else if (event->eventId == tjc::kpt_double_state_button_event) { + OnButton(event->bid, event->d.double_state_button.val); + } else if (event->eventId == tjc::kpt_button_event) { + OnButton(event->bid, event->d.button_event.val); + } else if (event->eventId == tjc::kpt_inputfield_content_change_event1 || event->eventId == tjc::kpt_inputfield_content_change_event0) { + OnInputFieldContentChange(event->bid, event->d.inputfield_content.text); + } else if (event->eventId == tjc::kpt_login_request) { + OnLoginButtonClick(event->bid, event->d.login_request.usrName, event->d.login_request.passwd); + } else if (event->eventId == tjc::kpt_unlogin_request) { + OnUnLoginButtonClick(event->bid); + } else if(event->eventId == tjc::kpt_on_keyboard_page_load){ + OnKeyboardPageLoad(); + } + }); + + AppEventBus::ins()->regOnEvent([this](AppEvent_t* event) { + if (!isBelongThisPage(UIS->getNowPage())) { + return; + } + OnAppEvent(event); + }); + } + + private: + virtual bool isBelongThisPage(int page) = 0; + + virtual void OnPageLoad(OnPageLoadContext* cxt) { return; }; + virtual void OnKeyboardPageLoad() { return; }; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) { return; }; + virtual void OnButton(uint8_t bid, uint8_t val) { return; }; + virtual void OnLoginButtonClick(uint8_t bid, const char* userName, const char* passwd) { return; }; + virtual void OnUnLoginButtonClick(uint8_t bid) { return; }; + virtual void OnAppEvent(AppEvent_t* event) { return; }; +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/submenu/Page_changePasswd.cpp b/usrc/uicontroler/page/submenu/Page_changePasswd.cpp new file mode 100644 index 0000000..ace73fc --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_changePasswd.cpp @@ -0,0 +1,79 @@ +#include "Page_changePasswd.hpp" + +#include "db/dao/user_dao.hpp" +using namespace iflytop; + +/** + * @brief + * 酸类修改页面 + */ + +#define PAGE pg_changePasswd +#define TAG "Page_changePasswd" + +bool Page_changePasswd::isBelongThisPage(int page) { return page == PAGE; } + +void Page_changePasswd::OnPageLoad(OnPageLoadContext* cxt) { + if (!cxt->isFromPopWin) { + memset(oldpasswdBuf, 0, sizeof(oldpasswdBuf)); + memset(newpasswdBuf, 0, sizeof(newpasswdBuf)); + memset(confirmPasswdBuf, 0, sizeof(confirmPasswdBuf)); + } + + UIS->setTxt(PAGE, ob_changePasswd_oldPwd, oldpasswdBuf); + UIS->setTxt(PAGE, ob_changePasswd_newPwd, newpasswdBuf); + UIS->setTxt(PAGE, ob_changePasswd_newPwdCfm, confirmPasswdBuf); +}; + +void Page_changePasswd::OnInputFieldContentChange(uint8_t bid, const char* text) { + user_t* user = UserDao::getUserByName(GSM->getLoginUsr()); + + if (user == nullptr) { + UIS->alert("用户不存在"); + return; + } + + if (bid == ob_changePasswd_oldPwd) { // 旧密码 + if (strcmp(user->passwd, text) != 0) { + UIS->alert("旧密码错误"); + return; + } + UIS->setTxt(PAGE, bid, text); + strcpy(oldpasswdBuf, text); + + } else if (bid == ob_changePasswd_newPwd) { // 新密码 + strcpy(newpasswdBuf, text); + UIS->setTxt(PAGE, bid, text); + } else if (bid == ob_changePasswd_newPwdCfm) { // 新密码确认 + strcpy(confirmPasswdBuf, text); + UIS->setTxt(PAGE, bid, text); + } +} +void Page_changePasswd::OnButton(uint8_t bid, uint8_t val) { + + // + if (bid == ob_changePasswd_confirm) { + user_t* user = UserDao::getUserByName(GSM->getLoginUsr()); + + if (user == nullptr) { + UIS->alert("用户不存在"); + return; + } + + if (strcmp(user->passwd, oldpasswdBuf) != 0) { + UIS->alert("旧密码错误"); + return; + } + if (strcmp(newpasswdBuf, confirmPasswdBuf) != 0) { + UIS->alert("两次密码不一致"); + return; + } + UserDao::updateUserPasswd(GSM->getLoginUsr(), newpasswdBuf); + + UIS->confirmNoCancle("密码修改成功"); + } else if (bid == ob_changePasswd_bak) { + UIS->chpage(GSM->getMenuPage()); + } +}; + +// muAcidType \ No newline at end of file diff --git a/usrc/uicontroler/page/submenu/Page_changePasswd.hpp b/usrc/uicontroler/page/submenu/Page_changePasswd.hpp new file mode 100644 index 0000000..119c109 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_changePasswd.hpp @@ -0,0 +1,31 @@ +#pragma once +// +#include "../page_processer.hpp" +namespace iflytop { +using namespace std; +// page: keybAcidCh +class Page_changePasswd : public IPageProcesser { + private: + /* data */ + + char oldpasswdBuf[30]; + char newpasswdBuf[30]; + char confirmPasswdBuf[30]; + + public: + static Page_changePasswd* ins() { + static Page_changePasswd instance; + return &instance; + } + + private: + virtual bool isBelongThisPage(int page) override; + + virtual void OnPageLoad(OnPageLoadContext*cxt) override; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; + virtual void OnButton(uint8_t bid, uint8_t val) override; + + private: +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/submenu/Page_muAcidType.cpp b/usrc/uicontroler/page/submenu/Page_muAcidType.cpp new file mode 100644 index 0000000..12414da --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muAcidType.cpp @@ -0,0 +1,105 @@ +#include "Page_muAcidType.hpp" + +#include "db/dao/acid_name_dao.hpp" +using namespace iflytop; + +/** + * @brief + * 酸类修改页面 + */ + +#define PAGE pg_muAcidType +#define OBJ(name) ob_muAcidType_##name +#define TAG "Page_muAcidType" +bool Page_muAcidType::isBelongThisPage(int page) { return page == PAGE; } + +static int getAcidOff(int bid) { + switch (bid) { + case OBJ(t1): + return 0; + case OBJ(t2): + return 1; + case OBJ(t3): + return 2; + case OBJ(t4): + return 3; + case OBJ(t5): + return 4; + case OBJ(t6): + return 5; + case OBJ(t7): + return 6; + case OBJ(t8): + return 7; + case OBJ(t9): + return 8; + case OBJ(t10): + return 9; + case OBJ(t11): + return 10; + case OBJ(t12): + return 11; + case OBJ(t13): + return 12; + case OBJ(t14): + return 13; + case OBJ(t15): + return 14; + default: + return 0; + } +} + +void Page_muAcidType::OnPageLoad(OnPageLoadContext* cxt) { // + UIS->setTxt(PAGE, OBJ(t1), AcidNameDao::getAcidName(0)); + UIS->setTxt(PAGE, OBJ(t2), AcidNameDao::getAcidName(1)); + UIS->setTxt(PAGE, OBJ(t3), AcidNameDao::getAcidName(2)); + UIS->setTxt(PAGE, OBJ(t4), AcidNameDao::getAcidName(3)); + UIS->setTxt(PAGE, OBJ(t5), AcidNameDao::getAcidName(4)); + UIS->setTxt(PAGE, OBJ(t6), AcidNameDao::getAcidName(5)); + UIS->setTxt(PAGE, OBJ(t7), AcidNameDao::getAcidName(6)); + UIS->setTxt(PAGE, OBJ(t8), AcidNameDao::getAcidName(7)); + UIS->setTxt(PAGE, OBJ(t9), AcidNameDao::getAcidName(8)); + UIS->setTxt(PAGE, OBJ(t10), AcidNameDao::getAcidName(9)); + UIS->setTxt(PAGE, OBJ(t11), AcidNameDao::getAcidName(10)); + UIS->setTxt(PAGE, OBJ(t12), AcidNameDao::getAcidName(11)); + UIS->setTxt(PAGE, OBJ(t13), AcidNameDao::getAcidName(12)); + UIS->setTxt(PAGE, OBJ(t14), AcidNameDao::getAcidName(13)); + UIS->setTxt(PAGE, OBJ(t15), AcidNameDao::getAcidName(14)); +}; +void Page_muAcidType::updateAcidName(uint8_t bid, const char* txt) { + ZLOGI(TAG, "updateAcidName: cindex %d : %s", getAcidOff(bid), txt); + UIS->setTxt(PAGE, bid, txt); + AcidNameDao::updateAcidName(getAcidOff(bid), txt); +} + +void Page_muAcidType::OnInputFieldContentChange(uint8_t bid, const char* text) { // + switch (bid) { + case OBJ(t1): + case OBJ(t2): + case OBJ(t3): + case OBJ(t4): + case OBJ(t5): + case OBJ(t6): + case OBJ(t7): + case OBJ(t8): + case OBJ(t9): + case OBJ(t10): + case OBJ(t11): + case OBJ(t12): + case OBJ(t13): + case OBJ(t14): + case OBJ(t15): + updateAcidName(bid, text); + break; + default: + break; + } +}; +void Page_muAcidType::OnButton(uint8_t bid, uint8_t val) { // + if (bid == OBJ(bak)) { + UIS->chpage(GSM->getMenuPage()); + } +}; + +// muAcidType \ No newline at end of file diff --git a/usrc/uicontroler/page/submenu/Page_muAcidType.hpp b/usrc/uicontroler/page/submenu/Page_muAcidType.hpp new file mode 100644 index 0000000..f478043 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muAcidType.hpp @@ -0,0 +1,28 @@ +#pragma once +// +#include "../page_processer.hpp" +namespace iflytop { +using namespace std; +// page: keybAcidCh +class Page_muAcidType : public IPageProcesser { + private: + /* data */ + + public: + static Page_muAcidType* ins() { + static Page_muAcidType instance; + return &instance; + } + + private: + virtual bool isBelongThisPage(int page) override; + + virtual void OnPageLoad(OnPageLoadContext*cxt) override; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; + virtual void OnButton(uint8_t bid, uint8_t val) override; + + private: + void updateAcidName(uint8_t bid, const char* txt); +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/submenu/Page_muAudit.cpp b/usrc/uicontroler/page/submenu/Page_muAudit.cpp new file mode 100644 index 0000000..8d41637 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muAudit.cpp @@ -0,0 +1,20 @@ +#include "Page_muAudit.hpp" +using namespace iflytop; + +#define PAGE pg_muAudit +#define OBJ(name) ob_muAudit_##name +#define TAG "Page_muAudit" +bool Page_muAudit::isBelongThisPage(int page) { return page == PAGE; } + +void Page_muAudit::OnPageLoad(OnPageLoadContext* cxt) { // +}; + +void Page_muAudit::OnInputFieldContentChange(uint8_t bid, const char* text) { // +}; +void Page_muAudit::OnButton(uint8_t bid, uint8_t val) { // + if (bid == OBJ(bak)) { + UIS->chpage(GSM->getMenuPage()); + } +}; + +// muAcidType \ No newline at end of file diff --git a/usrc/uicontroler/page/submenu/Page_muAudit.hpp b/usrc/uicontroler/page/submenu/Page_muAudit.hpp new file mode 100644 index 0000000..9202122 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muAudit.hpp @@ -0,0 +1,26 @@ +#pragma once +// +#include "../page_processer.hpp" + +namespace iflytop { +using namespace std; +// page: keybAcidCh +class Page_muAudit : public IPageProcesser { + private: + /* data */ + + public: + static Page_muAudit* ins() { + static Page_muAudit instance; + return &instance; + } + + private: + virtual bool isBelongThisPage(int page) override; + + virtual void OnPageLoad(OnPageLoadContext*cxt) override; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; + virtual void OnButton(uint8_t bid, uint8_t val) override; + +}; +} diff --git a/usrc/uicontroler/page/submenu/Page_muBleHandSett.cpp b/usrc/uicontroler/page/submenu/Page_muBleHandSett.cpp new file mode 100644 index 0000000..74d09d5 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muBleHandSett.cpp @@ -0,0 +1,71 @@ +#include "Page_muBleHandSett.hpp" + +#include "db/dao/device_setting_dao.hpp" +#include "service/remote_controler.hpp" + +using namespace iflytop; + +/** + * @brief + * 酸类修改页面 + */ + +#define PAGE pg_muBleHandSett +#define TAG "Page_muBleHandSett" + +static bool m_scaning; +void Page_muBleHandSett::initialize() { // + IPageProcesser::initialize(); + RCTRL->regOnReport([this](uint8_t* rx, int32_t len) { + zble_proto_packet_t* packet = (zble_proto_packet_t*)rx; + if (UIS->getNowPage() != PAGE) { + return; + } + if (packet->cmd == kzble_app_report_key_event) { + int32_t keyEvent = *(int32_t*)packet->data; + if (keyEvent == hand_acid_remoter_kevent_add_liquid) { + UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, "加液"); + } + if (keyEvent == hand_acid_remoter_kevent_change_next_mode) { + UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, "模式切换"); + } + if (keyEvent == hand_acid_remoter_kevent_reflux) { + UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, "液路回流"); + } + if (keyEvent == hand_acid_remoter_kevent_preFilling) { + UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, "液路预充"); + } + return; + } + }); +} +bool Page_muBleHandSett::isBelongThisPage(int page) { return page == PAGE; } +void Page_muBleHandSett::updatePage() { UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, DeviceSettingDao::get()->bleClientName); } +void Page_muBleHandSett::OnPageLoad(OnPageLoadContext* cxt) { // + updatePage(); +}; +void Page_muBleHandSett::OnAppEvent(AppEvent_t* event) { + if (event->type == kAppEvent_BleConnectEvent) { + ZLOGI(TAG, "ble connect success"); + UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, "绑定成功"); + DeviceSettingDao::updateBleClientName(event->d.bleName); + m_scaning = false; + } +} +void Page_muBleHandSett::OnInputFieldContentChange(uint8_t bid, const char* text) { updatePage(); } +void Page_muBleHandSett::OnButton(uint8_t bid, uint8_t val) { + ZLOGI(TAG, "bid:%d", bid); + if (bid == ob_muBleHandSett_bak) { + if (m_scaning) { + RCTRL->startScan("XXXXXXXXX", false); // 相当于停止扫描 + } + UIS->chpage(getBakPage(PAGE)); + } else if (bid == ob_muBleHandSett_bleScan) { + ZLOGI(TAG, "bleScan"); + bool suc = RCTRL->startScan(BLENAME, true); + if (suc) UIS->setTxt(PAGE, ob_muBleHandSett_bleCliName, "扫描中..."); + m_scaning = true; + } +}; + +// muAcidType \ No newline at end of file diff --git a/usrc/uicontroler/page/submenu/Page_muBleHandSett.hpp b/usrc/uicontroler/page/submenu/Page_muBleHandSett.hpp new file mode 100644 index 0000000..b8833bc --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muBleHandSett.hpp @@ -0,0 +1,30 @@ +#pragma once +// +#include "../page_processer.hpp" +namespace iflytop { +using namespace std; +// page: keybAcidCh +class Page_muBleHandSett : public IPageProcesser { + private: + /* data */ + + public: + static Page_muBleHandSett* ins() { + static Page_muBleHandSett instance; + return &instance; + } + virtual void initialize() override; + + private: + virtual bool isBelongThisPage(int page) override; + + virtual void OnPageLoad(OnPageLoadContext* cxt) override; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; + virtual void OnButton(uint8_t bid, uint8_t val) override; + virtual void OnAppEvent(AppEvent_t* event) override; + + private: + void updatePage(); +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/submenu/Page_muDeviceInfo.cpp b/usrc/uicontroler/page/submenu/Page_muDeviceInfo.cpp new file mode 100644 index 0000000..d558232 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muDeviceInfo.cpp @@ -0,0 +1,19 @@ +#include "Page_muDeviceInfo.hpp" + +using namespace iflytop; + +#define PAGE pg_muDeviceInfo +#define TAG "Page_muDeviceInfo" +bool Page_muDeviceInfo::isBelongThisPage(int page) { return page == PAGE; } + +void Page_muDeviceInfo::OnPageLoad(OnPageLoadContext* cxt) { + UIS->setTxt(PAGE, ob_muDeviceInfo_deviceId, "SN000001"); + UIS->setTxt(PAGE, ob_muDeviceInfo_manufa, "中国黄金"); + UIS->setTxt(PAGE, ob_muDeviceInfo_softVers, APP_VERSION); +} +void Page_muDeviceInfo::OnInputFieldContentChange(uint8_t bid, const char* text) {} +void Page_muDeviceInfo::OnButton(uint8_t bid, uint8_t val) { + if (bid == ob_muDeviceInfo_bak) { + UIS->chpage(GSM->getMenuPage()); + } +} \ No newline at end of file diff --git a/usrc/uicontroler/page/submenu/Page_muDeviceInfo.hpp b/usrc/uicontroler/page/submenu/Page_muDeviceInfo.hpp new file mode 100644 index 0000000..891c796 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muDeviceInfo.hpp @@ -0,0 +1,27 @@ +#pragma once +// +#include "../page_processer.hpp" +namespace iflytop { +using namespace std; +// page: keybAcidCh +class Page_muDeviceInfo : public IPageProcesser { + private: + /* data */ + + public: + static Page_muDeviceInfo* ins() { + static Page_muDeviceInfo instance; + return &instance; + } + + private: + virtual bool isBelongThisPage(int page) override; + + virtual void OnPageLoad(OnPageLoadContext*cxt) override; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; + virtual void OnButton(uint8_t bid, uint8_t val) override; + + private: +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/submenu/Page_muInterval.cpp b/usrc/uicontroler/page/submenu/Page_muInterval.cpp new file mode 100644 index 0000000..d9a0cbb --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muInterval.cpp @@ -0,0 +1,46 @@ +#include "Page_muInterval.hpp" + +#include "db/dao/device_setting_dao.hpp" +using namespace iflytop; + +/** + * @brief + * 酸类修改页面 + */ + +#define PAGE pg_muInterval +#define TAG "Page_muInterval" + +bool Page_muInterval::isBelongThisPage(int page) { return page == PAGE; } + +void Page_muInterval::OnPageLoad(OnPageLoadContext* cxt) { + // 设置加酸间隔时间 + UIS->setTxt(PAGE, ob_muInterval_stAcidInte, "%.1f", DeviceSettingDao::get()->distrIntervalS); +}; + +void Page_muInterval::OnInputFieldContentChange(uint8_t bid, const char* text) { + if (bid == ob_muInterval_stAcidInte) { + float distrIntervalSSecond = atof(text); + if (distrIntervalSSecond <= 0) { + UIS->alert("酸液间隔时间不能小于0"); + UIS->setTxt(PAGE, ob_muInterval_stAcidInte,"%.1f", DeviceSettingDao::get()->distrIntervalS); + return; + } + + if (distrIntervalSSecond > 30) { + UIS->alert("酸液间隔时间不能大于30"); + UIS->setTxt(PAGE, ob_muInterval_stAcidInte,"%.1f", DeviceSettingDao::get()->distrIntervalS); + return; + } + UIS->setTxt(PAGE, bid, zfmt("%.1f", distrIntervalSSecond)); + DeviceSettingDao::updatedistrIntervalS(distrIntervalSSecond); + } +}; +void Page_muInterval::OnButton(uint8_t bid, uint8_t val) { + // + if (bid == ob_muInterval_bak) { + UIS->chpage(GSM->getMenuPage()); + } +}; + +// muAcidType \ No newline at end of file diff --git a/usrc/uicontroler/page/submenu/Page_muInterval.hpp b/usrc/uicontroler/page/submenu/Page_muInterval.hpp new file mode 100644 index 0000000..7b1e8e2 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muInterval.hpp @@ -0,0 +1,25 @@ +#pragma once +// +#include "../page_processer.hpp" +namespace iflytop { +using namespace std; +// page: keybAcidCh +class Page_muInterval : public IPageProcesser { + private: + /* data */ + + public: + static Page_muInterval* ins() { + static Page_muInterval instance; + return &instance; + } + + private: + virtual bool isBelongThisPage(int page) override; + + virtual void OnPageLoad(OnPageLoadContext*cxt) override; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; + virtual void OnButton(uint8_t bid, uint8_t val) override; +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/submenu/Page_muMotorSett.cpp b/usrc/uicontroler/page/submenu/Page_muMotorSett.cpp new file mode 100644 index 0000000..e80c651 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muMotorSett.cpp @@ -0,0 +1,83 @@ +#include "Page_muMotorSett.hpp" + +#include "db/dao/acid_ch_cfg_dao.hpp" +#include "service/remote_controler.hpp" + +using namespace iflytop; + +/** + * @brief + * 酸类修改页面 + */ + +#define PAGE pg_muMotorSett +#define TAG "Page_muMotorSett" + +static bool m_scaning; +void Page_muMotorSett::initialize() { // + IPageProcesser::initialize(); +} + +static int32_t getMxIRun(int32_t index) { + if (index < 0 || index > 3) return 0; + return AcidChCfgDao::getCfg(index)->irun; +} +static int32_t setMxIRun(int32_t index, int32_t irun) { + if (index < 0 || index > 3) return 0; + AcidChCfgDao::updateIRUN(index, irun); + return 0; +} + +bool Page_muMotorSett::isBelongThisPage(int page) { return page == PAGE; } + +void Page_muMotorSett::updatePage() { + UIS->setTxt(PAGE, ob_muMotorSett_irun0, zitoa(getMxIRun(0))); + UIS->setTxt(PAGE, ob_muMotorSett_irun1, zitoa(getMxIRun(1))); + UIS->setTxt(PAGE, ob_muMotorSett_irun2, zitoa(getMxIRun(2))); + UIS->setTxt(PAGE, ob_muMotorSett_irun3, zitoa(getMxIRun(3))); +} + +void Page_muMotorSett::OnPageLoad(OnPageLoadContext* cxt) { // + updatePage(); +}; +void Page_muMotorSett::OnAppEvent(AppEvent_t* event) {} +void Page_muMotorSett::OnInputFieldContentChange(uint8_t bid, const char* text) { + /*********************************************************************************************************************** + * irunx * + ***********************************************************************************************************************/ + + if (bid == ob_muMotorSett_irun0 || bid == ob_muMotorSett_irun1 || bid == ob_muMotorSett_irun2 || bid == ob_muMotorSett_irun3) { + int irun = atoi(text); + if (irun < 1 || irun > 31) { + UIS->alert("IRUN需要限制在1..31"); + return; + } + } + + if (bid == ob_muMotorSett_irun0) { + setMxIRun(0, atoi(text)); + UIS->setTxt(bid, zfmt("%d", getMxIRun(0))); + } else if (bid == ob_muMotorSett_irun1) { + setMxIRun(1, atoi(text)); + UIS->setTxt(bid, zfmt("%d", getMxIRun(1))); + } else if (bid == ob_muMotorSett_irun2) { + setMxIRun(2, atoi(text)); + UIS->setTxt(bid, zfmt("%d", getMxIRun(2))); + } else if (bid == ob_muMotorSett_irun3) { + setMxIRun(3, atoi(text)); + UIS->setTxt(bid, zfmt("%d", getMxIRun(3))); + } + + /*********************************************************************************************************************** + * addAcidVel * + ***********************************************************************************************************************/ + + updatePage(); +} +void Page_muMotorSett::OnButton(uint8_t bid, uint8_t val) { + if (bid == ob_muMotorSett_bak) { + UIS->chpage(getBakPage(PAGE)); + } +}; + +// muAcidType \ No newline at end of file diff --git a/usrc/uicontroler/page/submenu/Page_muMotorSett.hpp b/usrc/uicontroler/page/submenu/Page_muMotorSett.hpp new file mode 100644 index 0000000..0e7d7e7 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muMotorSett.hpp @@ -0,0 +1,30 @@ +#pragma once +// +#include "../page_processer.hpp" +namespace iflytop { +using namespace std; +// page: keybAcidCh +class Page_muMotorSett : public IPageProcesser { + private: + /* data */ + + public: + static Page_muMotorSett* ins() { + static Page_muMotorSett instance; + return &instance; + } + virtual void initialize() override; + + private: + virtual bool isBelongThisPage(int page) override; + + virtual void OnPageLoad(OnPageLoadContext* cxt) override; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; + virtual void OnButton(uint8_t bid, uint8_t val) override; + virtual void OnAppEvent(AppEvent_t* event) override; + + private: + void updatePage(); +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/submenu/Page_muPumpSett.cpp b/usrc/uicontroler/page/submenu/Page_muPumpSett.cpp new file mode 100644 index 0000000..58e1d5a --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muPumpSett.cpp @@ -0,0 +1,163 @@ +#include "Page_muPumpSett.hpp" + +#include "db/dao/acid_ch_cfg_dao.hpp" +#include "service/remote_controler.hpp" + +using namespace iflytop; + +/** + * @brief + * 酸类修改页面 + */ + +#define PAGE pg_muPumpSett +#define TAG "Page_muPumpSett" + +static float getMotorMLPR(int32_t index) { + if (index < 0 || index > 3) return 0; + return AcidChCfgDao::getCfg(index)->mLPR; +} + +static float setMotorMLPR(int32_t index, float mlpr) { + if (index < 0 || index > 3) return 0; + // AcidChCfgDao::updateMLPR(index, mlpr); + return 0; +} + +static bool m_scaning; +void Page_muPumpSett::initialize() { // + IPageProcesser::initialize(); + + RCTRL->regOnReport([this](uint8_t* rx, int32_t len) { + zble_proto_packet_t* packet = (zble_proto_packet_t*)rx; + if (UIS->getNowPage() != PAGE) { + return; + } + + if (packet->cmd == kzble_app_report_key_event) { + int32_t keyEvent = *(int32_t*)packet->data; + + return; + } + }); +} +bool Page_muPumpSett::isBelongThisPage(int page) { return page == PAGE; } + +void Page_muPumpSett::updatePage() { + UIS->setTxt(PAGE, ob_muPumpSett_pumpCoef0, zfmt("%.4f", getMotorMLPR(0))); + UIS->setTxt(PAGE, ob_muPumpSett_pumpCoef1, zfmt("%.4f", getMotorMLPR(1))); + UIS->setTxt(PAGE, ob_muPumpSett_pumpCoef2, zfmt("%.4f", getMotorMLPR(2))); + UIS->setTxt(PAGE, ob_muPumpSett_pumpCoef3, zfmt("%.4f", getMotorMLPR(3))); + // UIS->setTxt(PAGE, ob_muPumpSett_pipeLen0, zfmt("%.2f", getCfgPipeLengthML(0))); + // UIS->setTxt(PAGE, ob_muPumpSett_pipeLen1, zfmt("%.2f", getCfgPipeLengthML(1))); + // UIS->setTxt(PAGE, ob_muPumpSett_pipeLen2, zfmt("%.2f", getCfgPipeLengthML(2))); + // UIS->setTxt(PAGE, ob_muPumpSett_pipeLen3, zfmt("%.2f", getCfgPipeLengthML(3))); + // TODO:改成4个输入框 + // UIS->setTxt(PAGE, ob_muPumpSett_addAcidVel0, zitoa(getMxRunRPM(0))); + // UIS->setTxt(PAGE, ob_muPumpSett_addAcidVel1, zitoa(getMxRunRPM(1))); + // UIS->setTxt(PAGE, ob_muPumpSett_addAcidVel2, zitoa(getMxRunRPM(2))); + // UIS->setTxt(PAGE, ob_muPumpSett_addAcidVel3, zitoa(getMxRunRPM(3))); +} + +void Page_muPumpSett::OnPageLoad(OnPageLoadContext* cxt) { // + updatePage(); +}; +void Page_muPumpSett::OnAppEvent(AppEvent_t* event) {} + +void Page_muPumpSett::OnInputFieldContentChange(uint8_t bid, const char* text) { + /*********************************************************************************************************************** + * irunx * + ***********************************************************************************************************************/ + + /*********************************************************************************************************************** + * pumpCoef * + ***********************************************************************************************************************/ + + if (bid == ob_muPumpSett_pumpCoef0) { + setMotorMLPR(0, atof(text)); + UIS->setTxt(bid, zfmt("%.4f", getMotorMLPR(0))); + } else if (bid == ob_muPumpSett_pumpCoef1) { + setMotorMLPR(1, atof(text)); + UIS->setTxt(bid, zfmt("%.4f", getMotorMLPR(1))); + } else if (bid == ob_muPumpSett_pumpCoef2) { + setMotorMLPR(2, atof(text)); + UIS->setTxt(bid, zfmt("%.4f", getMotorMLPR(2))); + } else if (bid == ob_muPumpSett_pumpCoef3) { + setMotorMLPR(3, atof(text)); + UIS->setTxt(bid, zfmt("%.4f", getMotorMLPR(3))); + } + + /*********************************************************************************************************************** + * pipeLen * + ***********************************************************************************************************************/ + + if (bid == ob_muPumpSett_pipeLen0 || bid == ob_muPumpSett_pipeLen1 || bid == ob_muPumpSett_pipeLen2 || bid == ob_muPumpSett_pipeLen3) { + float len = atof(text); + if (len < 0.1) { + UIS->alert("管道长度不能小于0.1"); + return; + } + } + + // if (bid == ob_muPumpSett_pipeLen0) { + // setCfgPipeLengthML(0, atof(text)); + // UIS->setTxt(bid, zfmt("%.2f", getCfgPipeLengthML(0))); + // } + + // if (bid == ob_muPumpSett_pipeLen1) { + // setCfgPipeLengthML(1, atof(text)); + // UIS->setTxt(bid, zfmt("%.2f", getCfgPipeLengthML(1))); + // } + + // if (bid == ob_muPumpSett_pipeLen2) { + // setCfgPipeLengthML(2, atof(text)); + // UIS->setTxt(bid, zfmt("%.2f", getCfgPipeLengthML(2))); + // } + + // if (bid == ob_muPumpSett_pipeLen3) { + // setCfgPipeLengthML(3, atof(text)); + // UIS->setTxt(bid, zfmt("%.2f", getCfgPipeLengthML(3))); + // } + + /*********************************************************************************************************************** + * addAcidVel * + ***********************************************************************************************************************/ + // TODO改成4个输入框 + if (bid == ob_muPumpSett_addAcidVel0 || bid == ob_muPumpSett_addAcidVel1 || bid == ob_muPumpSett_addAcidVel2 || bid == ob_muPumpSett_addAcidVel3) { + int rpm = atoi(text); + if (rpm < 10) { + UIS->alert("转速不能小于10"); + return; + } + + if (rpm > 2000) { + UIS->alert("转速不能大于2000"); + return; + } + + // switch (bid) { + // case ob_muPumpSett_addAcidVel0: + // setMxRunRPM(0, rpm); + // break; + // case ob_muPumpSett_addAcidVel1: + // setMxRunRPM(1, rpm); + // break; + // case ob_muPumpSett_addAcidVel2: + // setMxRunRPM(2, rpm); + // break; + // case ob_muPumpSett_addAcidVel3: + // setMxRunRPM(3, rpm); + // break; + // } + UIS->setTxt(bid, zitoa(rpm)); + } + + updatePage(); +} +void Page_muPumpSett::OnButton(uint8_t bid, uint8_t val) { + if (bid == ob_muPumpSett_bak) { + UIS->chpage(getBakPage(PAGE)); + } +}; + +// muAcidType \ No newline at end of file diff --git a/usrc/uicontroler/page/submenu/Page_muPumpSett.hpp b/usrc/uicontroler/page/submenu/Page_muPumpSett.hpp new file mode 100644 index 0000000..365a41c --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muPumpSett.hpp @@ -0,0 +1,30 @@ +#pragma once +// +#include "../page_processer.hpp" +namespace iflytop { +using namespace std; +// page: keybAcidCh +class Page_muPumpSett : public IPageProcesser { + private: + /* data */ + + public: + static Page_muPumpSett* ins() { + static Page_muPumpSett instance; + return &instance; + } + virtual void initialize() override; + + private: + virtual bool isBelongThisPage(int page) override; + + virtual void OnPageLoad(OnPageLoadContext* cxt) override; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; + virtual void OnButton(uint8_t bid, uint8_t val) override; + virtual void OnAppEvent(AppEvent_t* event) override; + + private: + void updatePage(); +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/submenu/Page_muPumpTest.cpp b/usrc/uicontroler/page/submenu/Page_muPumpTest.cpp new file mode 100644 index 0000000..ae97ac6 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muPumpTest.cpp @@ -0,0 +1,128 @@ +#include "Page_muPumpTest.hpp" + +#include "service/pump_ctrl_service.hpp" +#include "service/remote_controler.hpp" +using namespace iflytop; + +#define PAGE pg_muPumpTest +#define TAG "Page_muPumpTest" + +static void Page_muPumpTest_onTimer(const void* tid) { + Page_muPumpTest* thisClass = (Page_muPumpTest*)pvTimerGetTimerID((TimerHandle_t)tid); + thisClass->onTimer(); +} + +void Page_muPumpTest::initialize() { // + IPageProcesser::initialize(); + + osTimerDef(statiUpdateTimer, Page_muPumpTest_onTimer); + statiUpdateTimerId = osTimerCreate(osTimer(statiUpdateTimer), osTimerPeriodic, this); + + RCTRL->regOnReport([this](uint8_t* rx, int32_t len) { + zble_proto_packet_t* packet = (zble_proto_packet_t*)rx; + // ZLOGI(TAG, "TRACE process ble report start"); + if (UIS->getNowPage() != PAGE) { + // ZLOGI(TAG, "TRACE process ble report end...."); + return; + } + + if (packet->cmd == kzble_app_report_key_event) { + int32_t keyEvent = *(int32_t*)packet->data; + if (keyEvent == hand_acid_remoter_kevent_add_liquid) { + if (m_workFlag) { + pumpStart(1); + } else { + pumpStop(); + } + } + } + // ZLOGI(TAG, "TRACE process ble report end...."); + }); +} + +bool Page_muPumpTest::isBelongThisPage(int page) { return page == PAGE; } + +void Page_muPumpTest::OnPageLoad(OnPageLoadContext* cxt) { + // motorTrunsBegin + if (!cxt->isFromPopWin) { + updateStatiInfo(0, 0); + m_pumpId = 0; + m_workFlag = false; + } + ZLOGI(TAG, "m_pumpId:%d %d", m_pumpId, cxt->isFromPopWin); + UIS->setTxt(ob_muPumpTest_pumpId, zfmt("%d", m_pumpId + 1)); +} + +void Page_muPumpTest::OnInputFieldContentChange(uint8_t bid, const char* text) { // + ZLOGI(TAG, "bid:%d %s", bid, text); + // ob_muPumpTest_frompage + if (bid == ob_muPumpTest_pumpId) { + pumpChangeSelectId(atoi(text) - 1); + } +} +void Page_muPumpTest::OnButton(uint8_t bid, uint8_t val) { + ZLOGI(TAG, "bid:%d", bid); + if (bid == ob_muPumpTest_bak) { + pumpStop(); + UIS->chpage(pg_muSettings); + } else if (bid == ob_muPumpTest_clearStati) { + ZLOGI(TAG, "clearStati"); + clearStatisInfo(); + } else if (bid == ob_muPumpTest_forward) { + ZLOGI(TAG, "forward"); + pumpStart(1); + } else if (bid == ob_muPumpTest_bakward) { + ZLOGI(TAG, "bakward"); + pumpStart(-1); + } else if (bid == ob_muPumpTest_stop) { + ZLOGI(TAG, "stop"); + pumpStop(); + } +} +/*********************************************************************************************************************** + * LOGIC * + ***********************************************************************************************************************/ +void Page_muPumpTest::pumpStop() { + PUMPCS->stopRotate(); + osTimerStop(statiUpdateTimerId); + updateStatiInfo(); + m_workFlag = false; +} +void Page_muPumpTest::pumpStart(int32_t direction) { + ZLOGI(TAG, "pumpStart %d %d", m_pumpId, direction); + PUMPCS->rotate(m_pumpId, direction); + osTimerStop(statiUpdateTimerId); + osTimerStart(statiUpdateTimerId, 300); + m_workFlag = true; +} +void Page_muPumpTest::pumpChangeSelectId(int id) { + if (id < 0 || id > 3) { + ZLOGW(TAG, "pumpId out of range"); + return; + } + if ((id) != m_pumpId) { + ZLOGI(TAG, "pumpId change to %d", id); + m_pumpId = id; + PUMPCS->stopRotate(); + clearStatisInfo(); + } +} +void Page_muPumpTest::updateStatiInfo(float statiTruns, float statiVolum) { + m_statiTruns = statiTruns; + m_statiVolum = statiVolum; + UIS->setTxt(ob_muPumpTest_statiTrun, zfmt("%.2f", m_statiTruns)); + UIS->setTxt(ob_muPumpTest_statiVolum, zfmt("%.1f", m_statiVolum)); +} +void Page_muPumpTest::clearStatisInfo() { + updateStatiInfo(0, 0); + PUMPCS->setCurrentPosAsZero(m_pumpId); +} + +void Page_muPumpTest::updateStatiInfo() { + double nowPos = PUMPCS->getMotorNowPosR(m_pumpId); + double truns = (nowPos); + // float motorX_mLPR = getMotorMLPR(m_pumpId); + // double volum = truns * motorX_mLPR; + // updateStatiInfo(truns, volum); +} +void Page_muPumpTest::onTimer() { updateStatiInfo(); } diff --git a/usrc/uicontroler/page/submenu/Page_muPumpTest.hpp b/usrc/uicontroler/page/submenu/Page_muPumpTest.hpp new file mode 100644 index 0000000..37707e2 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muPumpTest.hpp @@ -0,0 +1,46 @@ +#pragma once +// +#include "../page_processer.hpp" +namespace iflytop { +using namespace std; +// page: keybAcidCh +class Page_muPumpTest : public IPageProcesser { + private: + /* data */ + + int m_pumpId = 0; + float m_statiTruns = 0; + float m_statiVolum = 0; + bool m_workFlag = false; + + osTimerId statiUpdateTimerId; // + + public: + static Page_muPumpTest* ins() { + static Page_muPumpTest instance; + return &instance; + } + + virtual void initialize(); + + private: + virtual bool isBelongThisPage(int page) override; + + virtual void OnPageLoad(OnPageLoadContext* cxt) override; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; + virtual void OnButton(uint8_t bid, uint8_t val) override; + + private: + void updateStatiInfo(float statiTruns, float statiVolum); + void clearStatisInfo(); + void updateStatiInfo(); + + void pumpStop(); + void pumpStart(int32_t direction); + void pumpChangeSelectId(int id); + + public: + void onTimer(); +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/submenu/Page_muSettings.cpp b/usrc/uicontroler/page/submenu/Page_muSettings.cpp new file mode 100644 index 0000000..d781741 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muSettings.cpp @@ -0,0 +1,32 @@ +#include "Page_muSettings.hpp" + +#include "service/remote_controler.hpp" + +using namespace iflytop; + +/** + * @brief + * 酸类修改页面 + */ + +#define PAGE pg_muSettings +#define TAG "Page_muSettings" + +static bool m_scaning; + +void Page_muSettings::initialize() { // + IPageProcesser::initialize(); +} +bool Page_muSettings::isBelongThisPage(int page) { return page == PAGE; } +void Page_muSettings::updatePage() {} +void Page_muSettings::OnPageLoad(OnPageLoadContext* cxt) { // +}; +void Page_muSettings::OnAppEvent(AppEvent_t* event) {} +void Page_muSettings::OnInputFieldContentChange(uint8_t bid, const char* text) {} +void Page_muSettings::OnButton(uint8_t bid, uint8_t val) { + if (bid == ob_muSettings_bak) { + UIS->chpage(GSM->getMenuPage()); + } +}; + +// muAcidType \ No newline at end of file diff --git a/usrc/uicontroler/page/submenu/Page_muSettings.hpp b/usrc/uicontroler/page/submenu/Page_muSettings.hpp new file mode 100644 index 0000000..6e398e4 --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muSettings.hpp @@ -0,0 +1,30 @@ +#pragma once +// +#include "../page_processer.hpp" +namespace iflytop { +using namespace std; +// page: keybAcidCh +class Page_muSettings : public IPageProcesser { + private: + /* data */ + + public: + static Page_muSettings* ins() { + static Page_muSettings instance; + return &instance; + } + virtual void initialize() override; + + private: + virtual bool isBelongThisPage(int page) override; + + virtual void OnPageLoad(OnPageLoadContext* cxt) override; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; + virtual void OnButton(uint8_t bid, uint8_t val) override; + virtual void OnAppEvent(AppEvent_t* event) override; + + private: + void updatePage(); +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/submenu/Page_muUsrMgr.cpp b/usrc/uicontroler/page/submenu/Page_muUsrMgr.cpp new file mode 100644 index 0000000..e5cd98c --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muUsrMgr.cpp @@ -0,0 +1,117 @@ +#include "Page_muUsrMgr.hpp" +using namespace iflytop; + +/** + * @brief + * 酸类修改页面 + */ + +#define PAGE pg_muUsrMgr +#define TAG "Page_muUsrMgr" + +bool Page_muUsrMgr::isBelongThisPage(int page) { return page == PAGE; } + +void Page_muUsrMgr::OnPageLoad(OnPageLoadContext* cxt) { // + ZLOGI(TAG, "OnPageLoad"); + updatePage(); +}; +void Page_muUsrMgr::updatePage() { + // UIS->setTxt(PAGE, ob_muUsrMgr_usr0name, getCfgStr(kusr_name0)); + // UIS->setTxt(PAGE, ob_muUsrMgr_usr1name, getCfgStr(kusr_name1)); + // UIS->setTxt(PAGE, ob_muUsrMgr_usr2name, getCfgStr(kusr_name2)); + // UIS->setTxt(PAGE, ob_muUsrMgr_usr3name, getCfgStr(kusr_name3)); + // UIS->setTxt(PAGE, ob_muUsrMgr_usr4name, getCfgStr(kusr_name4)); + // UIS->setTxt(PAGE, ob_muUsrMgr_usr5name, getCfgStr(kusr_name5)); + + // // UIS->setVal(PAGE, ob_muUsrMgr_usr1en, (int)getCfgBool(kusr_enable1)); + // UIS->setVal(PAGE, ob_muUsrMgr_usr2en, (int)getCfgBool(kusr_enable2)); + // UIS->setVal(PAGE, ob_muUsrMgr_usr3en, (int)getCfgBool(kusr_enable3)); + // UIS->setVal(PAGE, ob_muUsrMgr_usr4en, (int)getCfgBool(kusr_enable4)); + // UIS->setVal(PAGE, ob_muUsrMgr_usr5en, (int)getCfgBool(kusr_enable5)); +} + +void Page_muUsrMgr::OnInputFieldContentChange(uint8_t bid, const char* text) { + // if (bid == ob_muUsrMgr_usr1ReName) { + // ZLOGI(TAG, "rename usr1:%s", text); + // CS->setcfgAndFlush(kusr_name1, text); + // updatePage(); + // } // + // else if (bid == ob_muUsrMgr_usr2ReName) { + // ZLOGI(TAG, "rename usr2:%s", text); + // CS->setcfgAndFlush(kusr_name2, text); + // updatePage(); + // } // + // else if (bid == ob_muUsrMgr_usr3ReName) { + // ZLOGI(TAG, "rename usr3:%s", text); + // CS->setcfgAndFlush(kusr_name3, text); + // updatePage(); + // } // + // else if (bid == ob_muUsrMgr_usr4ReName) { + // ZLOGI(TAG, "rename usr4:%s", text); + // CS->setcfgAndFlush(kusr_name4, text); + // updatePage(); + // } // + // else if (bid == ob_muUsrMgr_usr5ReName) { + // ZLOGI(TAG, "rename usr5:%s", text); + // CS->setcfgAndFlush(kusr_name5, text); + // updatePage(); + // } +} + +void Page_muUsrMgr::OnButton(uint8_t bid, uint8_t val) { + ZLOGI(TAG, "bid:%d", bid); + + // if (bid == ob_muUsrMgr_bak) { + // UIS->chpage(GSM->getMenuPage()); + // } else if (bid == ob_muUsrMgr_usr1Rest) { + // ZLOGI(TAG, "reset usr1 "); + // CS->setcfgAndFlush(kusr_name1, USER1_DEFAULT_NAME); + // CS->setcfgAndFlush(kusr_passwd1, USER_DEFAULT_PWD); + // updatePage(); + // } else if (bid == ob_muUsrMgr_usr2Rest) { + // ZLOGI(TAG, "reset usr2 "); + // CS->setcfgAndFlush(kusr_name2, USER2_DEFAULT_NAME); + // CS->setcfgAndFlush(kusr_passwd2, USER_DEFAULT_PWD); + // updatePage(); + // } else if (bid == ob_muUsrMgr_usr3Rest) { + // ZLOGI(TAG, "reset usr3 "); + // CS->setcfgAndFlush(kusr_name3, USER3_DEFAULT_NAME); + // CS->setcfgAndFlush(kusr_passwd3, USER_DEFAULT_PWD); + // updatePage(); + // } else if (bid == ob_muUsrMgr_usr4Rest) { + // ZLOGI(TAG, "reset usr4 "); + // CS->setcfgAndFlush(kusr_name4, USER4_DEFAULT_NAME); + // CS->setcfgAndFlush(kusr_passwd4, USER_DEFAULT_PWD); + // updatePage(); + // } else if (bid == ob_muUsrMgr_usr5Rest) { + // ZLOGI(TAG, "reset usr5 "); + // CS->setcfgAndFlush(kusr_name5, USER5_DEFAULT_NAME); + // CS->setcfgAndFlush(kusr_passwd5, USER_DEFAULT_PWD); + // updatePage(); + // } + // // } + // // else if (bid == ob_muUsrMgr_usr1en) { + // // ZLOGI(TAG, "enable usr1 %d", val); + // // CS->setcfgAndFlush(kusr_enable1, (bool)val); + // // updatePage(); + // // } + // else if (bid == ob_muUsrMgr_usr2en) { + // ZLOGI(TAG, "enable usr2 %d", val); + // CS->setcfgAndFlush(kusr_enable2, (bool)val); + // updatePage(); + // } else if (bid == ob_muUsrMgr_usr3en) { + // ZLOGI(TAG, "enable usr3 %d", val); + // CS->setcfgAndFlush(kusr_enable3, (bool)val); + // updatePage(); + // } else if (bid == ob_muUsrMgr_usr4en) { + // ZLOGI(TAG, "enable usr4 %d", val); + // CS->setcfgAndFlush(kusr_enable4, (bool)val); + // updatePage(); + // } else if (bid == ob_muUsrMgr_usr5en) { + // ZLOGI(TAG, "enable usr5 %d", val); + // CS->setcfgAndFlush(kusr_enable5, (bool)val); + // updatePage(); + // } +}; + +// muAcidType \ No newline at end of file diff --git a/usrc/uicontroler/page/submenu/Page_muUsrMgr.hpp b/usrc/uicontroler/page/submenu/Page_muUsrMgr.hpp new file mode 100644 index 0000000..ac0b62f --- /dev/null +++ b/usrc/uicontroler/page/submenu/Page_muUsrMgr.hpp @@ -0,0 +1,28 @@ +#pragma once +// +#include "../page_processer.hpp" +namespace iflytop { +using namespace std; +// page: keybAcidCh +class Page_muUsrMgr : public IPageProcesser { + private: + /* data */ + + public: + static Page_muUsrMgr* ins() { + static Page_muUsrMgr instance; + return &instance; + } + + private: + virtual bool isBelongThisPage(int page) override; + + virtual void OnPageLoad(OnPageLoadContext*cxt) override; + virtual void OnInputFieldContentChange(uint8_t bid, const char* text) override; + virtual void OnButton(uint8_t bid, uint8_t val) override; + + private: + void updatePage(); +}; + +} // namespace iflytop diff --git a/usrc/uicontroler/page/utils/page_bak_router.cpp b/usrc/uicontroler/page/utils/page_bak_router.cpp new file mode 100644 index 0000000..9e64e87 --- /dev/null +++ b/usrc/uicontroler/page/utils/page_bak_router.cpp @@ -0,0 +1,29 @@ +#include "page_bak_router.hpp" +using namespace iflytop; + +namespace iflytop { +int getBakPage(int nowPage) { + if ( + + nowPage == pg_muInterval || // + nowPage == pg_muUsrMgr || // + nowPage == pg_muTmrMgr || // + nowPage == pg_muAcidType || // + nowPage == pg_muDeviceInfo || // + nowPage == pg_muSettings || // + nowPage == pg_muAudit // + ) { + return GSM->getMenuPage(); + } + + if (nowPage == pg_muPumpTest || // + nowPage == pg_muBleHandSett || // + nowPage == pg_muMotorSett || // + nowPage == pg_muPumpSett // + ) { + return pg_muSettings; + } + return pg_main; +} + +} // namespace iflytop diff --git a/usrc/uicontroler/page/utils/page_bak_router.hpp b/usrc/uicontroler/page/utils/page_bak_router.hpp new file mode 100644 index 0000000..620be9c --- /dev/null +++ b/usrc/uicontroler/page/utils/page_bak_router.hpp @@ -0,0 +1,8 @@ +#pragma once +#include "apphardware/apphardware.hpp" +#include "uappbase/base.hpp" +#include "uicontroler/front_end_controler.hpp" +#include "config/config.hpp" +namespace iflytop { +int getBakPage(int nowPage); +} \ No newline at end of file diff --git a/usrc/uicontroler/tjc/tjc.hpp b/usrc/uicontroler/tjc/tjc.hpp new file mode 100644 index 0000000..bf31e9e --- /dev/null +++ b/usrc/uicontroler/tjc/tjc.hpp @@ -0,0 +1,2 @@ +#pragma once +#include "tjc_constant.hpp" \ No newline at end of file diff --git a/usrc/uicontroler/tjc/tjc_constant.cpp b/usrc/uicontroler/tjc/tjc_constant.cpp new file mode 100644 index 0000000..8be4f63 --- /dev/null +++ b/usrc/uicontroler/tjc/tjc_constant.cpp @@ -0,0 +1,485 @@ +#include "tjc_constant.hpp" + +#include + +namespace tjc { +typedef struct { + uint8_t pid; + uint8_t bid; + const char* info; + const char* pids; + const char* bidstr; +} marco_info_t; + +#define _BINFO(_pid, _bid) {pg_##_pid, ob_##_pid##_##_bid, #_pid "_" #_bid, #_pid, #_bid} +// 命名规范为驼峰命名 +// static marco_info_t infos[] = { +// _BINFO(gvar, gvar), // +// _BINFO(gvar, menupageid), // + +// _BINFO(pStart, pStart), // +// _BINFO(pStart, j0), // +// _BINFO(pStart, tm0), // +// // +// _BINFO(login, login), // +// _BINFO(login, blogin), // +// _BINFO(login, txtPasswd), // +// _BINFO(login, uen0), // +// _BINFO(login, uen1), // +// _BINFO(login, uen2), // +// _BINFO(login, uen3), // +// _BINFO(login, uen4), // +// _BINFO(login, uen5), // +// _BINFO(login, txtUser0), // +// _BINFO(login, txtUser1), // +// _BINFO(login, txtUser2), // +// _BINFO(login, txtUser3), // +// _BINFO(login, txtUser4), // +// _BINFO(login, txtUser5), // +// _BINFO(login, m0), // +// _BINFO(login, chooseUsr), // +// _BINFO(login, cUsrName), // +// // +// _BINFO(main, main), // +// _BINFO(main, acidch0), // +// _BINFO(main, MenuButton), // +// _BINFO(main, acidname0), // +// _BINFO(main, acideval0), // +// _BINFO(main, sysInfo), // +// _BINFO(main, clock), // +// _BINFO(main, acidname0id), // +// _BINFO(main, acidname1id), // +// _BINFO(main, acidname2id), // +// _BINFO(main, acidname3id), // +// _BINFO(main, RemoterS), // +// _BINFO(main, AcidState), // +// _BINFO(main, RunMode), // +// _BINFO(main, RunModeVal), // +// _BINFO(main, acidch1), // +// _BINFO(main, acidname1), // +// _BINFO(main, acideval1), // +// _BINFO(main, acidch2), // +// _BINFO(main, acidname2), // +// _BINFO(main, acideval2), // +// _BINFO(main, acidch3), // +// _BINFO(main, acidname3), // +// _BINFO(main, acideval3), // +// // +// _BINFO(keybAcidCh, keybAcidCh), // +// _BINFO(keybAcidCh, bak), // +// _BINFO(keybAcidCh, b0), // +// _BINFO(keybAcidCh, b1), // +// _BINFO(keybAcidCh, b2), // +// _BINFO(keybAcidCh, b3), // +// _BINFO(keybAcidCh, b4), // +// _BINFO(keybAcidCh, b5), // +// _BINFO(keybAcidCh, b6), // +// _BINFO(keybAcidCh, b7), // +// _BINFO(keybAcidCh, b8), // +// _BINFO(keybAcidCh, b9), // +// _BINFO(keybAcidCh, b10), // +// _BINFO(keybAcidCh, b11), // +// _BINFO(keybAcidCh, b12), // +// _BINFO(keybAcidCh, b13), // +// _BINFO(keybAcidCh, b14), // +// _BINFO(keybAcidCh, loadpageid), // +// _BINFO(keybAcidCh, loadcmpid), // +// _BINFO(keybAcidCh, loadcmname), // +// _BINFO(keybAcidCh, txt), // +// _BINFO(keybAcidCh, fn0), // +// // +// _BINFO(menuAdmin, menuAdmin), // +// _BINFO(menuAdmin, home), // +// _BINFO(menuAdmin, muInterval), // +// _BINFO(menuAdmin, changePasswd), // +// _BINFO(menuAdmin, muTmrMgr), // +// _BINFO(menuAdmin, muAcidType), // +// _BINFO(menuAdmin, muUsrMgr), // +// _BINFO(menuAdmin, muSettings), // +// _BINFO(menuAdmin, muAudit), // +// _BINFO(menuAdmin, muDeviceInfo), // +// _BINFO(menuAdmin, unlogin), // +// // +// _BINFO(menuAdmin2, menuAdmin2), // +// _BINFO(menuAdmin2, home), // +// _BINFO(menuAdmin2, muInterval), // +// _BINFO(menuAdmin2, changePasswd), // +// _BINFO(menuAdmin2, muAcidType), // +// _BINFO(menuAdmin2, muUsrMgr), // +// _BINFO(menuAdmin2, muSettings), // +// _BINFO(menuAdmin2, muDeviceInfo), // +// _BINFO(menuAdmin2, unlogin), // +// // +// _BINFO(menuUsr, menuUsr), // +// _BINFO(menuUsr, home), // +// _BINFO(menuUsr, muInterval), // +// _BINFO(menuUsr, changePasswd), // +// _BINFO(menuUsr, muDeviceInfo), // +// _BINFO(menuUsr, unlogin), // +// // +// _BINFO(muInterval, muInterval), // +// _BINFO(muInterval, t0), // +// _BINFO(muInterval, t1), // +// _BINFO(muInterval, bak), // +// _BINFO(muInterval, frompage), // +// _BINFO(muInterval, stAcidInte), // +// _BINFO(muInterval, t2), // +// // +// _BINFO(muUsrMgr, muUsrMgr), // +// _BINFO(muUsrMgr, bak), // +// _BINFO(muUsrMgr, t0), // +// _BINFO(muUsrMgr, t2), // +// _BINFO(muUsrMgr, t3), // +// _BINFO(muUsrMgr, t4), // +// _BINFO(muUsrMgr, sw1), // +// _BINFO(muUsrMgr, t6), // +// _BINFO(muUsrMgr, sw2), // +// _BINFO(muUsrMgr, t8), // +// _BINFO(muUsrMgr, sw3), // +// _BINFO(muUsrMgr, t10), // +// _BINFO(muUsrMgr, sw4), // +// _BINFO(muUsrMgr, t12), // +// _BINFO(muUsrMgr, b1), // +// _BINFO(muUsrMgr, b0), // +// _BINFO(muUsrMgr, b2), // +// _BINFO(muUsrMgr, b3), // +// _BINFO(muUsrMgr, frompage), // +// // +// _BINFO(muTmrMgr, muTmrMgr), // +// _BINFO(muTmrMgr, select0), // +// _BINFO(muTmrMgr, select1), // +// _BINFO(muTmrMgr, select2), // +// _BINFO(muTmrMgr, bak), // +// _BINFO(muTmrMgr, select3), // +// _BINFO(muTmrMgr, select4), // +// _BINFO(muTmrMgr, select5), // +// _BINFO(muTmrMgr, b0), // +// _BINFO(muTmrMgr, frompage), // +// // +// _BINFO(muAcidType, muAcidType), // +// _BINFO(muAcidType, bak), // +// _BINFO(muAcidType, t1), // +// _BINFO(muAcidType, t2), // +// _BINFO(muAcidType, t3), // +// _BINFO(muAcidType, t4), // +// _BINFO(muAcidType, t5), // +// _BINFO(muAcidType, t6), // +// _BINFO(muAcidType, t7), // +// _BINFO(muAcidType, t8), // +// _BINFO(muAcidType, t9), // +// _BINFO(muAcidType, t10), // +// _BINFO(muAcidType, t11), // +// _BINFO(muAcidType, t12), // +// _BINFO(muAcidType, t13), // +// _BINFO(muAcidType, t14), // +// _BINFO(muAcidType, t15), // +// _BINFO(muAcidType, frompage), // +// // +// _BINFO(muSettings, muSettings), // +// _BINFO(muSettings, t0), // +// _BINFO(muSettings, t1), // +// _BINFO(muSettings, bak), // +// _BINFO(muSettings, frompage), // +// _BINFO(muSettings, stAcidInte), // +// _BINFO(muSettings, t2), // +// // +// _BINFO(muDeviceInfo, muDeviceInfo), // +// _BINFO(muDeviceInfo, bak), // +// _BINFO(muDeviceInfo, t2), // +// _BINFO(muDeviceInfo, t3), // +// _BINFO(muDeviceInfo, t6), // +// _BINFO(muDeviceInfo, t7), // +// _BINFO(muDeviceInfo, t10), // +// _BINFO(muDeviceInfo, t11), // +// _BINFO(muDeviceInfo, frompage), // +// // +// _BINFO(muAudit, muAudit), // +// _BINFO(muAudit, bak), // +// _BINFO(muAudit, t0), // +// _BINFO(muAudit, t1), // +// _BINFO(muAudit, t2), // +// _BINFO(muAudit, b0), // +// _BINFO(muAudit, b1), // +// _BINFO(muAudit, frompage), // +// // +// _BINFO(alert, alert), // +// _BINFO(alert, t0), // +// _BINFO(alert, confirmkey), // +// _BINFO(alert, info), // +// _BINFO(alert, frompage), // +// // +// _BINFO(confirm, confirm), // +// _BINFO(confirm, t0), // +// _BINFO(confirm, confirmkey), // +// _BINFO(confirm, info), // +// _BINFO(confirm, canclekey), // +// _BINFO(confirm, frompage), // +// // +// _BINFO(changePasswd, changePasswd), // +// _BINFO(changePasswd, t2), // +// _BINFO(changePasswd, t3), // +// _BINFO(changePasswd, t4), // +// _BINFO(changePasswd, t5), // +// _BINFO(changePasswd, b0), // +// _BINFO(changePasswd, b1), // +// _BINFO(changePasswd, t0), // +// _BINFO(changePasswd, t1), // +// _BINFO(changePasswd, frompage), // +// // +// _BINFO(keybdB, keybdB), // +// _BINFO(keybdB, b0), // +// _BINFO(keybdB, show), // +// _BINFO(keybdB, b210), // +// _BINFO(keybdB, b1), // +// _BINFO(keybdB, b2), // +// _BINFO(keybdB, b3), // +// _BINFO(keybdB, b4), // +// _BINFO(keybdB, b5), // +// _BINFO(keybdB, b6), // +// _BINFO(keybdB, b7), // +// _BINFO(keybdB, b8), // +// _BINFO(keybdB, b200), // +// _BINFO(keybdB, b9), // +// _BINFO(keybdB, loadpageid), // +// _BINFO(keybdB, tm0), // +// _BINFO(keybdB, loadcmpid), // +// _BINFO(keybdB, input), // +// _BINFO(keybdB, temp), // +// _BINFO(keybdB, inputlenth), // +// _BINFO(keybdB, t2), // +// _BINFO(keybdB, b251), // +// _BINFO(keybdB, temp2), // +// _BINFO(keybdB, tempstr), // +// _BINFO(keybdB, b10), // +// _BINFO(keybdB, b11), // +// _BINFO(keybdB, loadcmname), // +// // +// _BINFO(keybdAP, keybdAP), // +// _BINFO(keybdAP, loadpageid), // +// _BINFO(keybdAP, loadcmpid), // +// _BINFO(keybdAP, b0), // +// _BINFO(keybdAP, b251), // +// _BINFO(keybdAP, b210), // +// _BINFO(keybdAP, b1), // +// _BINFO(keybdAP, b2), // +// _BINFO(keybdAP, b3), // +// _BINFO(keybdAP, b4), // +// _BINFO(keybdAP, b5), // +// _BINFO(keybdAP, b6), // +// _BINFO(keybdAP, b7), // +// _BINFO(keybdAP, b8), // +// _BINFO(keybdAP, b200), // +// _BINFO(keybdAP, b20), // +// _BINFO(keybdAP, b21), // +// _BINFO(keybdAP, b22), // +// _BINFO(keybdAP, b23), // +// _BINFO(keybdAP, b24), // +// _BINFO(keybdAP, b25), // +// _BINFO(keybdAP, b26), // +// _BINFO(keybdAP, b27), // +// _BINFO(keybdAP, b28), // +// _BINFO(keybdAP, b220), // +// _BINFO(keybdAP, b40), // +// _BINFO(keybdAP, b41), // +// _BINFO(keybdAP, b42), // +// _BINFO(keybdAP, b43), // +// _BINFO(keybdAP, b44), // +// _BINFO(keybdAP, b45), // +// _BINFO(keybdAP, b46), // +// _BINFO(keybdAP, b230), // +// _BINFO(keybdAP, b240), // +// _BINFO(keybdAP, b242), // +// _BINFO(keybdAP, b241), // +// _BINFO(keybdAP, b244), // +// _BINFO(keybdAP, b231), // +// _BINFO(keybdAP, b245), // +// _BINFO(keybdAP, refshowbu), // +// _BINFO(keybdAP, tm0), // +// _BINFO(keybdAP, input), // +// _BINFO(keybdAP, show), // +// _BINFO(keybdAP, temp), // +// _BINFO(keybdAP, inputlenth), // +// _BINFO(keybdAP, b249), // +// _BINFO(keybdAP, b201), // +// _BINFO(keybdAP, b9), // +// _BINFO(keybdAP, b232), // +// _BINFO(keybdAP, b243), // +// _BINFO(keybdAP, pa_z), // +// _BINFO(keybdAP, pa_d), // +// _BINFO(keybdAP, pastr1), // +// _BINFO(keybdAP, ii), // +// _BINFO(keybdAP, loadpa), // +// _BINFO(keybdAP, pastr0), // +// _BINFO(keybdAP, bp1), // +// _BINFO(keybdAP, bp2), // +// _BINFO(keybdAP, bp3), // +// _BINFO(keybdAP, bp4), // +// _BINFO(keybdAP, bp5), // +// _BINFO(keybdAP, bp6), // +// _BINFO(keybdAP, bp7), // +// _BINFO(keybdAP, bp8), // +// _BINFO(keybdAP, bp9), // +// _BINFO(keybdAP, bp10), // +// _BINFO(keybdAP, bp11), // +// _BINFO(keybdAP, bp12), // +// _BINFO(keybdAP, bp13), // +// _BINFO(keybdAP, bp14), // +// _BINFO(keybdAP, bp15), // +// _BINFO(keybdAP, bp16), // +// _BINFO(keybdAP, bp17), // +// _BINFO(keybdAP, bp18), // +// _BINFO(keybdAP, b10), // +// _BINFO(keybdAP, b11), // +// _BINFO(keybdAP, temp2), // +// _BINFO(keybdAP, tempstr), // +// _BINFO(keybdAP, loadcmname), // +// // +// _BINFO(keybdA, keybdA), // +// _BINFO(keybdA, loadpageid), // +// _BINFO(keybdA, loadcmpid), // +// _BINFO(keybdA, b0), // +// _BINFO(keybdA, b251), // +// _BINFO(keybdA, b210), // +// _BINFO(keybdA, b1), // +// _BINFO(keybdA, b2), // +// _BINFO(keybdA, b3), // +// _BINFO(keybdA, b4), // +// _BINFO(keybdA, b5), // +// _BINFO(keybdA, b6), // +// _BINFO(keybdA, b7), // +// _BINFO(keybdA, b8), // +// _BINFO(keybdA, b200), // +// _BINFO(keybdA, b20), // +// _BINFO(keybdA, b21), // +// _BINFO(keybdA, b22), // +// _BINFO(keybdA, b23), // +// _BINFO(keybdA, b24), // +// _BINFO(keybdA, b25), // +// _BINFO(keybdA, b26), // +// _BINFO(keybdA, b27), // +// _BINFO(keybdA, b28), // +// _BINFO(keybdA, b220), // +// _BINFO(keybdA, b40), // +// _BINFO(keybdA, b41), // +// _BINFO(keybdA, b42), // +// _BINFO(keybdA, b43), // +// _BINFO(keybdA, b44), // +// _BINFO(keybdA, b45), // +// _BINFO(keybdA, b46), // +// _BINFO(keybdA, b230), // +// _BINFO(keybdA, b240), // +// _BINFO(keybdA, b242), // +// _BINFO(keybdA, b241), // +// _BINFO(keybdA, b243), // +// _BINFO(keybdA, b231), // +// _BINFO(keybdA, b244), // +// _BINFO(keybdA, refshow), // +// _BINFO(keybdA, tm0), // +// _BINFO(keybdA, input), // +// _BINFO(keybdA, show), // +// _BINFO(keybdA, temp), // +// _BINFO(keybdA, inputlenth), // +// _BINFO(keybdA, b249), // +// _BINFO(keybdA, b201), // +// _BINFO(keybdA, b9), // +// _BINFO(keybdA, b232), // +// _BINFO(keybdA, tempstr), // +// _BINFO(keybdA, temp2), // +// _BINFO(keybdA, loadcmname), // +// // +// _BINFO(keyPasswd, keyPasswd), // +// _BINFO(keyPasswd, b0), // +// _BINFO(keyPasswd, show), // +// _BINFO(keyPasswd, b210), // +// _BINFO(keyPasswd, b1), // +// _BINFO(keyPasswd, b2), // +// _BINFO(keyPasswd, b3), // +// _BINFO(keyPasswd, b4), // +// _BINFO(keyPasswd, b5), // +// _BINFO(keyPasswd, b6), // +// _BINFO(keyPasswd, b7), // +// _BINFO(keyPasswd, b8), // +// _BINFO(keyPasswd, b200), // +// _BINFO(keyPasswd, b9), // +// _BINFO(keyPasswd, loadpageid), // +// _BINFO(keyPasswd, tm0), // +// _BINFO(keyPasswd, loadcmpid), // +// _BINFO(keyPasswd, input), // +// _BINFO(keyPasswd, temp), // +// _BINFO(keyPasswd, inputlenth), // +// _BINFO(keyPasswd, t2), // +// _BINFO(keyPasswd, b251), // +// _BINFO(keyPasswd, temp2), // +// _BINFO(keyPasswd, tempstr), // +// _BINFO(keyPasswd, b249), // +// _BINFO(keyPasswd, loadcmname), // +// }; +// // + +// const char* uimarco2str(uint8_t pid, uint8_t bid) { +// for (int i = 0; i < sizeof(infos) / sizeof(infos[0]); i++) { +// if (infos[i].pid == pid && infos[i].bid == bid) { +// return infos[i].info; +// } +// } +// return "unknownUiMarco"; +// } +// const char* pageName(uint8_t pid) { +// for (int i = 0; i < sizeof(infos) / sizeof(infos[0]); i++) { +// if (infos[i].pid == pid) { +// return infos[i].pids; +// } +// } +// return "unknownPage"; +// } + +#define PT_ENUM(key) \ + case key: \ + return #key; + +const char* pt2str(uint8_t type) { + switch (type) { + PT_ENUM(kpt_sys_ecode_invalid) + PT_ENUM(kpt_sys_ecode_suc) + PT_ENUM(kpt_sys_ecode_invalid_control_id) + PT_ENUM(kpt_sys_ecode_invalid_page_id) + PT_ENUM(kpt_sys_ecode_invalid_image_id) + PT_ENUM(kpt_sys_ecode_invalid_font_id) + PT_ENUM(kpt_sys_ecode_file_op_failed) + PT_ENUM(kpt_sys_ecode_crc_failed) + PT_ENUM(kpt_sys_ecode_invalid_baudrate) + PT_ENUM(kpt_sys_ecode_invalid_curve_id) + PT_ENUM(kpt_sys_ecode_invalid_var_name) + PT_ENUM(kpt_sys_ecode_invalid_var_op) + PT_ENUM(kpt_sys_ecode_var_op_failed) + PT_ENUM(kpt_sys_ecode_flash_op_failed) + PT_ENUM(kpt_sys_ecode_invalid_param_num) + PT_ENUM(kpt_sys_ecode_io_op_failed) + PT_ENUM(kpt_sys_ecode_escape_char_failed) + PT_ENUM(kpt_sys_ecode_var_name_too_long) + PT_ENUM(kpt_sys_ecode_serial_buf_overflow) + PT_ENUM(kpt_button_event) + PT_ENUM(kpt_sys_event_page_id) + PT_ENUM(kpt_sys_event_touch_data) + PT_ENUM(kpt_sys_event_sleep_touch) + PT_ENUM(kpt_sys_event_string_var) + PT_ENUM(kpt_sys_event_number_var) + PT_ENUM(kpt_sys_event_sleep_mode) + PT_ENUM(kpt_sys_event_auto_wakeup) + PT_ENUM(kpt_sys_event_sys_start) + PT_ENUM(kpt_sys_event_sd_upgrade) + PT_ENUM(kpt_sys_event_passthrough_finish) + PT_ENUM(kpt_sys_event_passthrough_ready) + PT_ENUM(kpt_ack) + PT_ENUM(kpt_inputfield_content_change_event1) + PT_ENUM(kpt_double_state_button_event) + PT_ENUM(kpt_login_request) + PT_ENUM(kpt_unlogin_request) + + default: + return "unkown_event"; + break; + } +} + +} // namespace tjc \ No newline at end of file diff --git a/usrc/uicontroler/tjc/tjc_constant.hpp b/usrc/uicontroler/tjc/tjc_constant.hpp new file mode 100644 index 0000000..50598a8 --- /dev/null +++ b/usrc/uicontroler/tjc/tjc_constant.hpp @@ -0,0 +1,130 @@ +#pragma once +#include + +#include "../ui/ui.h" +#include "uappbase/appcfg/appcfg.hpp" + +namespace tjc { + +/** + * @brief + * + * 约定 + * 1.用户名最大长度为15 + * 2.组件名称最大长度为14 + * 3.页面名称最大长度为14 + * 4.密码为纯数字6位数密码 + * + */ + +#define MAX_USR_PASSWD_LENGTH (6) +#define ELEMENT_ID_MAX_SIZE 14 +#define TJC_MAX_PACKET_SIZE 256 + +typedef enum { + /** + * @brief 错误码 + */ + kpt_sys_ecode_invalid = 0x00, + kpt_sys_ecode_suc = 0x01, + kpt_sys_ecode_invalid_control_id = 0x02, + kpt_sys_ecode_invalid_page_id = 0x03, + kpt_sys_ecode_invalid_image_id = 0x04, + kpt_sys_ecode_invalid_font_id = 0x05, + kpt_sys_ecode_file_op_failed = 0x06, + kpt_sys_ecode_crc_failed = 0x09, + kpt_sys_ecode_invalid_baudrate = 0x11, + kpt_sys_ecode_invalid_curve_id = 0x12, + kpt_sys_ecode_invalid_var_name = 0x1A, + kpt_sys_ecode_invalid_var_op = 0x1B, + kpt_sys_ecode_var_op_failed = 0x1C, + kpt_sys_ecode_flash_op_failed = 0x1D, + kpt_sys_ecode_invalid_param_num = 0x1E, + kpt_sys_ecode_io_op_failed = 0x1F, + kpt_sys_ecode_escape_char_failed = 0x20, + kpt_sys_ecode_var_name_too_long = 0x23, + kpt_sys_ecode_serial_buf_overflow = 0x24, + /** + * @brief 事件 + */ + kpt_button_event = 0x65, // + kpt_sys_event_page_id = 0x66, + kpt_sys_event_touch_data = 0x67, + kpt_sys_event_sleep_touch = 0x68, + kpt_sys_event_string_var = 0x70, + kpt_sys_event_number_var = 0x71, + kpt_sys_event_sleep_mode = 0x86, + kpt_sys_event_auto_wakeup = 0x87, + kpt_sys_event_sys_start = 0x88, + kpt_sys_event_sd_upgrade = 0x89, + kpt_sys_event_passthrough_finish = 0xFD, + kpt_sys_event_passthrough_ready = 0xFE, + + /** + * @brief 用户消息回执 + */ + kpt_ack = 0xAA, + kpt_inputfield_content_change_event0 = 0xAB, // 同页面输入框内容变更事件 + kpt_inputfield_content_change_event1 = 0xAC, // 跨页面键盘输入事件 + kpt_double_state_button_event = 0xAD, + kpt_login_request = 0xAE, + kpt_unlogin_request = 0xAF, + kpt_on_keyboard_page_load = 0xB0, // 键盘页面加载 + kpt_on_promopt_page_load = 0xB1, // 弹窗页面加载 +} packet_type_t; + +typedef enum { + kbutton_release = 0, + kbutton_press = 1, +} button_event_t; + +typedef struct { + int32_t eventId; + uint8_t pid; + uint8_t bid; + union { + // inputfield_content_event + struct { + char text[TJC_MAX_PACKET_SIZE]; + } inputfield_content; + + // kpt_usr_login_request + struct { + char usrName[MAX_USR_NAME_SIZE + 1]; + char passwd[MAX_USR_PASSWD_LENGTH + 1]; + } login_request; + + // kpt_double_state_button_event + struct { + uint8_t val; + } double_state_button; + + struct { + uint8_t val; // 0 抬起,1按下 + } button_event; + + struct { + uint8_t fromPage; + uint8_t fromPopPage; + } on_page_load; + + struct { + bool isFromPopWin; + } sys_event_page_id; + + } d; +} tjc_usr_event_t; + +typedef enum { + k_button_release_event = 1, + k_input_confirm_event = 2, +} usr_event_type_t; + + +const char* pt2str(uint8_t type); +const char* uimarco2str(uint8_t pid, uint8_t bid); +const char* pageName(uint8_t page); + +#define UI_UUID(pgid, obid) ((pg_##pgid << 8) + ob_##pgid##_##obid) + +} // namespace tjc