Browse Source

finish rtc page

v2
zhaohe 8 months ago
parent
commit
7144add889
  1. 61
      uappbase/apphal/apphal.cpp
  2. 1
      uappbase/apphal/apphal.hpp
  3. 3
      uappbase/bean/appevent.h
  4. 12
      uappbase/service/app_event_bus.cpp
  5. 2
      uappbase/service/app_event_bus.hpp
  6. BIN
      ui/hand_acid_mainboard_ui.HMI
  7. 6
      usrc/service/app_core.cpp
  8. 5
      usrc/uicontroler/base/page_processer.cpp
  9. 11
      usrc/uicontroler/base/page_processer.hpp
  10. 4
      usrc/uicontroler/event_proceesser/inputfield_content_selected_change_event_processer.cpp
  11. 7
      usrc/uicontroler/event_proceesser/usr_def_clik_release_with_val_event_processer.cpp
  12. 2
      usrc/uicontroler/page/home_page.cpp
  13. 2
      usrc/uicontroler/page/login_page.cpp
  14. 146
      usrc/uicontroler/page/mupage/muDateMgr_page.cpp
  15. 5
      usrc/uicontroler/page/mupage/muInterval_page.cpp
  16. 4
      usrc/uicontroler/page/mupage/muUsrMgr_page.cpp
  17. 8
      usrc/uicontroler/page/navi_page.cpp
  18. 4
      usrc/uicontroler/page/popwin_page.cpp
  19. 2
      usrc/uicontroler/tjc/ui_event.h
  20. 19
      usrc/uicontroler/ui_controler.cpp
  21. 14
      usrc/uicontroler/ui_controler.hpp

61
uappbase/apphal/apphal.cpp

@ -395,24 +395,24 @@ void AppHal::rtc_init() {
Error_Handler();
}
/** Initialize RTC and set the Time and Date
*/
sTime.Hours = 0x0;
sTime.Minutes = 0x0;
sTime.Seconds = 0x0;
sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
sTime.StoreOperation = RTC_STOREOPERATION_RESET;
if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN) != HAL_OK) {
Error_Handler();
}
sDate.WeekDay = 0x01;
sDate.Month = 0x1;
sDate.Date = 0x1;
sDate.Year = 24;
if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN) != HAL_OK) {
Error_Handler();
}
// /** Initialize RTC and set the Time and Date
// */
// sTime.Hours = 0x0;
// sTime.Minutes = 0x0;
// sTime.Seconds = 0x0;
// sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
// sTime.StoreOperation = RTC_STOREOPERATION_RESET;
// if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN) != HAL_OK) {
// Error_Handler();
// }
// sDate.WeekDay = 0x01;
// sDate.Month = 0x1;
// sDate.Date = 0x1;
// sDate.Year = 24;
// if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN) != HAL_OK) {
// Error_Handler();
// }
}
void AppHal::rtc_get(zdate_t* date) {
@ -437,6 +437,31 @@ void AppHal::rtc_get(zdate_t* date) {
// ZLOGI("", "%02d:%02d:%02d\r\n", GetTime.Hours, GetTime.Minutes, GetTime.Seconds);
}
void AppHal::rtc_set(zdate_t* date) {
RTC_DateTypeDef sDate = {0};
RTC_TimeTypeDef sTime = {0};
HAL_RTC_GetTime(&hrtc, &sTime, RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc, &sDate, RTC_FORMAT_BIN);
sTime.Hours = date->hours;
sTime.Minutes = date->minutes;
sTime.Seconds = date->seconds;
sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
sTime.StoreOperation = RTC_STOREOPERATION_RESET;
if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN) != HAL_OK) {
Error_Handler();
}
sDate.WeekDay = 0x01;
sDate.Month = date->month;
sDate.Date = date->day;
sDate.Year = date->year - 2000;
if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN) != HAL_OK) {
Error_Handler();
}
}
void AppHal::usb_init() {
GPIO_InitTypeDef GPIO_InitStruct = {0};

1
uappbase/apphal/apphal.hpp

@ -19,6 +19,7 @@ class AppHal {
static void rtc_init();
static void rtc_get(zdate_t* date);
static void rtc_set(zdate_t* date);
static void usb_init();
};

3
uappbase/bean/appevent.h

@ -1,5 +1,6 @@
#pragma once
#include <stdint.h>
#include "uicontroler/tjc/tjc_base_type.h"
typedef enum {
@ -12,6 +13,7 @@ typedef enum {
KAE_UIEvent,
kAE_LoginEvent,
kAE_unLoginEvent,
KAE_PageChangeEvent,
kAE_AcidStatChangeEvent, //
kAE_RemoterConnectedEvent, //
@ -32,5 +34,6 @@ typedef struct {
char bleName[20];
char stateDisplayInfo[30];
UIEvent uiEvent;
int32_t pageChangeTo;
} d;
} AppEvent_t;

12
uappbase/service/app_event_bus.cpp

@ -10,7 +10,6 @@ void AppEventBus::initialize() {
thread.init("AppEventBus", 1024);
xQueue = xQueueCreate(20, sizeof(AppEvent_t));
thread.start([this]() {
AppEvent_t event;
while (1) {
@ -20,7 +19,6 @@ void AppEventBus::initialize() {
m_cbs[i](&event);
}
}
}
});
}
@ -35,11 +33,17 @@ void AppEventBus::pushEvent(const AppEvent_t& event) {
ZLOGE(TAG, "xQueueSend failed");
}
}
static AppEvent_t event;
void AppEventBus::pushSimpleEvent(AppEventType_t type) {
zlock_guard lck(lock);
static AppEvent_t event;
event.type = type;
pushEvent(event);
}
void AppEventBus::pushPageChangeEvent(uint8_t toPage) {
zlock_guard lck(lock);
event.type = KAE_PageChangeEvent;
event.d.pageChangeTo = toPage;
pushEvent(event);
}

