修复nextday的消息发送
authorCaisking <3449750381@qq.com>
Thu, 5 Sep 2024 07:09:12 +0000 (15:09 +0800)
committerCaisking <3449750381@qq.com>
Thu, 5 Sep 2024 07:09:12 +0000 (15:09 +0800)
code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp

index 07aa047..36f19b5 100644 (file)
@@ -304,6 +304,7 @@ extern "C"
     static void AlarmCallBackProcA(void)\r
     {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcA");\r
+\r
         AlarmClockEventData unuse;\r
         AlarmTimerEventPublish(TOPIC_EVENT_ALARM_RING, unuse);\r
     }\r
@@ -312,20 +313,31 @@ extern "C"
     static void AlarmCallBackProcB(void)\r
     {\r
         AlarmClockEventData unuse;\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcB");\r
-        GraphicService::GetInstance()->PostGraphicEvent(\r
-            std::bind(AlarmTimerEventPublish, TOPIC_EVENT_NEXTDAY_UPDATE, unuse));\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcB invoked");\r
+\r
+        // 记录当前时间\r
+        time_t now = time(nullptr);\r
+        struct tm *localTime = localtime(&now);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Current time - Hour: %d, Minute: %d", localTime->tm_hour, localTime->tm_min);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Posting next day update event");\r
+\r
+        // GraphicService::GetInstance()->PostGraphicEvent(\r
+        //     std::bind(AlarmTimerEventPublish, TOPIC_EVENT_NEXTDAY_UPDATE, unuse));\r
+\r
+        AlarmTimerEventPublish(TOPIC_EVENT_NEXTDAY_UPDATE, unuse);\r
 \r
-        // AlarmTimerEventPublish(TOPIC_EVENT_NEXTDAY_UPDATE, unuse);\r
-        SetZeroAlarm();\r
+        SetZeroAlarm(); // 重置闹钟\r
     }\r
 \r
     static void on_time_CallBackProc(void)\r
     {\r
         AlarmClockEventData unuse;\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "on_time_CallBackProc");\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "on_time_CallBackProc invoked");\r
+\r
         GraphicService::GetInstance()->PostGraphicEvent(\r
             std::bind(AlarmTimerEventPublish, TOPIC_EVENT_ON_TIME, unuse));\r
+\r
+        // AlarmTimerEventPublish(TOPIC_EVENT_ON_TIME, unuse);\r
     }\r
 \r
     void AlarmScan(void *arg)\r
@@ -334,15 +346,21 @@ extern "C"
         int32_t ret = AlarmGetCurrentTimeInfo(&curTime);\r
         if (ret != ERRCODE_SUCC)\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get current time info, error code: %d", ret);\r
             return;\r
         }\r
 \r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Scanning alarms - Current time: %02d:%02d:%02d",\r
+                      curTime.tm_hour, curTime.tm_min, curTime.tm_sec);\r
+\r
         if (g_alarmCtrA.state == ALARM_STATUS_RUNNING)\r
         {\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Checking Alarm A");\r
             if ((g_alarmCtrA.callback != nullptr) &&\r
                 (g_alarmCtrA.info.hour == curTime.tm_hour) &&\r
                 (g_alarmCtrA.info.minute == curTime.tm_min))\r
             {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Alarm A triggered");\r
                 g_alarmCtrA.callback();\r
                 g_alarmCtrA.state = ALARM_STATUS_CREATED;\r
             }\r
@@ -350,19 +368,23 @@ extern "C"
 \r
         if (g_alarmCtrB.state == ALARM_STATUS_RUNNING)\r
         {\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Checking Alarm B");\r
             if ((g_alarmCtrB.callback != NULL) &&\r
-                (g_alarmCtrB.info.week == curTime.tm_wday) &&\r
+                // (g_alarmCtrB.info.week == curTime.tm_wday) &&\r
                 (g_alarmCtrB.info.hour == curTime.tm_hour) &&\r
                 (g_alarmCtrB.info.minute == curTime.tm_min) &&\r
                 (g_alarmCtrB.info.second == curTime.tm_sec))\r
             {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Alarm B triggered");\r
                 g_alarmCtrB.state = ALARM_STATUS_CREATED;\r
-                g_alarmCtrB.callback(); // 由于只有callback中SetZeroAlarm会设置state为ALARM_STATUS_RUNNING , 所以必须把state=ALARM_STATUS_CREATED提前,或者干脆删除。\r
+                g_alarmCtrB.callback();\r
             }\r
         }\r
+\r
         // 未绑定状态下,以下操作不进行\r
         if (OHOS::ConfigModel::GetInstance()->get_configData_bool(OHOS::ConfigModel::CONFIGMODEL_ITEM_FIRSTTIMESTART))\r
             return;\r
+\r
         // 整点回调\r
         if (curTime.tm_min == 0 && curTime.tm_sec == 0)\r
         {\r