Browse Source

IP 增加全重启,全恢复出厂设置

liyi 1 year ago
parent
commit
1fafe17549
2 changed files with 34 additions and 2 deletions
  1. 34 0
      ip/src/appweb_handle.c
  2. 0 2
      ip/src/cascade.c

+ 34 - 0
ip/src/appweb_handle.c

@@ -5172,6 +5172,40 @@ static void equipmentMintenance(void *conn)
           dev_sql_VACCUM(__globalDeviceManage.db);
           log_i("Database SQLite VACCUM!\n");
           ack_str=ctrl_sts_ack_to_json();
+    }else if(strcmp(_Over_equipment_mintenance.type,"restartAll") == 0)
+    {
+        char temp[100];
+        sprintf(temp, "System reboot all device!!");
+        cmd_data_t cmd = {0};
+            
+        dev_insert_alarm_ctrl(__globalDeviceManage.db,__globalDeviceManage._globalDevInfo.product_id, 3, temp);
+        cmd.cmd = CASCADE_CMD_REBOOT;
+        cmd.obj = OBJ_CHANNEL;
+        cmd.chId = 0;
+        cascade_request_saddr(&cmd,0,0);
+        sqlite3_close(__globalDeviceManage.db);
+        sys_reboot();
+    }else if(strcmp(_Over_equipment_mintenance.type,"restoreAll") == 0)
+    {
+
+            char temp[100];
+            sprintf(temp, "Factory reset all device!");
+            dev_insert_alarm_ctrl(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, 3, temp);
+            cmd_data_t cmd = {0};
+            cmd.cmd = CASCADE_CMD_RECOVERY;
+            cmd.obj = OBJ_CHANNEL;
+            cmd.chId = 0;
+            cascade_request_saddr(&cmd,0,0);
+
+            for (size_t i = 0; i < MAX_CHN_COUNT; i++)
+            {
+                if (__globalDeviceManage._all_ctrl_board[i].product_saddr <= 0)
+                {
+                    continue;
+                }
+                g_switch_get_all_reset(&__globalDeviceManage._globalRelaySampManger,__globalDeviceManage._all_ctrl_board[i].product_type,__globalDeviceManage._all_ctrl_board[i].product_saddr);
+            }
+            sys_set_factory();
     }
 
     cJSON_Delete(cjson);

+ 0 - 2
ip/src/cascade.c

@@ -1455,8 +1455,6 @@ static int master_cmd_addr(cascade_handle_t *cas, cmd_data_t *cmd,int saddr,int
     int i,r;
     GlobalDeviceManager *dm=get_dm();
     data_t rdata,wdata;
-    if(saddr == 0)
-        return -1;
     switch(cmd->cmd) {
         case CASCADE_CMD_GET_INFO:
         {