Forráskód Böngészése

1、修改通道检测重名的bug

liyuezong 2 éve%!(EXTRA string=óta)
szülő
commit
f94b44ccfb
5 módosított fájl, 49 hozzáadás és 8 törlés
  1. 6 3
      pro/src/app.c
  2. 1 1
      pro/src/modbus_handle.c
  3. 37 0
      pro/src/sqlite_handle.c
  4. 1 0
      pro/src/sqlite_handle.h
  5. 4 4
      pro/src/switch_ctrl.c

+ 6 - 3
pro/src/app.c

@@ -2068,7 +2068,8 @@ int _global_device_manage_init(GlobalDeviceManager* _globalDeviceManager)
                         }
                         _globalPowerMangerTemp->product_saddr = i ;
                         _globalPowerMangerTemp->product_ch_type = type;
-                        if (dev_update_power_manage_genera_info(__globalDeviceManage.db,_globalDeviceManager->_globalDevInfo.product_id,chn,_globalPowerMangerTemp) != 0)
+                        _globalPowerMangerTemp->product_ch_id = chn;
+                        if (dev_update_power_manage_genera_info_addr(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, _globalPowerMangerTemp->product_saddr, _globalPowerMangerTemp->product_ch_addr, _globalPowerMangerTemp) != 0)
                         {
                             log_e("update pwr general data err.");
                         }
@@ -2140,7 +2141,8 @@ int _global_device_manage_init(GlobalDeviceManager* _globalDeviceManager)
                             }
                             _globalPowerMangerTemp->product_saddr = i;
                             _globalPowerMangerTemp->product_ch_type = type;
-                            if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, chn, _globalPowerMangerTemp) != 0)
+                            _globalPowerMangerTemp->product_ch_id = chn;
+                            if (dev_update_power_manage_genera_info_addr(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, _globalPowerMangerTemp->product_saddr, _globalPowerMangerTemp->product_ch_addr, _globalPowerMangerTemp) != 0)
                             {
                                 log_e("update pwr general data err.");
                             }
@@ -2267,7 +2269,8 @@ int _global_device_manage_init(GlobalDeviceManager* _globalDeviceManager)
                                 }
                                 _globalPowerMangerTemp->product_saddr = i;
                                 _globalPowerMangerTemp->product_ch_type = type;
-                                if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, chn, _globalPowerMangerTemp) != 0)
+                                 _globalPowerMangerTemp->product_ch_id = chn;
+                                if (dev_update_power_manage_genera_info_addr(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, _globalPowerMangerTemp->product_saddr,_globalPowerMangerTemp->product_ch_addr, _globalPowerMangerTemp) != 0)
                                 {
                                     log_e("update pwr general data err.");
                                 }

+ 1 - 1
pro/src/modbus_handle.c