2
uappbase/service/app_event_bus.hpp

@ -26,6 +26,8 @@ class AppEventBus {
void regOnEvent(onAppEventCB_t onEvent);
void pushEvent(const AppEvent_t& event);
void pushSimpleEvent(AppEventType_t type);
void pushPageChangeEvent(uint8_t toPage);
};
} // namespace iflytop

BIN
ui/hand_acid_mainboard_ui.HMI

6
usrc/service/app_core.cpp

@ -26,8 +26,6 @@
using namespace iflytop;
static ZThread ledthread;
static void debuglegInit() {
// 启动调试指示灯功能
ledthread.init("led", 1024, osPriorityNormal);
@ -99,9 +97,7 @@ void AppCore::initialize() {
ZLOGI(TAG, "load zhdb end");
UIControler::ins()->initialize();
UIControler::ins()->chpage(pg_muUsrMgr);
UIControler::ins()->chpage(pg_muDateMgr,true);
osDelay(1000);
// UIControler::ins()->popWarningWin("警告!!!!!!!");

5
usrc/uicontroler/base/page_processer.cpp

@ -53,6 +53,11 @@ void IPageProcesser::initialize() {
onInputFieldContentChange(uiEvent->bid, uiEvent->val, uiEvent->text);
}
//
} else if (event->type == KAE_PageChangeEvent) {
if (thisPage != event->d.pageChangeTo) {
return;
}
onChangePageEvent();
} else {
onAppEvent(event);
}

11
usrc/uicontroler/base/page_processer.hpp

@ -32,7 +32,18 @@ class IPageProcesser {
virtual void initialize();
private:
/**
* @brief 便
*
* @param cxt
*/
virtual void onPageLoad(OnPageLoadContext* cxt) { return; };
/**
* @brief
*
* @param cxt
*/
virtual void onChangePageEvent() { return; };
virtual void onAppEvent(AppEvent_t* event) { return; };
virtual void onInputFieldContentChange(uint8_t bid, uint8_t slecId, const char* text) { return; };

4
usrc/uicontroler/event_proceesser/inputfield_content_selected_change_event_processer.cpp

@ -19,8 +19,8 @@ void InputfieldContentSelectedChangeEventProcesser::process(uint8_t* indata, siz
result->eventId = indata[0];
result->pid = indata[1];
result->bid = indata[2];
result->val = indata[3];
const char* strbegin = (const char*)&indata[4];
result->val = *(int32_t*)(&indata[3]);
const char* strbegin = (const char*)&indata[7];
strbegin = TJCStrUtils::cpystr(result->text, strbegin, sizeof(result->text));
result->butEventType = kbutton_release;
}

7
usrc/uicontroler/event_proceesser/usr_def_clik_release_with_val_event_processer.cpp

@ -8,7 +8,7 @@ void UsrDefClikReleaseWithValEventProcesser::process(uint8_t* indata, size_t len
* printh B1
* prints dp,1
* prints '&id&',1
* prints '&val&',1
* prints '&val&',4
* prints '&txt&',0
* printh FF FF FF
*
@ -16,9 +16,8 @@ void UsrDefClikReleaseWithValEventProcesser::process(uint8_t* indata, size_t len
result->eventId = indata[0];
result->pid = indata[1];
result->bid = indata[2];
result->val = indata[3];
const char* strbegin = (const char*)&indata[4];
result->val = *(int32_t*)(&indata[3]);
const char* strbegin = (const char*)&indata[7];
strbegin = TJCStrUtils::cpystr(result->text, strbegin, sizeof(result->text));
result->butEventType = kbutton_release;

2
usrc/uicontroler/page/home_page.cpp

@ -65,7 +65,7 @@ class HomePage : public IPageProcesser {
} else if (bid == ob_home_SelCH3) {
setPumpSelectState(3, !GStateMgr::ins()->getPumpSelectState(3));
} else if (bid == ob_home_MenuButton) {
UIS->chpage(pg_navi);
UIS->chpage(pg_navi,true);
}
}
virtual void onAppEvent(AppEvent_t* event) override {

2
usrc/uicontroler/page/login_page.cpp

@ -51,7 +51,7 @@ class LoginPage : public IPageProcesser {
ZLOGI(TAG, "login %s success", userName);
AppEventBus::ins()->pushSimpleEvent(kAE_LoginEvent);
UIControler::ins()->chpage(pg_home);
UIControler::ins()->chpage(pg_home,true);
resetPage();
}
}

146
usrc/uicontroler/page/mupage/muDateMgr_page.cpp

@ -0,0 +1,146 @@
#include "db/dao/user_dao.hpp"
#include "uappbase/apphal/apphal.hpp"
#include "ui/ui.h"
#include "uicontroler/base/page_processer.hpp"
//
#include "db/dao/acid_ch_cfg_dao.hpp"
#include "db/dao/device_setting_dao.hpp"
//
#include "service/pump_ctrl_service.hpp"
namespace iflytop {
using namespace std;
#define TAG "MuDateMgrPage"
static zdate_t date;
static int m_oneMonthDay = 0;
static int getOneMonthDay(int year, int month) {
if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 29;
} else {
return 28;
}
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
return 30;
} else {
return 31;
}
}
class MuDateMgrPage : public IPageProcesser {
private:
public:
MuDateMgrPage() : IPageProcesser(TAG, pg_muDateMgr) {}
virtual void initialize() override { IPageProcesser::initialize(); }
private:
virtual void onPageLoad(OnPageLoadContext* cxt) override { return; };
/**
* @brief
*/
virtual void onBackKey() override { UIControler::ins()->chpage(pg_navi, true); };
virtual void onChangePageEvent() override {
AppHal::rtc_get(&date);
ZLOGI(TAG, "get rtc %d-%d-%d %d:%d", date.year, date.month, date.day, date.hours, date.minutes);
if (date.year < 2020) {
date.year = 2020;
date.month = 1;
date.day = 1;
date.hours = 0;
date.minutes = 0;
AppHal::rtc_set(&date);
}
m_oneMonthDay = getOneMonthDay(date.year, date.month);
tryUpdateMonthDay();
setVal(ob_muDateMgr_year, date.year - 2020);
setVal(ob_muDateMgr_month, date.month - 1);
setVal(ob_muDateMgr_day, date.day - 1);
setVal(ob_muDateMgr_hour, date.hours);
setVal(ob_muDateMgr_min, date.minutes);
UIControler::ins()->setrtc(&date);
return;
};
virtual void tryUpdateMonthDay() {
if (m_oneMonthDay == 28) {
if (date.day > 28) {
date.day = 28;
}
UIControler::ins()->setPath( //
thisPage, ob_muDateMgr_day, //
"1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28");
} else if (m_oneMonthDay == 29) {
if (date.day > 29) {
date.day = 29;
}
UIControler::ins()->setPath( //
thisPage, ob_muDateMgr_day, //
"1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28\r\n29");
} else if (m_oneMonthDay == 30) {
if (date.day > 30) {
date.day = 30;
}
UIControler::ins()->setPath( //
thisPage, ob_muDateMgr_day, //
"1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28\r\n29\r\n30");
} else if (m_oneMonthDay == 31) {
if (date.day > 31) {
date.day = 31;
}
UIControler::ins()->setPath( //
thisPage, ob_muDateMgr_day, //
"1\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n11\r\n12\r\n13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28\r\n29\r\n30\r\n31");
}
}
virtual void OnInputFieldContentChange(uint8_t bid, uint8_t slecId, const char* text) {};
virtual void onClickRelease(uint8_t bid, uint8_t val, const char* text) override {
if (bid == ob_muDateMgr_year) {
ZLOGI(TAG, "set year %s(%d)", text, val);
date.year = atoi(text);
int32_t oneMonthDay = getOneMonthDay(date.year, date.month);
if (m_oneMonthDay != oneMonthDay) {
m_oneMonthDay = oneMonthDay;
tryUpdateMonthDay();
setVal(ob_muDateMgr_day, date.day - 1);
}
} else if (bid == ob_muDateMgr_month) {
ZLOGI(TAG, "set month %s(%d)", text, val);
date.month = atoi(text);
int32_t oneMonthDay = getOneMonthDay(date.year, date.month);
if (m_oneMonthDay != oneMonthDay) {
m_oneMonthDay = oneMonthDay;
tryUpdateMonthDay();
setVal(ob_muDateMgr_day, date.day - 1);
}
} else if (bid == ob_muDateMgr_day) {
ZLOGI(TAG, "set day %s(%d)", text, val);
date.day = atoi(text);
} else if (bid == ob_muDateMgr_hour) {
ZLOGI(TAG, "set hour %s(%d)", text, val);
date.hours = atoi(text);
} else if (bid == ob_muDateMgr_min) {
ZLOGI(TAG, "set min %s(%d)", text, val);
date.minutes = atoi(text);
}
if (bid == ob_muDateMgr_save) {
ZLOGI(TAG, "set rtc %d-%d-%d %d:%d", date.year, date.month, date.day, date.hours, date.minutes);
AppHal::rtc_set(&date);
}
}
};
// 实例化Page, 使其自动注册
static MuDateMgrPage instance;
} // namespace iflytop

5
usrc/uicontroler/page/mupage/muInterval_page.cpp

@ -25,13 +25,12 @@ class MuIntervalPage : public IPageProcesser {
private:
virtual void OnPageLoad(OnPageLoadContext* cxt) {
syncState();
return;
};
/**
* @brief ·µ»ØÉÏÒ»Ò³
*/
virtual void OnBackKey() { UIControler::ins()->chpage(pg_navi); };
virtual void OnBackKey() { UIControler::ins()->chpage(pg_navi,true); };
virtual void OnInputFieldContentChange(uint8_t bid, uint8_t slecId, const char* text) {
if (bid == ob_muInterval_stAcidInte) {
@ -48,7 +47,7 @@ class MuIntervalPage : public IPageProcesser {
return;
}
DeviceSettingDao::updatedistrIntervalS(distrIntervalSSecond);
UIS->setTxt(thisPage, bid, "%.1f", distrIntervalSSecond);
syncState();
}
};
virtual void onClickRelease(uint8_t bid, uint8_t val, const char* text) override {}

4
usrc/uicontroler/page/mupage/muUsrMgr_page.cpp

@ -64,7 +64,7 @@ static EditContext_t m_editContext = {0};
class MuUsrMgr : public IPageProcesser {
private:
public:
MuUsrMgr() : IPageProcesser(TAG, pg_muUsrMgr) { onlyInitThis = true; }
MuUsrMgr() : IPageProcesser(TAG, pg_muUsrMgr) {}
virtual void initialize() override {
IPageProcesser::initialize();
@ -85,7 +85,7 @@ class MuUsrMgr : public IPageProcesser {
/**
* @brief ·µ»ØÉÏÒ»Ò³
*/
virtual void onBackKey() { UIControler::ins()->chpage(pg_navi); };
virtual void onBackKey() { UIControler::ins()->chpage(pg_navi,true); };
virtual void onAppEvent(AppEvent_t* event) { return; };

8
usrc/uicontroler/page/navi_page.cpp

@ -72,16 +72,16 @@ class NaviPage : public IPageProcesser {
}
private:
virtual void onBackKey() override { UIControler::ins()->chpage(pg_home); }
virtual void onBackKey() override { UIControler::ins()->chpage(pg_home,true); }
virtual void onClickRelease(uint8_t bid, uint8_t val, const char* text) override {
if (bid == ob_navi_nexPage) {
if (m_pageNum < m_maxPageNum - 1) {
UIControler::ins()->chpage(pg_navi);
UIControler::ins()->chpage(pg_navi,true);
syncMenu(m_pageNum + 1);
}
} else if (bid == ob_navi_lastPage) {
if (m_pageNum > 0) {
UIControler::ins()->chpage(pg_navi);
UIControler::ins()->chpage(pg_navi,true);
syncMenu(m_pageNum - 1);
}
}
@ -94,7 +94,7 @@ class NaviPage : public IPageProcesser {
if (buttonIndex < m_menuTotalNum) {
if (m_muInfo[buttonIndex].page != 0) {
UIControler::ins()->chpage(m_muInfo[buttonIndex].page);
UIControler::ins()->chpage(m_muInfo[buttonIndex].page,true);
} else {
}
}

4
usrc/uicontroler/page/popwin_page.cpp

@ -65,7 +65,7 @@ class PopWinPage : public IPageProcesser {
if (!handupInfoFlag) {
if (UIControler::ins()->getNowPage() == thisPage) {
UIControler::ins()->chpage(lastPage);
UIControler::ins()->chpage(lastPage,false);
osDelay(200); // µÈ´ýÒ³ÃæÇл»
}
}
@ -81,7 +81,7 @@ class PopWinPage : public IPageProcesser {
if (UIControler::ins()->getNowPage() != thisPage) {
lastPage = UIControler::ins()->getNowPage();
}
UIControler::ins()->chpage(pg_popwin);
UIControler::ins()->chpage(pg_popwin,false);
}
void visPopWin(bool state) {

2
usrc/uicontroler/tjc/ui_event.h

@ -74,6 +74,6 @@ typedef struct {
// content
button_event_t butEventType; //
uint8_t val; //
int32_t val; //
char text[TJC_MAX_PACKET_SIZE]; //
} UIEvent;

19
usrc/uicontroler/ui_controler.cpp

@ -68,15 +68,15 @@ void UIControler::callUsrEventCb(UIEvent* event) {
void UIControler::startSchedule() {
usartRxThread.start([this]() {
static uint8_t rxbuf[128];
static uint8_t rxbuf[256];
tjcUart->USR_UartITRxing = 1;
tjcUart->USR_UartITRxBuf = rxbuf;
tjcUart->USR_UartITRxBufSize = 128;
tjcUart->USR_UartITRxBufSize = 256;
tjcUart->USR_UartITRxOff = 0;
HAL_UART_Receive_IT(tjcUart, &tjcUart->USR_UartITRxBufCache, 1);
while (1) {
static uint8_t processbuf[128];
static uint8_t processbuf[256];
int32_t rxsize = 0;
if (tjcUart->USR_UartITRxOff != 0 && zos_haspassedms(tjcUart->USR_UartITLastRxTicket) > UART_RX_OVERTIME) {
vPortEnterCritical();
@ -250,7 +250,7 @@ bool UIControler::setTxt(uint8_t pid, uint8_t bid, const char* txt, ...) {
}
bool UIControler::setTxt(uint8_t pid, uint8_t bid, const char* txt, va_list args) {
zlock_guard lg(m_cmdlock);
static char buf[128];
static char buf[256];
vsprintf(buf, txt, args);
sendcmd("p[%d].b[%d].txt=\"%s\"", pid, bid, buf);
return true;
@ -302,9 +302,12 @@ void UIControler::popWin(UIPopWinType_t type, const char* info, function<void(bo
UIPublicState::pushUIPopInfo(type, info, onConfirm);
}
void UIControler::chpage(uint8_t page) { sendcmd("page %d", page); }
void UIControler::chpage(uint8_t page, bool triggerEvent) {
sendcmd("page %d", page);
AppEventBus::ins()->pushPageChangeEvent(page);
}
void UIControler::sendcmd(const char* format, ...) {
// static char buf[128];
// static char buf[256];
va_list args;
va_start(args, format);
// vsprintf(buf, format, args);
@ -313,14 +316,14 @@ void UIControler::sendcmd(const char* format, ...) {
}
void UIControler::sendcmd(const char* format, va_list args) {
static char buf[128];
static char buf[256];
vsprintf(buf, format, args);
#if MODULE_DEBUG
ZLOGI(TAG, "tx:%s", buf);
#endif
uint8_t len = strlen(buf);
if (len > (128 - 3)) {
if (len > (256 - 3)) {
ZLOGI(TAG, "sendcmd too long");
return;
}

14
usrc/uicontroler/ui_controler.hpp

@ -36,7 +36,7 @@ class UIControler {
void initialize();
int getNowPage() { return UIStateMgr::ins()->nowPage; }
void chpage(uint8_t page);
void chpage(uint8_t page, bool triggerEvent);
bool echo(uint8_t tx, uint8_t* rx);
void startSchedule();
@ -57,6 +57,10 @@ class UIControler {
void setPicturePicNumFromGlobal(uint8_t pid, uint8_t bid, uint8_t fromPid, uint8_t fromBid);
void setButtonPicNumFromGlobal(uint8_t pid, uint8_t bid, uint8_t fromPid, uint8_t fromBid);
void setrtc(zdate_t* date);
void setPath(uint8_t pid, uint8_t bid, const char* path) {
zlock_guard lg(m_cmdlock);
sendcmd("p[%d].b[%d].path=\"%s\"", pid, bid, path);
}
void sendcmd(const char* format, ...);
void sendcmd(const char* format, va_list args);
@ -94,7 +98,7 @@ class UIControler {
sendcmd("p[%d].b[%d].txt=%s", pg_keybdAP, ob_keybdAP_show, initval);
sendcmd("p[%d].b[%d].pw=0", pg_keybdAP, ob_keybdAP_show);
sendcmd("p[%d].b[%d].val=%d", pg_keybdAP, ob_keybdAP_inputlenth, limitLength);
chpage(pg_keybdAP);
chpage(pg_keybdAP, false);
}
void popPasswdKeyBoard(uint8_t fromPid, uint8_t fromBid, int limitLength) {
@ -105,7 +109,7 @@ class UIControler {
sendcmd("p[%d].b[%d].txt=%s", pg_keyPasswd, ob_keyPasswd_show, "");
sendcmd("p[%d].b[%d].pw=1", pg_keyPasswd, ob_keyPasswd_show);
sendcmd("p[%d].b[%d].val=%d", pg_keyPasswd, ob_keyPasswd_inputlenth, limitLength);
chpage(pg_keyPasswd);
chpage(pg_keyPasswd, false);
}
void popNumKeyBoard(uint8_t fromPid, uint8_t fromBid, int limitLength, const char* initval) {
@ -116,7 +120,7 @@ class UIControler {
sendcmd("p[%d].b[%d].txt=%s", pg_keybdB, ob_keybdB_show, initval);
sendcmd("p[%d].b[%d].pw=0", pg_keybdB, ob_keybdB_show);
sendcmd("p[%d].b[%d].val=%d", pg_keybdB, ob_keybdB_inputlenth, limitLength);
chpage(pg_keybdB);
chpage(pg_keybdB, false);
}
void popSelcKeyBoard(uint8_t fromPid, uint8_t fromBid, int selectvalindex, const char** selectvals) {
@ -140,7 +144,7 @@ class UIControler {
sendcmd("p[%d].b[%d].val=%d", pg_keybMutiSel, ob_keybMutiSel_loadcmpid, fromBid);
sendcmd("p[%d].b[%d].val=%d", pg_keybMutiSel, ob_keybMutiSel_ctent, selectvalindex);
sendcmd("p[%d].b[%d].path=\"%s\"", pg_keybMutiSel, ob_keybMutiSel_ctent, selectvals);
chpage(pg_keybMutiSel);
chpage(pg_keybMutiSel, false);
}
/***********************************************************************************************************************

Loading…
Cancel
Save