guohui il y a 1 an
Parent
commit
9727b59524
5 fichiers modifiés avec 87 ajouts et 4132 suppressions
  1. 24 18
      pro/src/appweb_handle.c
  2. 4 4046
      pro/src/mail.c
  3. 54 63
      pro/src/sqlite_handle.c
  4. 1 1
      pro/src/sqlite_handle.h
  5. 4 4
      pro/src/sys.c

+ 24 - 18
pro/src/appweb_handle.c

@@ -3786,8 +3786,9 @@ static void serviceManagement(void *conn)
     }   
     else if(strcmp(_serviceManageRequestInfo.type,"SmtpSave")==0)
     {
-        mail_send_t *send=&gdm->mailInfo.send;
-        mail_recv_t *recv=gdm->mailInfo.recv;
+        mail_info_t mailInfo=gdm->mailInfo;
+        mail_send_t *send=&mailInfo.send;
+        mail_recv_t *recv=mailInfo.recv;
         _MAIL_ServerRequestInfo *info=&_serviceManageRequestInfo._smtp_info;
 
         if(info->mode) {
@@ -3804,39 +3805,44 @@ static void serviceManagement(void *conn)
                     }
 
                     if(strcmp(send->server, info->server)) {
-                        strcpy(send->server, info->server); save_flag = 1;
+                        strcpy(send->server, info->server);;
                     }
 
                     if(strcmp(send->port, info->port)) {
-                        strcpy(send->port, info->port); save_flag = 1;
+                        strcpy(send->port, info->port);;
                     }
 
                     if(strcmp(send->auth, info->auth)) {
-                        strcpy(send->auth, info->auth); save_flag = 1;
+                        strcpy(send->auth, info->auth);;
                     }
                 }
             }
             else {
-                memset(send, 0, sizeof(mail_send_t));  save_flag = 1;
+                memset(send, 0, sizeof(mail_send_t));;
             }
             
-            if(save_flag) {
+            if(memcmp(&mailInfo.send, &gdm->mailInfo.send, sizeof(mail_send_t))) {
                 dev_mail_update_send(gdm->db, send);
+                gdm->mailInfo.send = mailInfo.send;
             }
-        }
 
-        for(int i=0; i<MAIL_RECV_MAX; i++) {
-            recv[i].idx = i;
-           if(info->recvAccount[i]) {
-                recv[i].use = 1;
-                strcpy(recv[i].account, info->recvAccount[i]);
+            for(int i=0; i<MAIL_RECV_MAX; i++) {
+                recv[i].idx = i;
+                if(info->recvAccount[i]) {
+                    recv[i].use = 1;
+                    strcpy(recv[i].account, info->recvAccount[i]);
+                }
+                else{
+                    recv[i].use = 0;
+                    strcpy(recv[i].account,"");
+                }
             }
-			else{
-                recv[i].use = 0;
-                strcpy(recv[i].account,"");
+
+            if(memcmp(mailInfo.recv, gdm->mailInfo.recv, sizeof(mail_recv_t)*MAIL_RECV_MAX)) {
+                dev_mail_update_recv(gdm->db, recv);
+                memcpy(gdm->mailInfo.recv, mailInfo.recv, sizeof(mail_recv_t)*MAIL_RECV_MAX);
             }
-            dev_mail_update_recv(gdm->db, &recv[i]);
-        }
+        }  
     }
 #ifdef USE_MQTT
     else if(strcmp(_serviceManageRequestInfo.type,"listMqttQuery")==0)

Fichier diff supprimé car celui-ci est trop grand
+ 4 - 4046
pro/src/mail.c


+ 54 - 63
pro/src/sqlite_handle.c

