From a1bbc34e6807ebf860554e8612592d9f10711b05 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Tue, 7 Apr 2026 14:40:34 +0800 Subject: [PATCH] =?utf8?q?GPS=20gnss=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/traing/src/TraingModel.cpp | 2 +- .../traing/src/TraingNomalPresenter.cpp | 4 ++-- .../gnss/sample/pgnss_sample/pgnss_sample.c | 24 +++++++++++++------ 3 files changed, 20 insertions(+), 10 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 4d49fb964..9dfe12d46 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 @@ -884,8 +884,8 @@ void TraingModel::SetSportdata(SportData *data) { Startstate = false; Endstate = true; - stop_heart_gps(); // 停止心率和gps数据采集 gnss_stop_timer(); // 停止gps定时器 + stop_heart_gps(); // 停止心率和gps数据采集 #if 0 // 重置训练目标 [发生在训练前] diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingNomalPresenter.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingNomalPresenter.cpp index 53a5a3a2b..23d9e2b9f 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingNomalPresenter.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingNomalPresenter.cpp @@ -160,12 +160,12 @@ namespace OHOS // 清理GPS和心率相关资源 void TraingNomalPresenter::CleanupGPSResources() { - // 关闭心率 - TraingModel::GetInstance()->stop_heart_gps(); #if defined(SUPPORT_GNSS) // 关闭gps定时器 TraingModel::GetInstance()->gnss_stop_timer(); #endif + // 关闭心率 + TraingModel::GetInstance()->stop_heart_gps(); } // 启动运动相关资源 diff --git a/code/sdk/zhihui/services/gnss/sample/pgnss_sample/pgnss_sample.c b/code/sdk/zhihui/services/gnss/sample/pgnss_sample/pgnss_sample.c index d8c583ca8..ac3071593 100644 --- a/code/sdk/zhihui/services/gnss/sample/pgnss_sample/pgnss_sample.c +++ b/code/sdk/zhihui/services/gnss/sample/pgnss_sample/pgnss_sample.c @@ -683,9 +683,6 @@ static void ListenGnssData(tiot_handle handle) */ static void do_gps_stop_cleanup(void) { - // 设置停止标志 - g_pgnss_stopflag = 1; - // 如果当前正在下载星历,关闭下载服务 printf("PGnssServerStop: Checking and stopping AGNSS download service...\r\n"); uapi_gnss_http_server_deinit(); @@ -726,7 +723,9 @@ static void gps_stop_wait_timer_callback(int data) } // 执行清理工作 - do_gps_stop_cleanup(); + // do_gps_stop_cleanup(); + // 设置停止标志 + g_pgnss_stopflag = 1; g_stop_wait_count = 0; return; } @@ -749,7 +748,10 @@ static void gps_stop_wait_timer_callback(int data) } // 强制执行清理工作 + do_gps_stop_cleanup(); + // 设置停止标志 + g_pgnss_stopflag = 1; g_stop_wait_count = 0; } } @@ -767,7 +769,9 @@ void PGnssServerStop(void) // 如果数据监听已经停止,直接执行清理 if (g_is_listening_data == 1) { printf("PGnssServerStop: Data listening already stopped, executing cleanup immediately\r\n"); - do_gps_stop_cleanup(); + // do_gps_stop_cleanup(); + // 设置停止标志 + g_pgnss_stopflag = 1; return; } @@ -786,7 +790,9 @@ void PGnssServerStop(void) osTimerPeriodic, NULL, NULL); if (g_stop_wait_timer == NULL) { printf("PGnssServerStop: Failed to create wait timer, executing cleanup immediately\r\n"); - do_gps_stop_cleanup(); + // do_gps_stop_cleanup(); + // 设置停止标志 + g_pgnss_stopflag = 1; return; } @@ -797,7 +803,9 @@ void PGnssServerStop(void) printf("PGnssServerStop: Failed to start wait timer (ret=%d), executing cleanup immediately\r\n", ret); osTimerDelete(g_stop_wait_timer); g_stop_wait_timer = NULL; - do_gps_stop_cleanup(); + // do_gps_stop_cleanup(); + // 设置停止标志 + g_pgnss_stopflag = 1; return; } @@ -1486,6 +1494,8 @@ void PGnssServerStart(void) #endif printf("finish gnss samples\r\n"); + do_gps_stop_cleanup(); + // 设置停止标志 // 释放pgnss_log内存 // if (pgnss_log != NULL) { // printf("pgnss_log:%s\r\n",pgnss_log); -- 2.17.1