@@ -93,7 +93,7 @@ int g_modbus_init(void* manger,
     struct timeval response_timeout;
     response_timeout.tv_sec = 1;
     response_timeout.tv_usec = 0;
-    modbus_set_response_timeout(modbus_manger->mb, 1,150000);
+    modbus_set_response_timeout(modbus_manger->mb, 0,500000);
     modbus_set_byte_timeout(modbus_manger->mb,0,50000);
 
     //modbus_set_response_timeout(modbus_manger->mb,3,100000);  

+ 37 - 0
pro/src/sqlite_handle.c

@@ -1528,6 +1528,43 @@ int dev_update_power_manage_genera_info(sqlite3 *db,int product_id,int product_c
     return 0 ;
 }
 
+/// @brief 更新通道基本管理信息
+/// @param db 
+/// @param product_id 
+/// @param _globalPowerManger 
+/// @return 
+int dev_update_power_manage_genera_info_addr(sqlite3 *db,int product_id,int addr,int addr_ch_id,GlobalPowerManger* _globalPowerChnManger)
+{
+    int res = 0 ;
+    int rowIndex = 1 ;
+    char *errorMsg = NULL;
+    int nrow = 0;               //满足条件的记录数目
+    int ncolumn = 0;            //每条记录包含的字段数据
+    char** pResult = NULL;  //用来指向sql执行结果的指针
+    char* err_msg=NULL;
+    char select_sql[1024] = {0};
+    sprintf(select_sql,"UPDATE Table_PowerManage SET product_id=%d,product_ch_id=%d,product_ch_name='%s',product_ch_type=%d,product_ch_status=%d,product_ch_start_delay=%d,product_ch_stop_delay=%d WHERE product_id=%d AND product_ch_addr_id=%d AND  product_ch_addr_ch_id=%d;",
+        _globalPowerChnManger->product_id,
+        _globalPowerChnManger->product_ch_id,
+        _globalPowerChnManger->product_ch_name,
+        _globalPowerChnManger->product_ch_type,
+        _globalPowerChnManger->product_ch_status,
+        _globalPowerChnManger->product_ch_start_delay,
+        _globalPowerChnManger->product_ch_stop_delay,
+        product_id,
+        addr,
+       addr_ch_id );
+    res = sqlite_SQL_RUN(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
+    if(res != SQLITE_OK)
+    {
+        log_e("sqlite handle error: %s\n%s\n", err_msg,select_sql); sqlite3_free(err_msg);
+        return -1 ;  
+    }
+         
+ sqlite3_free_table(pResult);
+    return 0 ;
+}
+
 
 /// @brief 更新超限信息
 /// @param db 

+ 1 - 0
pro/src/sqlite_handle.h

@@ -50,6 +50,7 @@ int dev_insert_t_ac_power_info(sqlite3 *db,GlobalTreeACManager* _globalPowerChnI
 int dev_update_t_ac_power_manage_info(sqlite3 *db,GlobalTreeACManager* _globalPowerChnInfo);
 
 int dev_update_power_manage_genera_info(sqlite3 *db,int product_id,int product_ch_id,GlobalPowerManger* _globalPowerChnManger);
+int dev_update_power_manage_genera_info_addr(sqlite3 *db,int product_id,int addr,int addr_ch_id,GlobalPowerManger* _globalPowerChnManger);
 int dev_update_power_manage_over_info(sqlite3 *db,int product_id,int product_ch_id,GlobalPowerManger* _globalPowerChnManger);
 
 int dev_insert_sensor_info(sqlite3 *db,GlobalSensorInfo* _globalSensorInfo,int *nIndex);

+ 4 - 4
pro/src/switch_ctrl.c

@@ -2340,7 +2340,7 @@ int ResetChmData()
                     }
                     _globalPowerMangerTemp->product_ch_id = chn;    
                     sprintf(_globalPowerMangerTemp->product_ch_name, "CH%d", _globalPowerMangerTemp->product_ch_id);
-                    if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, chn, _globalPowerMangerTemp) != 0)
+                    if (dev_update_power_manage_genera_info_addr(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, _globalPowerMangerTemp->product_saddr, _globalPowerMangerTemp->product_ch_addr, _globalPowerMangerTemp) != 0)
                     {
                         log_e("update pwr general data err.");
                     }
@@ -2475,7 +2475,7 @@ int ResetChmData()
                     _globalPowerMangerTemp->product_ch_type = type;
                     _globalPowerMangerTemp->product_ch_id = chn;
                     sprintf(_globalPowerMangerTemp->product_ch_name, "CH%d", _globalPowerMangerTemp->product_ch_id);
-                    if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, chn, _globalPowerMangerTemp) != 0)
+                    if (dev_update_power_manage_genera_info_addr(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, _globalPowerMangerTemp->product_saddr, _globalPowerMangerTemp->product_ch_addr, _globalPowerMangerTemp) != 0)
                     {
                         log_e("update pwr general data err.");
                     }
@@ -2543,7 +2543,7 @@ int ResetChmData()
                         _globalPowerMangerTemp->product_ch_type = type;
                         _globalPowerMangerTemp->product_ch_id = chn;
                         sprintf(_globalPowerMangerTemp->product_ch_name, "CH%d", _globalPowerMangerTemp->product_ch_id);
-                        if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, chn, _globalPowerMangerTemp) != 0)
+                        if (dev_update_power_manage_genera_info_addr(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, _globalPowerMangerTemp->product_saddr, _globalPowerMangerTemp->product_ch_addr, _globalPowerMangerTemp) != 0)
                         {
                             log_e("update pwr general data err.");
                         }
@@ -2666,7 +2666,7 @@ int ResetChmData()
                             _globalPowerMangerTemp->product_ch_type = type;
                             _globalPowerMangerTemp->product_ch_id = chn;
                             sprintf(_globalPowerMangerTemp->product_ch_name, "CH%d", _globalPowerMangerTemp->product_ch_id);
-                            if (dev_update_power_manage_genera_info(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, chn, _globalPowerMangerTemp) != 0)
+                            if (dev_update_power_manage_genera_info_addr(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, _globalPowerMangerTemp->product_saddr, _globalPowerMangerTemp->product_ch_addr, _globalPowerMangerTemp) != 0)
                             {
                                 log_e("update pwr general data err.");
                             }