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;
}