diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index 5a79ae1..adb54ce 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
@@ -16,7 +16,7 @@
-
+
diff --git a/usrc/service/page/submenu/Page_muPumpTest.cpp b/usrc/service/page/submenu/Page_muPumpTest.cpp
index a3fed58..395f2f6 100644
--- a/usrc/service/page/submenu/Page_muPumpTest.cpp
+++ b/usrc/service/page/submenu/Page_muPumpTest.cpp
@@ -115,12 +115,12 @@ void Page_muPumpTest::updateStatiInfo(float statiTruns, float statiVolum) {
}
void Page_muPumpTest::clearStatisInfo() {
updateStatiInfo(0, 0);
- m_motorTrunsBegin = PUMPCS->getMotorNowPosR(m_pumpId);
+ PUMPCS->setCurrentPosAsZero(m_pumpId);
}
void Page_muPumpTest::updateStatiInfo() {
double nowPos = PUMPCS->getMotorNowPosR(m_pumpId);
- double truns = (nowPos - m_motorTrunsBegin);
+ double truns = (nowPos);
float motorX_mLPR = getMotorMLPR(m_pumpId);
double volum = truns * motorX_mLPR;
updateStatiInfo(truns, volum);
diff --git a/usrc/service/page/submenu/Page_muPumpTest.hpp b/usrc/service/page/submenu/Page_muPumpTest.hpp
index 3764c92..37707e2 100644
--- a/usrc/service/page/submenu/Page_muPumpTest.hpp
+++ b/usrc/service/page/submenu/Page_muPumpTest.hpp
@@ -8,7 +8,6 @@ class Page_muPumpTest : public IPageProcesser {
private:
/* data */
- double m_motorTrunsBegin = 0;
int m_pumpId = 0;
float m_statiTruns = 0;
float m_statiVolum = 0;
diff --git a/usrc/service/pump_ctrl_service.cpp b/usrc/service/pump_ctrl_service.cpp
index 4b8ace7..d4fcf96 100644
--- a/usrc/service/pump_ctrl_service.cpp
+++ b/usrc/service/pump_ctrl_service.cpp
@@ -248,7 +248,8 @@ void PumpCtrlService::rotate(int32_t mid, int32_t direction) {
ValveStateSyncService::ins()->setValveState(1);
TMC51X0* cur_motor = m_motors[mid];
- cur_motor->rotate(direction > 0 ? getMxRunRPM(mid) : -getMxRunRPM(mid));
+ // cur_motor->rotate(direction > 0 ? getMxRunRPM(mid) : -getMxRunRPM(mid));
+ cur_motor->moveToEnd(direction > 0 ? 1 : -1,getMxRunRPM(mid));
}
void PumpCtrlService::stopRotate() {
if (isWorking()) {
@@ -273,6 +274,13 @@ double PumpCtrlService::getMotorNowPosR(int32_t mid) {
}
return m_motors[mid]->getXactualRAW() / 51200.0;
}
+void PumpCtrlService::setCurrentPosAsZero(int32_t mid) {
+ if (mid > 3) {
+ ZLOGE(TAG, "mid:%d is invalid", mid);
+ return;
+ }
+ m_motors[mid]->setXACTUAL(0);
+}
void PumpCtrlService::doMotorsMoveByOnce() {
int32_t step0 = int32_t((getCfgFloat(kcfg_acideval0) + getPumpAppendMl(0)) * 1000);
diff --git a/usrc/service/pump_ctrl_service.hpp b/usrc/service/pump_ctrl_service.hpp
index 301c3e7..688da3b 100644
--- a/usrc/service/pump_ctrl_service.hpp
+++ b/usrc/service/pump_ctrl_service.hpp
@@ -40,6 +40,7 @@ class PumpCtrlService {
void rotate(int32_t mid, int32_t direction);
void stopRotate();
double getMotorNowPosR(int32_t mid);
+ void setCurrentPosAsZero(int32_t mid);
private:
void doMotorsMoveByOnce();