增加GPS点位的限制 3335/2 3335/head 3337/target/1
authorCaisking <Casiking@zhihuishixun.com>
Tue, 7 Apr 2026 07:01:05 +0000 (15:01 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Tue, 7 Apr 2026 07:01:05 +0000 (15:01 +0800)
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp

index 9dfe12d..257d821 100644 (file)
@@ -45,6 +45,7 @@
  #endif
  
  #define SPORT_TIMER_DATA 1
+ #define MIN_CANVAS_POINTS 10
  
  #include "broadcast_feature.h"
  #include "broadcast_service.h"
@@ -2986,8 +2987,10 @@ uint32_t TraingModel::CalculateDistanceFromGPSTrack(void) {
                    point.longitude);
    }
  
-   if (canvasData.size() == 0) {
-     WEARABLE_LOGE(WEARING_LOG_MODULE_APP, "canvasData is empty");
+   if (canvasData.size() < MIN_CANVAS_POINTS) {
+     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "canvasData is less than MIN_CANVAS_POINTS");
+     gpsData.clear();
+     canvasData.clear();
      return false;
    }
  
@@ -3088,9 +3091,15 @@ uint32_t TraingModel::CalculateDistanceFromGPSTrack(void) {
                    "GPS Data: Latitude = %f, Longitude = %f", point.`latitude,
                    point.longitude);
    }
+   //进行gps数据校验
+   if (gpsData.size() < MIN_GPS_POINTS) {
+     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gpsData is less than MIN_GPS_POINTS");
+     gpsData.clear();
+     return false;
+   }
+
    CreateDirectoryIfNotExists(TRAINING_GPS_FILE);
-   std::string filePath =
-       TRAINING_GPS_FILE + std::to_string(sportdata->starttime) + ".bin";
+   std::string filePath = TRAINING_GPS_FILE + std::to_string(sportdata->starttime) + ".bin";
    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveGPSData filePath: %s",
                  filePath.c_str());