|
|
@ -34,6 +34,7 @@ void StatisticsSyncService::initialize() { |
|
|
|
}); |
|
|
|
|
|
|
|
osTimerDef(statiUpdateTimer, syncTimer); |
|
|
|
statiUpdateTimerId = osTimerCreate(osTimer(statiUpdateTimer), osTimerPeriodic, nullptr); |
|
|
|
osTimerStart(statiUpdateTimerId, 30 * 1000); |
|
|
|
} |
|
|
|
|
|
|
@ -44,10 +45,10 @@ void StatisticsSyncService::onLogin() { |
|
|
|
* 2.清空全局用户酸液使用量 |
|
|
|
*/ |
|
|
|
|
|
|
|
GStateMgr::ins()->setAcidRemain(0, DeviceAcidVolume::getAcidVolume(0)); |
|
|
|
GStateMgr::ins()->setAcidRemain(1, DeviceAcidVolume::getAcidVolume(1)); |
|
|
|
GStateMgr::ins()->setAcidRemain(2, DeviceAcidVolume::getAcidVolume(2)); |
|
|
|
GStateMgr::ins()->setAcidRemain(3, DeviceAcidVolume::getAcidVolume(3)); |
|
|
|
GStateMgr::ins()->setAcidRemain(0, DeviceAcidVolumeDao::getAcidVolume(0)); |
|
|
|
GStateMgr::ins()->setAcidRemain(1, DeviceAcidVolumeDao::getAcidVolume(1)); |
|
|
|
GStateMgr::ins()->setAcidRemain(2, DeviceAcidVolumeDao::getAcidVolume(2)); |
|
|
|
GStateMgr::ins()->setAcidRemain(3, DeviceAcidVolumeDao::getAcidVolume(3)); |
|
|
|
|
|
|
|
GStateMgr::ins()->setAcidUsed(0, 0); |
|
|
|
GStateMgr::ins()->setAcidUsed(1, 0); |
|
|
@ -86,11 +87,11 @@ void StatisticsSyncService::doSyncOnUnLoginOrPowerOff() { |
|
|
|
/**
|
|
|
|
* @brief 同步数据库中当前剩余酸液到全局 |
|
|
|
*/ |
|
|
|
DeviceAcidVolume::updateAcidVolume(0, GStateMgr::ins()->getAcidRemain(0)); |
|
|
|
DeviceAcidVolume::updateAcidVolume(1, GStateMgr::ins()->getAcidRemain(1)); |
|
|
|
DeviceAcidVolume::updateAcidVolume(2, GStateMgr::ins()->getAcidRemain(2)); |
|
|
|
DeviceAcidVolume::updateAcidVolume(3, GStateMgr::ins()->getAcidRemain(3)); |
|
|
|
DeviceAcidVolume::sync(); |
|
|
|
DeviceAcidVolumeDao::updateAcidVolume(0, GStateMgr::ins()->getAcidRemain(0)); |
|
|
|
DeviceAcidVolumeDao::updateAcidVolume(1, GStateMgr::ins()->getAcidRemain(1)); |
|
|
|
DeviceAcidVolumeDao::updateAcidVolume(2, GStateMgr::ins()->getAcidRemain(2)); |
|
|
|
DeviceAcidVolumeDao::updateAcidVolume(3, GStateMgr::ins()->getAcidRemain(3)); |
|
|
|
DeviceAcidVolumeDao::sync(); |
|
|
|
|
|
|
|
// 如果酸液使用量小于0.01,则删除最后一条记录
|
|
|
|
if (used0 < 0.01 && used1 < 0.01 && used2 < 0.01 && used3 < 0.01) { |
|
|
@ -121,7 +122,7 @@ void StatisticsSyncService::onAddAcidStorage(int ch, float addChVal) { |
|
|
|
* |
|
|
|
*/ |
|
|
|
GStateMgr::ins()->setAcidRemain(ch, addChVal); |
|
|
|
DeviceAcidVolume::updateAcidVolumeSync(ch, addChVal); |
|
|
|
DeviceAcidVolumeDao::updateAcidVolumeSync(ch, addChVal); |
|
|
|
AppEventBus::ins()->pushAcidStatDisplayChangeEvent(); |
|
|
|
} |
|
|
|
void StatisticsSyncService::onUseAcid(float useVal0, float useVal1, float useVal2, float useVal3) { |
|
|
@ -130,13 +131,29 @@ void StatisticsSyncService::onUseAcid(float useVal0, float useVal1, float useVal |
|
|
|
float now2 = GStateMgr::ins()->getAcidUsed(2); |
|
|
|
float now3 = GStateMgr::ins()->getAcidUsed(3); |
|
|
|
|
|
|
|
float remain0 = GStateMgr::ins()->getAcidRemain(0); |
|
|
|
float remain1 = GStateMgr::ins()->getAcidRemain(1); |
|
|
|
float remain2 = GStateMgr::ins()->getAcidRemain(2); |
|
|
|
float remain3 = GStateMgr::ins()->getAcidRemain(3); |
|
|
|
|
|
|
|
GStateMgr::ins()->setAcidUsed(0, now0 + useVal0); |
|
|
|
GStateMgr::ins()->setAcidUsed(1, now1 + useVal1); |
|
|
|
GStateMgr::ins()->setAcidUsed(2, now2 + useVal2); |
|
|
|
GStateMgr::ins()->setAcidUsed(3, now3 + useVal3); |
|
|
|
|
|
|
|
AcidUseRecordDao::updateLastRecord(now0 + useVal0, now1 + useVal1, now2 + useVal2, now3 + useVal3); |
|
|
|
m_dataIsDirty = true; |
|
|
|
GStateMgr::ins()->setAcidRemain(0, remain0 - useVal0 > 0 ? remain0 - useVal0 : 0); |
|
|
|
GStateMgr::ins()->setAcidRemain(1, remain1 - useVal1 > 0 ? remain1 - useVal1 : 0); |
|
|
|
GStateMgr::ins()->setAcidRemain(2, remain2 - useVal2 > 0 ? remain2 - useVal2 : 0); |
|
|
|
GStateMgr::ins()->setAcidRemain(3, remain3 - useVal3 > 0 ? remain3 - useVal3 : 0); |
|
|
|
|
|
|
|
// AcidUseRecordDao::updateLastRecord(now0 + useVal0, now1 + useVal1, now2 + useVal2, now3 + useVal3);
|
|
|
|
// DeviceAcidVolumeDao::updateAcidVolume(0, GStateMgr::ins()->getAcidRemain(0));
|
|
|
|
// DeviceAcidVolumeDao::updateAcidVolume(1, GStateMgr::ins()->getAcidRemain(1));
|
|
|
|
// DeviceAcidVolumeDao::updateAcidVolume(2, GStateMgr::ins()->getAcidRemain(2));
|
|
|
|
// DeviceAcidVolumeDao::updateAcidVolume(3, GStateMgr::ins()->getAcidRemain(3));
|
|
|
|
|
|
|
|
// m_dataIsDirty = true;
|
|
|
|
|
|
|
|
AppEventBus::ins()->pushAcidStatDisplayChangeEvent(); |
|
|
|
} |
|
|
|
|
|
|
@ -144,6 +161,7 @@ static void syncTimer(const void* tid) { |
|
|
|
AppEventBus::ins()->callFnInEventBus([]() { |
|
|
|
if (m_dataIsDirty) { |
|
|
|
AcidUseRecordDao::syncTheLastRecord(); |
|
|
|
DeviceAcidVolumeDao::sync(); |
|
|
|
m_dataIsDirty = false; |
|
|
|
} |
|
|
|
}); |
|
|
|