@@ -3667,7 +3667,7 @@ int dev_Alarm_send_message(GlobalDeviceManager* globalDeviceManger,GlobalPowerMa
     strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", t);    
     int nAlarmID=dev_insert_alarm_info(globalDeviceManger->db,__globalPowerTemp->product_id,0,buffer,AlarmText);
 
-    if(globalDeviceManger->mailInfo.send.mode) mail_post_alarm(ALARM_TYPE_POWER, 0, _AlarmType, AlarmText);
+    mail_post_alarm(ALARM_TYPE_POWER, 0, _AlarmType, AlarmText);
 
     alarm_para_t para;
     //dev_search_last_Index(globalDeviceManger->db, );
@@ -3842,7 +3842,7 @@ int dev_Alarm_T_AC_message(GlobalDeviceManager* globalDeviceManger, GlobalTreeAC
     strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", t);    
     int nAlarmID=dev_insert_alarm_info(globalDeviceManger->db,__globalPowerTemp->product_id,0,buffer,AlarmText);
 
-     if(globalDeviceManger->mailInfo.send.mode) mail_post_alarm(ALARM_TYPE_POWER, 1, _AlarmType, AlarmText);
+    mail_post_alarm(ALARM_TYPE_POWER, 1, _AlarmType, AlarmText);
 
     alarm_para_t para;
     para.id = __globalPowerTemp->product_ch_id;
@@ -3958,7 +3958,7 @@ int dev_sensor_Alarm_send_message(GlobalDeviceManager* globalDeviceManger,Global
     int nAlarmID=dev_insert_alarm_info(globalDeviceManger->db,__globalPowerTemp->product_id,1,buffer,AlarmText);
 
     int subtype=__globalPowerTemp->sensor_type;
-     if(globalDeviceManger->mailInfo.send.mode) mail_post_alarm(ALARM_TYPE_SENSOR, subtype, _AlarmType, AlarmText);
+    mail_post_alarm(ALARM_TYPE_SENSOR, subtype, _AlarmType, AlarmText);
 
     alarm_para_t para;
     para.id = __globalPowerTemp->sensor_id;
@@ -4198,7 +4198,7 @@ int dev_switch_update_all(sqlite3 *db, netswitch_info_t *sw)
 ////////////////MAIL/////////////////////////////////////////////
 #define MAIL_MANAGER_TABLE   "Table_MAILManage"
 #define MAIL_RECVEIVE_TABLE  "Table_MAILReceive"
-static int dev_mail_get(sqlite3 *db, mail_info_t *info)
+int dev_mail_get(sqlite3 *db, mail_info_t *info)
 {
     int i,r=-1;
     char temp[1024];
@@ -4380,44 +4380,51 @@ int dev_mail_update_recv(sqlite3 *db, mail_recv_t *recv)
     char temp[1024];
     sqlite3_stmt *stmt;
     char *err_msg=NULL;
+    mail_recv_t *rcv=NULL;
     char *table=MAIL_RECVEIVE_TABLE;
     
-    cnt = get_count(db, table);
-    if(cnt>0) {
-        sprintf(temp, "UPDATE %s SET idx=%d, use=%d, account='%s' WHERE idx=%d;", 
-                table, recv->idx, recv->use, recv->account, recv->idx);
-        r = sqlite3_exec(db, temp, NULL, 0, &err_msg);
-        if(r != SQLITE_OK) {
-            log_e("___dev_mail_update_recv failed, %s, %s\n", temp, err_msg);
-            sqlite3_free(err_msg);
-        }
-        else {
-            exist = sqlite3_changes(db);
-        }
+    if(!db || !recv) {
+        return -1;
     }
 
-    if(exist==0) {
-        sprintf(temp, "INSERT INTO %s (idx,use,account) VALUES (?,?,?);", table);
-        r = sqlite3_prepare_v2(db, temp, -1, &stmt, 0);
-        if (r != SQLITE_OK) {
-            log_e("___dev_mail_update_recv, sqlite3_prepare_v2 failed, %s\n", sqlite3_errmsg(db));
-            r = -1;
-            goto quit;
+    cnt = get_count(db, table);
+    for(i=0; i<MAIL_RECV_MAX; i++) {
+        rcv = &recv[i];
+        if(cnt>0) {
+            sprintf(temp, "UPDATE %s SET idx=%d, use=%d, account='%s' WHERE idx=%d;", 
+                    table, rcv->idx, rcv->use, rcv->account, rcv->idx);
+            r = sqlite3_exec(db, temp, NULL, 0, &err_msg);
+            if(r != SQLITE_OK) {
+                log_e("___dev_mail_update_recv failed, %s, %s\n", temp, err_msg);
+                sqlite3_free(err_msg);
+                return -1;
+            }
+            else {
+                exist = sqlite3_changes(db);
+            }
         }
 
-        sqlite3_bind_int(stmt,  1, recv->idx);
-        sqlite3_bind_int(stmt,  2, recv->use);
-        sqlite3_bind_text(stmt, 3, recv->account,  -1, NULL);
+        if(exist==0) {
+            sprintf(temp, "INSERT INTO %s (idx,use,account) VALUES (?,?,?);", table);
+            r = sqlite3_prepare_v2(db, temp, -1, &stmt, 0);
+            if (r != SQLITE_OK) {
+                log_e("___dev_mail_update_recv, sqlite3_prepare_v2 failed, %s\n", sqlite3_errmsg(db));
+                return -1;
+            }
 
-        r = sqlite3_step(stmt);
-        sqlite3_finalize(stmt);
+            sqlite3_bind_int(stmt,  1, rcv->idx);
+            sqlite3_bind_int(stmt,  2, rcv->use);
+            sqlite3_bind_text(stmt, 3, rcv->account,  -1, NULL);
 
-        if (r != SQLITE_DONE) {
-            log_e("___dev_mail_update_recv, sqlite3_step failed\n");
-            r = -1;
+            r = sqlite3_step(stmt);
+            sqlite3_finalize(stmt);
+
+            if (r != SQLITE_DONE) {
+                log_e("___dev_mail_update_recv, sqlite3_step failed\n");
+                r = -1;
+            }
         }
     }
-quit:
 #endif
 
     return r;
@@ -4670,7 +4677,7 @@ static int sql_requery(sqlite3 *db, int tab_id, char *condition, void *data, int
     sqlite3_stmt *stmt=NULL;
 
     if(tab_id==TAB_ID_POWER_INFO) {
-        snprintf(temp, sizeof(temp), "SELECT * FROM %s %s;", tabNamePool[tab_id], product_ch_id, start_time, end_time);
+        //snprintf(temp, sizeof(temp), "SELECT * FROM %s %s;", tabNamePool[tab_id], product_ch_id, start_time, end_time);
 
         r = sqlite3_prepare_v2(db, temp, -1, &stmt, 0);
         if (r != SQLITE_OK) {
@@ -4679,34 +4686,31 @@ static int sql_requery(sqlite3 *db, int tab_id, char *condition, void *data, int
         }
     
         while (sqlite3_step(stmt) == SQLITE_ROW) {
-            ser[idx].id = sqlite3_column_int(stmt, 0);
-            ser[idx].mode = sqlite3_column_int(stmt, 1);
+            //ser[idx].id = sqlite3_column_int(stmt, 0);
+            //ser[idx].mode = sqlite3_column_int(stmt, 1);
 
             p = (char*)sqlite3_column_text(stmt, 2);
-            if(p) strcpy(ser[idx].name, p);
+            //if(p) strcpy(ser[idx].name, p);
 
             p = (char*)sqlite3_column_text(stmt, 3);
-            if(p) strcpy(ser[idx].server, p);
+            //if(p) strcpy(ser[idx].server, p);
 
             p = (char*)sqlite3_column_text(stmt, 4);
-            if(p) strcpy(ser[idx].port, p);
+           // if(p) strcpy(ser[idx].port, p);
 
             p = (char*)sqlite3_column_text(stmt, 5);
-            if(p) strcpy(ser[idx].cid, p);
+            //if(p) strcpy(ser[idx].cid, p);
 
             p = (char*)sqlite3_column_text(stmt, 6);
-            if(p) strcpy(ser[idx].user, p);
+            //if(p) strcpy(ser[idx].user, p);
 
             p = (char*)sqlite3_column_text(stmt, 7);
-            if(p) strcpy(ser[idx].password, p);
+            //if(p) strcpy(ser[idx].password, p);
 
             p = (char*)sqlite3_column_text(stmt, 8);
-            if(p) strcpy(ser[idx].cert, p);
+            //if(p) strcpy(ser[idx].cert, p);
 
-            idx++;
-            if(idx>=MQTT_SER_MAX) {
-                break;
-            }
+            
         }
         sqlite3_finalize(stmt);
 
@@ -4784,23 +4788,10 @@ int dev_data_xport(sqlite3 *db, int tab_id, int io_type, uint32_t time_s, uint32
 
         case TAB_ID_MAIL:
         {
-            mail_recv_t recv;
             mail_info_t *info=(mail_info_t*)data;
             if(io_type==IO_IMPORT) {
-                r = dev_mail_update_send(db, info->send);
-
-                for(i=0; i<MAIL_RECV_MAX; i++) {
-                    recv.idx = i;
-                    if(info->recvAccount[i]) {
-                        recv.use = 1;
-                        strcpy(recv.account, info->recvAccount[i]);
-                    }
-                    else{
-                        recv.use = 0;
-                        strcpy(recv.account,"");
-                    }
-                    r = dev_mail_update_recv(db, &recv);
-                }
+                r = dev_mail_update_send(db, &info->send);
+                r = dev_mail_update_recv(db, info->recv);
             }
             else {
                 r = dev_mail_get(db, info);
@@ -4881,10 +4872,10 @@ int dev_data_xport(sqlite3 *db, int tab_id, int io_type, uint32_t time_s, uint32
         case TAB_ID_BREAKER:
         {
             if(io_type==IO_IMPORT) {
-                r = dev_update_breaker_genera_manage(db, 0, (GlobalBreakerManager)data);
+                //r = dev_update_breaker_genera_manage(db, 0, break_id, (GlobalBreakerManager)data);
             }
             else {
-                r = dev_get_breaker_manage_info(db, 0, (GlobalBreakerManager)data);
+                //r = dev_get_breaker_manage_info(db, 0, break_id, (GlobalBreakerManager)data);
             }
         }
         break;

+ 1 - 1
pro/src/sqlite_handle.h

@@ -196,7 +196,7 @@ enum {
     
     TAB_ID_MAX
 };
-int dev_sql_xport(sqlite3 *db, int tab_id, int io_type, uint32_t time_s, uint32_t time_e, void *data, int *cnt);
+int dev_data_xport(sqlite3 *db, int tab_id, int io_type, uint32_t time_s, uint32_t time_e, void *data, int *cnt);
 
 
 

+ 4 - 4
pro/src/sys.c

@@ -1212,10 +1212,10 @@ static void send_file(void)
     send_cnt++;
     if(send_cnt%SEND_PERIOD==0) {
 
-        r = dev_sql_xport(dm->db, TAB_ID_POWER_INFO, IO_EXPORT, 0, 0, NULL, &cnt);
-        r = dev_sql_xport(dm->db, TAB_ID_POWER3_INFO, IO_EXPORT, 0, 0, NULL, &cnt);
-        r = dev_sql_xport(dm->db, TAB_ID_POWER_INFO, IO_EXPORT, 0, 0, NULL, &cnt);
-        r = dev_sql_xport(dm->db, TAB_ID_POWER_INFO, IO_EXPORT, 0, 0, NULL, &cnt);
+        r = dev_data_xport(dm->db, TAB_ID_POWER_INFO, IO_EXPORT, 0, 0, NULL, &cnt);
+        r = dev_data_xport(dm->db, TAB_ID_POWER3_INFO, IO_EXPORT, 0, 0, NULL, &cnt);
+        r = dev_data_xport(dm->db, TAB_ID_POWER_INFO, IO_EXPORT, 0, 0, NULL, &cnt);
+        r = dev_data_xport(dm->db, TAB_ID_POWER_INFO, IO_EXPORT, 0, 0, NULL, &cnt);
     }
 }