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();