|
|
@@ -4198,45 +4198,23 @@ int dev_switch_update_all(sqlite3 *db, netswitch_info_t *sw)
|
|
|
////////////////MAIL/////////////////////////////////////////////
|
|
|
#define MAIL_MANAGER_TABLE "Table_MAILManage"
|
|
|
#define MAIL_RECVEIVE_TABLE "Table_MAILReceive"
|
|
|
-int dev_mail_init(sqlite3 *db, mail_info_t *info)
|
|
|
+static int dev_mail_get(sqlite3 *db, mail_info_t *info)
|
|
|
{
|
|
|
int i,r=-1;
|
|
|
-
|
|
|
-#ifdef USE_MAIL
|
|
|
char temp[1024];
|
|
|
char *err_msg=NULL;
|
|
|
char *table=NULL;
|
|
|
int nrow,ncol;
|
|
|
char** pResult = NULL;
|
|
|
-
|
|
|
- table = MAIL_MANAGER_TABLE;
|
|
|
- if(!tab_exists(db, table)) {
|
|
|
- sprintf(temp, "CREATE TABLE IF NOT EXISTS %s("
|
|
|
- "id INTEGER PRIMARY KEY,"
|
|
|
- "mode INTEGER,"
|
|
|
- "account TEXT,"
|
|
|
- "password TEXT,"
|
|
|
- "server TEXT,"
|
|
|
- "port TEXT,"
|
|
|
- "auth TEXT,"
|
|
|
- "ca TEXT);", table);
|
|
|
- r = sqlite3_exec(db, temp, 0, 0, &err_msg);
|
|
|
- if(r!=SQLITE_OK) {
|
|
|
- log_e("___ %s create failed, %s\n%s\n", table, temp, err_msg); sqlite3_free(err_msg);
|
|
|
- return -1;
|
|
|
- }
|
|
|
|
|
|
-#ifdef MAIL_SEND_BUILTIN
|
|
|
- extern mail_send_t DFLT_MAIL_SEND;
|
|
|
- dev_mail_update_send(db, &DFLT_MAIL_SEND);
|
|
|
-#endif
|
|
|
- }
|
|
|
-
|
|
|
- if(info) {
|
|
|
- memset(info, 0, sizeof(mail_info_t));
|
|
|
+ if(!info) {
|
|
|
+ return -1;
|
|
|
}
|
|
|
|
|
|
+ memset(info, 0, sizeof(mail_info_t));
|
|
|
nrow = ncol = 0;
|
|
|
+
|
|
|
+ table = MAIL_MANAGER_TABLE;
|
|
|
sprintf(temp, "SELECT * FROM %s;", table);
|
|
|
r = sqlite3_get_table(db, temp, &pResult, &nrow, &ncol, &err_msg);
|
|
|
if(r != SQLITE_OK) {
|
|
|
@@ -4292,9 +4270,47 @@ int dev_mail_init(sqlite3 *db, mail_info_t *info)
|
|
|
}
|
|
|
}
|
|
|
sqlite3_free_table(pResult);
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+int dev_mail_init(sqlite3 *db, mail_info_t *info)
|
|
|
+{
|
|
|
+ int i,r=-1;
|
|
|
+
|
|
|
+#ifdef USE_MAIL
|
|
|
+ char temp[1024];
|
|
|
+ char *err_msg=NULL;
|
|
|
+ char *table=NULL;
|
|
|
+ int nrow,ncol;
|
|
|
+ char** pResult = NULL;
|
|
|
+
|
|
|
+ table = MAIL_MANAGER_TABLE;
|
|
|
+ if(!tab_exists(db, table)) {
|
|
|
+ sprintf(temp, "CREATE TABLE IF NOT EXISTS %s("
|
|
|
+ "id INTEGER PRIMARY KEY,"
|
|
|
+ "mode INTEGER,"
|
|
|
+ "account TEXT,"
|
|
|
+ "password TEXT,"
|
|
|
+ "server TEXT,"
|
|
|
+ "port TEXT,"
|
|
|
+ "auth TEXT,"
|
|
|
+ "ca TEXT);", table);
|
|
|
+ r = sqlite3_exec(db, temp, 0, 0, &err_msg);
|
|
|
+ if(r!=SQLITE_OK) {
|
|
|
+ log_e("___ %s create failed, %s\n%s\n", table, temp, err_msg); sqlite3_free(err_msg);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+#ifdef MAIL_SEND_BUILTIN
|
|
|
+ extern mail_send_t DFLT_MAIL_SEND;
|
|
|
+ dev_mail_update_send(db, &DFLT_MAIL_SEND);
|
|
|
+#endif
|
|
|
+ }
|
|
|
+
|
|
|
+ r = dev_mail_get(db, info);
|
|
|
#endif
|
|
|
|
|
|
- return 0;
|
|
|
+ return r;
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -4372,7 +4388,7 @@ int dev_mail_update_recv(sqlite3 *db, mail_recv_t *recv)
|
|
|
table, recv->idx, recv->use, recv->account, recv->idx);
|
|
|
r = sqlite3_exec(db, temp, NULL, 0, &err_msg);
|
|
|
if(r != SQLITE_OK) {
|
|
|
- log_e("___sw_update_port failed, %s, %s\n\n", temp, err_msg);
|
|
|
+ log_e("___dev_mail_update_recv failed, %s, %s\n", temp, err_msg);
|
|
|
sqlite3_free(err_msg);
|
|
|
}
|
|
|
else {
|
|
|
@@ -4397,7 +4413,7 @@ int dev_mail_update_recv(sqlite3 *db, mail_recv_t *recv)
|
|
|
sqlite3_finalize(stmt);
|
|
|
|
|
|
if (r != SQLITE_DONE) {
|
|
|
- log_e("___sw_update_all, sqlite3_step failed\n");
|
|
|
+ log_e("___dev_mail_update_recv, sqlite3_step failed\n");
|
|
|
r = -1;
|
|
|
}
|
|
|
}
|
|
|
@@ -4410,45 +4426,18 @@ quit:
|
|
|
|
|
|
////////////////mqtt/////////////////////////////////////////////
|
|
|
#define MQTT_MANAGER_TABLE "Table_MQTTManage"
|
|
|
-int dev_mqtt_init(sqlite3 *db, mqtt_info_t *info)
|
|
|
+int dev_mqtt_get(sqlite3 *db, mqtt_info_t *info)
|
|
|
{
|
|
|
- int i,r;
|
|
|
-
|
|
|
-#ifdef USE_MQTT
|
|
|
- int idx=0;
|
|
|
+ int i,r,idx=0;
|
|
|
char temp[1024];
|
|
|
- char *errmsg=NULL;
|
|
|
- char *table=NULL;
|
|
|
- char** pResult=NULL;
|
|
|
- int nrow,ncol;
|
|
|
sqlite3_stmt *stmt=NULL;
|
|
|
mqtt_server_t *ser=info->ser;
|
|
|
-
|
|
|
- table = MQTT_MANAGER_TABLE;
|
|
|
- if(!tab_exists(db, table)) {
|
|
|
- sprintf(temp, "CREATE TABLE IF NOT EXISTS %s("
|
|
|
- "id INTEGER PRIMARY KEY,"
|
|
|
- "mode INTEGER,"
|
|
|
- "name TEXT,"
|
|
|
- "server TEXT,"
|
|
|
- "port TEXT,"
|
|
|
- "cid TEXT,"
|
|
|
- "user TEXT,"
|
|
|
- "password TEXT,"
|
|
|
- "cert TEXT);", table);
|
|
|
- r = sqlite3_exec(db, temp, 0, 0, &errmsg);
|
|
|
- if(r!=SQLITE_OK) {
|
|
|
- log_e("___ %s create failed, %s\n%s\n", table, temp, errmsg); sqlite3_free(errmsg);
|
|
|
- return -1;
|
|
|
- }
|
|
|
+ char *table = MQTT_MANAGER_TABLE;
|
|
|
|
|
|
-#ifdef MQTT_SERVER_BUILTIN
|
|
|
- extern mqtt_info_t DFLT_MQTT;
|
|
|
- dev_mqtt_update_info(db, &DFLT_MQTT);
|
|
|
-#endif
|
|
|
+ if(!info) {
|
|
|
+ return -1;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
sprintf(temp, "SELECT * FROM %s;", table);
|
|
|
r = sqlite3_prepare_v2(db, temp, -1, &stmt, 0);
|
|
|
if (r != SQLITE_OK) {
|
|
|
@@ -4489,11 +4478,52 @@ int dev_mqtt_init(sqlite3 *db, mqtt_info_t *info)
|
|
|
}
|
|
|
}
|
|
|
sqlite3_finalize(stmt);
|
|
|
-#endif
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+int dev_mqtt_init(sqlite3 *db, mqtt_info_t *info)
|
|
|
+{
|
|
|
+ int i,r=-1;
|
|
|
+
|
|
|
+#ifdef USE_MQTT
|
|
|
+ int idx=0;
|
|
|
+ char temp[1024];
|
|
|
+ char *errmsg=NULL;
|
|
|
+ char *table=NULL;
|
|
|
+ sqlite3_stmt *stmt=NULL;
|
|
|
+ mqtt_server_t *ser=info->ser;
|
|
|
+
|
|
|
+ table = MQTT_MANAGER_TABLE;
|
|
|
+ if(!tab_exists(db, table)) {
|
|
|
+ sprintf(temp, "CREATE TABLE IF NOT EXISTS %s("
|
|
|
+ "id INTEGER PRIMARY KEY,"
|
|
|
+ "mode INTEGER,"
|
|
|
+ "name TEXT,"
|
|
|
+ "server TEXT,"
|
|
|
+ "port TEXT,"
|
|
|
+ "cid TEXT,"
|
|
|
+ "user TEXT,"
|
|
|
+ "password TEXT,"
|
|
|
+ "cert TEXT);", table);
|
|
|
+ r = sqlite3_exec(db, temp, 0, 0, &errmsg);
|
|
|
+ if(r!=SQLITE_OK) {
|
|
|
+ log_e("___ %s create failed, %s\n%s\n", table, temp, errmsg); sqlite3_free(errmsg);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+#ifdef MQTT_SERVER_BUILTIN
|
|
|
+ extern mqtt_info_t DFLT_MQTT;
|
|
|
+ dev_mqtt_update_info(db, &DFLT_MQTT);
|
|
|
+#endif
|
|
|
+ }
|
|
|
+
|
|
|
+ r = dev_mqtt_get(db, info);
|
|
|
+#endif
|
|
|
+
|
|
|
+ return r;
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
int dev_mqtt_update_ser(sqlite3 *db, mqtt_server_t *ser)
|
|
|
{
|
|
|
@@ -4610,14 +4640,14 @@ int dev_sql_set_overwrite(int flag)
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
-const char *tabName[TAB_ID_MAX]={
|
|
|
+const char *tabNamePool[TAB_ID_MAX]={
|
|
|
"Table_NTPManage",
|
|
|
"Table_Userinfo",
|
|
|
"Table_AlarmManage",
|
|
|
"Table_RoleInfo",
|
|
|
"Table_GroupManage",
|
|
|
"Table_SNMPManage",
|
|
|
- "Table_SMTPManage",
|
|
|
+ "Table_MAILManage",
|
|
|
"Table_MQTTManage",
|
|
|
"Table_ChnTimerManage",
|
|
|
"Table_PowerManage"
|
|
|
@@ -4633,38 +4663,263 @@ const char *tabName[TAB_ID_MAX]={
|
|
|
|
|
|
};
|
|
|
|
|
|
-
|
|
|
-void* dev_sql_export(int tab_id, void *data, uint32_t time_s, uint32_t time_e, int *cnt)
|
|
|
+static int sql_requery(sqlite3 *db, int tab_id, char *condition, void *data, int *cnt)
|
|
|
{
|
|
|
- char temp[1024];
|
|
|
+ int r=-1;
|
|
|
+ char *p,temp[1024];
|
|
|
+ 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);
|
|
|
+
|
|
|
+ r = sqlite3_prepare_v2(db, temp, -1, &stmt, 0);
|
|
|
+ if (r != SQLITE_OK) {
|
|
|
+ log_e("___mqtt_load, sqlite3_prepare_v2 failed\n");
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
|
|
|
+ while (sqlite3_step(stmt) == SQLITE_ROW) {
|
|
|
+ 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);
|
|
|
+
|
|
|
+ p = (char*)sqlite3_column_text(stmt, 3);
|
|
|
+ if(p) strcpy(ser[idx].server, p);
|
|
|
+
|
|
|
+ p = (char*)sqlite3_column_text(stmt, 4);
|
|
|
+ if(p) strcpy(ser[idx].port, p);
|
|
|
+
|
|
|
+ p = (char*)sqlite3_column_text(stmt, 5);
|
|
|
+ if(p) strcpy(ser[idx].cid, p);
|
|
|
+
|
|
|
+ p = (char*)sqlite3_column_text(stmt, 6);
|
|
|
+ if(p) strcpy(ser[idx].user, p);
|
|
|
+
|
|
|
+ p = (char*)sqlite3_column_text(stmt, 7);
|
|
|
+ if(p) strcpy(ser[idx].password, p);
|
|
|
+
|
|
|
+ p = (char*)sqlite3_column_text(stmt, 8);
|
|
|
+ if(p) strcpy(ser[idx].cert, p);
|
|
|
+
|
|
|
+ idx++;
|
|
|
+ if(idx>=MQTT_SER_MAX) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sqlite3_finalize(stmt);
|
|
|
+
|
|
|
+ }
|
|
|
+ else if(tab_id==TAB_ID_POWER3_INFO) {
|
|
|
+ //
|
|
|
+ }
|
|
|
+
|
|
|
+ return r;
|
|
|
+}
|
|
|
+int dev_data_xport(sqlite3 *db, int tab_id, int io_type, uint32_t time_s, uint32_t time_e, void *data, int *cnt)
|
|
|
+{
|
|
|
+ int i,r=-1;
|
|
|
+
|
|
|
+ if(tab_id<TAB_ID_NTP || tab_id>=TAB_ID_MAX || io_type<0 || io_type>=IO_MAX || !data || !cnt) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ *cnt = 1;
|
|
|
switch(tab_id) {
|
|
|
+ case TAB_ID_NTP:
|
|
|
+ {
|
|
|
+ if(io_type==IO_IMPORT) {
|
|
|
+ r = dev_update_ntp_info(db, 0, (NTPManager*)data);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ r = dev_get_ntp_info(db, (NTPManager*)data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case TAB_ID_USER:
|
|
|
+ {
|
|
|
+ if(io_type==IO_IMPORT) {
|
|
|
+ r = dev_update_user_info(db, (UserInfo*)data);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ r = dev_get_user_info(db, (UserInfo*)data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case TAB_ID_ROLE:
|
|
|
+ {
|
|
|
+ if(io_type==IO_IMPORT) {
|
|
|
+ r = dev_update_role_info(db, (RoleInfo*)data);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ r = dev_get_role_info(db, (RoleInfo*)data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case TAB_ID_GROUP:
|
|
|
+ {
|
|
|
+ if(io_type==IO_IMPORT) {
|
|
|
+ r = dev_update_group_info(db, (GroupInfo*)data);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ r = dev_get_group_info(db, (GroupInfo*)data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case TAB_ID_SNMP:
|
|
|
+ {
|
|
|
+ if(io_type==IO_IMPORT) {
|
|
|
+ r = dev_update_snmp_info(db, 0, (SNMPManager*)data);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ r = dev_get_snmp_info(db, (SNMPManager*)data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ r = dev_mail_get(db, info);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case TAB_ID_MQTT:
|
|
|
+ {
|
|
|
+ if(io_type==IO_IMPORT) {
|
|
|
+ r = dev_mqtt_update_info(db, (mqtt_info_t*)data);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ r = dev_mqtt_get(db, (mqtt_info_t*)data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case TAB_ID_TIMER:
|
|
|
+ {
|
|
|
+ if(io_type==IO_IMPORT) {
|
|
|
+ r = dev_update_ntp_info(db, 0, (NTPManager*)data);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ r = dev_get_ntp_info(db, (NTPManager*)data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case TAB_ID_POWER:
|
|
|
+ {
|
|
|
+ if(io_type==IO_IMPORT) {
|
|
|
+ //r = dev_update_t_ac_power_manage_info(db, 0, (NTPManager*)data);
|
|
|
+ //dev_update_t_ac_power_manage_over_info(db, 0, (NTPManager*)data);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ //r = dev_get_power_manage_info(db, (NTPManager*)data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case TAB_ID_POWER3:
|
|
|
+ {
|
|
|
+ if(io_type==IO_IMPORT) {
|
|
|
+ //r = dev_update_t_ac_power_manage_info(db, 0, (NTPManager*)data);
|
|
|
+ //dev_update_t_ac_power_manage_over_info(db, 0, (NTPManager*)data);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ //r = dev_get_t_ac_power_manage_info(db, (NTPManager*)data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case TAB_ID_SENSOR:
|
|
|
+ {
|
|
|
+ if(io_type==IO_IMPORT) {
|
|
|
+ //r = dev_update_sensor_genera_manage(db, 0, sensor_id, (NTPManager*)data);
|
|
|
+ //r = dev_update_sensor_over_manage(db, 0, sensor_id, (NTPManager*)data);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ r = dev_get_sensor_manage_info(db, 0, (GlobalSensorManger*)data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case TAB_ID_SENSOR_INFO:
|
|
|
+ {
|
|
|
+ if(io_type==IO_IMPORT) {
|
|
|
+ //r = dev_delete_sensor_info_all();
|
|
|
+ //r = dev_insert_sensor_info(db, );
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ //r = dev_search_sensor_info(db, 0, sensor_id, );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case TAB_ID_BREAKER:
|
|
|
+ {
|
|
|
+ if(io_type==IO_IMPORT) {
|
|
|
+ r = dev_update_breaker_genera_manage(db, 0, (GlobalBreakerManager)data);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ r = dev_get_breaker_manage_info(db, 0, (GlobalBreakerManager)data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
case TAB_ID_LOG_INFO:
|
|
|
{
|
|
|
- //
|
|
|
+ if(io_type==IO_EXPORT) {
|
|
|
+ //r = dev_get_ntp_info(db, (NTPManager*)data);
|
|
|
+ }
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case TAB_ID_ALARM_INFO:
|
|
|
{
|
|
|
- //
|
|
|
+ if(io_type==IO_EXPORT) {
|
|
|
+ //r = dev_search_alarm_info(db, (NTPManager*)data);
|
|
|
+ }
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case TAB_ID_POWER_INFO:
|
|
|
{
|
|
|
- //
|
|
|
+ if(io_type==IO_EXPORT) {
|
|
|
+ //r = dev_search_time_power_info(db, 0, ch_id, 00, (GlobalPowerInfo*)data, "start", "end");
|
|
|
+ }
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case TAB_ID_POWER3_INFO:
|
|
|
{
|
|
|
- //
|
|
|
+ if(io_type==IO_EXPORT) {
|
|
|
+ //r = dev_search_time_t_ac_power_info(db, 0, ch_id, 00, (GlobalPowerInfo*)data, "start", "end");
|
|
|
+ }
|
|
|
}
|
|
|
break;
|
|
|
-
|
|
|
- default:
|
|
|
- return NULL;
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
|
@@ -4672,4 +4927,3 @@ void* dev_sql_export(int tab_id, void *data, uint32_t time_s, uint32_t time_e, i
|
|
|
|
|
|
|
|
|
|
|
|
-
|