1.bin_Check_schedule函数优化 2163/1 2163/head 2164/target/1
authorluozheng <1732036298@qq.com>
Thu, 28 Aug 2025 07:17:51 +0000 (15:17 +0800)
committerluozheng <1732036298@qq.com>
Thu, 28 Aug 2025 07:17:51 +0000 (15:17 +0800)
2.解决日程同步过来后,界面是黑屏问题

code/sdk/application/wearable/fd230/nativeapp/nativeui/schedule/include/SchedulePresenter.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/schedule/include/ScheduleView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/schedule/src/SchedulePresenter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/schedule/src/ScheduleView.cpp
code/sdk/zhihui/config/include/ConfigModel.h
code/sdk/zhihui/services/ble_service/bleservice/bleEvent.c

index 12a83ef..66be206 100644 (file)
@@ -25,9 +25,6 @@ namespace OHOS
         static SchedulePresenter * GetInstance();\r
 \r
         void OnStart() override;\r
-        void OnResume() override;\r
-        void OnPause() override;\r
-        void OnStop() override;\r
 \r
     private:\r
         bool OnClick(UIView &view, const ClickEvent &event) override;\r
index fe44f2b..daefb88 100644 (file)
@@ -40,7 +40,6 @@ namespace OHOS
         static ScheduleView * GetInstance(void);\r
 \r
         void OnStart() override;\r
-        void OnStop() override;\r
 \r
         void ItemListAdd(const ScheduleListItemInfo &item);\r
         void ItemListClear(void);\r
index a93b13a..0334330 100644 (file)
@@ -40,29 +40,7 @@ namespace OHOS
     // 启动时执行的逻辑\r
     void SchedulePresenter::OnStart()\r
     {\r
-    }\r
-\r
-    // 页面已经展示后的调用逻辑\r
-    void SchedulePresenter::OnResume(void)\r
-    {\r
-        Presenter<ScheduleView>::OnResume();\r
-        if (nullptr == view_)\r
-        {\r
-            return;\r
-        }\r
-\r
-        view_->ItemListContentUpdate();\r
-    }\r
-\r
-    // 页面准备切换到后台前执行的逻辑\r
-    void SchedulePresenter::OnPause(void)\r
-    {\r
-        Presenter<ScheduleView>::OnPause();\r
-    }\r
-\r
-    // 页面完全置于后台时的逻辑。\r
-    void SchedulePresenter::OnStop(void)\r
-    {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnStart");\r
     }\r
 \r
     bool SchedulePresenter::OnClick(UIView &view, const ClickEvent &event)\r
index 9ad5f3c..e0e7c07 100644 (file)
@@ -30,6 +30,7 @@ namespace OHOS
 \r
     void ScheduleView::OnStart()\r
     {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleView::OnStart");\r
         ScreenGroupArray_[ENUM_SCHEDULE_SCREEN_NO_DATA] = InitNoDataScreen();\r
         ScreenGroupArray_[ENUM_SCHEDULE_SCREEN_LIST] = InitDataScreen();\r
         ScreenGroupArray_[ENUM_SCHEDULE_SCREEN_CONTENT] = InitContentScreen();\r
@@ -48,11 +49,6 @@ namespace OHOS
         RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
     }\r
 \r
