7 changed files with 173 additions and 31 deletions
-
2stm32components
-
5usrc/project_configs.h
-
87usrc/service/page/submenu/Page_muPumpTest.cpp
-
22usrc/service/page/submenu/Page_muPumpTest.hpp
-
2usrc/service/page/submenu/Page_muSettings.cpp
-
81usrc/service/pump_ctrl_service.cpp
-
5usrc/service/pump_ctrl_service.hpp
@ -1 +1 @@ |
|||
Subproject commit 3c9d276aab2de07bf1dfdcf5bd31c531efa311d9 |
|||
Subproject commit f45df89965564db5c5ad518c7a704571726b8a6e |
@ -1,18 +1,101 @@ |
|||
#include "Page_muPumpTest.hpp"
|
|||
|
|||
#include "service/pump_ctrl_service.hpp"
|
|||
using namespace iflytop; |
|||
|
|||
#define PAGE pg_muPumpTest
|
|||
#define TAG "Page_muPumpTest"
|
|||
|
|||
static void Page_muPumpTest_onTimer(const void* tid) { |
|||
Page_muPumpTest* thisClass = (Page_muPumpTest*)pvTimerGetTimerID((TimerHandle_t)tid); |
|||
thisClass->onTimer(); |
|||
} |
|||
|
|||
void Page_muPumpTest::initialize() { //
|
|||
IPageProcesser::initialize(); |
|||
|
|||
osTimerDef(statiUpdateTimer, Page_muPumpTest_onTimer); |
|||
statiUpdateTimerId = osTimerCreate(osTimer(statiUpdateTimer), osTimerPeriodic, this); |
|||
} |
|||
|
|||
bool Page_muPumpTest::isBelongThisPage(int page) { return page == PAGE; } |
|||
|
|||
void Page_muPumpTest::OnPageLoad(OnPageLoadContext*cxt) {} |
|||
void Page_muPumpTest::OnPageLoad(OnPageLoadContext* cxt) { |
|||
// motorTrunsBegin
|
|||
if (!cxt->isFromPopWin) { |
|||
updateStatiInfo(0, 0); |
|||
m_pumpId = 1; |
|||
} |
|||
UIS->setVal(ob_muPumpTest_pumpId, m_pumpId + 1); |
|||
} |
|||
|
|||
void Page_muPumpTest::OnInputFieldContentChange(uint8_t bid, const char* text) { //
|
|||
ZLOGI(TAG, "bid:%d %s", bid, text); |
|||
// ob_muPumpTest_frompage
|
|||
if (bid == ob_muPumpTest_pumpId) { |
|||
pumpChangeSelectId(atoi(text)); |
|||
} |
|||
} |
|||
void Page_muPumpTest::OnButton(uint8_t bid, uint8_t val) { |
|||
ZLOGI(TAG, "bid:%d", bid); |
|||
if (bid == ob_muPumpTest_bak) { |
|||
pumpStop(); |
|||
UIS->chpage(pg_muSettings); |
|||
} else if (bid == ob_muPumpTest_clearStati) { |
|||
ZLOGI(TAG, "clearStati"); |
|||
clearStatisInfo(); |
|||
} else if (bid == ob_muPumpTest_forward) { |
|||
ZLOGI(TAG, "forward"); |
|||
pumpStart(1); |
|||
} else if (bid == ob_muPumpTest_bakward) { |
|||
ZLOGI(TAG, "bakward"); |
|||
pumpStart(-1); |
|||
} else if (bid == ob_muPumpTest_stop) { |
|||
ZLOGI(TAG, "stop"); |
|||
pumpStop(); |
|||
} |
|||
} |
|||
} |
|||
/***********************************************************************************************************************
|
|||
* LOGIC * |
|||
***********************************************************************************************************************/ |
|||
void Page_muPumpTest::pumpStop() { |
|||
PUMPCS->stopRotate(); |
|||
osTimerStop(statiUpdateTimerId); |
|||
updateStatiInfo(); |
|||
} |
|||
void Page_muPumpTest::pumpStart(int32_t direction) { |
|||
PUMPCS->rotate(m_pumpId, direction); |
|||
osTimerStop(statiUpdateTimerId); |
|||
osTimerStart(statiUpdateTimerId, 300); |
|||
} |
|||
void Page_muPumpTest::pumpChangeSelectId(int id) { |
|||
if (id < 0 || id > 3) { |
|||
ZLOGW(TAG, "pumpId out of range"); |
|||
return; |
|||
} |
|||
if ((id) != m_pumpId) { |
|||
ZLOGI(TAG, "pumpId change to %d", id); |
|||
m_pumpId = id; |
|||
PUMPCS->stopRotate(); |
|||
clearStatisInfo(); |
|||
} |
|||
} |
|||
void Page_muPumpTest::updateStatiInfo(float statiTruns, float statiVolum) { |
|||
m_statiTruns = statiTruns; |
|||
m_statiVolum = statiVolum; |
|||
UIS->setVal(ob_muPumpTest_statiTrun, zfmt("%.2f", m_statiTruns)); |
|||
UIS->setVal(ob_muPumpTest_statiVolum, zfmt("%.2f", m_statiVolum)); |
|||
} |
|||
void Page_muPumpTest::clearStatisInfo() { |
|||
updateStatiInfo(0, 0); |
|||
m_motorTrunsBegin = PUMPCS->getMotorNowPosR(m_pumpId); |
|||
} |
|||
|
|||
void Page_muPumpTest::updateStatiInfo() { |
|||
double nowPos = PUMPCS->getMotorNowPosR(m_pumpId); |
|||
double truns = (nowPos - m_motorTrunsBegin); |
|||
float motorX_mLPR = getMotorMLPR(m_pumpId); |
|||
double volum = truns * motorX_mLPR; |
|||
updateStatiInfo(truns, volum); |
|||
} |
|||
void Page_muPumpTest::onTimer() { updateStatiInfo(); } |
Write
Preview
Loading…
Cancel
Save
Reference in new issue