修复Web服务内存泄露、数据竞争与页面显示bug,适配x86编译
- 修复WebSocket推送无背压导致mongoose发送缓冲无限增长的内存泄露 - 为SystemData增加互斥锁,消除pushSystemData与主线程的数据竞争 - 修复网页状态文本判断反转、漏水告警阈值、FC状态、H2单位等显示bug - 按协议修正电池紧急状态枚举解码(0x3A-0x3D为1-4级报警) - 调整CMake适配系统安装的MOOS/IvP及jsoncpp,删除ARM专用build_debug.sh
This commit is contained in:
@@ -195,7 +195,10 @@ bool LowerCommManager::updatePoweSystemStates(){
|
||||
m_pm->m_db->insertData(m_pm->m_pmCurrentState.ccustate); //写入数据库
|
||||
msg_CcuStateFbMsg_Update_time = time;
|
||||
m_pm->m_systemData->updateSystemData(m_pm->m_pmCurrentState.ccustate);
|
||||
m_pm->m_systemData->device_common_status.ccu_status.lastUpdateTime = m_pm->m_lowerCommManager->msg_CcuStateFbMsg_Update_time;
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(m_pm->m_systemData->m_dataMutex);
|
||||
m_pm->m_systemData->device_common_status.ccu_status.lastUpdateTime = m_pm->m_lowerCommManager->msg_CcuStateFbMsg_Update_time;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!m_udpComm->m_qReceiveDisHighVolBusBuffer.empty())
|
||||
@@ -226,7 +229,10 @@ bool LowerCommManager::updatePoweSystemStates(){
|
||||
delete pdis1;
|
||||
|
||||
m_pm->m_systemData->updateSystemData(m_pm->m_pmCurrentState.bus1State);
|
||||
m_pm->m_systemData->device_common_status.dis_hv_c1.lastUpdateTime = m_pm->m_lowerCommManager->msg_disHighVolBusFbMsg_Update_time;
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(m_pm->m_systemData->m_dataMutex);
|
||||
m_pm->m_systemData->device_common_status.dis_hv_c1.lastUpdateTime = m_pm->m_lowerCommManager->msg_disHighVolBusFbMsg_Update_time;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!m_udpComm->m_qReceiveDisHighAVolBusBuffer.empty())
|
||||
@@ -250,7 +256,10 @@ bool LowerCommManager::updatePoweSystemStates(){
|
||||
delete pdis2;
|
||||
|
||||
m_pm->m_systemData->updateSystemData(m_pm->m_pmCurrentState.bus2State);
|
||||
m_pm->m_systemData->device_common_status.dis_hv_c2.lastUpdateTime = m_pm->m_lowerCommManager->msg_disHighAVolBusFbMsg_Update_time;
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(m_pm->m_systemData->m_dataMutex);
|
||||
m_pm->m_systemData->device_common_status.dis_hv_c2.lastUpdateTime = m_pm->m_lowerCommManager->msg_disHighAVolBusFbMsg_Update_time;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -275,7 +284,10 @@ bool LowerCommManager::updatePoweSystemStates(){
|
||||
m_pm->m_currentDisBreakerState.bus3Breaker = *pdis3;
|
||||
delete pdis3;
|
||||
m_pm->m_systemData->updateSystemData(m_pm->m_pmCurrentState.bus3State);
|
||||
m_pm->m_systemData->device_common_status.dis_lv_c1.lastUpdateTime = m_pm->m_lowerCommManager->msg_disHighBVolBusFbMsg_Update_time;
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(m_pm->m_systemData->m_dataMutex);
|
||||
m_pm->m_systemData->device_common_status.dis_lv_c1.lastUpdateTime = m_pm->m_lowerCommManager->msg_disHighBVolBusFbMsg_Update_time;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!m_udpComm->m_qReceiveDisLowBusBuffer.empty())
|
||||
@@ -300,7 +312,10 @@ bool LowerCommManager::updatePoweSystemStates(){
|
||||
m_pm->m_currentDisBreakerState.bus4Breaker = *pdis4;
|
||||
delete pdis4;
|
||||
m_pm->m_systemData->updateSystemData(m_pm->m_pmCurrentState.bus4State);
|
||||
m_pm->m_systemData->device_common_status.dis_lv_c2.lastUpdateTime = m_pm->m_lowerCommManager->msg_disLowBusFbMsg_Update_time;
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(m_pm->m_systemData->m_dataMutex);
|
||||
m_pm->m_systemData->device_common_status.dis_lv_c2.lastUpdateTime = m_pm->m_lowerCommManager->msg_disLowBusFbMsg_Update_time;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user