Merge #489 into sdk602patch0626 from refs/changes/489/head 491/target/1
authorsnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Tue, 9 Jul 2024 12:20:40 +0000 (12:20 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Tue, 9 Jul 2024 12:20:40 +0000 (12:20 +0000)
Code review from snickersun@163.com

* refs/changes/489/head: (6 commits squashed)

  - 更新bt.bin 2024-7-9 解决重复接收消息,发送丢包问题

  - 扩大 at_cmd 栈大小,修复at_cmd指令无法执行问题。此处是合并代码时 误改回sdk版本造成的。

  - Merge branch &#39;sdk602patch0626&#39; of codeup.aliyun.com:64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

  - CustomEventPublish 统一迁移到custom_utilscpp.cpp中实现

  - 修复消息内存泄漏

  - Merge branch &#39;sdk602patch0626&#39; of codeup.aliyun.com:64191456b9581d62e8f81ac0/FD230 into sdk602patch0626

Signed-off-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/489
code/sdk/application/battery/service/battery_service.cpp
code/sdk/application/brandy/brandy_standard/thread_init.c
code/sdk/application/wearable/fd230app/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp
code/sdk/drivers/peripheral/ppg/service/ppg_service.cpp
code/sdk/drivers/peripheral/ppg/service/ppg_service.h
code/sdk/drivers/peripheral/slip/cat1Service/cat1_server.cpp
code/sdk/drivers/peripheral/slip/cat1Service/cat1_server_hal.cpp
code/sdk/drivers/peripheral/utilscpp/custom_utilscpp.cpp
code/sdk/drivers/peripheral/utilscpp/custom_utilscpp.h
code/sdk/middleware/services/gui/uikit/proprietary/src/utils/frameworks/hals/lite_input_distributer.cpp
code/sdk/tools/pkg/bin/brandy/bt.bin

index 11c89da..33b8221 100644 (file)
@@ -381,41 +381,24 @@ void ChargerEventPublish(uint16_t topic, uint32_t data)
 {
     int32 ret;
     uint32 size = sizeof(uint32_t);
-    Request *request = NULL;
     BroadcastApi *broadcastApi = NULL;
     IUnknown *api = NULL;
 
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish topic=%u!!", topic);
-
-    /* alloc request */
-    request = SAMGR_AllocRequestMsg(0, PLATFORM_CORE, BROADCAST_SVR_ID, size);
-    if (request == NULL) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SAMGR_AllocRequestMsg failed");
-        return;
-    }
-    request->msgId = topic;
-    ret = memcpy_s(request->data, size, (const void *)&data, size);
-    if (ret != EOK) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish memcpy_s rateDataTmp fail! ret = %d", ret);
-        return;
-    }
-    request->len = size;
-    request->msgValue = 0;
-
+    
+    Request request = {.msgId = topic, .len = size, .msgValue = 0 , .data = nullptr};
     /* public request */
     api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME);
-    if (api == NULL) {
+    if (api == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed");
-        SAMGR_FreeRequestMsg(request);
         return;
     }
     ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi);
-    if (ret != 0 || broadcastApi == NULL) {
+    if (ret != 0 || broadcastApi == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "QueryInterface failed");
-        SAMGR_FreeRequestMsg(request);
         return;
     }
-    broadcastApi->PublishTopic((IUnknown *)broadcastApi, request);
+    broadcastApi->PublishTopic((IUnknown *)broadcastApi, &request);
     broadcastApi->Release((IUnknown *)broadcastApi);
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish end!!");
 
