关机接口统一修改
authorhcj <1224667075@qq.com>
Fri, 15 Nov 2024 02:44:21 +0000 (10:44 +0800)
committerhcj <1224667075@qq.com>
Fri, 15 Nov 2024 02:44:21 +0000 (10:44 +0800)
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/RebootAndShutdownPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/rebootandshutdown/src/ShutDownImageAnimatorView.cpp
code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp
code/sdk/application/wearable/nativeapp/nativeui/rebootdevice/src/RebootPresenter.cpp
code/sdk/application/wearable/service/msg_center/src/notify/charge_notification.cpp
code/sdk/drivers/peripheral/utils/custom_utils.c
code/sdk/drivers/peripheral/utils/custom_utils.h

index 3b057c6..2a5597b 100644 (file)
@@ -99,8 +99,7 @@ namespace OHOS
         else if (&view == view_->GetButtonEnsure()) // 关机确认
         {
             view_->ChangeView(SHUTDOWNTIPVIEW, SHUTDOWNANIMATOR);
-            start_shutdown_or_reboot();
-            shutdown_reboot_prejobs();
+          
 
             ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(0);
             isShutDownImageAnimatorStart = true;
@@ -157,12 +156,14 @@ namespace OHOS
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RebootAndShutdownPresenter::OnAnimatorStop");
         if (isShutDownOperation == true)
         {
-            uapi_poweroff_device(); // 关机
+            // uapi_poweroff_device(); // 关机
+            shutdown_reboot_prejobs(SHUTDOWN_TYPE);
         }
         else
         {
-            uapi_reboot_device(); // 重启
+           shutdown_reboot_prejobs(REBOOT_TYPE);
         }
+        
     }
 
     void RebootAndShutdownPresenter::OnChange(int32_t value)
index 4eaadf6..d217f99 100644 (file)
@@ -58,10 +58,12 @@ namespace OHOS
         switch (OperationType)
         {
         case 0:
-            uapi_poweroff_device(); // 关机
+            // uapi_poweroff_device(); // 关机
+             shutdown_reboot_prejobs(SHUTDOWN_TYPE);
             break;
         case 1:
-            uapi_reboot_device(); // 重启
+            // uapi_reboot_device(); // 重启
+             shutdown_reboot_prejobs(REBOOT_TYPE);
             break;
         case 2:
             do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING, NULL, 0);
index cf89974..59931d7 100644 (file)
@@ -203,8 +203,6 @@ namespace OHOS
         else if (strcmp(view.GetViewId(), RESTARTVIEW_CHECKON) == 0) // 重启确认\r
         {\r
             p_SystemView->ChangeView(RESTARTVIEW, SHUTDOWNANIMATIONVIEW);\r
-            start_shutdown_or_reboot();\r
-            shutdown_reboot_prejobs();\r
 \r
             ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(1);\r
             isShutDownImageAnimatorStart = true;\r
@@ -218,8 +216,7 @@ namespace OHOS
         else if (strcmp(view.GetViewId(), SHUTDOWN_CHECKON) == 0) // 关机确认\r
         {\r
             p_SystemView->ChangeView(SHUTDOWNVIEW, SHUTDOWNANIMATIONVIEW);\r
-            start_shutdown_or_reboot();\r
-            shutdown_reboot_prejobs();\r
+        \r
 \r
             ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(0);\r
             isShutDownImageAnimatorStart = true;\r
index 09ca5b9..df2f52c 100755 (executable)
@@ -55,12 +55,14 @@ bool RebootPresenter::OnClick(UIView& view, const ClickEvent& event)
         // 重启
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "REBOOTDEVICE_BUTTON OnClick");
         //GetPMSDefaultInterface()->RebootDevice(NULL, NULL);
-        uapi_reboot_device();
+        // uapi_reboot_device();
+        shutdown_reboot_prejobs(REBOOT_TYPE);
     } else if (strcmp(view.GetViewId(), SHUTDOWNDEVICE_BUTTON) == 0) {
         // 关机
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SHUTDOWNDEVICE_BUTTON OnClick");
         //GetPMSDefaultInterface()->ShutDownDevice(NULL, NULL);
-        uapi_poweroff_device();
+        // uapi_poweroff_device();
+         shutdown_reboot_prejobs(SHUTDOWN_TYPE);
     }
     return true;
 }
index 5931d70..70d641f 100644 (file)
@@ -463,8 +463,8 @@ namespace OHOS
         }
         ShutDownImageAnimatorView->Start();
         set_lowpower_show(1,0);
-        start_shutdown_or_reboot();
-        shutdown_reboot_prejobs();
+
+
         
     }
 
@@ -579,8 +579,7 @@ namespace OHOS
             group->SetVisible(true);
             ShutDownImageAnimatorView->Start();
             ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 关机动画已经开始了不能息屏
-            start_shutdown_or_reboot();
-            shutdown_reboot_prejobs();
+
         }
 
         NotificationManager::GetInstance()->RegisterNotifyCleanupFunction(FreelowPower);
@@ -636,9 +635,10 @@ namespace OHOS
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "xxxxxxxxxxxxxxxxxxxxOnAnimatorStop");
 
         if(battery_falg==4)
-        uapi_reboot_device();
+        shutdown_reboot_prejobs(REBOOT_TYPE);
         else
