From fc4ecabe6c7f3eb05ad6c98342ef2ad6c537a488 Mon Sep 17 00:00:00 2001 From: Caisking Date: Tue, 7 Apr 2026 15:01:05 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0GPS=E7=82=B9=E4=BD=8D=E7=9A=84?= =?utf8?q?=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/traing/src/TraingModel.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp index 9dfe12d46..257d8216b 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp @@ -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()); -- 2.17.1