|
|
@ -12,9 +12,9 @@ |
|
|
|
using namespace iflytop; |
|
|
|
#define TAG "UIScheduler"
|
|
|
|
|
|
|
|
#define MODULE_DEBUG 1
|
|
|
|
#define MODULE_DEBUG 0
|
|
|
|
#define UART_RX_OVERTIME 5
|
|
|
|
#define CMD_OVERTIME 50
|
|
|
|
#define CMD_OVERTIME 100
|
|
|
|
|
|
|
|
static ZThread uart_rx_thread; |
|
|
|
static ZThread rx_processed_thread; |
|
|
@ -45,20 +45,26 @@ __weak void UIControlerHock_PageInit() {} |
|
|
|
/***********************************************************************************************************************
|
|
|
|
* FUNC * |
|
|
|
***********************************************************************************************************************/ |
|
|
|
void UIControler::initialize() { //
|
|
|
|
|
|
|
|
void UIControler::postInitialize() { |
|
|
|
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; |
|
|
|
UIPublicState::initialize(); |
|
|
|
m_cmdlock.init(); |
|
|
|
sendcmd("rest"); |
|
|
|
osDelay(1000); |
|
|
|
sendcmd("page %d", pg_pStart); |
|
|
|
} |
|
|
|
|
|
|
|
void UIControler::initialize() { //
|
|
|
|
startSchedule(); |
|
|
|
UIControlerHock_PageInit(); |
|
|
|
} |
|
|
|
|
|
|
|
void UIControler::pageInitialize() { UIControlerHock_PageInit(); } |
|
|
|
|
|
|
|
void UIControler::callUsrEventCb(UIEvent* event) { |
|
|
|
static AppEvent_t appEvent; |
|
|
|
appEvent.type = KAE_UIEvent; |
|
|
@ -187,6 +193,7 @@ bool UIControler::readFiledAsInt(uint8_t pid, uint8_t bid, const char* filedName |
|
|
|
return true; |
|
|
|
} |
|
|
|
ZLOGW(TAG, "readFiledAsInt %s failed retry %d", filedName, i); |
|
|
|
osDelay(100); |
|
|
|
} |
|
|
|
ZLOGE(TAG, "readFiledAsInt %s failed", filedName); |
|
|
|
return false; |
|
|
@ -387,11 +394,19 @@ bool UIControler::visEx(uint8_t pid, uint8_t bid, bool val) { |
|
|
|
if (!component->isPosInited) { |
|
|
|
suc = readFiledAsInt(pid, bid, "x", &component->oldPosX); |
|
|
|
if (!suc) { |
|
|
|
ZLOGE(TAG, "fatal error, reboot"); |
|
|
|
for (size_t i = 0; i < 10; i++) { |
|
|
|
ZLOGE(TAG, "fatal error, reboot"); |
|
|
|
osDelay(1000); |
|
|
|
} |
|
|
|
NVIC_SystemReset(); |
|
|
|
} |
|
|
|
suc = readFiledAsInt(pid, bid, "y", &component->oldPosY); |
|
|
|
if (!suc) { |
|
|
|
ZLOGE(TAG, "fatal error, reboot"); |
|
|
|
for (size_t i = 0; i < 10; i++) { |
|
|
|
ZLOGE(TAG, "fatal error, reboot"); |
|
|
|
osDelay(1000); |
|
|
|
} |
|
|
|
NVIC_SystemReset(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -491,11 +506,13 @@ void UIControler::popKeyBMutSel(uint8_t fromPid, uint8_t fromBid, int selectvali |
|
|
|
sendcmd("p[%d].b[%d].val=%d", pg_keybMutSel, ob_keybMutSel_loadpageid, fromPid); |
|
|
|
sendcmd("p[%d].b[%d].val=%d", pg_keybMutSel, ob_keybMutSel_loadcmpid, fromBid); |
|
|
|
sendcmd("p[%d].b[%d].val=%d", pg_keybMutSel, ob_keybMutSel_ctent, selectvalindex); |
|
|
|
|
|
|
|
chpage(pg_keybMutSel, false); // 先切换页面,再设置选项
|
|
|
|
|
|
|
|
sendcmd("p[%d].b[%d].path=\"%s\"", pg_keybMutSel, ob_keybMutSel_ctent, selectvals); |
|
|
|
chpage(pg_keybMutSel, false); |
|
|
|
} |
|
|
|
|
|
|
|
void UIControler::popKeyBMutSelFix(uint8_t fromPid, uint8_t fromBid, int selectvalindex, const char** selectvals) { |
|
|
|
void UIControler::popKeyBMutSelFix(uint8_t fromPid, uint8_t fromBid, int selectvalindex, const char* keyboardName, const char** selectvals) { |
|
|
|
int selectValsNum = 0; |
|
|
|
uint8_t pgNum = pg_keybMutSelFix; |
|
|
|
|
|
|
@ -558,17 +575,23 @@ void UIControler::popKeyBMutSelFix(uint8_t fromPid, uint8_t fromBid, int selectv |
|
|
|
sendcmd("p[%d].b[%d].val=%d", pgNum, ob_keybMutSelFix_val, selectvalindex); |
|
|
|
sendcmd("p[%d].b[%d].txt=%d", pgNum, ob_keybMutSelFix_txt, selectvals[selectvalindex]); |
|
|
|
|
|
|
|
sendcmd("p[%d].b[%d].txt=\"%s\"", pgNum, ob_keybMutSelFix_keybtil, keyboardName); |
|
|
|
|
|
|
|
chpage(pgNum, false); // 先切换页面,再设置选项
|
|
|
|
// 设置选项
|
|
|
|
for (int i = 0; i < selectValsNum; i++) { |
|
|
|
visEx(pgNum, selbid_table[i], true); |
|
|
|
// visEx(pgNum, selbid_table[i], true);
|
|
|
|
sendcmd("p[%d].b[%d].txt=\"%s\"", pgNum, selbid_table[i], selectvals[i]); |
|
|
|
movePicToXY(pgNum, selmaskbid_table[i], -100, -100); |
|
|
|
} |
|
|
|
|
|
|
|
// 清空多余的选项
|
|
|
|
for (int i = selectValsNum; i < sizeof(selbid_table) / sizeof(selbid_table[0]); i++) { |
|
|
|
movePicTo(pgNum, selmaskbid_table[i], selbid_table[i]); |
|
|
|
sendcmd("p[%d].b[%d].txt=\"\"", pgNum, selbid_table[i], selectvals[i]); |
|
|
|
} |
|
|
|
|
|
|
|
chpage(pgNum, false); |
|
|
|
for (int i = 0; i < selectValsNum; i++) { |
|
|
|
movePicToXY(pgNum, selmaskbid_table[i], -100, -100); |
|
|
|
} |
|
|
|
for (int i = selectValsNum; i < sizeof(selbid_table) / sizeof(selbid_table[0]); i++) { |
|
|
|
movePicTo(pgNum, selmaskbid_table[i], selbid_table[i]); |
|
|
|
} |
|
|
|
} |