-        uapi_poweroff_device(); // 关机 
+        shutdown_reboot_prejobs(SHUTDOWN_TYPE);
+        // uapi_poweroff_device(); // 关机 
 
        
 
index b093273..c0ed150 100644 (file)
@@ -27,6 +27,7 @@
 #include <stdint.h>
 #include "pm_veto.h"
 // #include "config/include/ConfigModelC.h"
+#include "upg_porting.h"
 
 #ifdef SUPPORT_TCPIP
 #include "lwip/tcpip.h"
@@ -244,7 +245,7 @@ void uapi_reboot_device(void)
     uapi_calendar_store_date();
     //重启保存
     stop_report_log();
-//   mcu_os_sys_reset(NULL,NULL);
+    //   mcu_os_sys_reset(NULL,NULL);
     osDelay(50);
     //同步nand文件系统,重启mount速度快
     reset_deal_with_fs();
@@ -262,9 +263,11 @@ void uapi_save_time_of_day(void)
     timeinfo = localtime(&rawtime);
     uapi_save_file_data("user/userdata/timestamp_of_day.bin",&timeinfo->tm_mday,1,"wb");
 }
+static uint8_t doing_shutdown_type = 0;
 
 void shutdown_reboot_prejobs_task(void)
 {
+    // printf();
     C_ScheduleDataWriteToFile(); //同步的时候进行保存
     // mmi_sleep_mode_switch_write();//不需要保存
 
@@ -296,13 +299,43 @@ void shutdown_reboot_prejobs_task(void)
     send_battery_svr_cmd_msg(BATTERY_CMD_SAVE_PERCENT);
 
     //重启前要保存时间
-    uapi_calendar_store_date();
+   
+
+   
+    if(doing_shutdown_type==UPDATE_TYPE)
+    {
+        uapi_calendar_store_date();
+
+        osDelay(50);
+        //同步nand文件系统,重启mount速度快
+        reset_deal_with_fs();
+        osDelay(50);
+        //
+        printf("doing_shutdown_type = UPDATE_TYPE upg_reboot\r\n");
+
+        upg_reboot();
+    }
+    else if(doing_shutdown_type==SHUTDOWN_TYPE)
+    {
+
+        uapi_poweroff_device();
+    }
+    else if(doing_shutdown_type==REBOOT_TYPE)
+    {
+        uapi_reboot_device();
+    }
+
     
 }
-static bool doing_shutdown_or_reboot = false;
-void shutdown_reboot_prejobs(void)
+
+
+void shutdown_reboot_prejobs(uint8_t type)
 {
     PRINT("shutdown_reboot_prejobs !\r\n");
+
+    start_shutdown_or_reboot(type);
+    
+
     app_task_definition_t taskcfg={0};
     taskcfg.create_queue_handle = NULL;
     taskcfg.attr.name="shutdown_reboot_prejobs";
@@ -318,14 +351,14 @@ void shutdown_reboot_prejobs(void)
         
     }
 }
-void start_shutdown_or_reboot(void)
+void start_shutdown_or_reboot(uint8_t type)
 {
-    doing_shutdown_or_reboot = true;
+    doing_shutdown_type = type;
 }
 
-bool is_doing_shutdown_or_reboot(void)
+uint8_t is_doing_shutdown_or_reboot(void)
 {
-    return doing_shutdown_or_reboot;
+    return doing_shutdown_type;
 }
 
 
@@ -555,17 +588,20 @@ errcode_t uaip_cmd_update_request(void)
     } else {
         printf("uapi_upg_request_upgrade OK!!\r\n");
         /* app中下载后直接开始升级流程,升级流程结束后重启 */
-        uapi_calendar_store_date();
+        // uapi_calendar_store_date();
 
         update_version_report_log();//版本升级记录
 
+        shutdown_reboot_prejobs(UPDATE_TYPE);
+
+
         //重启前要保存时间
-        uapi_calendar_store_date();
-        osDelay(50);
-        reset_deal_with_fs();
-        osDelay(50);
+        // uapi_calendar_store_date();
+        // osDelay(50);
+        // reset_deal_with_fs();
+        // osDelay(50);
         /* IOT设备重启 */
-        upg_reboot();
+       
     }
     return ret;
 }
index fdcf518..1ca2264 100644 (file)
@@ -35,6 +35,14 @@ extern "C" {
 
 #define OPEN_SCREEN_ALWAYS_ON 1   //屏幕常亮
 #define CANCEL_SCREEN_ALWAYS_ON 0 //取消屏幕常亮
+// reboot
+typedef enum {
+    SHUTDOWN_TYPE,
+    REBOOT_TYPE,
+    UPDATE_TYPE,
+} DONING_SHUTDOWN_TYPE;
+
+
 
 uint32_t zh_get_sn(uint8_t *buf_sn, uint32_t *len_sn);
 uint32_t zh_set_sn(uint8_t *buf_sn, uint32_t len_sn);
@@ -189,9 +197,11 @@ void flash_erase(void);
 void get_gsensor_single(uint8_t *databuf);
 
 
-void shutdown_reboot_prejobs(void);
-void start_shutdown_or_reboot(void);
-bool is_doing_shutdown_or_reboot(void);
+void shutdown_reboot_prejobs(uint8_t type);
+
+void start_shutdown_or_reboot(uint8_t type);
+
+uint8_t is_doing_shutdown_or_reboot(void);