减小GPS打点频率
authorCaisking <Casiking@zhihuishixun.com>
Mon, 19 Jan 2026 02:04:49 +0000 (10:04 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Mon, 19 Jan 2026 02:04:49 +0000 (10:04 +0800)
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/include/TraingModel.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingNomalPresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TraingCardPresenter.cpp

index 11d7b2a..2527867 100644 (file)
@@ -394,7 +394,7 @@ public:
   //运动心率、gps关闭
   void stop_heart_gps();
   ///////////////////////////////////////////////
-  void gnss_start_timer(uint32_t interval = 1 * 1000); // 1s定时器
+  void gnss_start_timer(uint32_t interval = 2 * 1000); // 2s定时器(GPS打点频率)
   void gnss_stop_timer(void);
   void sport_start_data_timer(uint32_t interval = 1 * 1000);
   void sport_stop_data_timer();
index 8e6eb48..3c02823 100644 (file)
@@ -3113,11 +3113,13 @@ bool TraingModel::LoadGPSData(const std::string &filePath) {
  /*
   * 位置服务定时器说明:
   * - 功能:负责获取GPS定位数据,更新GPS连接状态,添加经纬度数据
-  * - 频率:1秒间隔,保证位置数据的实时性
+  * - 频率:2秒间隔(GPS打点频率),平衡精度与功耗
+  *   * 2秒频率的优势:比1秒节省约50%电量,轨迹精度足够(跑步/骑行等运动)
+  *   * 参考:专业运动手表通常使用1-2秒频率,消费级手表2-5秒
   * - 触发条件:仅在训练进行中且训练状态非结束时执行
   */
  static osTimerId_t g_location_timer = nullptr;
- static int location_timer_interval = 1; // 位置数据获取间隔,单位秒
+ static int location_timer_interval = 2; // 位置数据获取间隔,单位秒(GPS打点频率)
  static int gps_timer_count = 0;
  
  /*位置服务定时器到期时的处理*/
index 80603d3..48bcec3 100644 (file)
@@ -68,8 +68,8 @@ namespace OHOS
         if(TraingModel::GetInstance()->IsNeedGPS(TraingModel::GetInstance()->GetSportEvent()) == true)\r
         {\r
         #if defined(SUPPORT_GNSS)\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "开启gps定时器");\r
-            TraingModel::GetInstance()->gnss_start_timer(1000);\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "开启gps定时器,频率:2秒/点");\r
+            TraingModel::GetInstance()->gnss_start_timer(2 * 1000); // 2秒一个GPS点\r
         #endif\r
         }\r
     }\r
index 744cd8a..49b809f 100644 (file)
@@ -647,8 +647,8 @@ bool TraingCardPresenter::OnDragEnd(UIView &view, const DragEvent &event) {
    //开启心率\r
    TraingModel::GetInstance()->start_training_heart();\r
  #if defined(SUPPORT_GNSS)\r
-   WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "开启gps定时器");\r
-   TraingModel::GetInstance()->gnss_start_timer(1000);\r
+   WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "开启gps定时器,频率:2秒/点");\r
+   TraingModel::GetInstance()->gnss_start_timer(2 * 1000); // 2秒一个GPS点\r
  #endif\r
    // 快捷训练都属于健身类\r
    TraingModel::GetInstance()->SetSportType(Exercisetype::FITNESS);\r