// 清理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();
}
// 启动运动相关资源
*/
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();
}
// 执行清理工作
- do_gps_stop_cleanup();
+ // do_gps_stop_cleanup();
+ // 设置停止标志
+ g_pgnss_stopflag = 1;
g_stop_wait_count = 0;
return;
}
}
// 强制执行清理工作
+
do_gps_stop_cleanup();
+ // 设置停止标志
+ g_pgnss_stopflag = 1;
g_stop_wait_count = 0;
}
}
// 如果数据监听已经停止,直接执行清理
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;
}
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;
}
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;
}
#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);