index ba63579..9d89db8 100755 (executable)
@@ -135,7 +135,7 @@ app_task_definition_t g_app_tasks[] = {
     { { "bt_sdk", 0, NULL, 0, NULL, BTH_SDK_STACK_SIZE, TASK_PRIORITY_SDK, 0, 0 },
       (osThreadFunc_t)bt_acore_task_main, NULL, NULL, USE_DTCM_MEM },
 #ifdef SUPPORT_AT_CMD
-    { { "at_cmd", 0, NULL, 0, NULL, 0xC00, TASK_PRIORITY_APP, 0, 0 },
+    { { "at_cmd", 0, NULL, 0, NULL, 0x1C00, TASK_PRIORITY_APP, 0, 0 },
       (osThreadFunc_t)at_cmd_task_process_handler, NULL,
       (CreateQueueFunction_t)at_cmd_task_queue_init, USE_EXTEND_MEM },
 #endif
index 1bab4d4..f9f33ae 100644 (file)
@@ -129,48 +129,45 @@ extern "C"
     {\r
         int32 ret;\r
 \r
-        Request *request = NULL;\r
         BroadcastApi *broadcastApi = NULL;\r
         IUnknown *api = NULL;\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish topic=%u!!", topic);\r
 \r
-        /* alloc request */\r
-        request = SAMGR_AllocRequestMsg(0, PLATFORM_CORE, BROADCAST_SVR_ID, size);\r
-        if (request == NULL)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SAMGR_AllocRequestMsg failed");\r
-            return;\r
-        }\r
-        request->msgId = topic;\r
+       \r
+        void *publishData = nullptr;\r
         if (size > 0)\r
         {\r
-            ret = memcpy_s(request->data, size, (const void *)data, size);\r
+            publishData = malloc(size);\r
+            if (publishData == nullptr) {\r
+                return;\r
+            }\r
+            ret = memcpy_s(publishData, size, (const void *)data, size);\r
             if (ret != EOK)\r
             {\r
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish memcpy_s rateDataTmp fail! ret = %d", ret);\r
+                free(publishData);\r
                 return;\r
             }\r
         }\r
-\r
-        request->len = size;\r
-        request->msgValue = 0;\r
-\r
+  \r
+        Request request = {.msgId = topic, .len = size, .msgValue = 0,.data = publishData};\r
+        \r
         /* public request */\r
         api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME);\r
         if (api == NULL)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed");\r
-            SAMGR_FreeRequestMsg(request);\r
+            free(publishData);\r
             return;\r
         }\r
         ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi);\r
         if (ret != 0 || broadcastApi == NULL)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "QueryInterface failed");\r
-            SAMGR_FreeRequestMsg(request);\r
+            free(publishData);\r
             return;\r
         }\r
-        broadcastApi->PublishTopic((IUnknown *)broadcastApi, request);\r
+        broadcastApi->PublishTopic((IUnknown *)broadcastApi, &request);\r
         broadcastApi->Release((IUnknown *)broadcastApi);\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish end!!");\r
 \r
@@ -180,45 +177,46 @@ extern "C"
     {\r
         int32 ret;\r
         uint32 size = sizeof(AlarmClockEventData);\r
-        Request *request = nullptr;\r
         BroadcastApi *broadcastApi = nullptr;\r
         IUnknown *api = nullptr;\r
 \r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish topic=%u!!", topic);\r
 \r
-        /* alloc request */\r
-        request = SAMGR_AllocRequestMsg(0, PLATFORM_CORE, BROADCAST_SVR_ID, size);\r
-        if (request == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SAMGR_AllocRequestMsg failed");\r
-            return;\r
-        }\r
-        request->msgId = topic;\r
-        ret = memcpy_s(request->data, size, (const void *)&data, size);\r
-        if (ret != EOK)\r
+\r
+        void *publishData = nullptr;\r
+        if (size > 0)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish memcpy_s rateDataTmp fail! ret = %d", ret);\r
-            return;\r
+            publishData = malloc(size);\r
+            if (publishData == nullptr) {\r
+                return;\r
+            }\r
+            ret = memcpy_s(publishData, size, (const void *)&data, size);\r
+            if (ret != EOK)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish memcpy_s rateDataTmp fail! ret = %d", ret);\r
+                free(publishData);\r
+                return;\r
+            }\r
         }\r
-        request->len = size;\r
-        request->msgValue = 0;\r
-\r
+  \r
+        Request request = {.msgId = topic, .len = size, .msgValue = 0,.data = publishData};\r
+        \r
         /* public request */\r
         api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME);\r
         if (api == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed");\r
-            SAMGR_FreeRequestMsg(request);\r
+            free(publishData);\r
             return;\r
         }\r
         ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi);\r
         if (ret != 0 || broadcastApi == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "QueryInterface failed");\r
-            SAMGR_FreeRequestMsg(request);\r
+            free(publishData);\r
             return;\r
         }\r
-        broadcastApi->PublishTopic((IUnknown *)broadcastApi, request);\r
+        broadcastApi->PublishTopic((IUnknown *)broadcastApi, &request);\r
         broadcastApi->Release((IUnknown *)broadcastApi);\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish end!!");\r
 \r
index c9ad923..c198c3b 100644 (file)
@@ -75,53 +75,7 @@ void set_keep_in_wear_det_mode(uint8_t mod)
 {
     keep_in_wear_det_mod = mod;
 }
