* @Author: luozheng 1732036298@qq.com
* @Date: 2024-07-27 11:22:07
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-27 11:37:32
+ * @LastEditTime: 2024-07-27 13:55:09
* @FilePath: /xts_origin/FD230/code/sdk/application/wearable/fd230app/nativeui/obumessage/include/OBUMessageModel.h
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
public:
static OBUMessageModel &GetInstance(void);
void UpdateOBUMessageViewData(void);
+ void OBUMessage_StartTimer(int interval = 1000);
+ void OBUMessage_StopTimer(void);
private:
OBUMessageModel();
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-07-27 11:22:17
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-27 11:37:26
+ * @LastEditTime: 2024-07-27 14:09:11
* @FilePath: /xts_origin/FD230/code/sdk/application/wearable/fd230app/nativeui/obumessage/src/OBUMessageModel.cpp
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
#include "obumessage/include/OBUMessageModel.h"
#include "obumessage/include/OBUMessagePresenter.h"
#include "wearable_log.h"
-
+#include <cmsis_os2.h>
+#include <cmsis_os.h>
+#include <service/graphic_service.h>
namespace OHOS
{
OBUMessageModel::OBUMessageModel() {}
obuMessagePresenter->UpdateOBUMessageViewData();
}
}
+
+ // 声明定时器变量
+ static osTimerId_t g_timer = NULL;
+
+ /*定时器到期时的处理*/
+ static void OBUMessage_TimerCallbackProc(int data)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessage_TimerCallbackProc");
+ OBUMessageModel::GetInstance().UpdateOBUMessageViewData();
+ }
+
+ /*
+ * @brief 回调函数
+ */
+ static void OBUMessage_TimerCallback(int data)
+ {
+ GraphicService::GetInstance()->PostGraphicEvent(std::bind(OBUMessage_TimerCallbackProc, data));
+ }
+
+ /*
+ * @brief 开启定时器函数
+ * @param interval 时间间隔,单位ms
+ */
+ void OBUMessageModel::OBUMessage_StartTimer(int interval)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OBUMessageViewEventListener::OBUMessage_StartTimer");
+ /* -------------------------- 1.检查定时器是否已经存在,如果存在则返回 ------------------------- */
+ if (g_timer != NULL)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CountDownModel::CountDown_StartTimer Timer already exists!!");
+ return;
+ }
+
+ /* --------------------------------- 2.创建定时器 -------------------------------- */
+ g_timer = osTimerNew((osTimerFunc_t)OBUMessage_TimerCallback, osTimerPeriodic, NULL, NULL);
+ // 检查定时器创建是否成功
+ if (g_timer == NULL)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CountDownModel::CountDown_StartTimer Timer create failed!!");
+ return;
+ }
+
+ /* ----------------------------- 3.将毫秒转换为系统时钟节拍数 ---------------------------- */
+ int tick = osMs2Tick(interval);
+
+ /* --------------------------------- 4.启动定时器 -------------------------------- */
+ osStatus_t ret = osTimerStart(g_timer, tick);
+ /* -------------------- 5.检查定时器启动是否成功,如果启动失败,删除定时器并置为 NULL -------------------- */
+ if (ret != osOK)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CountDown_StartTimer] osTimerDelete failed, ret = %lx!!", ret);
+ if (g_timer != NULL)
+ {
+ ret = osTimerDelete(g_timer);
+ }
+ g_timer = NULL;
+ return;
+ }
+ return;
+ }
+
+ /*
+ * @brief 停止定时器
+ */
+ void OBUMessageModel::OBUMessage_StopTimer(void)
+ {
+ // 检查定时器是否存在
+ if (g_timer != NULL)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OBUMessageViewEventListener::OBUMessage_StopTimer");
+ // 删除定时器并置为 NULL
+ osStatus_t ret = osTimerDelete(g_timer);
+ if (ret != osOK)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "osTimerDelete failed, ret = %lx!!", ret);
+ }
+ g_timer = NULL;
+ }
+ }
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-20 15:11:17
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-27 12:33:15
+ * @LastEditTime: 2024-07-27 13:49:58
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/OBUMessagePresenter.cpp
*/
#include "AppViewIDs.h"
#include "UiConfig.h"
#include "obumessage/include/OBUMessagePresenter.h"
#include "obumessage/include/OBUMessageView.h"
-
+#include "obumessage/include/OBUMessageModel.h"
namespace OHOS
{
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessagePresenter::OnStart");
Presenter<OBUMessageView>::OnStart();
+ OBUMessageModel::GetInstance().OBUMessage_StartTimer();
}
// 页面已经展示后的调用逻辑
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OBUMessagePresenter::OnStop");
Presenter<OBUMessageView>::OnStop();
+ OBUMessageModel::GetInstance().OBUMessage_StopTimer();
}
bool OBUMessagePresenter::OnClick(UIView &view, const ClickEvent &event)
/*
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-05-07 11:25:58
- * @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-07-27 13:29:31
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-07-27 14:06:08
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/obumessage/src/OBUMessageView.cpp
*/
#include "obumessage/include/OBUMessagePresenter.h"
#include "obumessage/include/OBUMessageView.h"
#include "wearable_log.h"
#include "custom_utils.h"
+#include "iostream"
+#include <string>
namespace OHOS
{
displayTimeLabel->SetPosition(83, 0, 300, 35);
displayTimeLabel->SetStyle(STYLE_TEXT_FONT, 30);
displayTimeLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
- displayTimeLabel->SetText("12:30:30");
+ displayTimeLabel->SetText("");
displayTimeLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
displayTimeLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
displayTimeLabel->SetRollSpeed(70);
}
obuMessageLabel->SetPosition(53, 30, 360, 250);
obuMessageLabel->SetStyle(STYLE_BORDER_RADIUS, 33);
- obuMessageLabel->SetStyle(STYLE_TEXT_FONT, 30);
- obuMessageLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
- obuMessageLabel->SetText("OBU MESSAGE DATA");
+ obuMessageLabel->SetStyle(STYLE_TEXT_FONT, 40);
+ obuMessageLabel->SetStyle(STYLE_LINE_HEIGHT, 45);
+ obuMessageLabel->SetText("");
obuMessageLabel->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
obuMessageLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- obuMessageLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ obuMessageLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40);
group->Add(obuMessageLabel);
viewInitStatus = true;
}
return;
}
+ static std::string labelTimeStr;
+ static std::string rxdataStr;
+
void OBUMessageView::UpdateOBUMessageViewDisplayData(void)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OBUMessageView::UpdateOBUMessageViewDisplayDate");
- std::string labelTimeStr;
- std::string rxdataStr;
+
if (uapi_get_a5133_update_state())
{
uint8_t rxdata[80] = {0};