-    void ScheduleView::OnStop()\r
-    {\r
-        \r
-    }\r
-\r
     void ScheduleView::DisplaySelectScreen(uint8_t ScreenIndex)\r
     {\r
         if(ENUM_SCHEDULE_SCREEN_MAX <= ScreenIndex)\r
@@ -301,6 +297,7 @@ namespace OHOS
             ScheduleList_->SetDraggable(true);\r
             ScheduleList_->SetThrowDrag(true);\r
             // ScheduleList_->EnableAutoAlign(true);\r
+            ItemListContentUpdate();\r
             ScheduleList_->SetAdapter(ScheduleListAdapter_);\r
             // ScheduleList_->SetScrollStateListener(presenter_);\r
             ScheduleList_->SetMaxScrollDistance(1000); // 1000: max scroll distance\r
index 04a61f0..97f1749 100644 (file)
@@ -7,9 +7,6 @@
 #include "cJSON.h"
 #include "wearable_log.h"
 #include "vector"
-#ifdef FD230_650
-#include "ui_resource_string.h"
-#endif
 
 
 #define USE_KVSTORE_STORE_CONFIG
index 103de45..8451562 100644 (file)
@@ -3308,115 +3308,152 @@ void SaveChatGPTCmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,u
 \r
 bool bin_Check_schedule(uint8_t *data,uint16_t len)\r
 {\r
-    uint16 offset=0;\r
-    uint16 buf_len=0;\r
-    uint16 id_=1;\r
-    //   WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"len %d\r\n",len);\r
-    // for(int i=0;i<len ;i++)\r
-    // {\r
-    //      WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," %02x",data[i]);\r
-    // }\r
-    //   WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"end\r\n");\r
+    uint16_t offset = 0;\r
+    uint16_t buf_len = 0;\r
+    uint16_t id_ = 1;\r
+    \r
+    // 打印函数开始及总长度信息\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bin_Check_schedule start, total len: %d", len);\r
 \r
-    while (offset<len)\r
+    while (offset < len)\r
     {\r
         uint16_t id;\r
-        memcpy_s(&id,2,&data[offset],2);\r
-        offset+=2;\r
-        if(offset>=len)\r
+        // 解析ID\r
+        memcpy_s(&id, 2, &data[offset], 2);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Parsing ID: 0x%04X at offset: %d", id, offset);\r
+        offset += 2;\r
+        if (offset >= len)\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Offset exceed len after parsing ID, break");\r
             break;\r
         }\r
 \r
-        memcpy_s(&buf_len,2,&data[offset],2);\r
-        offset+=2;\r
-        if(offset>=len)\r
-        break;\r
+        // 解析标题长度\r
+        memcpy_s(&buf_len, 2, &data[offset], 2);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Title length: %d at offset: %d", buf_len, offset);\r
+        offset += 2;\r
+        if (offset >= len)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Offset exceed len after parsing title length, break");\r
+            break;\r
+        }\r
 \r
-        char *title=(char*)malloc(buf_len+1);\r
-        memset_s(title,512,0,buf_len+1);\r
-        memcpy_s(title,512,&data[offset],buf_len);\r
-          WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"len:%d str %s\r\n",buf_len,title);\r
+        // 解析标题内容\r
+        char *title = (char*)malloc(buf_len + 1);\r
+        if (!title)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to allocate memory for title");\r
+            break;\r
+        }\r
+        memset_s(title, buf_len + 1, 0, buf_len + 1);  // 修正为实际分配的大小\r
+        memcpy_s(title, buf_len + 1, &data[offset], buf_len);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Parsed title: [%s] (length: %d) at offset: %d", title, buf_len, offset);\r
 \r
-        offset+=buf_len;\r
+        offset += buf_len;\r
 \r
-        if(offset>=len)\r
+        if (offset >= len)\r
         {\r
-            if(title)\r
-            {\r
-                free(title);\r
-            }\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Offset exceed len after parsing title, free title and break");\r
+            free(title);\r
             break;\r
         }\r
-        uint32_t timetemp_begin=0;\r
-        memcpy_s(&timetemp_begin,4,&data[offset],4);\r
-        offset+=4;\r
-        if(offset>=len)\r
-        break;\r
 \r
-        uint32_t timetemp_end=0;\r
-        memcpy_s(&timetemp_end,4,&data[offset],4);\r
-        offset+=4;\r
-        if(offset>=len)\r
-        break;\r
+        // 解析开始时间\r
+        uint32_t timetemp_begin = 0;\r
+        memcpy_s(&timetemp_begin, 4, &data[offset], 4);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Start time: %u at offset: %d", timetemp_begin, offset);\r
+        offset += 4;\r
+        if (offset >= len)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Offset exceed len after parsing start time, free title and break");\r
+            free(title);\r
+            break;\r
+        }\r
 \r
-        memcpy_s(&buf_len,2,&data[offset],2);\r
-        offset+=2;\r
-        if(buf_len==0)\r
+        // 解析结束时间\r
+        uint32_t timetemp_end = 0;\r
+        memcpy_s(&timetemp_end, 4, &data[offset], 4);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "End time: %u at offset: %d", timetemp_end, offset);\r
+        offset += 4;\r
+        if (offset >= len)\r
         {\r
-              WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"%d %d\r\n",offset,len);\r
-            if(offset==len)\r
-            Ble_Set_ScheduleInfo(id_,timetemp_begin,timetemp_end,title,"",true);\r
-            else\r
-            Ble_Set_ScheduleInfo(id_,timetemp_begin,timetemp_end,title,"",false);\r
-            \r
-            id_++;\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Offset exceed len after parsing end time, free title and break");\r
+            free(title);\r
+            break;\r
+        }\r
+\r
+        // 解析附加信息长度\r
+        memcpy_s(&buf_len, 2, &data[offset], 2);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Additional info length: %d at offset: %d", buf_len, offset);\r
+        offset += 2;\r
 \r
