Bladeren bron

1、合并部分代码,上传

liyuezong 2 jaren geleden
bovenliggende
commit
0c884db795
3 gewijzigde bestanden met toevoegingen van 32 en 30 verwijderingen
  1. 20 27
      pro/src/app.c
  2. 1 1
      pro/src/appweb_handle.c
  3. 11 2
      pro/src/websocket_handle.c

+ 20 - 27
pro/src/app.c

@@ -162,34 +162,27 @@ void* power_thread(void* arg)
             sizeof(PowerInfo));
             if(_globalDeviceManager->_global_device_info->product_pwr_type == SmartPDU_AC)
             {
-                // printf("we get current SmartPDU_AC channel %d data,and consumption=%0.2f voltage=%0.2f current=%0.2f ...\n",
-                //                                                             _chn,
-                //                                                             _globalPowerInfo._power_info.consumption
-                //                                                             ,_globalPowerInfo._power_info.voltage
-                //                                                             ,_globalPowerInfo._power_info.current
-                //                                                             );
-                _globalDeviceManager->single_mmap->all_ch[_chn].consumption = _globalPowerInfo._power_info.consumption * 1000;
-                _globalDeviceManager->single_mmap->all_ch[_chn].voltage = _globalPowerInfo._power_info.voltage * 1000;
-                _globalDeviceManager->single_mmap->all_ch[_chn].factor = _globalPowerInfo._power_info.factor * 1000;
-                _globalDeviceManager->single_mmap->all_ch[_chn].freq = _globalPowerInfo._power_info.freq * 1000;
-                _globalDeviceManager->single_mmap->all_ch[_chn].power = _globalPowerInfo._power_info.power *1000;
-                _globalDeviceManager->single_mmap->all_ch[_chn].current = _globalPowerInfo._power_info.current *1000;
-                _globalDeviceManager->single_mmap->chn_status[_chn] = _globalPowerInfo._power_info.status;
-                _globalDeviceManager->single_mmap->open_delay[_chn] = _globalPowerMangerTemp->product_ch_start_delay;
-                _globalDeviceManager->single_mmap->close_delay[_chn] = _globalPowerMangerTemp->product_ch_stop_delay;
+                if (_chn<64)
+                {
+                    _globalDeviceManager->single_mmap->all_ch[_chn].consumption = _globalPowerInfo._power_info.consumption * 1000;
+                    _globalDeviceManager->single_mmap->all_ch[_chn].voltage = _globalPowerInfo._power_info.voltage * 1000;
+                    _globalDeviceManager->single_mmap->all_ch[_chn].factor = _globalPowerInfo._power_info.factor * 1000;
+                    _globalDeviceManager->single_mmap->all_ch[_chn].freq = _globalPowerInfo._power_info.freq * 1000;
+                    _globalDeviceManager->single_mmap->all_ch[_chn].power = _globalPowerInfo._power_info.power * 1000;
+                    _globalDeviceManager->single_mmap->all_ch[_chn].current = _globalPowerInfo._power_info.current * 1000;
+                    _globalDeviceManager->single_mmap->chn_status[_chn] = _globalPowerInfo._power_info.status;
+                    _globalDeviceManager->single_mmap->open_delay[_chn] = _globalPowerMangerTemp->product_ch_start_delay;
+                    _globalDeviceManager->single_mmap->close_delay[_chn] = _globalPowerMangerTemp->product_ch_stop_delay;
+                }
             }else if(_globalDeviceManager->_global_device_info->product_pwr_type == SmartPDU_DC)
             {
-                // printf("we get current SmartPDU_DC channel %d data,and consumption=%0.2f voltage=%0.2f current=%0.2f ...\n",
-                //                                                             _chn
-                //                                                             ,_globalPowerInfo._power_info.consumption
-                //                                                             ,_globalPowerInfo._power_info.voltage
-                //                                                             ,_globalPowerInfo._power_info.current
-                //                                                             );
+                if (_chn<64)
+                {
                 _globalDeviceManager->dc_mmap->o_pw_info[_chn].o_consumption = _globalPowerInfo._power_info.consumption *1000;
                 _globalDeviceManager->dc_mmap->o_pw_info[_chn].o_valtage = _globalPowerInfo._power_info.voltage * 1000;
                 _globalDeviceManager->dc_mmap->o_pw_info[_chn].o_current = _globalPowerInfo._power_info.current * 1000;
                 _globalDeviceManager->dc_mmap->o_pw_info[_chn].o_power = _globalPowerInfo._power_info.power *1000;
-                
+                }
             }else{
 
             }
