From a9facce57ec5841fc528d3cca65a014b6b7ea71b Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sun, 1 Sep 2024 17:27:24 +0800 Subject: [PATCH] update --- .settings/language.settings.xml | 4 +- .settings/org.eclipse.core.resources.prefs | 2 + README.md | 1 + uappbase/appcfg/appcfg.hpp | 2 +- uappbase/bean/config_index_enum.hpp | 5 +- uappbase/service/config_index.cpp | 7 +- uappbase/service/config_index.hpp | 2 +- uappbase/service/config_service_utils.cpp | 39 +++++++++++ uappbase/service/config_service_utils.hpp | 7 +- usrc/service/page/submenu/Page_muPumpTest.cpp | 4 +- usrc/service/page/submenu/Page_muSettings.cpp | 79 +++++++++++++---------- usrc/service/pump_ctrl_service.cpp | 16 ++--- usrc/service/remote_controler.cpp | 1 - usrc/service/remote_controler_event_processer.cpp | 5 +- 14 files changed, 118 insertions(+), 56 deletions(-) create mode 100644 .settings/org.eclipse.core.resources.prefs diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml index 4317995..1eb30e0 100644 --- a/.settings/language.settings.xml +++ b/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..065f007 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=gbk diff --git a/README.md b/README.md index bc654ea..b063c72 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ TODO: 1. 输入超过10次错误密码后,弹出提示框,请等待24小时,24小时后,页面将自动切换到恢复出厂设置页面。 2. 添加恢复出厂设置按键,且恢复出厂设置按键按下后,需要根用户二次确认。 + 3. 转换比设置错误可能到只泵机不转 ``` diff --git a/uappbase/appcfg/appcfg.hpp b/uappbase/appcfg/appcfg.hpp index bd0f67d..439188a 100644 --- a/uappbase/appcfg/appcfg.hpp +++ b/uappbase/appcfg/appcfg.hpp @@ -65,4 +65,4 @@ #define ACID_DEFAULT_NAME14 "一氯乙酸" #define ACID_DEFAULT_NAME15 "氢氟酸" -#define PUMPDEFVEL "100" // 100ml/min \ No newline at end of file +#define PUMPDEFVEL "500" // 100r/min \ No newline at end of file diff --git a/uappbase/bean/config_index_enum.hpp b/uappbase/bean/config_index_enum.hpp index 7cb5c21..1447fba 100644 --- a/uappbase/bean/config_index_enum.hpp +++ b/uappbase/bean/config_index_enum.hpp @@ -73,7 +73,10 @@ typedef enum { ***********************************************************************************************************************/ kcfg_lockAcidName, // 锁定酸液名称 kcfg_echDitrUpLi, // 每次分配上限设定值 each distri up-limit - kcfg_pumpDefVel, // 泵机默认速度ml/min + kcfg_pumpDefVel0, // 泵机默认速度r/min + kcfg_pumpDefVel1, // 泵机默认速度r/min + kcfg_pumpDefVel2, // 泵机默认速度r/min + kcfg_pumpDefVel3, // 泵机默认速度r/min kcfg_distrInterval, // 每次分配间隔时间 /*********************************************************************************************************************** diff --git a/uappbase/service/config_index.cpp b/uappbase/service/config_index.cpp index f2562e8..b6ae15d 100644 --- a/uappbase/service/config_index.cpp +++ b/uappbase/service/config_index.cpp @@ -81,7 +81,12 @@ static cfg_iterm_info_t cfg_iterm_infos[] = { CFG_ITERM(kcfg_lockAcidName, kcfgt_bool, "false"), // CFG_ITERM(kcfg_echDitrUpLi, kcfgt_int32, "99"), // 每次分配上限设定值 each distri up-limit CFG_ITERM(kcfg_distrInterval, kcfgt_float, "1.5"), // 每次分配间隔时间 - CFG_ITERM(kcfg_pumpDefVel, kcfgt_int32, PUMPDEFVEL), // + // CFG_ITERM(kcfg_pumpDefVel, kcfgt_int32, PUMPDEFVEL), // + + CFG_ITERM(kcfg_pumpDefVel0, kcfgt_int32, PUMPDEFVEL), // + CFG_ITERM(kcfg_pumpDefVel1, kcfgt_int32, PUMPDEFVEL), // + CFG_ITERM(kcfg_pumpDefVel2, kcfgt_int32, PUMPDEFVEL), // + CFG_ITERM(kcfg_pumpDefVel3, kcfgt_int32, PUMPDEFVEL), // CFG_ITERM(kcfg_m0irun, kcfgt_int32, "20"), // CFG_ITERM(kcfg_m1irun, kcfgt_int32, "20"), // diff --git a/uappbase/service/config_index.hpp b/uappbase/service/config_index.hpp index b47ac59..e96e7d6 100644 --- a/uappbase/service/config_index.hpp +++ b/uappbase/service/config_index.hpp @@ -21,7 +21,7 @@ typedef struct { const char *initval; } cfg_iterm_info_t; -#define CFG_MAX_INDEX 55 +#define CFG_MAX_INDEX 58 const char *cfgName(int32_t index); cfg_iterm_type_t cfgType(int32_t index); diff --git a/uappbase/service/config_service_utils.cpp b/uappbase/service/config_service_utils.cpp index 6dfaccf..a72d031 100644 --- a/uappbase/service/config_service_utils.cpp +++ b/uappbase/service/config_service_utils.cpp @@ -1,5 +1,44 @@ #include "config_service_utils.hpp" namespace iflytop { + +int getMxRunRPM(int32_t mid) { // + float rpm = 0; + if (mid == 0) { + rpm = getCfgFloat(kcfg_pumpDefVel0); + } else if (mid == 1) { + rpm = getCfgFloat(kcfg_pumpDefVel1); + } else if (mid == 2) { + rpm = getCfgFloat(kcfg_pumpDefVel2); + } else if (mid == 3) { + rpm = getCfgFloat(kcfg_pumpDefVel3); + } + if (rpm < 100) { + rpm = 100; + } + return rpm; +} + +int setMxRunRPM(int32_t mid, int32_t val) { + switch (mid) { + case 0: + CS->setcfgAndFlush(kcfg_pumpDefVel0, val); + break; + case 1: + CS->setcfgAndFlush(kcfg_pumpDefVel1, val); + break; + case 2: + CS->setcfgAndFlush(kcfg_pumpDefVel2, val); + break; + case 3: + CS->setcfgAndFlush(kcfg_pumpDefVel3, val); + break; + default: + ZASSERT(0); + return 0; + } + return 0; +} + float getMotorMLPR(int32_t motorid) { switch (motorid) { case 0: diff --git a/uappbase/service/config_service_utils.hpp b/uappbase/service/config_service_utils.hpp index 4ecd6c5..2af256f 100644 --- a/uappbase/service/config_service_utils.hpp +++ b/uappbase/service/config_service_utils.hpp @@ -1,12 +1,13 @@ #pragma once #include "config_service.hpp" namespace iflytop { -float getMotorMLPR(int32_t motorid); +float getMotorMLPR(int32_t motorid); // 泵机转和ml转换系数 void setMotorMLPR(int32_t motorid, float val); +int getMxRunRPM(int32_t mid); // 泵机运行时转速 +int setMxRunRPM(int32_t mid, int32_t val); // 泵机运行时转速 - -int32_t setMxIRun(int motorid, int32_t val); +int32_t setMxIRun(int motorid, int32_t val); // IRUN int32_t getMxIRun(int motorid); const char* getPasswd(const char* usrname, CfgItermCache* cache); diff --git a/usrc/service/page/submenu/Page_muPumpTest.cpp b/usrc/service/page/submenu/Page_muPumpTest.cpp index d41b7dd..a3fed58 100644 --- a/usrc/service/page/submenu/Page_muPumpTest.cpp +++ b/usrc/service/page/submenu/Page_muPumpTest.cpp @@ -20,7 +20,9 @@ void Page_muPumpTest::initialize() { // 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; } @@ -33,8 +35,8 @@ void Page_muPumpTest::initialize() { // pumpStop(); } } - return; } + // ZLOGI(TAG, "TRACE process ble report end...."); }); } diff --git a/usrc/service/page/submenu/Page_muSettings.cpp b/usrc/service/page/submenu/Page_muSettings.cpp index 6ae4b5f..8bf72f3 100644 --- a/usrc/service/page/submenu/Page_muSettings.cpp +++ b/usrc/service/page/submenu/Page_muSettings.cpp @@ -6,7 +6,7 @@ using namespace iflytop; /** * @brief - * 锟斤拷锟斤拷锟睫革拷页锟斤拷 + * 酸类修改页面 */ #define PAGE pg_muSettings @@ -42,16 +42,16 @@ void Page_muSettings::initialize() { // 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_muSettings_bleCliName, "锟斤拷液"); + UIS->setTxt(PAGE, ob_muSettings_bleCliName, "加液"); } if (keyEvent == hand_acid_remoter_kevent_change_next_mode) { - UIS->setTxt(PAGE, ob_muSettings_bleCliName, "模式锟叫伙拷"); + UIS->setTxt(PAGE, ob_muSettings_bleCliName, "模式切换"); } if (keyEvent == hand_acid_remoter_kevent_reflux) { - UIS->setTxt(PAGE, ob_muSettings_bleCliName, "液路锟斤拷锟斤拷"); + UIS->setTxt(PAGE, ob_muSettings_bleCliName, "液路回流"); } if (keyEvent == hand_acid_remoter_kevent_preFilling) { - UIS->setTxt(PAGE, ob_muSettings_bleCliName, "液路预锟斤拷"); + UIS->setTxt(PAGE, ob_muSettings_bleCliName, "液路预充"); } return; } @@ -70,10 +70,11 @@ void Page_muSettings::updatePage() { UIS->setTxt(PAGE, ob_muSettings_pumpCoef2, zfmt("%.1f", getMotorMLPR(2))); UIS->setTxt(PAGE, ob_muSettings_pumpCoef3, zfmt("%.1f", getMotorMLPR(3))); UIS->setTxt(PAGE, ob_muSettings_pipeLen0, getCfgStr(kcfg_pipeLengthML)); -// UIS->setTxt(PAGE, ob_muSettings_pipeLen1, getCfgStr(kcfg_pipeLengthML)); -// UIS->setTxt(PAGE, ob_muSettings_pipeLen2, getCfgStr(kcfg_pipeLengthML)); -// UIS->setTxt(PAGE, ob_muSettings_pipeLen3, getCfgStr(kcfg_pipeLengthML)); - UIS->setTxt(PAGE, ob_muSettings_addAcidVel, getCfgStr(kcfg_pumpDefVel)); + // TODO:改成4个输入框 + UIS->setTxt(PAGE, ob_muSettings_addAcidVel, zitoa(getMxRunRPM(0))); + UIS->setTxt(PAGE, ob_muSettings_addAcidVel, zitoa(getMxRunRPM(1))); + UIS->setTxt(PAGE, ob_muSettings_addAcidVel, zitoa(getMxRunRPM(2))); + UIS->setTxt(PAGE, ob_muSettings_addAcidVel, zitoa(getMxRunRPM(3))); } void Page_muSettings::OnPageLoad(OnPageLoadContext* cxt) { // @@ -82,7 +83,7 @@ void Page_muSettings::OnPageLoad(OnPageLoadContext* cxt) { // void Page_muSettings::OnAppEvent(AppEvent_t* event) { if (event->type == kAppEvent_BleConnectEvent) { ZLOGI(TAG, "ble connect success"); - UIS->setTxt(PAGE, ob_muSettings_bleCliName, "锟襟定成癸拷"); + UIS->setTxt(PAGE, ob_muSettings_bleCliName, "绑定成功"); CS->setcfgAndFlush(kcfg_bleClientName, event->d.bleName); m_scaning = false; } @@ -92,6 +93,15 @@ void Page_muSettings::OnInputFieldContentChange(uint8_t bid, const char* text) { /*********************************************************************************************************************** * irunx * ***********************************************************************************************************************/ + + if (bid == ob_muSettings_irun0 || bid == ob_muSettings_irun1 || bid == ob_muSettings_irun2 || bid == ob_muSettings_irun3) { + int irun = atoi(text); + if (irun < 1 || irun > 31) { + UIS->alert("IRUN需要限制在1..31"); + return; + } + } + if (bid == ob_muSettings_irun0) { setMxIRun(0, atoi(text)); UIS->setTxt(bid, zfmt("%d", getMxIRun(0))); @@ -110,7 +120,7 @@ void Page_muSettings::OnInputFieldContentChange(uint8_t bid, const char* text) { * pumpCoef * ***********************************************************************************************************************/ - else if (bid == ob_muSettings_pumpCoef0) { + if (bid == ob_muSettings_pumpCoef0) { setMotorMLPR(0, atof(text)); UIS->setTxt(bid, zfmt("%.1f", getMotorMLPR(0))); } else if (bid == ob_muSettings_pumpCoef1) { @@ -128,34 +138,35 @@ void Page_muSettings::OnInputFieldContentChange(uint8_t bid, const char* text) { * pipeLen * ***********************************************************************************************************************/ - else if (bid == ob_muSettings_pipeLen0) { + if (bid == ob_muSettings_pipeLen0) { CS->setcfg(kcfg_pipeLengthML, text); UIS->setTxt(bid, getCfgStr(kcfg_pipeLengthML)); } -// else if (bid == ob_muSettings_pipeLen1) { -// CS->setcfg(kcfg_pipeLengthML, text); -// UIS->setTxt(b - id, getCfgStr(kcfg_pipeLengthML)); -// } -// -// else if (bid == ob_muSettings_pipeLen2) { -// CS->setcfg(kcfg_pipeLengthML, text); -// UIS->setTxt(bid, getCfgStr(kcfg_pipeLengthML)); -// } -// -// else if (bid == ob_muSettings_pipeLen3) { -// CS->setcfg(kcfg_pipeLengthML, text); -// UIS->setTxt(bid, getCfgStr(kcfg_pipeLengthML)); -// } - /*********************************************************************************************************************** * addAcidVel * ***********************************************************************************************************************/ + // TODO改成4个输入框 + if (bid == ob_muSettings_addAcidVel) { + int rpm = atoi(text); + if (rpm < 300) { + UIS->alert("转速不能小于300"); + return; + } + + if (rpm > 1000) { + UIS->alert("转速不能大于1000"); + return; + } + } - else if (bid == ob_muSettings_addAcidVel) { - CS->setcfg(kcfg_pumpDefVel, text); - UIS->setTxt(bid, getCfgStr(kcfg_pumpDefVel)); + if (bid == ob_muSettings_addAcidVel) { + int rpm = atoi(text); + setMxRunRPM(0, rpm); + setMxRunRPM(1, rpm); + setMxRunRPM(2, rpm); + setMxRunRPM(3, rpm); + UIS->setTxt(bid, zitoa(rpm)); } updatePage(); @@ -166,15 +177,15 @@ void Page_muSettings::OnButton(uint8_t bid, uint8_t val) { if (bid == ob_muSettings_bak) { UIS->chpage(GSM->getMenuPage()); if (m_scaning) { - RCTRL->startScan("XXXXXXXXX", false); // 锟洁当锟斤拷停止扫锟斤拷 + RCTRL->startScan("XXXXXXXXX", false); // 相当于停止扫描 } } else if (bid == ob_muSettings_bleScan) { ZLOGI(TAG, "bleScan"); bool suc = RCTRL->startScan(BLENAME, true); - if (suc) UIS->setTxt(PAGE, ob_muSettings_bleCliName, "扫锟斤拷锟斤拷..."); + if (suc) UIS->setTxt(PAGE, ob_muSettings_bleCliName, "扫描中..."); m_scaning = true; } }; -// muAcidType +// muAcidType \ No newline at end of file diff --git a/usrc/service/pump_ctrl_service.cpp b/usrc/service/pump_ctrl_service.cpp index 0ce50ff..990d948 100644 --- a/usrc/service/pump_ctrl_service.cpp +++ b/usrc/service/pump_ctrl_service.cpp @@ -10,15 +10,9 @@ static TMC51X0* m_motors[4]; #define PUMP_NUM 4 static CfgItermCache cfgcache; -#define APPEND_ML 1 +#define APPEND_ML 10 -static int getMxRunRPM(int32_t mid) { // - float mLPmin = getCfgFloat(kcfg_pumpDefVel); - float motorX_mLPR = getMotorMLPR(mid); - int rpm = mLPmin / motorX_mLPR; - return rpm; -} void PumpCtrlService::initialize() { m_motors[0] = AppHardware::ins()->getPump(0); @@ -59,7 +53,7 @@ void PumpCtrlService::updateMotorSetting() { m_motors[i]->enable(true); ZLOGI(TAG, "M[%d] setIHOLD_IRUN %d %d %d", i, STEPMOTOR_IHOLD, getMxIRun(i), STEPMOTOR_IHOLDDELAY); - ZLOGI(TAG, "M[%d] setScale %d", i, getMotorMLPR(i)); + ZLOGI(TAG, "M[%d] setScale %f", i, getMotorMLPR(i) * 1000); ZLOGI(TAG, "M[%d] setScaleDenominator %d", i, 1); ZLOGI(TAG, "M[%d] setMotorShaft %d", i, MOTOR_SHAFT); ZLOGI(TAG, "M[%d] setVstart %d", i, MOTOR_VSTART); @@ -208,9 +202,11 @@ void PumpCtrlService::doMoveOnce() { } } - while (!isAllReachTarget()) { + while (!isAllReachTarget() && !m_thread.getExitFlag()) { + // ZLOGI(TAG, "wait for motor move to target"); osDelay(10); } + ZLOGI(TAG, "do moveOnce finish"); // 回流 for (size_t i = 0; i < PUMP_NUM; i++) { @@ -224,7 +220,7 @@ void PumpCtrlService::doMoveOnce() { } } - while (!isAllReachTarget()) { + while (!isAllReachTarget() && !m_thread.getExitFlag()) { osDelay(10); } diff --git a/usrc/service/remote_controler.cpp b/usrc/service/remote_controler.cpp index bcf6635..1f8ff5a 100644 --- a/usrc/service/remote_controler.cpp +++ b/usrc/service/remote_controler.cpp @@ -115,7 +115,6 @@ void RemoteControlerUpper::startSchedule() { } void RemoteControlerUpper::preProcessrxpacket(RemoteControlerReportPacket_t* packet) { - // 锟叫断帮拷锟角凤拷戏锟? #if MODULE_DEBUG ZLOGI(TAG, "[rx-thread] : rx :%s(%d)", zhex2str(packet->data, packet->datalen), packet->datalen); #endif diff --git a/usrc/service/remote_controler_event_processer.cpp b/usrc/service/remote_controler_event_processer.cpp index 0caf521..405ba83 100644 --- a/usrc/service/remote_controler_event_processer.cpp +++ b/usrc/service/remote_controler_event_processer.cpp @@ -21,12 +21,14 @@ void RemoteControlerEventProcesser::initialize() { GSM->setRemoterS(RemoteControlerUpper::ins()->isConnected()); RCTRL->regOnReport([this](uint8_t* rx, int32_t len) { + // ZLOGI(TAG, "TRACE process ble report start"); zble_proto_packet_t* packet = (zble_proto_packet_t*)rx; logevent(rx, len); if (packet->cmd == kzble_app_report_key_event) { int32_t keyEvent = *(int32_t*)packet->data; processKeyEventFromRemoter((hand_acid_remoter_key_event_t)keyEvent); + // ZLOGI(TAG, "TRACE process ble report end"); return; } @@ -40,6 +42,7 @@ void RemoteControlerEventProcesser::initialize() { } else if (packet->cmd == kzble_report_disconnect_event) { GSM->setRemoterS(false); } + // ZLOGI(TAG, "TRACE process ble report end"); }); } @@ -93,7 +96,7 @@ void RemoteControlerEventProcesser::processKeyEventFromRemoter(hand_acid_remoter ZLOGW(TAG, "now page is in pump test, remote key event process by pumpTestPage"); return; } - + if (UIS->getNowPage() == pg_login || UIS->getNowPage() == pg_pStart || UIS->getNowPage() == pg_muSettings) { return; }