* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-04-04 15:13:51\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-07 10:04:54\r
+ * @LastEditTime: 2024-04-09 20:22:12\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/MainStopWatchView.h\r
*/\r
#ifndef MAIN_STOPWATCH_VIEW_H\r
bool ChangeStopWatchRecordCycleLimit(int16_t thisView);\r
bool ChangeMainStopWatchRecordTimeLimit(int16_t thisView);\r
UILabelExt *GetShowTimelabel(void);\r
+ UICheckBox *GetPlayOrPausecheckBox(void);\r
+ void ChangeRecordTimeToLimitView(void);\r
private:\r
void InitMainStopWatchView(void);\r
void ClearAll(void);\r
// 声明定时器变量\r
static osTimerId_t g_timer = NULL;\r
static int g_StopWatchTimes = {0};\r
- static constexpr int32 NUM_TEN = 10;\r
+ static constexpr int32 NUM_TEN = 10; // 主要用于格式化输出,当小时、分钟或秒小于10时,在其前面添加一个’0’以保持常规时间格式\r
static constexpr int16 ERROR = 0;\r
static constexpr int16 SUCCESS = 1;\r
static constexpr int16 NUM_TIME_MIN = 60;\r
static constexpr int16 NUM_TIME_HOUR = 3600;\r
static constexpr int32 NUM_TIME_DAY = 86400;\r
- static uint64_t g_timerStartTimestamp = 0; // 添加一个全局变量来存储定时器开始的时间戳\r
+ static constexpr int32 MAX_NUM_TIME = (99 * 60 * 1000) + (59 * 1000) + 990; // 99分59秒990毫秒\r
+ static uint64_t g_timerStartTimestamp = 0; // 添加一个全局变量来存储定时器开始的时间戳\r
/*\r
* @brief 显示倒计时(分钟、秒、毫秒),毫秒显示为两位数\r
*/\r
return;\r
}\r
\r
- MainStopWatchView::GetInstance()->GetShowTimelabel()->SetText(StopWatchModel::GetInstance()->DisplayStopWatchDuration());\r
+ if ((g_StopWatchTimes) >= MAX_NUM_TIME) // 5999990 = 99分59秒99的毫秒数\r
+ {\r
+ MainStopWatchView::GetInstance()->GetPlayOrPausecheckBox()->SetState(UICheckBox::UNSELECTED);\r
+ MainStopWatchView::GetInstance()->ChangeRecordTimeToLimitView();\r
+ }\r
+ else\r
+ {\r
+ MainStopWatchView::GetInstance()->GetShowTimelabel()->SetText(StopWatchModel::GetInstance()->DisplayStopWatchDuration());\r
+ }\r
}\r
\r
/*\r
*/\r
static void StopWatch_TimerCallback(int data)\r
{\r
-#if 0\r
- uint64_t currentTimestamp = GetCurrentTimestamp();\r
- if ((currentTimestamp - g_timerStartTimestamp) >= 5999990) // 99分59秒99的毫秒数\r
- {\r
- if (g_timer != NULL)\r
- {\r
- osTimerStop(g_timer); // 停止定时器\r
- osTimerDelete(g_timer); // 删除定时器\r
- g_timer = NULL;\r
- g_timerStartTimestamp = 0; // 重置时间戳\r
- // 可以在这里添加额外的逻辑,比如更新界面显示等\r
- }\r
- }\r
- else\r
- {\r
- GraphicService::GetInstance()->PostGraphicEvent(std::bind(StopWatch_TimerCallbackProc, data));\r
- }\r
-#endif\r
GraphicService::GetInstance()->PostGraphicEvent(std::bind(StopWatch_TimerCallbackProc, data));\r
}\r
\r
int tick = osMs2Tick(interval);\r
\r
/* --------------------------------- 4.启动定时器 -------------------------------- */\r
- //g_timerStartTimestamp = GetCurrentTimestamp(); // 假设GetCurrentTimestamp()是获取当前时间戳的函数\r
+ // g_timerStartTimestamp = GetCurrentTimestamp(); // 假设GetCurrentTimestamp()是获取当前时间戳的函数\r
osStatus_t ret = osTimerStart(g_timer, tick);\r
/* -------------------- 5.检查定时器启动是否成功,如果启动失败,删除定时器并置为 NULL -------------------- */\r
if (ret != osOK)\r