-void CustomEventPublish(uint16_t topic, uint8_t *data , uint32_t size)
-{
-    int32 ret;
-    
-    Request *request = NULL;
-    BroadcastApi *broadcastApi = NULL;
-    IUnknown *api = NULL;
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish topic=%u!!", topic);
-
-    /* alloc request */
-    request = SAMGR_AllocRequestMsg(0, PLATFORM_CORE, BROADCAST_SVR_ID, size);
-    if (request == NULL) {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SAMGR_AllocRequestMsg failed");
-        return;
-    }
-    request->msgId = topic;
-    if (size > 0)
-    {
-        ret = memcpy_s(request->data, size, (const void *)data, size);
-        if (ret != EOK) {
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish memcpy_s rateDataTmp fail! ret = %d", ret);
-            return;
-        }
-    }
-    
-    request->len = size;
-    request->msgValue = 0;
-
-    /* public request */
-    api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME);
-    if (api == NULL) {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed");
-        SAMGR_FreeRequestMsg(request);
-        return;
-    }
-    ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi);
-    if (ret != 0 || broadcastApi == NULL) {
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "QueryInterface failed");
-        SAMGR_FreeRequestMsg(request);
-        return;
-    }
-    broadcastApi->PublishTopic((IUnknown *)broadcastApi, request);
-    broadcastApi->Release((IUnknown *)broadcastApi);
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish end!!");
 
-    return;
-}
 //漏光测试
 errcode_t update_leaklight_event_notify(uint8_t *data)
 {
index bf0e0a1..ff1a26c 100644 (file)
@@ -1,8 +1,8 @@
 /*
  * @Author: penglei 1624952103@qq.com
  * @Date: 2024-03-27 09:07:00
- * @LastEditors: penglei 1624952103@qq.com
- * @LastEditTime: 2024-06-17 17:46:26
+ * @LastEditors: SnickerSun snickersun@163.com
+ * @LastEditTime: 2024-07-09 16:49:38
  * @FilePath: /FD230/code/sdk/drivers/peripheral/ppg/service/ppg_service.h
  * @Description: 
  * 
@@ -82,7 +82,7 @@ typedef struct {
     uint64_t timestamp; //上报数据时间戳, 单位ms
 }ppg_data_t;
 
-void CustomEventPublish(uint16_t topic, uint8_t *data , uint32_t size);
+
 
 //设置佩戴检测模式
 void set_keep_in_wear_det_mode(uint8_t mod);
index 91e1374..916fd37 100644 (file)
@@ -90,7 +90,8 @@ enum UDP_COMMAND_HEAD {
 
     UDP_MSG_SEND_DMP_CM_ADDRESS = 0x18,//用于BLE发送移动入库地址 to CAT1 接收
 };
-static uint8_t g_msg_format_type = 0;// 0: old format , 1: new format
+/** 0: old format 1字节cmd, 1: new format 2字节cmd */
+static uint8_t g_msg_format_type = 0;
 
 static char ble_buffer[20] = {0};
 
@@ -1196,7 +1197,16 @@ static int udp_packet_parse(char *rx_buffer, int len)
                 cat1_handle_version_msg(msg_buffer);
                 restart_time_sync();
                 cat1_getsignal();
-                if(g_msg_format_type == 0) break;
+
+                // if(sntp_enabled()==0)
+                // {
+                //     sntp_init();
+                // }else{
+                //     sntp_stop();
+                //     sntp_init();
+                // }
+                
+                if(g_msg_format_type == 0) break;  //下面指令只有新格式才支持,因此返回
                 int stateOld = get_dmp_change_mode_old();
                 int stateNew = get_dmp_change_mode_toCat1();//0 stateOld = 0 0-1
                 if (stateNew == 0){//关闭入库功能 把恢复出厂标识清0
@@ -1220,13 +1230,7 @@ static int udp_packet_parse(char *rx_buffer, int len)
                         send_dmp_factory_flag();
                     }
                 }
-                if(sntp_enabled()==0)
-                {
-                    sntp_init();
-                }else{
-                    sntp_stop();
-                    sntp_init();
-                }
+       
             }
             break;
         case UDP_MSG_GET_TELECON_DMP_TIMESEC://暂时不用
