/* 定时器回调函数 */
void TraingTimerCallback(void) {
// 只在活动状态下进行更新
- if (!isPaused) {
if (pauseStartTimestamp == 0) {
//开始时将该值设置为运动开始值
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "触发了振动。振动计数: %d",
shock_count);
}
- }
+
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "TraingTimerCallback 被执行。");
}
/* 暂停定时器 */
void PauseTimer(void) {
- if (g_startCounting != NULL && !isPaused) {
+ if (g_startCounting != NULL) {
osTimerStop(g_startCounting);
totalPausedDuration = sportdata->duration; //记录暂停前的时间;后续加上
- isPaused = true; // 设置为暂停状态
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "定时器已暂停。暂停开始时间戳: %u",
pauseStartTimestamp);
}
/* 恢复定时器 */
void ResumeTimer(void) {
- if (g_startCounting != NULL && isPaused) {
+ if (g_startCounting != NULL) {
uint32_t currentTimestamp =
OHOS::TraingModel::GetInstance()->get_current_time(); // 获取当前时间戳
if (osTimerStart(g_startCounting, tick) != osOK) {
LogError("恢复定时器时启动失败", osError);
}
- isPaused = false; // 设置为活动状态
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "定时器已恢复。当前运动时间: %u %d",
g_motionTimes, pauseStartTimestamp);