@@ -1851,9 +1844,9 @@ int _global_device_manage_init(GlobalDeviceManager* _globalDeviceManager)
     //创建modbus采集线程 继电器控制线程
     #if(OS_HANDWARE==1)
     _globalDeviceManager->dev_samp_flag = true;
-    thread_start(THREAD_ID_POWER, power_thread, _globalDeviceManager, 4*MB, 0);
-    thread_start(THREAD_ID_SENSOR, sensor_thread, _globalDeviceManager, 4*MB, 0);
-    thread_start(THREAD_ID_SHMW, shm_thread, _globalDeviceManager, 4*MB, 0);
+    thread_start(THREAD_ID_POWER, power_thread, _globalDeviceManager, 20*MB, 0);
+    thread_start(THREAD_ID_SENSOR, sensor_thread, _globalDeviceManager, 10*MB, 0);
+    thread_start(THREAD_ID_SHMW, shm_thread, _globalDeviceManager, 10*MB, 0);
    #endif
     //创建传感器采集控制线程
 
@@ -1888,8 +1881,8 @@ int _global_device_manage_init(GlobalDeviceManager* _globalDeviceManager)
         log_d("get ntp info from database succeeded");
     }
 
-    thread_start(THREAD_ID_NTP, ntp_thread, NULL, 4*MB, 0);
-    thread_start(THREAD_ID_SNMP, snmp_thread, _globalDeviceManager, 4*MB, 0);
+    thread_start(THREAD_ID_NTP, ntp_thread, NULL, 10*MB, 0);
+    thread_start(THREAD_ID_SNMP, snmp_thread, _globalDeviceManager, 10*MB, 0);
     
     //初始化webapp
     websocket_init();

+ 1 - 1
pro/src/appweb_handle.c

@@ -3626,7 +3626,7 @@ static int webSetCallback(void)
 /// @return 
 int appweb_init(void)
 {
-    thread_start(THREAD_ID_UPDATE, update_thread, &__globalDeviceManage, 4*MB, 0);
+    thread_start(THREAD_ID_UPDATE, update_thread, &__globalDeviceManage, 20*MB, 0);
     thread_start(THREAD_ID_WEB, web_thread, &__globalDeviceManage, 16*MB, 0);
     
     return 0;

+ 11 - 2
pro/src/websocket_handle.c

@@ -49,7 +49,14 @@ static void fn(mg_conn_t *c, int ev, void *ev_data)
 
     case MG_EV_CLOSE:
     {
-      
+      if (wh->c)
+      {
+        if (c->id == wh->c->id)
+        {
+          wh->c = NULL;
+          log_d("ws upgrade del connection ID:%d\n",c->id);
+        }
+      }
     }
     break;
 
@@ -61,6 +68,7 @@ static void fn(mg_conn_t *c, int ev, void *ev_data)
        {
           mg_ws_upgrade(c, hm, NULL);
           wh->c = c;
+           log_i("ws upgrade new connection ID:%d\n",c->id);
       }
       else if (mg_http_match_uri(hm, "/rest")) 
       {
@@ -70,6 +78,7 @@ static void fn(mg_conn_t *c, int ev, void *ev_data)
       else 
       {
            wh->c = NULL;
+           log_i("ws upgrade del connection!");
       }
     }
     break;
@@ -110,7 +119,7 @@ int websocket_init(void)
     memset(wh, 0, sizeof(ws_handle_t));
     read_ipaddr(wh);
 
-    thread_start(THREAD_ID_WS, websocket_thread, wh, 4*MB, 0);
+    thread_start(THREAD_ID_WS, websocket_thread, wh, 30*MB, 0);
     return 0;
 }