浏览代码

上传修复三相显示屏问题

chenyuanjie 1 年之前
父节点
当前提交
a6ca0b161a
共有 1 个文件被更改,包括 4 次插入 和 2 次删除
  1. 4 2
      pro/src/app.c

+ 4 - 2
pro/src/app.c

@@ -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数据