index 697a3d9..49c4a7e 100644 (file)
@@ -30,57 +30,7 @@ extern "C" {
 #include "errno.h"
 
 #include "cat1_server_hal.h"
-
-
-static void CustomEventPublish(uint16_t topic, uint8_t *data , uint32_t size)
-{
-    int32 ret;
-    
-    Request *request = NULL;
-    BroadcastApi *broadcastApi = NULL;
-    IUnknown *api = NULL;
-
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish topic=%u %d %s!!", topic,size,data);
-
-    /* alloc request */
-    request = SAMGR_AllocRequestMsg(0, PLATFORM_CORE, BROADCAST_SVR_ID, size);
-    if (request == NULL) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SAMGR_AllocRequestMsg failed");
-        return;
-    }
-    request->msgId = topic;
-    ret = memcpy_s(request->data, size, (const void *)data, size);
-    
-    if (ret != EOK) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish memcpy_s rateDataTmp fail! ret = %d ", ret);
-        return;
-    }
-    request->len = size;
-    request->msgValue = 0;
-
-
-    /* public request */
-
-    api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME);
-    if (api == NULL) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed");
-        SAMGR_FreeRequestMsg(request);
-        return;
-    }
-    ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi);
-    if (ret != 0 || broadcastApi == NULL) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "QueryInterface failed");
-        SAMGR_FreeRequestMsg(request);
-        return;
-    }
-    broadcastApi->PublishTopic((IUnknown *)broadcastApi, request);
-    broadcastApi->Release((IUnknown *)broadcastApi);
-
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish end!!");
-
-
-    return;
-}
+#include "custom_utils.h"
 
 static errcode_t calldial_event_notify(char* callno)
 {
index c3922b9..61bc663 100644 (file)
@@ -9,6 +9,16 @@
 
 #include "gfx_utils/mem_check.h"
 
+
+
+#include "securec.h"
+#include "broadcast_service.h"
+#include "broadcast_feature.h"
+#include "service_id_define.h"
+#include "samgr_lite.h"
+// #include "thread_adapter.h"
+#include "graphic_service.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif /* __cplusplus */
@@ -40,12 +50,13 @@ extern "C" {
 #include "custom_utils.h"
 #include "cywee_service.h"
 
+#include "wearable_log.h"
+
 #include "upg_lzmadec.h"
 #include "stdio.h"
 #include "dfx_file_operation.h"
 #include "sys/stat.h"
 #define CUSTOM_DIAL_PATH "/user/dial/custom_dial.bin"
-
 /***************************************************************************************************************/
 #include "7zFile.h"
 
@@ -237,6 +248,55 @@ void uapi_dump_meminfo(void)
   OHOS::MemCheck::GetInstance()->DumpMemInfo();
 }
 
+
+void CustomEventPublish(uint16_t topic, uint8_t *data , uint32_t size)
+{
+    int32_t ret;
+    
+    BroadcastApi *broadcastApi = NULL;
+    IUnknown *api = NULL;
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish topic=%u!!", topic);
+
+
+    void *publishData = nullptr;
+    if (size > 0)
+    {
+        publishData = malloc(size);
+        if (publishData == nullptr) {
+            return;
+        }
+        ret = memcpy_s(publishData, size, (const void *)data, size);
+        if (ret != EOK)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish memcpy_s rateDataTmp fail! ret = %d", ret);
+            free(publishData);
+            return;
+        }
+    }
+
+    Request request = {.msgId = topic, .len = size, .msgValue = 0,.data = publishData};
+    
+
+    /* public request */
+    api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME);
+    if (api == NULL) {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed");
+        free(publishData);
+        return;
+    }
+    ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi);
+    if (ret != 0 || broadcastApi == NULL) {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "QueryInterface failed");
+        free(publishData);
+        return;
+    }
+    broadcastApi->PublishTopic((IUnknown *)broadcastApi, &request);
+    broadcastApi->Release((IUnknown *)broadcastApi);
+    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish end!!");
+
+    return;
+}
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
\ No newline at end of file
index 718a62b..410b688 100644 (file)
@@ -17,6 +17,7 @@ extern "C" {
 errcode_t uapi_dial_pkg_decompress(const char* dial_pkg_path,char* dial_bin_path);
 void uapi_dump_meminfo(void);
 
+void CustomEventPublish(uint16_t topic, uint8_t *data , uint32_t size);
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
index ea24964..157e76d 100755 (executable)
@@ -170,22 +170,18 @@ void LiteInputDistributer::SendEventToPM(const RawEvent& event)
         userEvent = USER_EVENT_KEY;
     }
     uint32_t msgValue = (POWER_DISPLAY_POLICY << EVENT_TYPE_BITS_SIZE) | userEvent;
-
-    Request *request = nullptr;
-    request = SAMGR_AllocRequestMsg(0, CORES_APPLICATION_CORE, POWER_SVR_ID, 0);
-    if (request == nullptr) {
-        return;
+  
+    Request request = {
+        .serviceId = UI_SVR_ID,
+        .msgId = msgId,
+        .msgValue = msgValue,
+        .data = nullptr;
     }
-    request->serviceId = UI_SVR_ID;
-    request->msgId = msgId;
-    request->msgValue = msgValue;
-
     CommuFeature *feature = GET_OBJECT(api, CommuFeature, iUnknown);
     Identity identity = feature->id;
     identity.featureId = -1;
-    int32 ret = SAMGR_SendRequest(&identity, request, nullptr);
+    int32 ret = SAMGR_SendRequest(&identity, &request, nullptr);
     if (ret != 0) {
-        SAMGR_FreeRequestMsg(request);
         return;
     }
 }
index 61a61d8..b6211da 100755 (executable)
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:722262aca924ef0156bc2cda810f9687d668b627c7846adb03d0c30c2aff90b1
-size 425472
+oid sha256:669d20b472710c590fd6cf9fa8abd7f3e4b17ec506f430617324556776bcc492
+size 424536