else if (&view == view_->GetButtonEnsure()) // 关机确认
{
view_->ChangeView(SHUTDOWNTIPVIEW, SHUTDOWNANIMATOR);
- start_shutdown_or_reboot();
- shutdown_reboot_prejobs();
+
ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(0);
isShutDownImageAnimatorStart = true;
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)
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);
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
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
// 重启
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;
}
}
ShutDownImageAnimatorView->Start();
set_lowpower_show(1,0);
- start_shutdown_or_reboot();
- shutdown_reboot_prejobs();
+
+
}
group->SetVisible(true);
ShutDownImageAnimatorView->Start();
ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 关机动画已经开始了不能息屏
- start_shutdown_or_reboot();
- shutdown_reboot_prejobs();
+
}
NotificationManager::GetInstance()->RegisterNotifyCleanupFunction(FreelowPower);
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(); // 关机
#include <stdint.h>
#include "pm_veto.h"
// #include "config/include/ConfigModelC.h"
+#include "upg_porting.h"
#ifdef SUPPORT_TCPIP
#include "lwip/tcpip.h"
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();
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();//不需要保存
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";
}
}
-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;
}
} 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;
}
#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);
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);