|
|
@@ -1714,6 +1714,7 @@ static void* shm_thread(void *arg)
|
|
|
memcpy(&pShmData, _globalDeviceManager->g_shm_Data, sizeof(smartPDU_shm_data));
|
|
|
if (_globalDeviceManager->g_shm_Data->bPDUSet > 0) // 已更新
|
|
|
{
|
|
|
+ lock_s_hold(LOCK_ID_POWER_UPDATE);
|
|
|
int nselect=_globalDeviceManager->g_shm_Data->nSelectPowerCH;
|
|
|
int nIndex=0;
|
|
|
if (nselect==0)
|
|
|
@@ -1730,7 +1731,7 @@ static void* shm_thread(void *arg)
|
|
|
list_for_each_entry(_pTreeACPowerPhData, &_globalDeviceManager->_globalPowerManger.list_Tree_AC, list_Tree_AC)
|
|
|
{
|
|
|
k += 1;
|
|
|
- if (nselectPH <= nIndex)
|
|
|
+ if (nselectPH <= k)
|
|
|
break;
|
|
|
}
|
|
|
if (_pTreeACPowerPhData)
|
|
|
@@ -1778,7 +1779,7 @@ static void* shm_thread(void *arg)
|
|
|
list_for_each_entry(_pTreeACPowerPhData, &_globalPowerMangerTemp->list_Tree_AC, list_Tree_AC)
|
|
|
{
|
|
|
k += 1;
|
|
|
- if (nselectPH <= nIndex)
|
|
|
+ if (nselectPH <= k)
|
|
|
break;
|
|
|
}
|
|
|
if (_pTreeACPowerPhData)
|
|
|
@@ -1805,6 +1806,7 @@ static void* shm_thread(void *arg)
|
|
|
_globalDeviceManager->g_shm_Data->fH = _globalDeviceManager->g_modebus_read.humidity;
|
|
|
}
|
|
|
}
|
|
|
+ lock_s_release(LOCK_ID_POWER_UPDATE);
|
|
|
}
|
|
|
else if (_globalDeviceManager->g_shm_Data->bPDUSet == 0)
|
|
|
{ // 等于于0则更新pdu数据
|