Browse Source

update

sunlight
zhaohe 11 months ago
parent
commit
7407e42797
  1. 16
      ucomponents/zcan/zcan.cpp
  2. 5
      ucomponents/zcan/zcan.hpp
  3. 41
      ui/ui.h
  4. 17
      usrc/service/front_end_controler.cpp
  5. 3
      usrc/service/front_end_controler.hpp
  6. 10
      usrc/service/page/Page_login.cpp
  7. 1
      usrc/service/page/Page_login.hpp
  8. 15
      usrc/service/page/Page_main.cpp
  9. 2
      usrc/service/valve_state_ctrl_service.cpp

16
ucomponents/zcan/zcan.cpp

@ -171,7 +171,7 @@ void ZCAN1::init() {
});
}
bool ZCAN1::txMsg(const uint32_t extid, const uint8_t txdata[], uint32_t txdatalen, int32_t overtime) {
bool ZCAN1::_txMsg(const uint32_t extid, const uint8_t txdata[], uint32_t txdatalen, int32_t overtime) {
zlock_guard l(m_lock);
CAN_TxHeaderTypeDef pHeader;
uint8_t aData[8] /*8byte table*/;
@ -198,7 +198,7 @@ bool ZCAN1::txMsg(const uint32_t extid, const uint8_t txdata[], uint32_t txdatal
int i = 1;
while (HAL_CAN_IsTxMessagePending(&hcan1, txMailBox)) {
if (zos_haspassedms(enterticket) > (uint32_t)overtime) {
ZLOGE(TAG, "HAL_CAN_IsTxMessagePending overtime");
if (!txNoError) ZLOGE(TAG, "HAL_CAN_IsTxMessagePending overtime");
HAL_CAN_AbortTxRequest(&hcan1, txMailBox);
return false;
}
@ -207,6 +207,18 @@ bool ZCAN1::txMsg(const uint32_t extid, const uint8_t txdata[], uint32_t txdatal
}
return true;
}
bool ZCAN1::txMsgNoError(const uint32_t extid, const uint8_t txdata[], uint32_t txdatalen, int32_t overtime) {
zlock_guard l(m_lock);
txNoError = true;
bool suc = _txMsg(extid, txdata, txdatalen, overtime);
txNoError = false;
return suc;
}
bool ZCAN1::txMsg(const uint32_t extid, const uint8_t txdata[], uint32_t txdatalen, int32_t overtime) {
zlock_guard l(m_lock);
return _txMsg(extid, txdata, txdatalen, overtime);
}
void ZCAN1::regOnCanMessage(function<void(zcanrx_t *rx)> onmessage) { onZcanRx = onmessage; }
bool ZCAN1::getRxMsg(zcanrx_t *rx) {

5
ucomponents/zcan/zcan.hpp

@ -20,7 +20,8 @@ class ZCAN1 {
ZQueue<zcanrx_t> rxQueue;
function<void(zcanrx_t *rx)> onZcanRx;
bool inited = false;
bool inited = false;
bool txNoError = false;
public:
ZCAN1() {}
@ -32,6 +33,7 @@ class ZCAN1 {
void init();
bool txMsg(const uint32_t extid, const uint8_t txdata[], uint32_t txdatalen, int32_t overtime);
bool txMsgNoError(const uint32_t extid, const uint8_t txdata[], uint32_t txdatalen, int32_t overtime);
bool getRxMsg(zcanrx_t *rx);
void regOnCanMessage(function<void(zcanrx_t *rx)> onmessage);
@ -42,6 +44,7 @@ class ZCAN1 {
private:
HAL_StatusTypeDef initializeFilter();
HAL_StatusTypeDef activateRxIT();
bool _txMsg(const uint32_t extid, const uint8_t txdata[], uint32_t txdatalen, int32_t overtime);
};
} // namespace iflytop

41
ui/ui.h

@ -114,22 +114,31 @@
//muUsrMgr.objs
#define ob_muUsrMgr_muUsrMgr 0
#define ob_muUsrMgr_bak 1
#define ob_muUsrMgr_t0 2
#define ob_muUsrMgr_t2 3
#define ob_muUsrMgr_t3 4
#define ob_muUsrMgr_t4 5
#define ob_muUsrMgr_sw1 6
#define ob_muUsrMgr_t6 7
#define ob_muUsrMgr_sw2 8
#define ob_muUsrMgr_t8 9
#define ob_muUsrMgr_sw3 10
#define ob_muUsrMgr_t10 11
#define ob_muUsrMgr_sw4 12
#define ob_muUsrMgr_t12 13
#define ob_muUsrMgr_b1 14
#define ob_muUsrMgr_b0 15
#define ob_muUsrMgr_b2 16
#define ob_muUsrMgr_b3 17
#define ob_muUsrMgr_usr0name 2
#define ob_muUsrMgr_unameCol 3
#define ob_muUsrMgr_RestPwdCol 4
#define ob_muUsrMgr_usr1name 5
#define ob_muUsrMgr_usr1en 6
#define ob_muUsrMgr_usr2name 7
#define ob_muUsrMgr_usr2en 8
#define ob_muUsrMgr_usr3name 9
#define ob_muUsrMgr_usr3en 10
#define ob_muUsrMgr_usr4name 11
#define ob_muUsrMgr_usr4en 12
#define ob_muUsrMgr_usrEnCol 13
#define ob_muUsrMgr_usr1RestPwd 14
#define ob_muUsrMgr_usr2RestPwd 15
#define ob_muUsrMgr_usr3RestPwd 16
#define ob_muUsrMgr_usr4RestPwd 17
#define ob_muUsrMgr_usr5name 18
#define ob_muUsrMgr_usr5en 19
#define ob_muUsrMgr_usr5RestPwd 20
#define ob_muUsrMgr_ReNameCol 21
#define ob_muUsrMgr_usr1ReName 22
#define ob_muUsrMgr_usr2ReName 23
#define ob_muUsrMgr_usr3ReName 24
#define ob_muUsrMgr_usr4ReName 25
#define ob_muUsrMgr_usr5ReName 26
//muTmrMgr.objs
#define ob_muTmrMgr_muTmrMgr 0
#define ob_muTmrMgr_select0 1

17
usrc/service/front_end_controler.cpp

@ -107,13 +107,20 @@ void FrontEndControler::startSchedule() {
}
callUsrEventCb(&event_cache);
m_isFromPopWin = false;
if (input_file_event_cache_state) {
callUsrEventCb(&input_file_event_cache);
input_file_event_cache_state = false;
}
m_isFromPopWin = false; // Çå¿ÕFromPopWin±êÖ¾
} else if (tjc::kpt_on_promopt_page_load == packetType) {
event_cache.eventId = packetType;
event_cache.pid = packet.data[0];
event_cache.bid = 0;
callUsrEventCb(&event_cache);
m_isFromPopWin = true;
m_isFromPopWin = true; //
} else if (tjc::kpt_on_keyboard_page_load == packetType) {
event_cache.eventId = packetType;
event_cache.pid = packet.data[0];
@ -269,7 +276,9 @@ void FrontEndControler::processUsrKeyboardConfirmEvent(uint8_t* data, size_t len
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);
// callUsrEventCb(&event_cache);
input_file_event_cache = event_cache;
input_file_event_cache_state = true;
}
void FrontEndControler::processLoginRequestEvent(uint8_t* data, size_t len) {
@ -371,7 +380,7 @@ void FrontEndControler::alert(const char* info, function<void(bool)> onConfirm)
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].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");
}

3
usrc/service/front_end_controler.hpp

@ -22,6 +22,9 @@ class FrontEndControler {
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;

10
usrc/service/page/Page_login.cpp

@ -54,18 +54,12 @@ void Page_login::OnPageLoad() {
}
UIS->setVal(PAGE, OBJ(txtPasswd), txtPasswdCache);
if (triggerLoginAction) { // triggerLoginAction为true说明用户刚刚输入完密码
UIS->virtualClick(PAGE, OBJ(blogin), 0); // 触发一次登录按钮虚拟点击事件
triggerLoginAction = false;
return;
}
}
void Page_login::OnInputFieldContentChange(uint8_t bid, const char* text) {
// 输入框内容变化时,会触发一次页面重新加载的事件,这里的逻辑是为了实现,免按登录登录按键。
if (bid == OBJ(txtPasswd)) {
strncpy(txtPasswdCache, text, sizeof(txtPasswdCache));
triggerLoginAction = true;
UIS->setVal(PAGE, bid, text);
UIS->virtualClick(PAGE, OBJ(blogin), 0); // 触发一次登录按钮虚拟点击事件
}
}

1
usrc/service/page/Page_login.hpp

@ -7,7 +7,6 @@ class Page_login : public IPageProcesser {
private:
/* data */
bool triggerLoginAction = false;
char txtPasswdCache[20] = {0};
public:

15
usrc/service/page/Page_main.cpp

@ -109,15 +109,19 @@ void Page_main::OnInputFieldContentChange(uint8_t bid, const char* text) {
else if (bid == ob_main_acidname0) {
ZLOGI(TAG, "acidname0:%s", text);
CS->setcfgAndFlush(kcfg_acidChooseName0, text);
UIS->setVal(PAGE, bid, text);
} else if (bid == ob_main_acidname1) {
ZLOGI(TAG, "acidname1:%s", text);
CS->setcfgAndFlush(kcfg_acidChooseName1, text);
UIS->setVal(PAGE, bid, text);
} else if (bid == ob_main_acidname2) {
ZLOGI(TAG, "acidname2:%s", text);
CS->setcfgAndFlush(kcfg_acidChooseName2, text);
UIS->setVal(PAGE, bid, text);
} else if (bid == ob_main_acidname3) {
ZLOGI(TAG, "acidname3:%s", text);
CS->setcfgAndFlush(kcfg_acidChooseName3, text);
UIS->setVal(PAGE, bid, text);
}
// 设置加酸间隔
@ -125,13 +129,11 @@ void Page_main::OnInputFieldContentChange(uint8_t bid, const char* text) {
int32_t distrIntervalSecond = atoi(text);
if (distrIntervalSecond <= 0) {
UIS->alert("酸液间隔时间不能小于0");
UIS->setVal(PAGE, ob_main_RunModeVal, CS->getStr(kcfg_distrInterval, &cfgcache));
return;
}
if (distrIntervalSecond > 30) {
UIS->alert("酸液间隔时间不能大于30");
UIS->setVal(PAGE, ob_main_RunModeVal, CS->getStr(kcfg_distrInterval, &cfgcache));
return;
}
@ -167,14 +169,15 @@ void Page_main::OnButton(uint8_t bid, uint8_t val) {
void Page_main::processAcidevalUpdateEvent(uint8_t bid, const char* text, int ch, config_index_t cfgid) {
float add_ml = atof(text);
if (add_ml < 0) {
UIS->setVal(PAGE, bid, CS->getStr(cfgid, &cfgcache)); // 恢复数值
UIS->alert("设定值不能小于0");
return;
} else if (add_ml > CS->getInt(kcfg_echDitrUpLi)) {
UIS->setVal(PAGE, bid, CS->getStr(cfgid, &cfgcache)); // 恢复数值
UIS->alert(fmt("设定值不能大于%d", CS->getInt(kcfg_echDitrUpLi)));
return;
}
ZLOGI(TAG, "set acid ch%d:%s", ch, text);
CS->setcfgAndFlush(cfgid, text); //
char reformattext[20];
sprintf(reformattext, "%.1f", add_ml);
ZLOGI(TAG, "set acid ch%d:%s", ch, reformattext);
UIS->setVal(PAGE, bid, reformattext);
CS->setcfgAndFlush(cfgid, reformattext); //
}

2
usrc/service/valve_state_ctrl_service.cpp

@ -22,7 +22,7 @@ void ValveStateSyncService::startSync() {
msg.output0 = output0state;
msg.output1 = output1state;
msg.rgbw = rgbwstate;
ZCAN1::ins()->txMsg(kvalve_ctrl_msg, (uint8_t*)&msg, sizeof(msg), 30);
ZCAN1::ins()->txMsgNoError(kvalve_ctrl_msg, (uint8_t*)&msg, sizeof(msg), 30);
}
}
});

Loading…
Cancel
Save