From b4360dfe75ef595b95a34397b8e780c0d97d7bab Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Sat, 28 Sep 2024 19:32:37 +0800 Subject: [PATCH] =?utf8?q?=E5=A2=9E=E5=8A=A0topic=E5=8F=91=E9=80=81?= =?utf8?q?=E9=94=99=E8=AF=AF=E7=9A=84=E9=94=99=E8=AF=AF=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../peripheral/utilscpp/custom_utilscpp.cpp | 86 ++++++++++--------- 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/code/sdk/drivers/peripheral/utilscpp/custom_utilscpp.cpp b/code/sdk/drivers/peripheral/utilscpp/custom_utilscpp.cpp index d69ebce6c..60ef7b4a4 100644 --- a/code/sdk/drivers/peripheral/utilscpp/custom_utilscpp.cpp +++ b/code/sdk/drivers/peripheral/utilscpp/custom_utilscpp.cpp @@ -254,52 +254,56 @@ void uapi_dump_meminfo(void) } -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 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) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish malloc failed! size = %u", size); + return; + } + ret = memcpy_s(publishData, size, (const void *)data, size); + if (ret != EOK) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish memcpy_s failed! ret = %d", ret); + free(publishData); + return; + } + } + Request request = {.msgId = topic, .len = size, .msgValue = 0, .data = publishData}; - 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; - } - } + /* public request */ + api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME); + if (api == NULL) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed for service: %s, feature: %s", BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME); + free(publishData); + return; + } - Request request = {.msgId = topic, .len = size, .msgValue = 0,.data = publishData}; - + ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi); + if (ret != 0 || broadcastApi == NULL) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "QueryInterface failed! ret = %d, api = %p", ret, api); + free(publishData); + return; + } - /* 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!!"); + ret = broadcastApi->PublishTopic((IUnknown *)broadcastApi, &request); + if (ret != 0) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PublishTopic failed! ret = %d", ret); + } + + broadcastApi->Release((IUnknown *)broadcastApi); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish end!!"); - return; + // 释放内存 + free(publishData); + return; } void custom_set_volume(uint8_t channel,int32_t sounding) -- 2.17.1