Просмотр исходного кода

1、增加清除电源、传感器、告警、运行、网络日志功能

liyuezong лет назад: 2
Родитель
Сommit
6fb90ca271
6 измененных файлов с 193 добавлено и 16 удалено
  1. 53 8
      pro/src/appweb_handle.c
  2. 1 0
      pro/src/common.h
  3. 10 1
      pro/src/json_handle.c
  4. 7 6
      pro/src/json_handle.h
  5. 116 0
      pro/src/sqlite_handle.c
  6. 6 1
      pro/src/sqlite_handle.h

+ 53 - 8
pro/src/appweb_handle.c

@@ -2357,7 +2357,7 @@ static void alarmProtect(void *conn)
         return ;        
         return ;        
     } 
     } 
     //查询json参数
     //查询json参数
-    if(strcmp(_alarm_request_info.type,"listAllQuery")==0) //电源告警信息查询
+    if(strcmp(_alarm_request_info.type,"listAllQuery")==0) //告警信息查询
     {
     {
         int i = 0 ;
         int i = 0 ;
         //初始化表
         //初始化表
@@ -2365,7 +2365,7 @@ static void alarmProtect(void *conn)
         //查询数据库,最近的10个报警信息
         //查询数据库,最近的10个报警信息
         ret = dev_serarch_all_alarm(__globalDeviceManage.db,
         ret = dev_serarch_all_alarm(__globalDeviceManage.db,
             __globalDeviceManage._globalDevInfo.product_id,
             __globalDeviceManage._globalDevInfo.product_id,
-            0,1,10,
+           ALARM_TYPE_POWER ,1,10,
             &_alarm_ack_info,&nAlarmNumber);
             &_alarm_ack_info,&nAlarmNumber);
         if(ret!=0) {
         if(ret!=0) {
             log_e("get power alarm error.");
             log_e("get power alarm error.");
@@ -2390,7 +2390,7 @@ static void alarmProtect(void *conn)
         //查询数据库
         //查询数据库
         ret = dev_serarch_all_alarm(__globalDeviceManage.db,
         ret = dev_serarch_all_alarm(__globalDeviceManage.db,
             __globalDeviceManage._globalDevInfo.product_id,
             __globalDeviceManage._globalDevInfo.product_id,
-            0,_alarm_request_info.pagenum,_alarm_request_info.pagesize,
+            ALARM_TYPE_POWER,_alarm_request_info.pagenum,_alarm_request_info.pagesize,
             &_alarm_ack_info,&nAlarmNumber);
             &_alarm_ack_info,&nAlarmNumber);
         if(ret!=0) {
         if(ret!=0) {
             log_e("get power alarm error.");
             log_e("get power alarm error.");
@@ -2415,7 +2415,7 @@ static void alarmProtect(void *conn)
         //查询数据库
         //查询数据库
         ret = dev_serarch_all_alarm(__globalDeviceManage.db,
         ret = dev_serarch_all_alarm(__globalDeviceManage.db,
             __globalDeviceManage._globalDevInfo.product_id,
             __globalDeviceManage._globalDevInfo.product_id,
-            1,_alarm_request_info.pagenum,_alarm_request_info.pagesize,
+            ALARM_TYPE_SENSOR,_alarm_request_info.pagenum,_alarm_request_info.pagesize,
             &_alarm_ack_info,&nAlarmNumber);
             &_alarm_ack_info,&nAlarmNumber);
         if(ret!=0) {
         if(ret!=0) {
             log_e("get sensor alarm error.");
             log_e("get sensor alarm error.");
@@ -2440,7 +2440,7 @@ static void alarmProtect(void *conn)
         
         
         ret = dev_serarch_all_alarm(__globalDeviceManage.db,
         ret = dev_serarch_all_alarm(__globalDeviceManage.db,
             __globalDeviceManage._globalDevInfo.product_id,
             __globalDeviceManage._globalDevInfo.product_id,
-            2,_alarm_request_info.pagenum,_alarm_request_info.pagesize,
+            ALARM_TYPE_NETWORK,_alarm_request_info.pagenum,_alarm_request_info.pagesize,
             &_alarm_ack_info,&nAlarmNumber);
             &_alarm_ack_info,&nAlarmNumber);
         if(ret!=0) {
         if(ret!=0) {
             log_e("get net alarm error.");
             log_e("get net alarm error.");
@@ -2846,7 +2846,7 @@ static void logInformation(void *conn)
 
 
             dev_search_alarm_info(__globalDeviceManage.db,
             dev_search_alarm_info(__globalDeviceManage.db,
                                   __globalDeviceManage._globalDevInfo.product_id,
                                   __globalDeviceManage._globalDevInfo.product_id,
-                                  3, // alarm_type,        操作日志
+                                  ALARM_TYPE_OPRATION, // alarm_type,        操作日志
                                   start_time,
                                   start_time,
                                   stop_time,
                                   stop_time,
                                   __logInformationRequestInfo.pagenum - 1,
                                   __logInformationRequestInfo.pagenum - 1,
@@ -2857,7 +2857,7 @@ static void logInformation(void *conn)
         {
         {
             dev_search_alarm_info(__globalDeviceManage.db,
             dev_search_alarm_info(__globalDeviceManage.db,
                                 __globalDeviceManage._globalDevInfo.product_id,
                                 __globalDeviceManage._globalDevInfo.product_id,
-                                3,// alarm_type,        操作日志
+                                ALARM_TYPE_OPRATION,// alarm_type,        操作日志
                                 __logInformationRequestInfo.beginTime,
                                 __logInformationRequestInfo.beginTime,
                                 __logInformationRequestInfo.endtime,
                                 __logInformationRequestInfo.endtime,
                                 __logInformationRequestInfo.pagenum-1,
                                 __logInformationRequestInfo.pagenum-1,
@@ -2899,7 +2899,7 @@ static void logInformation(void *conn)
 
 
         dev_search_alarm_info(__globalDeviceManage.db,
         dev_search_alarm_info(__globalDeviceManage.db,
                             __globalDeviceManage._globalDevInfo.product_id,
                             __globalDeviceManage._globalDevInfo.product_id,
-                            4,// alarm_type,        运行日志
+                            ALARM_TYPE_RUNNING,// alarm_type,        运行日志
                            start_time,
                            start_time,
                            stop_time,
                            stop_time,
                             __logInformationRequestInfo.pagenum-1,
                             __logInformationRequestInfo.pagenum-1,
@@ -4468,6 +4468,51 @@ static void equipmentMintenance(void *conn)
         pthread_mutex_unlock(&__globalDeviceManage._power_update);
         pthread_mutex_unlock(&__globalDeviceManage._power_update);
         //__globalDeviceManage._ReloadChm_flag=false;
         //__globalDeviceManage._ReloadChm_flag=false;
     }
     }
+    else if (strcmp(_Over_equipment_mintenance.type,"cleanUp") == 0)
+    {
+        if (_Over_equipment_mintenance.cleanSelectItem!=NULL)
+        {
+            char *pItemlist;
+            char *pItemListSave;
+            pItemlist = strtok_r(_Over_equipment_mintenance.cleanSelectItem, ",", &pItemListSave);
+            while (pItemlist != NULL)
+            {
+                int ItemID=atoi(pItemlist) ;
+                if (1==ItemID)
+                {
+                    log_i("CleanUp all power history Information!\n");
+                    dev_delete_ac_power_info_all(__globalDeviceManage.db);
+                    dev_delete_power_info_all(__globalDeviceManage.db);
+                }
+                else if (2==ItemID)
+                {
+                    log_i("CleanUp all sensor history Information!\n");
+                   dev_delete_sensor_info_all(__globalDeviceManage.db);
+                }
+                else if (3==ItemID)
+                {
+                    log_i("CleanUp all alarm log Information!\n");
+                   dev_delete_alarm_info_all(__globalDeviceManage.db,ALARM_TYPE_POWER);
+                   dev_delete_alarm_info_all(__globalDeviceManage.db,ALARM_TYPE_SENSOR);
+                   dev_delete_alarm_info_all(__globalDeviceManage.db,ALARM_TYPE_NETWORK);
+                }
+                else if (4==ItemID)
+                {
+                    log_i("CleanUp all operation log Information!\n");
+                    dev_delete_alarm_info_all(__globalDeviceManage.db,ALARM_TYPE_OPRATION);
+                }
+                else if (5==ItemID)
+                {
+                    log_i("CleanUp all system log Information!\n");
+                    dev_delete_alarm_info_all(__globalDeviceManage.db,ALARM_TYPE_RUNNING);
+                }
+                pItemlist = strtok_r(NULL, ",", &pItemListSave);
+            }
+          }
+          dev_sql_VACCUM(__globalDeviceManage.db);
+          log_i("Database SQLite VACCUM!\n");
+          ack_str=ctrl_sts_ack_to_json();
+    }
 
 
     cJSON_Delete(cjson);
     cJSON_Delete(cjson);
     http_reply(conn, 200, ack_str);
     http_reply(conn, 200, ack_str);

+ 1 - 0
pro/src/common.h

@@ -212,6 +212,7 @@ enum ALARM_CTRL
     ALARM_CTRL_CLOSE_ALLCH     = 3 ,
     ALARM_CTRL_CLOSE_ALLCH     = 3 ,
 };
 };
 
 
+
 ///////////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////////
 typedef struct {
 typedef struct {
     int             id;
     int             id;

+ 10 - 1
pro/src/json_handle.c

@@ -1107,7 +1107,16 @@ cJSON* json_to_over_equipment_mintenance(const char* str,_Equipment_Mintenance*
         cJSON* cjson_productId = cJSON_GetObjectItem(cjson,"productId");
         cJSON* cjson_productId = cJSON_GetObjectItem(cjson,"productId");
         if(cjson_productId!=NULL)
         if(cjson_productId!=NULL)
             _over_equipment_mintenance->product_id = cjson_productId->valuestring;
             _over_equipment_mintenance->product_id = cjson_productId->valuestring;
-    }else
+    }else if (strcmp(_over_equipment_mintenance->type,"cleanUp") == 0)
+    {
+           cJSON* cjson_productId = cJSON_GetObjectItem(cjson,"productId");
+        if(cjson_productId!=NULL)
+            _over_equipment_mintenance->product_id = cjson_productId->valuestring;
+        cJSON* cjson_cleanSelect = cJSON_GetObjectItem(cjson,"cleanSelect");
+        if(cjson_cleanSelect!=NULL)
+            _over_equipment_mintenance->cleanSelectItem = cjson_cleanSelect->valuestring;
+    }
+    else 
     {
     {
         
         
         cJSON* cjson_productName = cJSON_GetObjectItem(cjson,"productName");
         cJSON* cjson_productName = cJSON_GetObjectItem(cjson,"productName");

+ 7 - 6
pro/src/json_handle.h

@@ -497,14 +497,15 @@ typedef struct
     char*   product_id;
     char*   product_id;
     char*   product_number;
     char*   product_number;
     /// @brief  breaker infomation
     /// @brief  breaker infomation
-    char *cjfs;
-    char *comkh;
-    char *cjdz;
-    char *jdh;
-    char *productChids;
+    char* cjfs;
+    char* comkh;
+    char* cjdz;
+    char* jdh;
+    char* productChids;
     /////
     /////
     int   switchId;
     int   switchId;
-    char *switchName;
+    char* switchName;
+    char* cleanSelectItem;
 }_Equipment_Mintenance;
 }_Equipment_Mintenance;
 
 
  /// @brief 用户角色管理
  /// @brief 用户角色管理

+ 116 - 0
pro/src/sqlite_handle.c

@@ -566,6 +566,34 @@ int dev_search_latest_power_All_info(GlobalDeviceManager* globalDeviceManger,_Ov
 
 
     return 0;
     return 0;
 }
 }
+/// @brief 清除历史记录
+/// @param db 
+/// @param PowerInfo
+/// @return 
+int dev_delete_power_info_all(sqlite3 *db)
+{
+    int res ;
+    char delete_sql[1024] = {0};
+    char *errorMsg = NULL;
+    int nrow = 0;               //满足条件的记录数目
+    int ncolumn = 0;            //每条记录包含的字段数据
+    char** pResult = NULL;  //用来指向sql执行结果的指针
+    char* err_msg=NULL;
+    
+    sprintf(delete_sql,"DELETE FROM Table_PowerInfo;");
+    res = sqlite_SQL_RUN(db, delete_sql, &pResult, &nrow, &ncolumn, &err_msg);
+    if(res != SQLITE_OK)
+    {
+        log_e("sqlite handle error: %s\n%s\n", err_msg,delete_sql); sqlite3_free(err_msg);
+        return -1 ; 
+    }
+         
+    sqlite3_free_table(pResult);
+
+    return 0;
+}
+
+
 /// @brief 获取所有采集统计的最新值
 /// @brief 获取所有采集统计的最新值
 /// @param db 
 /// @param db 
 /// @param _globalPowerManger 
 /// @param _globalPowerManger 
@@ -1696,7 +1724,32 @@ int dev_insert_t_ac_power_info(sqlite3 *db,GlobalTreeACManager* _globalPowerChnI
 
 
     return 0;
     return 0;
 }
 }
+/// @brief 清除历史记录
+/// @param db 
+/// @param PowerInfo
+/// @return 
+int dev_delete_ac_power_info_all(sqlite3 *db)
+{
+    int res ;
+    char delete_sql[1024] = {0};
+    char *errorMsg = NULL;
+    int nrow = 0;               //满足条件的记录数目
+    int ncolumn = 0;            //每条记录包含的字段数据
+    char** pResult = NULL;  //用来指向sql执行结果的指针
+    char* err_msg=NULL;
+    
+    sprintf(delete_sql,"DELETE FROM Table_PhasePowerInfo;");
+    res = sqlite_SQL_RUN(db, delete_sql, &pResult, &nrow, &ncolumn, &err_msg);
+    if(res != SQLITE_OK)
+    {
+        log_e("sqlite handle error: %s\n%s\n", err_msg,delete_sql); sqlite3_free(err_msg);
+        return -1 ; 
+    }
+         
+    sqlite3_free_table(pResult);
 
 
+    return 0;
+}
 /// @brief 更新通道基本管理信息
 /// @brief 更新通道基本管理信息
 /// @param db 
 /// @param db 
 /// @param product_id 
 /// @param product_id 
@@ -2257,7 +2310,25 @@ int dev_delete_sensor_manage(sqlite3 *db,int product_id,int sensor_id)
     sqlite3_free_table(pResult);
     sqlite3_free_table(pResult);
     return 0;
     return 0;
 }
 }
+int dev_delete_sensor_info_all(sqlite3 *db)
+{
+    int res ;
+    char select_sql[1024] = {0};
+    char *errorMsg = NULL;
+    int nrow = 0;               //满足条件的记录数目
+    int ncolumn = 0;            //每条记录包含的字段数据
+    char** pResult = NULL;  //用来指向sql执行结果的指针
+    char* err_msg=NULL;   
 
 
+    sprintf(select_sql,"DELETE FROM Table_SensorInfo;");
+    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;
+}
 
 
 
 
 
 
@@ -2645,7 +2716,32 @@ int dev_search_alarm_info(sqlite3* db,
     sqlite3_free_table(pResult);
     sqlite3_free_table(pResult);
     return 0;
     return 0;
 }
 }
+/// @brief 清除历史记录
+/// @param db 
+/// @param product_id 
+/// @param alarm_type 
+/// @return 
+int dev_delete_alarm_info_all(sqlite3* db,int alarm_type)
+{
+    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,"DELETE FROM Table_AlarmManage WHERE alarmType=%d;",alarm_type);
 
 
+    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;
+}
 int dev_get_ntp_info(sqlite3 *db,NTPManager* _globalNTPInfo)
 int dev_get_ntp_info(sqlite3 *db,NTPManager* _globalNTPInfo)
 {
 {
     int res = 0 ;
     int res = 0 ;
@@ -4188,3 +4284,23 @@ quit:
 }
 }
 
 
 
 
+int dev_sql_VACCUM(sqlite3 *db)
+{
+    int res ;
+    char select_sql[256] = {0};
+    char *errorMsg = NULL;
+    int nrow = 0;               //满足条件的记录数目
+    int ncolumn = 0;            //每条记录包含的字段数据
+    char** pResult = NULL;  //用来指向sql执行结果的指针
+    char* err_msg=NULL;   
+
+    sprintf(select_sql,"VACUUM;" );
+    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;
+}
+

+ 6 - 1
pro/src/sqlite_handle.h

@@ -22,6 +22,7 @@ int dev_change_last_Index(sqlite3 *db,int* nIndex,int nDeleteNumber,char* tableN
 int dev_insert_power_info(sqlite3 *db,GlobalPowerInfo* _globalPowerChnInfo,int* nIndex);
 int dev_insert_power_info(sqlite3 *db,GlobalPowerInfo* _globalPowerChnInfo,int* nIndex);
 int dev_search_latest_power_info(sqlite3 *db,int product_id,int product_ch_id,GlobalPowerInfo* _globalPowerInfo);
 int dev_search_latest_power_info(sqlite3 *db,int product_id,int product_ch_id,GlobalPowerInfo* _globalPowerInfo);
 int dev_search_latest_power_All_info(GlobalDeviceManager* globalDeviceManger,_OverChnPwrAckInfo* __overChnPwrAckInfo, int dev_addr);
 int dev_search_latest_power_All_info(GlobalDeviceManager* globalDeviceManger,_OverChnPwrAckInfo* __overChnPwrAckInfo, int dev_addr);
+int dev_delete_power_info_all(sqlite3 *db);
 
 
 int dev_search_latest_power_statistic_info(GlobalDeviceManager* globalDeviceManger, _OverAllPwrAckInfo *all);
 int dev_search_latest_power_statistic_info(GlobalDeviceManager* globalDeviceManger, _OverAllPwrAckInfo *all);
 int dev_search_latest_t_ac_power_statistic_info(int nCh,int nType,_OverAllPwrAckInfo* __overChnPwrAckInfo,GlobalDeviceManager* globalDeviceManger);
 int dev_search_latest_t_ac_power_statistic_info(int nCh,int nType,_OverAllPwrAckInfo* __overChnPwrAckInfo,GlobalDeviceManager* globalDeviceManger);
@@ -51,7 +52,7 @@ int dev_insert_t_ac_power_manage_info(sqlite3 *db,int product_id,int product_ch_
 int dev_insert_t_ac_power_info(sqlite3 *db,GlobalTreeACManager* _globalPowerChnInfo,int* nIndex,char* pTimeData);
 int dev_insert_t_ac_power_info(sqlite3 *db,GlobalTreeACManager* _globalPowerChnInfo,int* nIndex,char* pTimeData);
 int dev_update_t_ac_power_manage_info(sqlite3 *db,GlobalTreeACManager* _globalPowerChnInfo);
 int dev_update_t_ac_power_manage_info(sqlite3 *db,GlobalTreeACManager* _globalPowerChnInfo);
 int dev_update_t_ac_power_manage_over_info(sqlite3 *db,GlobalTreeACManager* _globalPowerChnManger);
 int dev_update_t_ac_power_manage_over_info(sqlite3 *db,GlobalTreeACManager* _globalPowerChnManger);
-
+int dev_delete_ac_power_info_all(sqlite3 *db);
 
 
 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(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_genera_info_addr(sqlite3 *db,int product_id,int addr,int addr_ch_id,GlobalPowerManger* _globalPowerChnManger);
@@ -75,6 +76,7 @@ int dev_insert_sensor_genera_manage(sqlite3 *db,GlobalSensorManger* _globalSenso
 int dev_update_sensor_genera_manage(sqlite3 *db,int product_id,int sensor_id,GlobalSensorManger* _globalSensorManger);
 int dev_update_sensor_genera_manage(sqlite3 *db,int product_id,int sensor_id,GlobalSensorManger* _globalSensorManger);
 int dev_update_sensor_over_manage(sqlite3 *db,int product_id,int sensor_id,GlobalSensorManger* _globalSensorManger);
 int dev_update_sensor_over_manage(sqlite3 *db,int product_id,int sensor_id,GlobalSensorManger* _globalSensorManger);
 int dev_delete_sensor_manage(sqlite3 *db,int product_id,int sensor_id);
 int dev_delete_sensor_manage(sqlite3 *db,int product_id,int sensor_id);
+int dev_delete_sensor_info_all(sqlite3 *db);
 
 
 int dev_insert_alarm_info(sqlite3* db,int product_id,int alarm_type,char* date_time,char* alarm_content);
 int dev_insert_alarm_info(sqlite3* db,int product_id,int alarm_type,char* date_time,char* alarm_content);
 int dev_search_alarm_info(sqlite3* db,
 int dev_search_alarm_info(sqlite3* db,
@@ -96,6 +98,7 @@ int dev_serarch_all_alarm(sqlite3* db,
                         _AlarmAckInfo* _alarm_ack_info,
                         _AlarmAckInfo* _alarm_ack_info,
                         int* nAlarmSum
                         int* nAlarmSum
                         );
                         );
+int dev_delete_alarm_info_all(sqlite3* db,int alarm_type);
 
 
 int dev_get_ntp_info(sqlite3 *db,NTPManager* _globalNTPInfo);
 int dev_get_ntp_info(sqlite3 *db,NTPManager* _globalNTPInfo);
 int dev_update_ntp_info(sqlite3 *db, int product_id, NTPManager* _globalNTPInfo);
 int dev_update_ntp_info(sqlite3 *db, int product_id, NTPManager* _globalNTPInfo);
@@ -149,4 +152,6 @@ int dev_smtp_update_recv(sqlite3 *db, smtp_recv_t *recv);
 int dev_mqtt_init(sqlite3 *db, mqtt_server_t *ser);
 int dev_mqtt_init(sqlite3 *db, mqtt_server_t *ser);
 int dev_mqtt_update(sqlite3 *db, mqtt_server_t *ser);
 int dev_mqtt_update(sqlite3 *db, mqtt_server_t *ser);
 
 
+int dev_sql_VACCUM(sqlite3 *db);
+
 #endif
 #endif