-            if(title)\r
+        if (buf_len == 0)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "No additional info, offset: %d, len: %d", offset, len);\r
+            // 调用设置函数\r
+            if (offset == len)\r
+            {\r
+                Ble_Set_ScheduleInfo(id_, timetemp_begin, timetemp_end, title, "", true);\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Set schedule info (complete), id_: %d", id_);\r
+            }\r
+            else\r
             {\r
-                free(title);\r
+                Ble_Set_ScheduleInfo(id_, timetemp_begin, timetemp_end, title, "", false);\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Set schedule info (incomplete), id_: %d", id_);\r
             }\r
+            \r
+            id_++;\r
+            free(title);\r
             continue;\r
         }\r
-        if(offset>=len)\r
+\r
+        if (offset >= len)\r
         {\r
-            if(title)\r
-            {\r
-                free(title);\r
-            }\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Offset exceed len before parsing additional info, free title and break");\r
+            free(title);\r
             break;\r
         }\r
-       \r
-\r
-        char *str_=(char*)malloc(buf_len+1);\r
-        memset_s(str_,512,0,buf_len+1);\r
-        memcpy_s(str_,512,&data[offset],buf_len);\r
-\r
-        offset+=buf_len;\r
-        if(offset==len)\r
-        Ble_Set_ScheduleInfo(id_,timetemp_begin,timetemp_end,title,str_,true);\r
-        else\r
-        Ble_Set_ScheduleInfo(id_,timetemp_begin,timetemp_end,title,str_,false);\r
-\r
-        id_++;\r
 \r
-       \r
-        if(title)\r
+        // 解析附加信息\r
+        char *str_ = (char*)malloc(buf_len + 1);\r
+        if (!str_)\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to allocate memory for additional info");\r
             free(title);\r
+            break;\r
         }\r
-        if(str_)\r
+        memset_s(str_, buf_len + 1, 0, buf_len + 1);  // 修正为实际分配的大小\r
+        memcpy_s(str_, buf_len + 1, &data[offset], buf_len);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Parsed additional info: [%s] (length: %d) at offset: %d", str_, buf_len, offset);\r
+\r
+        offset += buf_len;\r
+        \r
+        // 调用设置函数\r
+        if (offset == len)\r
         {\r
-            free(str_);\r
+            Ble_Set_ScheduleInfo(id_, timetemp_begin, timetemp_end, title, str_, true);\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Set schedule info with additional info (complete), id_: %d", id_);\r
         }\r
-        if(offset>=len)\r
+        else\r
         {\r
-            break;\r
+            Ble_Set_ScheduleInfo(id_, timetemp_begin, timetemp_end, title, str_, false);\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Set schedule info with additional info (incomplete), id_: %d", id_);\r
         }\r
 \r
-    }\r
-   \r
+        id_++;\r
 \r
+        // 释放内存\r
+        free(title);\r
+        free(str_);\r
+        \r
+        if (offset >= len)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "All data parsed, exit loop");\r
+            break;\r
+        }\r
+    }\r
+    \r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bin_Check_schedule end, total parsed id count: %d", id_ - 1);\r
     return true;\r
 }\r
 void APP_send_schedule_Cmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *totalData,uint8_t crcvalue)\r
@@ -3437,8 +3474,10 @@ void APP_send_schedule_Cmd(uint16_t cmd,uint8_t *data,uint16_t len,uint8_t *tota
        if(Check_CRC(data,len,crcvalue))\r
        {\r
         \r
-        \r
-        if(bin_Check_schedule(data,len))\r
+        printf("11111111111111111\n");\r
+        bool val = bin_Check_schedule(data,len);\r
+        printf("222222222222222222222\n");\r
+        if(val)\r
         {\r
             sendBuf[17] = 1;\r
         }\r