回退海思时间修改
author袁清梦 <3449750381@qq.com>
Wed, 11 Dec 2024 12:52:08 +0000 (12:52 +0000)
committer袁清梦 <3449750381@qq.com>
Wed, 11 Dec 2024 12:52:08 +0000 (12:52 +0000)
  - 系统:回退海思时间修改

  - 表盘:增加恢复出厂进行表盘暂停

code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialViewGroup.cpp
code/sdk/drivers/chips/brandy/porting/liteos/riscv70/tick_timer.c
code/sdk/drivers/peripheral/utils/custom_runtime.c
code/sdk/drivers/peripheral/utils/custom_runtime.h
code/sdk/drivers/peripheral/utils/custom_utils.c

index 762de71..b77881e 100644 (file)
@@ -624,7 +624,7 @@ void DialViewGroup::UpdateViewsByPeriodicUpdateData() {
     Invalidate();
   }
   // ota进行视频暂停
-  if (uapi_dev_runtime_get_transmitting_status() == 1) {
+  if (uapi_dev_runtime_get_transmitting_status() == 1 || uapi_dev_runtime_get_restore_factory_status() == 1 ) {
     //暂停视频
     StopDial();
   } else {
index 73d4fbd..9e9712c 100755 (executable)
@@ -120,17 +120,48 @@ void HalDelayUs(unsigned usecs)
     }
 }
 
+#ifdef SUPPORT_RC_CALIBRATION
+volatile uint64_t g_pre_count = 0;
+volatile double g_pre_msec = 0;
+#endif
+
 uint64_t HalClockGetCycles(void)
 {
+#ifdef SUPPORT_RC_CALIBRATION
+    volatile double tick_count;
+#else
     uint64_t tick_count;
+#endif
     uint64_t cycle;
     uint32_t lock_int_save;
     uint32_t load_tick;
+#ifdef SUPPORT_RC_CALIBRATION
+    volatile double msec;
+    volatile uint64_t now_count;
+#endif
 
     lock_int_save = LOS_IntLock();
+
+#ifdef SUPPORT_RC_CALIBRATION
+    if (g_pre_count == 0) {
+        tick_count = (uapi_systick_get_count() * OS_SYS_MS_PER_SECOND) / CLOCK_32K_CALI_FREQ;
+        g_pre_count = uapi_systick_get_count();
+        g_pre_msec = tick_count;
+    } else {
+        now_count = uapi_systick_get_count();
+        msec = (double)((now_count - g_pre_count) * OS_SYS_MS_PER_SECOND) / CLOCK_32K_CALI_FREQ;
+        tick_count = g_pre_msec + msec;
+
+        g_pre_count = now_count;
+        g_pre_msec = tick_count;
+    }
+#else
     tick_count = uapi_systick_get_ms();
+#endif
+
     load_tick = machine_timer_get_load_count();
     cycle = (uint64_t)(tick_count * load_tick);
+
     LOS_IntRestore(lock_int_save);
     return cycle;
 }
index 94d95fa..04e1656 100644 (file)
@@ -87,6 +87,7 @@ typedef struct
     uint8_t repair_download_status;//升级下载状态
     uint8_t hrs_passivity_status;//获取被动心率检测状态
     uint8_t mmc_status; //是否为指南针页面
+    uint8_t is_factory_status;//是否恢复出厂
     //读写锁
     uint8_t rwlock_status;//手表状态(存储)
     uint8_t lock_flag_training;//训练
@@ -640,3 +641,11 @@ uint8_t uapi_dev_runtime_get_wear_status_flag(void)
 {
     return g_runtime.wear_status;
 }
+// 设置是否为恢复出厂
+void uapi_dev_runtime_set_restore_factory_status(uint8_t status) {
+  g_runtime.is_factory_status = status;
+}
+// 获取是否为恢复出厂
+uint8_t uapi_dev_runtime_get_restore_factory_status(void) {
+  return g_runtime.is_factory_status;
+}
index ba4028c..147df7a 100644 (file)
@@ -304,6 +304,11 @@ void uapi_dev_runtime_set_wear_status(uint8_t status);
 // 获取是否为佩戴状态
 uint8_t uapi_dev_runtime_get_wear_status_flag(void);
 
+// 设置是否为恢复出厂
+void uapi_dev_runtime_set_restore_factory_status(uint8_t status);
+// 获取是否为恢复出厂
+uint8_t uapi_dev_runtime_get_restore_factory_status(void);
+
 void uapi_dev_runtime_set_transmitting_status(uint8_t data);
 
 uint8_t uapi_dev_runtime_get_transmitting_status(void);
index e049c50..7843762 100644 (file)
@@ -2238,6 +2238,8 @@ int uapi_save_exc(void)
 //恢复出厂接口
 void uapi_restore_factory_setting(void)
 {
+    uapi_dev_runtime_set_restore_factory_status(1);
+
     //恢复存储
     resume_report_log();