--- /dev/null
+SDK version:1.1.10.602
+
+
#include "pm_sleep.h"
#include "pm_lpc.h"
#include "pm_control.h"
-#include "upg.h"
-#include "upg_definitions.h"
-#include "nv.h"
#include "dfx_system_init.h"
#include "cpu_load.h"
-#include "nv_upg.h"
#ifdef SUPPORT_AT_CMD
#include "at_cmd_api.h"
#include "clocks_config.h"
#include "sys/time.h"
#include "time.h"
+#include "log_panic.h"
+#include "nandflash_config.h"
#define EMMC_BASE_ADDR 0x52062000
#define TASK_PRIORITY_SDK (osPriority_t)(31)
#define TASK_PRIORITY_DFX_MSG (osPriority_t)(18)
#define TASK_PRIORITY_TRANSMIT (osPriority_t)(20)
+#define TASK_PRIORITY_SAVE_FILE (osPriority_t)(36)
#define BTH_SDK_STACK_SIZE 0xC00
#define AT_GRAPHIC_STACK_SIZE 0xC00
#define PM_DISPLAY_MSG_STACK_SIZE 0xc00
#define AT_OHOSFWK_STACK_SIZE 0xC00
#define APP_MAIN_STACK_SIZE 0xC00
-
-#define UPG_HEAD_MAGIC 0x55AA55AA
-#define UPG_END_MAGIC 0xAA55AA55
-#define UPG_FLAG_MAGIC 0xFFFFFFFF
+#define SAVE_FILE_STACK_SIZE 0xC00
#define TIME_MAX 64
#define USEC_TO_MILLI 1000
#ifdef SUPPORT_32K_MEAS
void uapi_32k_systick_measurements(void);
#endif
+osSemaphoreId_t g_semaphore_save = NULL;
+void save_file_main(void);
static uint32_t g_app_delay_ms = TASK_COMMON_APP_DELAY_MS;
app_task_definition_t g_app_tasks[] = {
(osThreadFunc_t)power_display_msg_thread, NULL,
(CreateQueueFunction_t)power_display_task_init, USE_DTCM_MEM },
#endif
+ { { "save_file", 0, NULL, 0, NULL, SAVE_FILE_STACK_SIZE, TASK_PRIORITY_SAVE_FILE, 0, 0 },
+ (osThreadFunc_t)save_file_main, NULL, NULL, USE_EXTEND_MEM },
};
+osSemaphoreId_t get_save_file_semaphore(void)
+{
+ return g_semaphore_save;
+}
+
+void save_file_main(void)
+{
+ g_semaphore_save = osSemaphoreNew(1, 0, NULL);
+ if (!g_semaphore_save) {
+ panic(PANIC_LOG, LOG_PANIC_MUTEX_NOT_READY);
+ return;
+ }
+ for (;;) {
+ // If there has been log indicator get run again
+ if (osKernelGetState() == osKernelRunning) {
+ if (osSemaphoreAcquire(g_semaphore_save, osWaitForever) != osOK) {
+ panic(PANIC_LOG, LOG_PANIC_MUTEX_NOT_READY);
+ }
+ nand_driver_init(SPEED_SLOW);
+ set_trans_type(TRANS_BY_CPU_SINGLE_LINE);
+#if defined SAVE_EXC_INFO
+ save_preserve_file_to_nand();
+ save_btram_file_to_nand();
+ save_btrace_file_to_nand();
+#endif
+ hal_reboot_chip();
+ }
+ osDelay(1000);
+ }
+}
+
void set_app_delay_time(uint32_t time)
{
g_app_delay_ms = time;
#endif
}
-#ifdef CONFIG_OTA_UPDATE_SUPPORT
-static void upg_check_upgrade(void)
-{
- uint32_t fota_address = 0;
- errcode_t ret_val = (errcode_t)upg_get_upgrade_flag_flash_start_addr(&fota_address);
- if (ret_val != ERRCODE_SUCC) {
- return;
- }
-
- fota_upgrade_flag_area_t upg_flag_info;
- ret_val = (errcode_t)upg_flash_read(fota_address, sizeof(fota_upgrade_flag_area_t), (uint8_t *)(&upg_flag_info));
- if (ret_val != ERRCODE_SUCC) {
- return;
- }
-
- if (!(upg_flag_info.head_magic == UPG_HEAD_MAGIC &&
- upg_flag_info.head_end_magic == UPG_END_MAGIC &&
- upg_flag_info.complete_flag == UPG_FLAG_MAGIC)) {
- /* 不需要升级直接返回 */
- PRINT("No need to upgrade...\r\n");
- return;
- }
-
- PRINT("upgrading.......\r\n");
- ret_val = uapi_upg_start();
- if (ret_val != ERRCODE_SUCC) {
- PRINT("upgrade failed, ret = 0x%x\r\n", ret_val);
- } else {
- PRINT("upgrade success\r\n");
- }
- upg_reboot();
-}
-#endif
-
#ifdef SUPPORT_32K_MEAS
/* 使用32M tcxo 测量 systick的32K频率值 */
void uapi_32k_systick_measurements(void)
static void app_main(const void *unused)
{
unused(unused);
-#ifdef CONFIG_OTA_UPDATE_SUPPORT
- upg_check_upgrade();
-#endif
dfx_set_log_enable();
- /* nv init and file system init must be before nv_upg_upgrade_task_process */
- (void)nv_upg_upgrade_task_process();
#ifdef SUPPORT_MEDIA_AUDIO_MANAGER
bool success = AudioManagerInit();
PRINT("audio manager init %s\r\n", success ? "ok" : "error");
#include "ohosfwk_startup.h"\r
#endif\r
#include "clocks_config.h"\r
+#include "board_init.h"\r
+#include "upg.h"\r
+#include "upg_definitions.h"\r
+#include "nv.h"\r
+#include "nv_upg.h"\r
\r
#define EMMC_BASE_ADDR 0x52062000\r
#define TASK_PRIORITY_APP (osPriority_t)(17)\r
#define TICK_TEN_MS (10U)\r
#define WAIT_BT_BOOTUP_TIME 200U\r
+#define UPG_HEAD_MAGIC 0x55AA55AA\r
+#define UPG_END_MAGIC 0xAA55AA55\r
+#define UPG_FLAG_MAGIC 0xFFFFFFFF\r
\r
static void thread_main(const void *unused);\r
void bt_acore_btc_ipc_receive_init(void);\r
}\r
}\r
\r
+#ifdef CONFIG_OTA_UPDATE_SUPPORT\r
+static void upg_check_upgrade(void)\r
+{\r
+ uint32_t fota_address = 0;\r
+ errcode_t ret_val = (errcode_t)upg_get_upgrade_flag_flash_start_addr(&fota_address);\r
+ if (ret_val != ERRCODE_SUCC) {\r
+ return;\r
+ }\r
+\r
+ fota_upgrade_flag_area_t upg_flag_info;\r
+ ret_val = (errcode_t)upg_flash_read(fota_address, sizeof(fota_upgrade_flag_area_t), (uint8_t *)(&upg_flag_info));\r
+ if (ret_val != ERRCODE_SUCC) {\r
+ return;\r
+ }\r
+\r
+ if (!(upg_flag_info.head_magic == UPG_HEAD_MAGIC &&\r
+ upg_flag_info.head_end_magic == UPG_END_MAGIC &&\r
+ upg_flag_info.complete_flag == UPG_FLAG_MAGIC)) {\r
+ /* 不需要升级直接返回 */\r
+ PRINT("No need to upgrade...\r\n");\r
+ return;\r
+ }\r
+\r
+ PRINT("upgrading.......\r\n");\r
+ ret_val = uapi_upg_start();\r
+ if (ret_val != ERRCODE_SUCC) {\r
+ PRINT("upgrade failed, ret = 0x%x\r\n", ret_val);\r
+ } else {\r
+ PRINT("upgrade success\r\n");\r
+ }\r
+ upg_reboot();\r
+}\r
+#endif\r
+\r
static void thread_main(const void *unused)\r
{\r
PRINT("thread_main start "NEWLINE);\r
#endif\r
board_version_class_print();\r
uapi_watchdog_kick();\r
+#ifdef CONFIG_OTA_UPDATE_SUPPORT\r
+ upg_check_upgrade();\r
+#endif\r
+ /* nv init and file system init must be before nv_upg_upgrade_task_process */\r
+ (void)nv_upg_upgrade_task_process();\r
thread_init();\r
button_app_init();\r
uapi_calendar_init();\r
set(COMPONENT_NAME "alipay_service")
+set(MODULE_NAME "app")
+set(AUTO_DEF_FILE_ID TRUE)
set(PUBLIC_HEADER
${CMAKE_CURRENT_SOURCE_DIR}
#include "osal_task.h"\r
#include "alipay_feature.h"\r
#include "securec.h"\r
+#ifdef JS_ENABLE\r
+#include "msg_center_msg.h"\r
+#endif\r
\r
/* Gatt service UUID */\r
#define ALIPAYY_SERVICE_ID 0x0238\r
conn_state, pair_state);\r
g_alipay_conn_id = conn_id;\r
if (GAP_BLE_STATE_DISCONNECTED == conn_state) { // restart ble adv when disconnected\r
+ #ifdef JS_ENABLE\r
+ /* 通知msg_center,ble状态仍用bt状态,此处不区分 */\r
+ SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, NULL, 0);\r
+ #endif\r
svr_alipay_ble_adv_start();\r
} else {\r
svr_alipay_set_adv_start_state(false);\r
+ #ifdef JS_ENABLE\r
+ SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, NULL, 0);\r
+ #endif\r
}\r
}\r
\r
#include <stdio.h>
#include "stdbool.h"
#include "errcode.h"
+#if !defined(SW_UART_DEBUG) && !defined(SW_RTT_DEBUG)
+#include "soc_diag_util.h"
+#include "log_oam_logger.h"
+#include "log_def.h"
+#else
#include "debug_print.h"
+#endif
#define APP_SUCCESS 0
#define APP_FAILURE (-1)
-#ifdef ALIPAY_HSO_DEBUG_LOG
-#define ALIPAY_PRINT_ERR(log_num, fmt, args...) uapi_diag_error_log(0, fmt, ##arg)
-#define ALIPAY_PRINT_WARN(log_num, fmt, args...) uapi_diag_warning_log(0, fmt, ##arg)
-#define ALIPAY_PRINT_INFO(log_num, fmt, args...) uapi_diag_info_log(0, fmt, ##arg)
-#define ALIPAY_PRINT_DEBUG(log_num, fmt, args...)
+#if !defined(SW_UART_DEBUG) && !defined(SW_RTT_DEBUG)
+#define ALIPAY_PRINT_ERR(log_num, fmt, arg...) uapi_diag_error_log(0, fmt, ##arg)
+#define ALIPAY_PRINT_WARN(log_num, fmt, arg...) uapi_diag_warning_log(0, fmt, ##arg)
+#define ALIPAY_PRINT_INFO(log_num, fmt, arg...) uapi_diag_info_log(0, fmt, ##arg)
+#ifdef WEARABLE_LOG_DEBUG
+#define ALIPAY_PRINT_DEBUG(log_num, fmt, arg...) uapi_diag_debug_log(0, fmt, ##arg)
+#else
+#define ALIPAY_PRINT_DEBUG(log_num, fmt, arg...)
+#endif
#else
#define ALIPAY_PRINT_ERR(log_num, fmt, arg...) PRINT("[ALIPAY SVR E/] %s: " fmt "\r\n", __FUNCTION__, ##arg)
#define ALIPAY_PRINT_WARN(log_num, fmt, arg...) PRINT("[ALIPAY SVR W/] %s: " fmt "\r\n", __FUNCTION__, ##arg)
${ROOT_DIR}/middleware/services/gui/uikit/surface/interfaces/kits
${ROOT_DIR}/middleware/services/gui/uikit/ui/interfaces/innerkits
${ROOT_DIR}/middleware/services/gui/uikit/ui/frameworks
+ ${ROOT_DIR}/application/wearable/nativeapp/nativeui/applist/include/
${ROOT_DIR}/open_source/openharmony/drivers/peripheral/display/interfaces/include
)
${CMAKE_CURRENT_SOURCE_DIR}/src/TransitionManager.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/transition/ZoomTransition.cpp
${CMAKE_CURRENT_SOURCE_DIR}/src/transition/HexagonsTransition.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/transition/BackToHexagonsTransition.cpp
)
set(COMPONENT_PUBLIC_CCFLAGS
TRANSITION_INVALID = 0,
TRANSITION_ZOOM,
TRANSITION_HEXAGONS,
+ TRANSITION_BACK_TO_HEXAGONS,
TRANSITION_MAX
};
}
void SliceTransition::ClearTransitionResource()
{
- if (currentSnapshot_->GetImageInfo() != nullptr && currentSnapshot_->GetImageInfo()->data != nullptr) {
+ if (currentSnapshot_ != nullptr && currentSnapshot_->GetImageInfo() != nullptr &&
+ currentSnapshot_->GetImageInfo()->data != nullptr) {
ImageCacheFree(*const_cast<ImageInfo *>(currentSnapshot_->GetImageInfo()));
}
- if (targetSnapshot_->GetImageInfo() != nullptr && targetSnapshot_->GetImageInfo()->data != nullptr) {
+ if (targetSnapshot_ != nullptr && targetSnapshot_->GetImageInfo() != nullptr &&
+ targetSnapshot_->GetImageInfo()->data != nullptr) {
ImageCacheFree(*const_cast<ImageInfo *>(targetSnapshot_->GetImageInfo()));
}
if (currentSnapshot_ != nullptr) {
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2024. All rights reserved.
+ * Description: ZoomTransition
+ * Author:
+ * Create: 2024-04
+ */
+
+#include "BackToHexagonsTransition.h"
+#include "TransitionManager.h"
+#include "NativeAbility.h"
+#include "components/root_view.h"
+#include "AppItemView.h"
+#include "hal_tick.h"
+#include "wearable_log.h"
+
+namespace OHOS {
+REGIST_TRANSITION(TransitionType::TRANSITION_BACK_TO_HEXAGONS, BackToHexagonsTransition, 300, true, false);
+static const float CURRENT_SCALE_START = 1.0f;
+static const float TARGET_SCALE_END = 1.0f;
+
+void BackToHexagonsTransition::OnTransitionStart(UIImageView* current, UIView* target)
+{
+ current_ = current;
+ target_ = dynamic_cast<UICustomHexagonsList*>(target);
+ if ((target_ == nullptr) || (current_ == nullptr)) {
+ return;
+ }
+
+ uint16_t sliceId = NativeAbility::GetInstance().GetPreSliceId();
+ UIView* childView = target_->GetChildrenHead();
+ while (childView != nullptr) {
+ HexagonsItemView* itemView = dynamic_cast<HexagonsItemView*>(childView);
+ if ((itemView != nullptr) && (itemView->GetViewId() == sliceId)) {
+ focusIndex_ = itemView->GetViewIndex();
+ focusView_ = itemView;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_LAUNCHER_FWK, "BackToHexagonsTransition focus %d", focusIndex_);
+ break;
+ }
+ childView = childView->GetNextSibling();
+ }
+
+ if (focusView_ == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_LAUNCHER_FWK, "BackToHexagonsTransition no focus view, use default\n");
+ focusView_ = target_->GetViewByIndex(0);
+ }
+ target_->Scale(1.0f, focusIndex_);
+ Vector2<int16_t> pos = target_->GetCurrentPosition(focusIndex_);
+ int16_t deltaX = MATH_ROUND(target_->GetWidth() / 2.0f - pos.x_);
+ int16_t deltaY = MATH_ROUND(target_->GetHeight() / 2.0f - pos.y_);
+ target_->ScrollBy(deltaX, deltaY);
+ target_->ReMeasure();
+ Rect rect = focusView_->GetRect();
+ float xScale = current->GetWidth() * 1.0f / rect.GetWidth();
+ float yScale = current->GetHeight() * 1.0f / rect.GetHeight();
+ tarScaleStart_ = FloatLessEqual(xScale, yScale) ? xScale : yScale;
+ curScaleEnd_ = 1.0f / tarScaleStart_;
+}
+
+void BackToHexagonsTransition::TransitionAlg(uint32_t time)
+{
+ if ((current_ == nullptr) || (target_== nullptr) || (focusView_ == nullptr)) {
+ return;
+ }
+ float timeRatio = time * 1.0f / duration_;
+
+ float curScale = timeRatio * (curScaleEnd_ - CURRENT_SCALE_START) + CURRENT_SCALE_START;
+ current_->Scale(Vector2<float>(curScale, curScale), Vector2<float>(current_->GetWidth() / 2.0f,
+ current_->GetHeight() / 2.0f));
+ uint8_t opa = OPA_OPAQUE + timeRatio * (OPA_TRANSPARENT - OPA_OPAQUE);
+ current_->SetOpaScale(opa);
+
+ float targetScale = tarScaleStart_ + timeRatio * (TARGET_SCALE_END - tarScaleStart_);
+ target_->Scale(targetScale, focusIndex_);
+ focusView_->SetOpaScale(OPA_OPAQUE - opa);
+}
+} // namespace OHOS
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2024. All rights reserved.
+ * Description: ZoomTransition
+ * Author:
+ * Create: 2024-04
+ */
+
+#ifndef HEXAGONS_TRASITION_H
+#define HEXAGONS_TRASITION_H
+#include "TransitionCallback.h"
+#include "components/ui_custom_hexagons_list.h"
+
+namespace OHOS {
+class BackToHexagonsTransition : public TransitionCallback {
+public:
+ BackToHexagonsTransition(uint32_t time, bool enableCurrentSnapshot, bool enableTargetSnapshot) :
+ TransitionCallback(time, enableCurrentSnapshot, enableTargetSnapshot) {}
+ ~BackToHexagonsTransition() override {}
+ void OnTransitionStart(UIImageView* current, UIView* target) override;
+ void TransitionAlg(uint32_t time) override;
+private:
+ UIImageView* current_ = nullptr;
+ UICustomHexagonsList* target_ = nullptr;
+ UIView* focusView_ = nullptr;
+ uint8_t focusIndex_ = 0;
+ float curScaleEnd_ = 1.0f;
+ float tarScaleStart_ = 1.0f;
+};
+} // namespace OHOS
+#endif
\ No newline at end of file
#include "animator/easing_equation.h"
#include "components/root_view.h"
#include "TransitionManager.h"
+#include "wearable_log.h"
namespace OHOS {
-REGIST_TRANSITION(TransitionType::TRANSITION_HEXAGONS, HexagonsTransition, 800, false, true);
+REGIST_TRANSITION(TransitionType::TRANSITION_HEXAGONS, HexagonsTransition, 300, false, true);
static constexpr int16_t RANGE = 1000;
static const float HEXAGONS_SCALE_INIT = 1.0f;
-static const float HEXAGONS_SCALE_END = 2.5f;
-static const float HEXAGONS_OPA_START = 255;
-static const float HEXAGONS_OPA_END = 0;
+static const float HEXAGONS_SCALE_TRANSPARENT = 2.5f;
+static const float TARGET_SCALE_END = 1.0f;
void HexagonsTransition::OnTransitionStart(UIView* current, UIImageView* target)
{
}
focusView_ = dynamic_cast<UIImageView*>(current_->GetViewByIndex(focusIndex_));
if (focusView_ == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_LAUNCHER_FWK, "HexagonsTransition no focus view\n");
return;
}
current_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
Vector2<int16_t> delta = Vector2<int16_t>(current_->GetWidth() / 2, current_->GetHeight() / 2) -
current_->GetCurrentPosition(focusIndex_);
- scaleStart_ = current_->GetGlobalScale();
opaStart_ = current->GetOpaScale();
+ scaleStart_ = current_->GetGlobalScale();
+ Rect rect = focusView_->GetRect();
+ float xScale = target_->GetWidth() * 1.0f / rect.GetWidth();
+ float yScale = target_->GetHeight() * 1.0f / rect.GetHeight();
+ scaleEnd_ = FloatLessEqual(xScale, yScale) ? xScale : yScale;
+
+ targetXStart_ = rect.GetX();
+ targetYStart_ = rect.GetY();
+ targetScaleStart_ = 1.0f / scaleEnd_;
+
uint32_t offsetTime = static_cast<uint32_t>((scaleStart_ - HEXAGONS_SCALE_INIT) /
- (HEXAGONS_SCALE_END - HEXAGONS_SCALE_INIT) * duration_ * 0.5f); // 0.5 half of duration
+ (scaleEnd_ - HEXAGONS_SCALE_INIT) * duration_);
durationBackup_ = duration_;
duration_ = duration_ - offsetTime;
+ thresholdTime_ = static_cast<uint32_t>((HEXAGONS_SCALE_TRANSPARENT - scaleStart_) / (scaleEnd_ - scaleStart_)
+ * duration_);
xDistance_ = delta.x_;
yDistance_ = delta.y_;
prevX_ = 0;
return;
}
float timeRatio = time * 1.0f / duration_;
- if (FloatLessEqual(timeRatio, 0.5f)) { // 0.5f, half of transition
- float hexagonsRatio = 2 * timeRatio;
- int16_t curX = static_cast<int16_t>(hexagonsRatio * xDistance_);
- int16_t curY = static_cast<int16_t>(hexagonsRatio * yDistance_);
- current_->ScrollBy(curX - prevX_, curY - prevY_);
- prevX_ = curX;
- prevY_ = curY;
+ float opaRatio = time * 1.0f / thresholdTime_;
+ opaRatio = FloatMore(opaRatio, 1.0f) ? 1.0f : opaRatio;
+ int16_t curX = static_cast<int16_t>(timeRatio * xDistance_);
+ int16_t curY = static_cast<int16_t>(timeRatio * yDistance_);
+ current_->ScrollBy(curX - prevX_, curY - prevY_);
+ prevX_ = curX;
+ prevY_ = curY;
- float curScale = hexagonsRatio * (HEXAGONS_SCALE_END - scaleStart_) + scaleStart_;
- uint8_t opa = hexagonsRatio * (HEXAGONS_OPA_END - opaStart_) + opaStart_;
- focusView_->SetOpaScale(opa);
- current_->Scale(curScale, focusIndex_);
- Rect rect = focusView_->GetRect();
- target_->SetPosition(rect.GetX(), rect.GetY());
- targetMiddleScale_ = Vector2<float>(rect.GetWidth() * 1.0f / target_->GetWidth(),
- rect.GetHeight() * 1.0f / target_->GetHeight());
- target_->Scale(targetMiddleScale_, Vector2<float>(0.0f, 0.0f));
- } else if (FloatLessEqual(timeRatio, 1.0f)) {
- current_->SetVisible(false);
- Vector2<float> targetScale = {2 * (timeRatio - 0.5f) * (1.0f - targetMiddleScale_.x_) + targetMiddleScale_.x_,
- 2 * (timeRatio - 0.5f) * (1.0f - targetMiddleScale_.y_) + targetMiddleScale_.y_};
- target_->SetPosition(0, 0);
- target_->Scale(targetScale, Vector2<float>(target_->GetWidth() / 2.0f, target_->GetHeight() / 2.0f));
- }
+ float curScale = timeRatio * (scaleEnd_ - scaleStart_) + scaleStart_;
+ uint8_t opa = opaRatio * (OPA_TRANSPARENT - opaStart_) + opaStart_;
+ focusView_->SetOpaScale(opa);
+ current_->Scale(curScale, focusIndex_);
+
+ int16_t targetXPos = static_cast<int16_t>((1.0f - timeRatio) * targetXStart_);
+ int16_t targetYPos = static_cast<int16_t>((1.0f - timeRatio) * targetYStart_);
+ target_->SetPosition(targetXPos, targetYPos);
+ float targetScale = targetScaleStart_ + timeRatio * (1.0f - targetScaleStart_);
+ target_->Scale(Vector2<float>(targetScale, targetScale), Vector2<float>(0.0f, 0.0f));
+ uint8_t targetOpa = timeRatio * (OPA_OPAQUE - OPA_TRANSPARENT) + OPA_TRANSPARENT;
+ target_->SetOpaScale(targetOpa);
}
void HexagonsTransition::OnTransitionEnd()
{
duration_ = durationBackup_;
}
-
-} // namespace OHOS
+} // namespace OHOS
\ No newline at end of file
UICustomHexagonsList* current_ = nullptr;
UIImageView* target_ = nullptr;
UIImageView* focusView_ = nullptr;
- Vector2<float> targetMiddleScale_ = {0, 0};
uint8_t focusIndex_ = 0;
float scaleStart_ = 1.0f;
+ float scaleEnd_ = 1.0f;
uint8_t opaStart_ = 255;
int16_t xDistance_ = 0;
int16_t yDistance_ = 0;
int16_t prevX_ = 0;
int16_t prevY_ = 0;
+ float thresholdTime_ = 0.0f;
+ int16_t targetXStart_ = 0;
+ int16_t targetYStart_ = 0;
+ float targetScaleStart_ = 1.0f;
};
} // namespace OHOS
#endif
\ No newline at end of file
${UI_SAMPLE_ROOT}/components/ui_test_cube_rotate/cube_rotate_view.cpp
${UI_SAMPLE_ROOT}/components/ui_test_cube_rotate/ui_test_cube_rotate.cpp
${UI_SAMPLE_ROOT}/components/ui_test_video_play/ui_test_video_play.cpp
+ ${UI_SAMPLE_ROOT}/components/ui_test_keyboard/ui_test_keyboard.cpp
${UI_SAMPLE_ROOT}/components/ui_test_hexagons_list/ui_test_hexagons_list.cpp
${UI_SAMPLE_ROOT}/components/ui_test_coverflow/ui_test_coverflow.cpp
${UI_SAMPLE_ROOT}/components/ui_test_kaleidoscope/ui_test_kaleidoscope.cpp
-Wno-c++11-narrowing
-Wno-error=unused-function
-Wno-missing-field-initializers
+ -Werror=return-type
)
set(WHOLE_LINK
#include "bt_audio_hal_interface.h"\r
#include "audio_manager_c_wrapper.h"\r
#include "bts_avrcp_target.h"\r
+#include "msg_center_msg.h"\r
\r
namespace OHOS {\r
\r
if (!tag) {\r
AddConnedDevicesCase(*onClickBtCaseInfo);\r
}\r
- ACLConnectionSuss(bdAddr);\r
} else {\r
ACLConnectionFail(bdAddr);\r
}\r
\r
if ((state == GAP_ACL_STATE_CONNECTED) || (state == GAP_ACL_STATE_LE_CONNECTED)) {\r
if (BluetoothModel::GetInstance()->ConnectRemoteCheck(&bdAddr)) {\r
- bool retA2dp = a2dp_src_connect(&bdAddr);\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "a2dp_src_connect result %d", retA2dp);\r
+ int32_t retA2dp = a2dp_src_connect(&bdAddr);\r
+ if (retA2dp) {\r
+ ACLConnectionFail(bdAddr);\r
+ }\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "a2dp_src_connect result 0x%x", retA2dp);\r
} else {\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ingore a2dp_src_connect");\r
}\r
if (connState == PROFILE_STATE_CONNECTED) {\r
avrcp_ct_connect(bdAddr);\r
PhoneAudioManagerSetDeviceConnState(OUT_BLUETOOTH_A2DP, AUDIO_DEVICE_CONNECTED);\r
+ GraphicService::GetInstance()->PostGraphicEvent(std::bind(ACLConnectionSuss, *bdAddr));\r
}\r
\r
if (connState == PROFILE_STATE_DISCONNECTED) {\r
PhoneAudioManagerSetDeviceConnState(OUT_BLUETOOTH_A2DP, AUDIO_DEVICE_DISCONNECTED);\r
+ GraphicService::GetInstance()->PostGraphicEvent(std::bind(ACLConnectionFail, *bdAddr));\r
}\r
}\r
\r
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "BleConnStateChangeCallback connId 0x%x, connState 0x%x, pairState 0x%x",\r
connId, connState, pairState);\r
if (GAP_BLE_STATE_DISCONNECTED == connState) { // restart ble adv when disconnected\r
+ /* 通知msg_center,ble状态仍用bt状态,此处不区分 */\r
+ SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
BleAdvStart();\r
} else {\r
BluetoothModel::GetInstance()->SetAdvStartState(false);\r
+ SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
}\r
}\r
\r
static void ChangeStatusScreendisplay(int lastStatus)
{
if (GetScoConnectState() != HFP_SCO_STATE_CONNECTED) {
- if (lastStatus == OPERATE_INCOMING) {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ChangeStatusScreendisplay] lastStatus OPERATE_INCOMING");
- } else if (GetCurrCallNum() == 1 && (lastStatus == OPERATE_DIALING ||
- lastStatus == OPERATE_ALERTING)) {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ChangeStatusScreendisplay] lastStatus OPERATE_ALERTING");
+ if (lastStatus == HFP_HF_CALL_STATE_ACTIVE) {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ChangeStatusScreendisplay] STATE_ACTIVE");
+ StatusReset();
+ return;
+ } else if (lastStatus == HFP_HF_CALL_STATE_INCOMING) {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ChangeStatusScreendisplay] STATE_INCOMING");
+ } else if (GetCurrCallNum() == 1 && (lastStatus == HFP_HF_CALL_STATE_DIALING ||
+ lastStatus == HFP_HF_CALL_STATE_ALERTING)) {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ChangeStatusScreendisplay] STATE_ALERTING");
} else if (GetCurrCallNum() > 1) {
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ChangeStatusScreendisplay] GetCurrCallNum MULITE");
DisableCallingTimer();
{
if (MainCallingPresenter::GetInstance() != nullptr && CallerLogModel::GetInstance()->GetCallStatus()) {
if (CallerLogModel::GetInstance()->GetVolumeScreenStatus()) {
- volumeSliderEventListener = VolumeSliderEventListener::GetInstance();
+ VolumeSettingView *settingView = MainCallingPresenter::GetInstance()->GetvolumeSetting();
+ if (settingView == nullptr) {
+ return;
+ }
+ volumeSliderEventListener = settingView->GetVolumeEventListener();
if (volumeSliderEventListener == nullptr) {
return;
}
}
if (IsNotifyCallStatus()) {
if (NotificationManager::GetInstance()->GetVolumeScreenStatus()) {
- volumeSliderEventListener = VolumeSliderEventListener::GetInstance();
+ VolumeSettingView *settingView = GetvolumeSetting();
+ if (settingView == nullptr) {
+ return;
+ }
+ volumeSliderEventListener = settingView->GetVolumeEventListener();
if (volumeSliderEventListener == nullptr) {
return;
}
VOLUMEDRAG = 2,
} VolumeChangeStatus;
+class VolumeSettingView;
class VolumeSliderEventListener : public UISlider::UISliderEventListener,
public UIView::OnClickListener,
public UIView::OnDragListener {
public:
- VolumeSliderEventListener();
+ VolumeSliderEventListener(VolumeSettingView *volumeSetting);
~VolumeSliderEventListener();
static VolumeSliderEventListener *GetInstance();
void OnChange(int32_t progress) override;
private:
int16_t preSound{0};
int16_t playerCoefficients{0};
+ VolumeSettingView *volumeSettingView{nullptr};
};
} // namespace OHOS
#endif
public:\r
VolumeSettingView();\r
~VolumeSettingView();\r
- static VolumeSettingView *GetInstance(void);\r
int16_t sounding{0};\r
\r
UISlider *GetProgress(void);\r
bool SetUpVolume(void);\r
UIButton *GetIncreaseButton(void);\r
UIButton *GetDecreaseButton(void);\r
+ VolumeSliderEventListener *GetVolumeEventListener(void);\r
private:\r
VolumeSliderEventListener *listener{nullptr};\r
UISlider *progress{nullptr};\r
extern "C" {\r
#endif\r
\r
-static VolumeSliderEventListener *g_pVolumeSliderEventListener = nullptr;\r
-\r
constexpr int16_t SOUND_CHANGE = 10;\r
\r
-VolumeSliderEventListener::VolumeSliderEventListener()\r
+VolumeSliderEventListener::VolumeSliderEventListener(VolumeSettingView *volumeSetting) : volumeSettingView(volumeSetting)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "VolumeSliderEventListener new");\r
- g_pVolumeSliderEventListener = this;\r
}\r
\r
VolumeSliderEventListener::~VolumeSliderEventListener()\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "VolumeSliderEventListener::~VolumeSliderEventListener");\r
- g_pVolumeSliderEventListener = nullptr;\r
-}\r
-\r
-VolumeSliderEventListener *VolumeSliderEventListener::GetInstance()\r
-{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "VolumeSliderEventListener GetInstance");\r
- return g_pVolumeSliderEventListener;\r
}\r
\r
bool VolumeSliderEventListener::OnClick(UIView& view, const ClickEvent& event)\r
void VolumeSliderEventListener::ChangeVolume(VolumeChangeStatus status)\r
{\r
ImageInfo *image;\r
- VolumeSettingView *volumeSettingView = VolumeSettingView::GetInstance();\r
- if (volumeSettingView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick:volumeSettingView new fail");\r
- return;\r
- }\r
UISlider *progress = volumeSettingView->GetProgress();\r
if (progress == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick:progress new fail");\r
\r
bool VolumeSliderEventListener::OnDrag(UIView& view, const DragEvent& event)\r
{\r
- VolumeSettingView *volumeSettingView = VolumeSettingView::GetInstance();\r
- if (volumeSettingView == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnDrag::volumeSettingView new fail");\r
- return false;\r
- }\r
if (strcmp(view.GetViewId(), VOLUME_VIEW) == 0) {\r
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) {\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "VolumeSliderEventListener::OnDrag");\r
#include "ui_resource_image.h"\r
\r
namespace OHOS {\r
-static VolumeSettingView *g_pVolumeSettingView{nullptr};\r
static constexpr uint16_t BUTTON_X = 182;\r
static constexpr uint16_t BUTTON_Y = 0;\r
static constexpr uint16_t BUTTON_Y2 = 363;\r
VolumeSettingView::VolumeSettingView()\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "VolumeSettingView::VolumeSettingView");\r
- g_pVolumeSettingView = this;\r
}\r
\r
VolumeSettingView::~VolumeSettingView()\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "VolumeSettingView::~VolumeSettingView");\r
RemoveAll();\r
-\r
- UIView::OnClickListener *click = increaseButton->GetOnClickListener();\r
- if (click != nullptr) {\r
- delete click;\r
- click = nullptr;\r
+ if (listener != nullptr) {\r
+ delete listener;\r
+ listener = nullptr;\r
}\r
delete increaseButton;\r
increaseButton = nullptr;\r
\r
delete progress;\r
progress = nullptr;\r
-\r
- g_pVolumeSettingView = nullptr;\r
-}\r
-\r
-VolumeSettingView *VolumeSettingView::GetInstance(void)\r
-{\r
- return g_pVolumeSettingView;\r
}\r
\r
bool VolumeSettingView::SetUpVolume(void)\r
progress->SetRange(VOLUME_MAX, VOLUME_MIN);\r
\r
if (listener == nullptr) {\r
- listener = new VolumeSliderEventListener();\r
+ listener = new VolumeSliderEventListener(this);\r
if (listener == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "listener new fail");\r
return false;\r
progress->SetOnClickListener(listener);\r
progress->SetOnDragListener(listener);\r
progress->SetKnobStyle(StyleDefault::GetSliderKnobStyle());\r
- UIView::OnDragListener *volDragListener = (UIView::OnDragListener *)OHOS::VolumeSliderEventListener::GetInstance();\r
SetViewId(VOLUME_VIEW);\r
- SetOnDragListener(volDragListener);\r
+ SetOnDragListener(listener);\r
SetDraggable(true);\r
SetTouchable(true);\r
Add(progress);\r
int VolumeSettingView::ShowVolume(void)\r
{\r
ImageInfo *image;\r
- UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::VolumeSliderEventListener::GetInstance();\r
if (increaseButton == nullptr) {\r
increaseButton = new UIButton();\r
if (increaseButton == nullptr) {\r
increaseButton->SetViewId(INCREASE_BUTTON);\r
image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_INCREASE_BUTTON, PLAYER_IAMGES);\r
increaseButton->SetImageSrc(image, image);\r
- increaseButton->SetOnClickListener(clickListener);\r
+ increaseButton->SetOnClickListener(listener);\r
Add(increaseButton);\r
\r
if (decreaseButton == nullptr) {\r
decreaseButton->SetViewId(DECREASE_BUTTON);\r
image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_DECREASE_BUTTON, PLAYER_IAMGES);\r
decreaseButton->SetImageSrc(image, image);\r
- decreaseButton->SetOnClickListener(clickListener);\r
+ decreaseButton->SetOnClickListener(listener);\r
Add(decreaseButton);\r
\r
return VOLUME_OK;\r
}\r
+\r
+VolumeSliderEventListener *VolumeSettingView::GetVolumeEventListener(void)\r
+{\r
+ return listener;\r
+}\r
+\r
}\r
bool CallingViewDisplay();\r
bool InitPointerValue();\r
bool OnClick(UIView& view, const ClickEvent& event) override;\r
+ VolumeSettingView *GetvolumeSetting();\r
private:\r
int changeImage{0};\r
bool HintsHandupClick();\r
KeyInputListener *keyActListenr{nullptr};\r
VolumeSettingView *volumeSetting{nullptr};\r
- UIViewGroup *volumeSettingView{nullptr};\r
};\r
}\r
\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainCallingPresenter::~MainCallingPresenter");\r
RootView::GetInstance()->RemoveAll();\r
- if (volumeSettingView != nullptr) {\r
- delete volumeSettingView;\r
- volumeSettingView = nullptr;\r
+ if (volumeSetting != nullptr) {\r
+ delete volumeSetting;\r
volumeSetting = nullptr;\r
}\r
g_pMainView = nullptr;\r
\r
void MainCallingPresenter::HonrsViewChange()\r
{\r
- if (volumeSettingView == nullptr) {\r
+ if (volumeSetting == nullptr) {\r
volumeSetting = new VolumeSettingView();\r
if (volumeSetting == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainCallingPresenter::volumeSetting nullptr err");\r
ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_MUTE_BUTTON, PLAYER_IAMGES);\r
volumeSetting->GetDecreaseButton()->SetImageSrc(image, image);\r
}\r
- volumeSettingView = volumeSetting;\r
- RootView::GetInstance()->Add(volumeSettingView);\r
+ RootView::GetInstance()->Add(volumeSetting);\r
}\r
- VolumeSliderEventListener *volumeSliderEventListener = VolumeSliderEventListener::GetInstance();\r
+ VolumeSliderEventListener *volumeSliderEventListener = volumeSetting->GetVolumeEventListener();\r
if (volumeSliderEventListener == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainCallingPresenter::volumeSliderEventListener nullptr err");\r
return;\r
view_->GetCallingGroup()->SetVisible(false);\r
view_->GetWaitingGroup()->SetVisible(false);\r
\r
- volumeSettingView->SetVisible(true);\r
+ volumeSetting->SetVisible(true);\r
// 刷新UI\r
RootView::GetInstance()->Invalidate();\r
}\r
}\r
return true;\r
}\r
+\r
+VolumeSettingView *MainCallingPresenter::GetvolumeSetting()\r
+{\r
+ return volumeSetting;\r
+}\r
}
\ No newline at end of file
#include "service_id_define.h"
#include "samgr_lite.h"
#include "ui_service.h"
+#include "msg_center_msg.h"
+
#ifdef __cplusplus
extern "C" {
#endif
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnStateChanged] BT connected");
BtConnectedPro(bdAddr);
SendMsgToUIService(BT_CONNECTED_TO_UI, 0, nullptr, 0);
+ SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0);
break;
case PROFILE_STATE_DISCONNECTING: // 蓝牙连接断连
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnStateChanged] BT disconnecting");
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnStateChanged] BT disconnected");
BtDisconnectedPro();
SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0);
+ SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);
break;
default:
break;
hfp_hf_calls_info_t call = {0};
HfpIncomingEventPublish(TOPIC_EVENT_HFP_PHONE_TO_WATCH, call);
}
-
+
PostGraphicEvent(AudioSetup);
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "[ScoConnectPro] audioState:%d", g_audioState);
}
if (phoneCall == nullptr) {
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[CallChangeActivePro] Active no this call");
AddCurrCallToCallList(call);
+ TransCallToMobilePhone();
return;
}
ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_MUTE_BUTTON, PLAYER_IAMGES);
volumeSettingView->GetDecreaseButton()->SetImageSrc(image, image);
}
- VolumeSliderEventListener *volumeSliderEventListener = VolumeSliderEventListener::GetInstance();
+ VolumeSliderEventListener *volumeSliderEventListener = volumeSettingView->GetVolumeEventListener();
if (volumeSliderEventListener == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundButtonOnClick volumeSliderEventListener nullptr err");
return;
* Author:
* Create: 2021-11-23
*/
-
+#include <algorithm>
#include "MainModel.h"
#include "SetDialModel.h"
#include "kv_store.h"
{
dialInfoList.clear();
LoadAllDialFromRam();
+ size_t dialSize = dialInfoList.size();
LoadAllDialFromFs();
+ /* 只排序离线表盘 */
+ std::sort(dialInfoList.begin() + dialSize, dialInfoList.end(), [](const SetDialInfo& f, const SetDialInfo& n) {
+ return f.dialName < n.dialName;
+ });
}
void SetDialModel::LoadAllDialFromRam()
for (auto iter : dialInfoList) {
if (dialSetting.dialFlag) {
if (strcmp(iter.dialFullName.c_str(), dialSetting.dialFullName.c_str()) == 0) {
- break;
+ return index;
}
} else {
- if (iter.id == dialSetting.dialId ) {
- break;
+ if ((!iter.dialFlag) && (iter.id == dialSetting.dialId)) {
+ return index;
}
}
index++;
}
- if (index >= dialInfoList.size()) {
- return 0;
- } else {
- return index;
- }
+ return 0;
}
}
if ((event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) &&
(event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) {
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnDrag ChangeSlice(VIEW_APPLIST)");
- NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+ NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TransitionType::TRANSITION_BACK_TO_HEXAGONS);
}
return false;
}
#include "ui_test_countdown/ui_test_countdown.h"
#include "ui_test_running_ball/ui_test_running_ball.h"
#endif
+#if ENABLE_SOFT_KEYBOARD
+#include "ui_test_keyboard/ui_test_keyboard.h"
+#endif
#include "ui_test_tiger/ui_test_tiger.h"
#include "ui_test_hexagons_list/ui_test_hexagons_list.h"
#include "ui_test_video_play/ui_test_video_play.h"
#if ENABLE_VGU_ENGINE && CAPABILITY_HWDRAW_PATH
testCaseList_->PushBack(TestCaseInfo{"倒计时", new UITestCountdown()});
testCaseList_->PushBack(TestCaseInfo{"动画曲线", new UITestRunningBall()});
+#endif
+#if ENABLE_SOFT_KEYBOARD
+ testCaseList_->PushBack(TestCaseInfo{"软键盘", new UITestKeyboard()});
#endif
testCaseList_->PushBack(TestCaseInfo{"视频播放", new UITestVideoPlay()});
}
#endif\r
#endif\r
\r
-#ifdef USE_DIAG_LOG\r
+#if !defined(SW_UART_DEBUG) && !defined(SW_RTT_DEBUG)\r
#include "soc_diag_util.h"\r
#include "log_oam_logger.h"\r
#include "log_def.h"\r
WEARABLE_LOG_MODULE_MAX\r
} WearableLogModuleType;\r
\r
-#ifdef USE_DIAG_LOG\r
+#if !defined(SW_UART_DEBUG) && !defined(SW_RTT_DEBUG)\r
#define WEARABLE_LOGE(mod, fmt, arg...) uapi_diag_error_log(0, fmt, ##arg)\r
#define WEARABLE_LOGW(mod, fmt, arg...) uapi_diag_warning_log(0, fmt, ##arg)\r
#define WEARABLE_LOGI(mod, fmt, arg...) uapi_diag_info_log(0, fmt, ##arg)\r
+#ifdef WEARABLE_LOG_DEBUG\r
#define WEARABLE_LOGD(mod, fmt, arg...) uapi_diag_debug_log(0, fmt, ##arg)\r
#else\r
+#define WEARABLE_LOGD(mod, fmt, arg...)\r
+#endif\r
+#else\r
#define WEARABLE_LOGE(mod, fmt, arg...) PRINT("[WEARABLE E/] %s: " fmt "\n", __FUNCTION__, ##arg)\r
#define WEARABLE_LOGW(mod, fmt, arg...) PRINT("[WEARABLE W/] %s: " fmt "\n", __FUNCTION__, ##arg)\r
#define WEARABLE_LOGI(mod, fmt, arg...) PRINT("[WEARABLE I/] %s: " fmt "\n", __FUNCTION__, ##arg)\r
* limitations under the License.\r
*/\r
\r
-#ifndef OHOS_MAIN_SERVICE_H\r
-#define OHOS_MAIN_SERVICE_H\r
+#ifndef MSG_CENTER_H\r
+#define MSG_CENTER_H\r
\r
#include <cstdint>\r
-\r
#include "service.h"\r
#include "iunknown.h"\r
#include "broadcast_feature.h"\r
\r
typedef struct MsgCenterFeatureApi {\r
INHERIT_IUNKNOWN;\r
+ int32_t (*SendMsg)(int32_t msgId, uint32_t msgValue, void *data, int32_t dataLen);\r
} MsgCenterFeatureApi;\r
\r
typedef struct MsgCenter {\r
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
+ * Description: broadcast service api
+ * Author: CompanyName
+ * Create: 2021-11-11
+ */
+
+#ifndef MSG_CENTER_MSG_H
+#define MSG_CENTER_MSG_H
+
+#include "stdint.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+ BT_DISCONNECTED_TO_MSGCENTER,
+ BT_CONNECTED_TO_MSGCENTER,
+ MSGCENTER_ADD_SLEEP_VETO,
+ MSGCENTER_RM_SLEEP_VETO,
+} MsgCenterServiceMsgId;
+
+void SendMsgToMsgCenterService(int32_t msgId, uint32_t msgValue, void *data, int32_t dataLen);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
\ No newline at end of file
#define FILE_SPILT_MAX_SIZE 970 /* SPP包不能超过990字节 */\r
#define FILE_NAME_MAX_LEN 100\r
\r
+typedef enum msg_center_pcm_end_flag {\r
+ PCM_END_FLAG_AI_CHAT, /* AI对话 */\r
+ PCM_END_FLAG_WATCH_FACE, /* 表盘 */\r
+ PCM_END_FLAG_VECTOR_NAVI, /* 矢量地图 */\r
+} msg_center_pcm_end_flag_t;\r
+\r
typedef enum msg_center_xiaodu_type_id {\r
MSGCENTER_TYPE_ID_XIAODU_START = 0x1,\r
MSGCENTER_TYPE_ID_XIAODU_RECV_XIAODU_INFO,\r
MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_GEOCODE_SEARCH,\r
MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH,\r
MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_REGEOCODE_SEARCH,\r
+ /* 地图私有协议 */\r
+ MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_DESTROY_PAGE,\r
+ MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_DISCONNECTED,\r
+ MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED,\r
} msg_center_vector_navi_type_id_t;\r
\r
typedef enum msg_center_alipay_type_id {\r
"rec_geocode_search",\r
"req_regeocode_search",\r
"rec_regeocode_search",\r
+ "req_destroy_page",\r
};\r
\r
static inline const char* vector_navi_get_str(uint8_t type)\r
errcode_t msg_center_send_data(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len);\r
void msg_center_split_file(char *origin_file, int size, char *flist);\r
void msg_center_combine_file(char *flist, char *target_file_name);\r
+diag_frame_fid_t msg_center_get_trans_channel();\r
+void msg_center_set_trans_channel(diag_frame_fid_t select);\r
\r
#ifdef __cplusplus\r
#if __cplusplus\r
};\r
\r
namespace OHOS {\r
+class VolumeSettingView;\r
UIViewGroup* CreatePhoneCallView(void);\r
UIViewGroup* CreateCallingView(void);\r
UIViewGroup* CreateMultiplePhoneView(void);\r
UIViewGroup* CreateWaitingHintsView(void);\r
void HonrsViewChange(void);\r
+VolumeSettingView *GetvolumeSetting(void);\r
void FreeCallingView(void);\r
void FreePhoneCallView(void);\r
void FreeMultiplePhoneCallView(void);\r
errcode_t msg_center_vector_navi_rec_geocode_search(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len);\r
errcode_t msg_center_vector_navi_req_regeocode_search(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len);\r
errcode_t msg_center_vector_navi_rec_regeocode_search(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len);\r
+errcode_t msg_center_vector_navi_req_destroy_page(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len);\r
\r
#ifdef __cplusplus\r
#if __cplusplus\r
{ MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_GEOCODE_SEARCH, msg_center_vector_navi_rec_geocode_search},
{ MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_REGEOCODE_SEARCH, msg_center_vector_navi_req_regeocode_search},
{ MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_REGEOCODE_SEARCH, msg_center_vector_navi_rec_regeocode_search},
+ /* µØÍ¼Ë½ÓÐÐÒé */
+ { MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_DESTROY_PAGE, msg_center_vector_navi_req_destroy_page},
+ { MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_DISCONNECTED, NULL},
+ { MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED, NULL},
#endif
#ifdef SUPPORT_ALIPAY_SEC
{ MSGCENTER_CMD_ALIPAY, MSGCENTER_TYPE_ID_ALIPAY_NETWORK_STATUS, msg_center_alipay_network_status},
UIViewGroup* g_phoneView = nullptr;\r
UIViewGroup* g_multiPhoneView = nullptr;\r
UIViewGroup* g_callingView = nullptr;\r
-UIViewGroup* g_volumeSettingView = nullptr;\r
UIViewGroup* g_waitingHintsView = nullptr;\r
VolumeSettingView *g_volumeSetting = nullptr;\r
UIImageView* g_imageAgree = nullptr;\r
\r
void HonrsViewChange(void)\r
{\r
- if (g_volumeSettingView == nullptr) {\r
+ if (g_volumeSetting == nullptr) {\r
g_volumeSetting = new VolumeSettingView();\r
if (g_volumeSetting == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "makephone_notification::g_volumeSetting nullptr err");\r
ImageInfo *image = ImageCacheManager::GetInstance().LoadOneInMultiRes(PLAYER_MUTE_BUTTON, PLAYER_IAMGES);\r
g_volumeSetting->GetDecreaseButton()->SetImageSrc(image, image);\r
}\r
- g_volumeSettingView = g_volumeSetting;\r
- NotificationManager::GetInstance()->screenContainer_->Add(g_volumeSettingView);\r
+ NotificationManager::GetInstance()->screenContainer_->Add(g_volumeSetting);\r
}\r
- VolumeSliderEventListener *volumeSliderEventListener = VolumeSliderEventListener::GetInstance();\r
+ VolumeSliderEventListener *volumeSliderEventListener = g_volumeSetting->GetVolumeEventListener();\r
if (volumeSliderEventListener == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "makephone_notification::volumeSliderEventListener nullptr err");\r
return;\r
}\r
\r
volumeSliderEventListener->SetPlayerCoefficients(VOLUMEPHONENOTIFY); // 进度条系数\r
- g_volumeSettingView->SetVisible(true);\r
+ g_volumeSetting->SetVisible(true);\r
// 刷新UI\r
RootView::GetInstance()->Invalidate();\r
}\r
+VolumeSettingView *GetvolumeSetting(void)\r
+{\r
+ return g_volumeSetting;\r
+}\r
\r
static void FreeCallingViewImage(void)\r
{\r
delete g_multiPhoneView;\r
g_multiPhoneView = nullptr;\r
}\r
- if (g_volumeSettingView != nullptr) {\r
- delete g_volumeSettingView;\r
- g_volumeSettingView = nullptr;\r
+ if (g_volumeSetting != nullptr) {\r
+ delete g_volumeSetting;\r
g_volumeSetting = nullptr;\r
}\r
}\r
delete g_callingView;\r
g_callingView = nullptr;\r
}\r
- if (g_volumeSettingView != nullptr) {\r
- delete g_volumeSettingView;\r
- g_volumeSettingView = nullptr;\r
+ if (g_volumeSetting != nullptr) {\r
+ delete g_volumeSetting;\r
g_volumeSetting = nullptr;\r
}\r
}\r
return ERRCODE_FAIL;\r
}\r
} else if (msg.msg_id == MSGCENTER_TYPE_ID_XIAODU_END_RECORD) {\r
- res = msg_center_xiaodu_send_end_record(MSGCENTER_CMD_XIAODU, MSGCENTER_TYPE_ID_XIAODU_END_RECORD, nullptr,\r
- 0);\r
+ res = msg_center_xiaodu_send_end_record(MSGCENTER_CMD_XIAODU, MSGCENTER_TYPE_ID_XIAODU_END_RECORD, msg.data,\r
+ msg.len);\r
if (res != ERRCODE_SUCC) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "send pcm stream failed");\r
return ERRCODE_FAIL;\r
errcode_t msg_center_xiaodu_send_end_record(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len)\r
{\r
errcode_t ret = ERRCODE_SUCC;\r
- uint8_t end_record_flag = 0;\r
\r
- ret = msg_center_send_data(cmd_id, type, &end_record_flag, sizeof(end_record_flag));\r
+ ret = msg_center_send_data(cmd_id, type, usr_data, usr_len);\r
if (ret != ERRCODE_SUCC) {\r
return ERRCODE_FAIL;\r
}\r
\r
- WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "send pcm stream end.\r\n");\r
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "send pcm stream end, usr_data = %d, usr_len = %d\r\n",\r
+ *(uint8_t *)usr_data, usr_len); /* usr_data参考协议msg_center_pcm_end_flag_t */\r
pcm_stream_del_queue();\r
return ERRCODE_SUCC;\r
}\r
}\r
\r
WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "%s, usr_data = %s, usr_len = %d\r\n", vector_navi_get_str(type),\r
- usr_data, usr_len);\r
+ usr_data == NULL ? NULL : usr_data, usr_len);\r
return ERRCODE_SUCC;\r
}\r
\r
type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_REGEOCODE_SEARCH ||\r
type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_ROUTE_RIDING_SEARCH ||\r
type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_ROUTE_WALKING_SEARCH ||\r
- type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_ROUTE_TRANSIT_SEARCH) {\r
+ type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_ROUTE_TRANSIT_SEARCH ||\r
+ type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_REMAIN_ROUTE_UPDATE ||\r
+ type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_RE_ROUTE_COMPLETE) {\r
+ return true;\r
+ } else {\r
+ return false;\r
+ }\r
+}\r
+\r
+static bool has_two_callback(uint8_t type)\r
+{\r
+ if (type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_GEOCODE_SEARCH ||\r
+ type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_REGEOCODE_SEARCH ||\r
+ type == MSGCENTER_TYPE_ID_VECTOR_NAVI_RECV_POI ||\r
+ type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_ROUTE_RIDING_SEARCH ||\r
+ type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_ROUTE_WALKING_SEARCH ||\r
+ type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_ROUTE_TRANSIT_SEARCH ||\r
+ type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_AUTH_LICENSE ||\r
+ type == MSGCENTER_TYPE_ID_VECTOR_NAVI_REC_NAVI_INIT) {\r
return true;\r
} else {\r
return false;\r
return ERRCODE_FAIL;\r
}\r
\r
+ #if defined(SUPPORT_POWER_MANAGER)\r
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();\r
+ if (display_api->get_screen_state() != SCREEN_ON) {\r
+ display_api->turn_on_screen();\r
+ }\r
+ display_api->set_screen_set_keepon_timeout(600000); // 600000ms\r
+ #endif\r
+\r
char *data = (char *)malloc(payload_len + 1);\r
if (data == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_MSG_CENTER, "%s: malloc failed.\r\n", vector_navi_get_str(type));\r
data[payload_len] = '\0';\r
WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "%s -- > %s\r\n", vector_navi_get_str(type), tlv_payload);\r
\r
- if (is_vector_navi_longbuf(type)) {\r
+ if (is_vector_navi_longbuf(type) && payload_len != 1) {\r
msg_center_transfer_longbuf(data, type);\r
+ } else if (has_two_callback(type) && payload_len == 1) {\r
+ if (strcmp(data, "1") == 0) {\r
+ BaidumapSendMsgToJS(data, type);\r
+ } else if ((strcmp(data, "0") == 0)) {\r
+ BaidumapFailSendMsgToJS(data, type);\r
+ } else {\r
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_MSG_CENTER, "%s, app should trans 0 or 1\r\n", vector_navi_get_str(type));\r
+ }\r
} else {\r
BaidumapSendMsgToJS(data, type);\r
}\r
return msg_center_vector_navi_rec_common_proc(cmd_id, type, usr_data, usr_len);\r
}\r
\r
+errcode_t msg_center_vector_navi_req_destroy_page(uint8_t cmd_id, uint8_t type, void *usr_data, uint16_t usr_len)\r
+{\r
+ return msg_center_vector_navi_req_common_proc(cmd_id, type, usr_data, usr_len);\r
+}\r
+\r
#ifdef __cplusplus\r
}\r
#endif\r
set(COMPONENT_NAME "power_manager")
+set(MODULE_NAME "app")
+set(AUTO_DEF_FILE_ID TRUE)
set(PUBLIC_HEADER
)
#include "stdint.h"\r
#include "stdbool.h"\r
#include "errcode.h"\r
+#if !defined(SW_UART_DEBUG) && !defined(SW_RTT_DEBUG)\r
+#include "soc_diag_util.h"\r
+#include "log_oam_logger.h"\r
+#include "log_def.h"\r
+#else\r
#include "debug_print.h"\r
+#endif\r
\r
#ifdef __cplusplus\r
#if __cplusplus\r
/* * 获取对应动作的掩码 */\r
#define GET_ACTION_MASK(action) (1 << ((uint32_t)(action)))\r
\r
-#ifdef DISPLAY_HSO_DEBUG_LOG\r
-#define POWER_DISPLAY_PRINT_ERR(log_num, fmt, args...) uapi_diag_error_log(0, fmt, ##arg)\r
-#define POWER_DISPLAY_PRINT_WARN(log_num, fmt, args...) uapi_diag_warning_log(0, fmt, ##arg)\r
-#define POWER_DISPLAY_PRINT_INFO(log_num, fmt, args...) uapi_diag_info_log(0, fmt, ##arg)\r
-#define POWER_DISPLAY_PRINT_DEBUG(log_num, fmt, args...)\r
+#if !defined(SW_UART_DEBUG) && !defined(SW_RTT_DEBUG)\r
+#define POWER_DISPLAY_PRINT_ERR(log_num, fmt, arg...) uapi_diag_error_log(0, fmt, ##arg)\r
+#define POWER_DISPLAY_PRINT_WARN(log_num, fmt, arg...) uapi_diag_warning_log(0, fmt, ##arg)\r
+#define POWER_DISPLAY_PRINT_INFO(log_num, fmt, arg...) uapi_diag_info_log(0, fmt, ##arg)\r
+#ifdef WEARABLE_LOG_DEBUG\r
+#define POWER_DISPLAY_PRINT_DEBUG(log_num, fmt, arg...) uapi_diag_debug_log(0, fmt, ##arg)\r
+#else\r
+#define POWER_DISPLAY_PRINT_DEBUG(log_num, fmt, arg...)\r
+#endif\r
#else\r
#define POWER_DISPLAY_PRINT_ERR(log_num, fmt, arg...) PRINT("[POWER_MANAGER E/] %s: " fmt "\r\n", __FUNCTION__, ##arg)\r
#define POWER_DISPLAY_PRINT_WARN(log_num, fmt, arg...) PRINT("[POWER_MANAGER W/] %s: " fmt "\r\n", __FUNCTION__, ##arg)\r
ext_errno ret = drv_vau_suspend(NULL);\r
if (ret != 0) {\r
POWER_DISPLAY_PRINT_ERR(0, "drv vau suspend error ret=%x\r\n", ret);\r
- return ERRCODE_FAIL;\r
}\r
#ifdef SUPPORT_GPU_JPEG\r
(void)drv_jpeg_suspend(NULL);\r
ret = drv_dpu_suspend(NULL);\r
if (ret != 0) {\r
POWER_DISPLAY_PRINT_ERR(0, "drv dpu suspend error ret=%x\r\n", ret);\r
- return ERRCODE_FAIL;\r
}\r
#endif\r
#ifdef SUPPORT_GPU_GMMU\r
#define LCD_FILL_COLOR_ADDR 0x60280000\r
#endif\r
\r
-#define PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG 0x57000014\r
-#define PM_SLEEP_SOFT_RESET_FORCE_WKUP_VAL 0xb66\r
-#define PM_MCU_SEND_IPC_WKUP_BT_REG 0x52000034\r
-#define PM_MCU_SEND_IPC_WKUP_BT_VAL 0x2\r
-#define BT_RESET_DELAY 500\r
#define POWER_KEY_PARAM_LEN 0x2\r
#define CALENDAR_PARAM_LEN 0x6\r
#ifdef CFG_DRIVERS_MMC\r
\r
send_spp_diag_msg(g_app_diag_flag, &g_mcu_diag_header, res, DIAG_RES_LEN);\r
reset_deal_with_fs();\r
- // when bt at sleep, need wkup bt before soft reset\r
- writew(PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG, PM_SLEEP_SOFT_RESET_FORCE_WKUP_VAL);\r
- writew(PM_MCU_SEND_IPC_WKUP_BT_REG, PM_MCU_SEND_IPC_WKUP_BT_VAL);\r
- uapi_tcxo_delay_ms(BT_RESET_DELAY);\r
+\r
set_cpu_utils_reset_cause(REBOOT_CAUSE_APPLICATION_SYSRESETREQ);\r
hal_reboot_chip();\r
return ERRCODE_SUCC;\r
{\r
unused(para);\r
unused(para_len);\r
- // when bt at sleep, need wkup bt before soft reset\r
- writew(PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG, PM_SLEEP_SOFT_RESET_FORCE_WKUP_VAL);\r
- writew(PM_MCU_SEND_IPC_WKUP_BT_REG, PM_MCU_SEND_IPC_WKUP_BT_VAL);\r
- uapi_tcxo_delay_ms(BT_RESET_DELAY);\r
+\r
set_cpu_utils_reset_cause(REBOOT_CAUSE_APPLICATION_SYSRESETREQ);\r
writew(0x5702C010, 0x5A5A);\r
hal_reboot_chip();\r
else()
if(DEFINED LIB)
else()
- message(STATUS "${SOURCES0} is not found, finding lib${COMPONENT_NAME}.a in ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_COMMAND}")
- find_library(LINK_LIB_${COMPONENT_NAME} "lib${COMPONENT_NAME}.a" ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_COMMAND})
+ set(TARGET_COMMAND_TMP ${TARGET_COMMAND})
+ string(REPLACE "-user" "" TARGET_COMMAND_TMP ${TARGET_COMMAND_TMP})
+ message(STATUS "${SOURCES0} is not found, finding lib${COMPONENT_NAME}.a in ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_COMMAND_TMP}")
+ find_library(LINK_LIB_${COMPONENT_NAME} "lib${COMPONENT_NAME}.a" ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_COMMAND_TMP})
if(NOT LINK_LIB_${COMPONENT_NAME})
message(FATAL_ERROR "${SOURCES0} is not found && lib${COMPONENT_NAME}.a not find")
endif()
'packet': True,
'fs_image': False
},
+ #native-js-user: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本
+ #离线日志版本
+ 'brandy-native-js-user': {
+ 'base_target_name': 'brandy-native-js',
+ 'defines': ['-:SW_UART_DEBUG'],
+ },
#native-xts: liteos + uikit + nandflash + mipi + psram + audio 典型合封UIKIT版本
'brandy-xts': {
'board': 'evb',
'pack_brandy_target4': ['brandy-ssb', 'brandy-target4-r', 'brandy-target4'],
'pack_brandy_target5': ['brandy-ssb', 'brandy-target5-r', 'brandy-target5'],
'pack_brandy_native_js': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-js'],
+ 'pack_brandy_native_js_user': ['brandy-ssb', 'brandy-native-js-r', 'brandy-native-js-user'],
'pack_brandy_xts': ['brandy-ssb', 'brandy-xts-r', 'brandy-xts'],
'brandy_all': ['brandy-ssb',
- 'brandy-target1', 'brandy-target3', 'brandy-target4', 'brandy-target5', 'brandy-native-js', 'brandy-xts',
+ 'brandy-target1', 'brandy-target3', 'brandy-target4', 'brandy-target5', 'brandy-native-js', 'brandy-native-js-user', 'brandy-xts',
'brandy-target1-r', 'brandy-target3-r', 'brandy-target4-r', 'brandy-target5-r', 'brandy-native-js-r', 'brandy-xts-r',
'testsuite-brandy-sdk']
}
--- /dev/null
+{\r
+ "OUT_BIN_DIR" : "output/brandy/nv_bin",\r
+ "OUT_BIN_NAME" : "brandy_all_nv.bin",\r
+ "BUILD_TEMP_PATH" : "output/brandy",\r
+\r
+ "NV_TARGET_JSON_PATH" : "middleware/chips/brandy/nv/nv_config/cfg/nv_target.json",\r
+ "NV_RELATIVE_PATH" : "output/brandy/nv_bin/temp",\r
+ "NV_DEFAULT_CFG_DIR" : "middleware/chips/brandy/nv/nv_config/cfg/eng",\r
+ "DATABASE_TXT_FILE" : "output/brandy/nv_bin"\r
+}
\ No newline at end of file
--- /dev/null
+{\r
+ "OUT_BIN_DIR" : "output/brandy/nv_bin",\r
+ "OUT_BIN_NAME" : "brandy_all_nv.bin",\r
+ "BUILD_TEMP_PATH" : "output/brandy",\r
+\r
+ "NV_TARGET_JSON_PATH" : "middleware/chips/brandy/nv/nv_config/cfg/nv_target.json",\r
+ "NV_RELATIVE_PATH" : "output/brandy/nv_bin/temp",\r
+ "NV_DEFAULT_CFG_DIR" : "middleware/chips/brandy/nv/nv_config/cfg/user",\r
+ "DATABASE_TXT_FILE" : "output/brandy/nv_bin"\r
+}
\ No newline at end of file
self.sdk = None
self.pack_tool = None
- def get_build_cmd(self, env):
+ def get_component(self, env):
com_config = CommonConfig(env.get('arch'))
- ext_cmd = []
- for component in self.component:
+ components = []
+ if env.get('just_build_components', False):
+ just_build_components = env.get('just_build_components', False)
+ else:
+ just_build_components = self.component
+ for component in just_build_components:
if component in env.get('ram_component', False):
- ext_cmd.append(component)
- if component in env.get('ram_component_set', False):
- for comm in com_config.get_component_set(component):
- if comm in env.get('ram_component', False):
- ext_cmd.append(comm)
+ components.append(component)
+ continue
+ if component not in env.get('ram_component_set', False):
+ continue
+ for comm in com_config.get_component_set(component):
+ if comm in env.get('ram_component', False):
+ components.append(comm)
+ return components
+
+ def get_build_cmd(self, env):
+ ext_cmd = []
+ components = self.get_component(env)
+ ext_cmd.extend(components)
if self.generator == 'Ninja':
return ['ninja'] + ext_cmd + ['-j%d' % self.thread]
else:
return
self.compile_target(target, env)
+
+ if env.get('just_build_components'):
+ return
+
if env.get("fs_image"):
fs_image_path = os.path.join(root_path, 'build', 'config', 'target_config', env.get('chip'), 'mk_fs_image')
fs_script_path = os.path.join(fs_image_path, 'mkyaffs2tool.py')
_excute(self.cmake_cmd, log_file, self.dump)
_excute(self.get_build_cmd(env), log_file, self.dump)
else:
- _excute(["cmake", "--build", output_path, '-j%d' % self.thread], log_file, self.dump)
-
- if len(self.component) > 0:
- print("######### Build target:%s, component:[%s] success" % (target_name, ' '.join(self.component)))
- exit(0)
+ ext_cmd = []
+ components_target = self.get_component(env)
+ print(components_target)
+ if components_target:
+ ext_cmd = ['--target'] + components_target
+ _excute(["cmake", "--build", output_path, '-j%d' % self.thread] + ext_cmd, log_file, self.dump)
+
+ if len(self.get_component(env)) > 0:
+ os.chdir(org_work_path)
+ print("######### Build target:%s, component:[%s] success" % (target_name, ' '.join(self.get_component(env))))
+ return 0
if env.is_enable_hso() and not nhso:
cmd = self.get_build_cmd(env)
"""\r
if self.parse_debug_info_phase_0==True:\r
return\r
- with open(file,'r') as fp:\r
+ with open(file,'r',encoding='utf-8') as fp:\r
lines=fp.readlines()\r
self.parse_debug_info_lines(lines)\r
self.parse_debug_info_phase_0=True\r
import time
from utils.build_utils import root_path, script_path, target_config_path, output_root
-from utils.build_utils import pkg_tools_path, jlink_tools_path, lzma_tools_path, sign_tools_path, memcheck_tools_path, factory_tools_path, derived_tools_path
+from utils.build_utils import pkg_tools_path, jlink_tools_path, lzma_tools_path, sign_tools_path
+from utils.build_utils import memcheck_tools_path, factory_tools_path, derived_tools_path
+from utils.build_utils import ohos_tools_path
from utils.build_utils import CopyModule, exec_shell, cmp_file, rm_pyc, rm_all, fn_get_subdirs
from enviroment import TargetEnvironment
from sdk_generator.target_config_genarator import genarate_reserve_config
os.path.join(memcheck_tools_path),
os.path.join(factory_tools_path, 'factory_tools'),
os.path.join(derived_tools_path),
+ os.path.join(ohos_tools_path),
]
sdk_close_components = [
memcheck_tools_path = os.path.join(root_path, 'tools', 'bin', 'memcheck')
factory_tools_path = os.path.join(root_path, 'tools', 'bin', 'factory_tools')
derived_tools_path = os.path.join(root_path, 'tools', 'bin', 'derived_key_tool')
+ohos_tools_path = os.path.join(root_path, 'tools', 'bin', 'ohos_tools')
"""
Colors defines. To highlight important output.
)
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}
)
set(WHOLE_LINK
)
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}
)
set(PRIVATE_HEADER
)\r
\r
set(PUBLIC_HEADER\r
- ${CMAKE_CURRENT_SOURCE_DIR}\r
)\r
\r
set(WHOLE_LINK\r
)
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}
)
set(PRIVATE_DEFINES
)
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}
)
set(PRIVATE_HEADER
)
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}
)
set(PRIVATE_DEFINES
)
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}
)
set(PRIVATE_HEADER
static void report_event_to_power_manager(input_event_info *touch_info)\r
{\r
if (g_power_manager_cb != NULL) {\r
- input_dev_data_t data;\r
- convert_touch_info(&data, touch_info);\r
- if (data.state == INDEV_STATE_UNKNOWN) {\r
- return;\r
- }\r
- g_power_manager_cb(data.state, 0);\r
+ g_power_manager_cb(touch_info->tp_event, 0);\r
}\r
return;\r
}\r
#include "hal_ipc.h"
#include "arch_barrier.h"
+#include "chip_io.h"
+#define IPC_TRY_SEND_MAX 10000
+#define BT_DEEPSLEEP_FLAG 0x5a5a
+#define IPC_TRY_INTERVAL_TIME 100
/*
* MCPU core trigger a interrupt to BCPU core.
*/
void hal_ipc_interrupt_security(void)
{
- MCPU_SOFT_INT_SET |= M_TO_BCPU_INT_OFFSET;
+ volatile uint32_t cnt = IPC_TRY_SEND_MAX;
+ while (cnt > 0) {
+ if (readw(GLB_CTL_B_RB_BASE + 0x1C) != BT_DEEPSLEEP_FLAG) {
+ if (cnt < IPC_TRY_SEND_MAX) {
+ uapi_tcxo_delay_us(IPC_TRY_INTERVAL_TIME);
+ }
+ MCPU_SOFT_INT_SET |= M_TO_BCPU_INT_OFFSET;
+ break;
+ }
+ cnt--;
+ }
}
/*
#define HAL_ULP_AON_GENERAL_REG (ULP_AON_CTL_RB_ADDR + 0x14)
#define HAL_ULP_AON_NO_POWEROFF_FLAG 0xA5A5
-static uint16_t g_reset_cause = REBOOT_CAUSE_UNKNOWN;
+#define PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG 0x57000014
+#define PM_SLEEP_SOFT_RESET_FORCE_WKUP_VAL 0xb66
+#define PM_SLEEP_SOFT_RESET_FORCE_WKUP_ACK 0x499
+#define PM_MCU_SEND_IPC_WKUP_BT_REG 0x52000034
+#define PM_MCU_SEND_IPC_WKUP_BT_VAL 0x2
+#define PM_WAIT_BT_WAKEUP_DELAY 100
+#define HAL_REBOOT_WAIT_ACK_TRY_TIMES 60
+#define BT_RESET_DELAY 500
+#define POS_NO_POWEROFF 15
+#define POS_FIRST_POWERON 14
+static uint16_t g_reset_cause = REBOOT_CAUSE_UNKNOWN;
void hal_reboot_set_ulp_aon_no_poweroff_flag(void)
{
- reg16_write(HAL_ULP_AON_GENERAL_REG, HAL_ULP_AON_NO_POWEROFF_FLAG);
+ reg16_setbit(HAL_ULP_AON_GENERAL_REG, POS_NO_POWEROFF);
}
bool hal_reboot_get_ulp_aon_no_poweroff_flag(void)
{
- if (reg16(HAL_ULP_AON_GENERAL_REG) == HAL_ULP_AON_NO_POWEROFF_FLAG) {
+ if (reg16_getbit(HAL_ULP_AON_GENERAL_REG, POS_NO_POWEROFF)) {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+void hal_reboot_set_first_power_on_flag(void)
+{
+ reg16_setbit(HAL_ULP_AON_GENERAL_REG, POS_FIRST_POWERON);
+}
+
+void hal_reboot_clear_first_power_on_flag(void)
+{
+ reg16_clrbit(HAL_ULP_AON_GENERAL_REG, POS_FIRST_POWERON);
+}
+
+bool hal_reboot_get_first_power_on_flag(void)
+{
+ if (reg16_getbit(HAL_ULP_AON_GENERAL_REG, POS_FIRST_POWERON)) {
return true;
} else {
return false;
set_cpu_utils_system_boot_magic();
#ifdef SUPPORT_GPIO
gpio_ulp_int_en(false); // when soft reset, ulp area is not cleared.
+#endif
+ // when bt at sleep, need wkup bt before soft reset
+#if !defined(BUILD_APPLICATION_SSB)
+ uint16_t lock_cnt = 0;
+ uint16_t max_lock_cnt = HAL_REBOOT_WAIT_ACK_TRY_TIMES;
+ writew(PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG, PM_SLEEP_SOFT_RESET_FORCE_WKUP_VAL);
+ writew(PM_MCU_SEND_IPC_WKUP_BT_REG, PM_MCU_SEND_IPC_WKUP_BT_VAL);
+ while((readw(PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG) != PM_SLEEP_SOFT_RESET_FORCE_WKUP_ACK) && \
+ (lock_cnt < max_lock_cnt)) {
+ PRINT("bt not send ack[%x],don't to reset,try %d.\n", readw(PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG), lock_cnt);
+ uapi_tcxo_delay_ms(PM_WAIT_BT_WAKEUP_DELAY);
+ lock_cnt++;
+ }
+#else
+ writew(PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG, PM_SLEEP_SOFT_RESET_FORCE_WKUP_VAL);
+ writew(PM_MCU_SEND_IPC_WKUP_BT_REG, PM_MCU_SEND_IPC_WKUP_BT_VAL);
+ uapi_tcxo_delay_ms(BT_RESET_DELAY);
#endif
// Request the reset & wait for it...
regw_clrbit(HAL_CHIP_RESET_REG, HAL_CHIP_RESET_REG_OFFSET, HAL_CHIP_RESET_REG_ENABLE_RESET_BIT);
*/
bool hal_reboot_get_ulp_aon_no_poweroff_flag(void);
+/**
+ * @brief Set a universal register of the ULP region to a fix value to indicate that is first power-on
+ */
+void hal_reboot_set_first_power_on_flag(void);
+
+/**
+ * @brief clear a universal register of the ULP region to a fix value to indicate that is not first power-on
+ */
+void hal_reboot_clear_first_power_on_flag(void);
+
+/**
+ * @brief Get is first power-on
+ * @return true first power-on, false is re-poweron
+ */
+bool hal_reboot_get_first_power_on_flag(void);
+
/**
* @}
*/
*/
#define SERVICE_INFORMATION 0x800000
+/**
+ * @if Eng
+ * @brief The Class of Device Audio or Vido.
+ * @else
+ * @brief 音配设备类型。
+ * @endif
+ */
+#define DEVICE_MAJOR_CLASS_AUDIO_VIDEO 0x400
+
+/**
+ * @if Eng
+ * @brief The Class of Device Phone.
+ * @else
+ * @brief 手机设备类型。
+ * @endif
+ */
+#define DEVICE_MAJOR_CLASS_PHONE 0x200
+
/**
* @if Eng
* @brief Enum of Bluetooth stack state.
*/
errcode_t gap_connect_remote_device(const bd_addr_t *addr);
+/**
+ * @if Eng
+ * @brief Use this funtion to set the inquiry parameters.
+ * @par Use this funtion to set the inquiry parameters.
+ * @attention NULL
+ * @param [in] device_class #uint32_t, class of device to report.
+ * @param [in] max_num #uint8_t, max number of response devices.
+ * @retval error code
+ * @par Dependency:
+ * @li bts_gap.h
+ * @else
+ * @brief 设置扫描参数。
+ * @par 设置扫描参数。
+ * @attention 无
+ * @param [in] device_class 设备类型。
+ * @param [in] max_num 最大上报数量。
+ * @retval 执行结果错误码。
+ * @par 依赖:
+ * @li bts_gap.h
+ * @endif
+ */
+errcode_t gap_br_set_inquiry_paramters(uint32_t device_class, uint8_t max_num);
+
/**
* @if Eng
* @brief Use this funtion to start BT discovery.
*/
int gap_register_callbacks(gap_call_backs_t *func);
+/**
+ * @if Eng
+ * @brief Use this funtion to reconnect a media device.
+ * @par Use this funtion to reconnect a media device.
+ * @attention NULL
+ * @param [in] addr #const bd_addr_t *, address of the device.
+ * @retval #true Execute successfully.
+ * @retval #false Execution failed.
+ * @par Dependency:
+ * @li bts_gap.h
+ * @else
+ * @brief 回连媒体设备。
+ * @par 回连媒体设备。
+ * @attention 无
+ * @param [in] 要回连的设备地址。
+ * @retval #true 连接成功。
+ * @retval #false 连接失败。
+ * @par 依赖:
+ * @li bts_gap.h
+ * @endif
+ */
+errcode_t gap_reconnect_media_device(const bd_addr_t *addr);
+
/**
* @}
*/
--- /dev/null
+/*
+ * Copyright (c) @CompanyNameMagicTag 2024. All rights reserved.
+ * Description: BTS FEATURE module.
+ */
+
+/**
+ * @defgroup bluetooth_bts_feature BTS FEATURE API
+ * @ingroup bluetooth
+ * @{
+ */
+
+
+#ifndef BTS_FEATURE_H
+#define BTS_FEATURE_H
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "errcode.h"
+#include "bts_def.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @if Eng
+ * @brief Struct of BT stack feature.
+ * @else
+ * @brief 蓝牙特性位图。
+ * @endif
+ */
+typedef struct {
+ uint32_t bt_auto_reconnect_closed:1; /*!< @if Eng BT reconnect feature.
+ @else 蓝牙回连特性。 @endif */
+ uint32_t reserved:31; /*!< @if Eng Featrues reserved for future.
+ @else 保留字段。 @endif */
+} bts_feature_t;
+
+/**
+ * @if Eng
+ * @brief Set BTS Features supported.
+ * @par Set BTS Features supported.
+ * @attention NULL
+ * @param [in] feature #bts_feature_t, a bitmap indicate supported features.
+ * @retval #BT_STATUS_SUCCESS Excute successfully.
+ * @retval #Other Error code, @ref bt_status_t
+ * @par Dependency:
+ * @li bts_feature.h
+ * @see
+ * @else
+ * @brief 设置想要使用的特性。
+ * @par 设置想要使用的特性。
+ * @attention 无
+ * @param [in] 特性位图。 @ref bts_feature_t
+ * @retval #BT_STATUS_SUCCESS 执行成功。
+ * @retval #Other 错误码, @ref bt_status_t。
+ * @par 依赖:
+ * @li bts_feature.h
+ * @see
+ * @endif
+ */
+errcode_t bts_set_features(bts_feature_t *feature);
+
+/**
+ * @if Eng
+ * @brief Use this funtion to get BTS features supported.
+ * @par Use this funtion to get BTS features supported.
+ * @attention NULL.
+ * @param NULL.
+ * @retval BT features bitmap. see @ref bts_feature_t
+ * @par Dependency:
+ * @li bts_feature.h
+ * @else
+ * @brief 获取BT协议栈支持的特性。
+ * @par 获取BT协议栈支持的特性。
+ * @attention 无
+ * @param 无
+ * @retval BT 特性位图。 参考 @ref bts_feature_t
+ * @par 依赖:
+ * @li bts_feature.h
+ * @endif
+ */
+bts_feature_t bts_get_features(void);
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="create style_name failed. @app_style.cpp(29),ERROR" ID="0xe10200ea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="style_name set string value error @app_style.cpp(33),ERROR" ID="0xe102010a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="transform prop value must be set. @app_style.cpp(169),ERROR" ID="0xe102054a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="None style to parse. @app_style.cpp(187),ERROR" ID="0xe10205da" />
- <MSG STRUCTURE="diag_log_msg0" NAME="None style to parse. @app_style.cpp(193),ERROR" ID="0xe102060a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc space error @app_style.cpp(265),ERROR" ID="0xe102084a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="convert style name to char failed, will be dropped @app_style.cpp(295),ERROR" ID="0xe102093a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="style name length is 0 or max, will be dropped @app_style.cpp(300),ERROR" ID="0xe1020962" />
- <MSG STRUCTURE="diag_log_msg0" NAME="create style error @app_style.cpp(308),ERROR" ID="0xe10209a2" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="create style_name failed. @app_style.cpp(29),ERROR" ID="0xe10600ea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="style_name set string value error @app_style.cpp(33),ERROR" ID="0xe106010a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="transform prop value must be set. @app_style.cpp(169),ERROR" ID="0xe106054a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="None style to parse. @app_style.cpp(187),ERROR" ID="0xe10605da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="None style to parse. @app_style.cpp(193),ERROR" ID="0xe106060a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc space error @app_style.cpp(265),ERROR" ID="0xe106084a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="convert style name to char failed, will be dropped @app_style.cpp(295),ERROR" ID="0xe106093a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="style name length is 0 or max, will be dropped @app_style.cpp(300),ERROR" ID="0xe1060962" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="create style error @app_style.cpp(308),ERROR" ID="0xe10609a2" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="create style item string failed. @app_style_item.cpp(58),ERROR" ID="0xe10401d2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="app_style set string value error @app_style_item.cpp(62),ERROR" ID="0xe10401f2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="style item transform num to string fail @app_style_item.cpp(77),ERROR" ID="0xe104026a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="convert style prop name to char failed, will be dropped @app_style_item.cpp(90),ERROR" ID="0xe10402d2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="style prop name length is 0, will be dropped @app_style_item.cpp(95),ERROR" ID="0xe10402fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="new styleItem error @app_style_item.cpp(114),ERROR" ID="0xe1040392" />
- <MSG STRUCTURE="diag_log_msg0" NAME="convert style value to char failed, will be dropped @app_style_item.cpp(135),ERROR" ID="0xe104043a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="new styleItem error @app_style_item.cpp(161),ERROR" ID="0xe104050a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="create style item string failed. @app_style_item.cpp(58),ERROR" ID="0xe10801d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="app_style set string value error @app_style_item.cpp(62),ERROR" ID="0xe10801f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="style item transform num to string fail @app_style_item.cpp(77),ERROR" ID="0xe108026a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="convert style prop name to char failed, will be dropped @app_style_item.cpp(90),ERROR" ID="0xe10802d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="style prop name length is 0, will be dropped @app_style_item.cpp(95),ERROR" ID="0xe10802fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="new styleItem error @app_style_item.cpp(114),ERROR" ID="0xe1080392" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="convert style value to char failed, will be dropped @app_style_item.cpp(135),ERROR" ID="0xe108043a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="new styleItem error @app_style_item.cpp(161),ERROR" ID="0xe108050a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="malloc flags data buffer failed @app_style_manager.cpp(62),ERROR" ID="0xe10801f2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="convert id value to char failed, will be dropped @app_style_manager.cpp(227),ERROR" ID="0xe108071a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="not supported yet @app_style_manager.cpp(243),WARNING" ID="0xe108079b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="invalid prop count @app_style_manager.cpp(283),ERROR" ID="0xe10808da" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="malloc flags data buffer failed @app_style_manager.cpp(62),ERROR" ID="0xe10c01f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="convert id value to char failed, will be dropped @app_style_manager.cpp(227),ERROR" ID="0xe10c071a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="not supported yet @app_style_manager.cpp(243),WARNING" ID="0xe10c079b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="invalid prop count @app_style_manager.cpp(283),ERROR" ID="0xe10c08da" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="initAppSysCmd bm! @appsys_bms_cmd.cpp(52),INFO" ID="0xe04a01a5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm ReceiveCallback resultCode = %d @appsys_bms_cmd.cpp(59),INFO" ID="0xe04a01dd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="argc > 4, ERR!!! @appsys_bms_cmd.cpp(66),ERROR" ID="0xe04a0212" />
- <MSG STRUCTURE="diag_log_msg0" NAME="input failed! @appsys_bms_cmd.cpp(75),ERROR" ID="0xe04a025a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="argc > 4, ERR!!! @appsys_bms_cmd.cpp(83),ERROR" ID="0xe04a029a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="js app is active, first need terminate @appsys_bms_cmd.cpp(109),INFO" ID="0xe04a036d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="bm dump argc 2 only support allBundles, ERR!!! @appsys_bms_cmd.cpp(121),ERROR" ID="0xe04a03ca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm dump BundlesInfo len = %d @appsys_bms_cmd.cpp(130),DBG" ID="0xe04a0416" />
- <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm dump BundlesInfo bundleName = %s @appsys_bms_cmd.cpp(133),DBG" ID="0xe04a042e" />
- <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm dump BundlesInfo versionName = %s @appsys_bms_cmd.cpp(134),DBG" ID="0xe04a0436" />
- <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm dump BundlesInfo deviceType = %s @appsys_bms_cmd.cpp(136),DBG" ID="0xe04a0446" />
- <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm dump BundlesInfo udid = %d @appsys_bms_cmd.cpp(138),DBG" ID="0xe04a0456" />
- <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm dump BundlesInfo isSystemApp = %d @appsys_bms_cmd.cpp(139),DBG" ID="0xe04a045e" />
- <MSG STRUCTURE="diag_log_msg0" NAME="cmd_bm start @appsys_bms_cmd.cpp(158),INFO" ID="0xe04a04f5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="argc is not 2, ERR!!! @appsys_bms_cmd.cpp(160),ERROR" ID="0xe04a0502" />
- <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm command = %s @appsys_bms_cmd.cpp(165),INFO" ID="0xe04a052d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="cmd_bm no correct cmd!!! @appsys_bms_cmd.cpp(179),ERROR" ID="0xe04a059a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="cmd_bm end @appsys_bms_cmd.cpp(182),INFO" ID="0xe04a05b5" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="initAppSysCmd bm! @appsys_bms_cmd.cpp(53),INFO" ID="0xe04a01ad" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm ReceiveCallback resultCode = %d @appsys_bms_cmd.cpp(60),INFO" ID="0xe04a01e5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="argc > 4, ERR!!! @appsys_bms_cmd.cpp(67),ERROR" ID="0xe04a021a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="input failed! @appsys_bms_cmd.cpp(76),ERROR" ID="0xe04a0262" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="argc > 4, ERR!!! @appsys_bms_cmd.cpp(84),ERROR" ID="0xe04a02a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="js app is active, first need terminate @appsys_bms_cmd.cpp(110),INFO" ID="0xe04a0375" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="bm dump argc 2 only support allBundles, ERR!!! @appsys_bms_cmd.cpp(122),ERROR" ID="0xe04a03d2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm dump BundlesInfo len = %d @appsys_bms_cmd.cpp(131),DBG" ID="0xe04a041e" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm dump BundlesInfo bundleName = %s @appsys_bms_cmd.cpp(134),DBG" ID="0xe04a0436" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm dump BundlesInfo versionName = %s @appsys_bms_cmd.cpp(135),DBG" ID="0xe04a043e" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm dump BundlesInfo deviceType = %s @appsys_bms_cmd.cpp(137),DBG" ID="0xe04a044e" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm dump BundlesInfo udid = %d @appsys_bms_cmd.cpp(139),DBG" ID="0xe04a045e" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm dump BundlesInfo isSystemApp = %d @appsys_bms_cmd.cpp(140),DBG" ID="0xe04a0466" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="cmd_bm start @appsys_bms_cmd.cpp(159),INFO" ID="0xe04a04fd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="argc is not 2, ERR!!! @appsys_bms_cmd.cpp(161),ERROR" ID="0xe04a050a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="cmd_bm command = %s @appsys_bms_cmd.cpp(166),INFO" ID="0xe04a0535" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="cmd_bm no correct cmd!!! @appsys_bms_cmd.cpp(180),ERROR" ID="0xe04a05a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="cmd_bm end @appsys_bms_cmd.cpp(183),INFO" ID="0xe04a05bd" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="AsyncTaskManager::Dispatch failed: handler is null. @async_task_manager.cpp(115),ERROR" ID="0xe056039a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="AsyncTaskManager::Dispatch failed: Fatal error is hitted. @async_task_manager.cpp(119),ERROR" ID="0xe05603ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="AsyncTaskManager::Dispatch failed: out of memory. @async_task_manager.cpp(125),ERROR" ID="0xe05603ea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="AsyncTaskManager::Cancel failed: invalid task ID. @async_task_manager.cpp(149),ERROR" ID="0xe05604aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="AsyncTaskManager::CancelWithContext failed: null context. @async_task_manager.cpp(178),ERROR" ID="0xe0560592" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="AsyncTaskManager::Dispatch failed: handler is null. @async_task_manager.cpp(115),ERROR" ID="0xe05a039a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="AsyncTaskManager::Dispatch failed: Fatal error is hitted. @async_task_manager.cpp(119),ERROR" ID="0xe05a03ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="AsyncTaskManager::Dispatch failed: out of memory. @async_task_manager.cpp(125),ERROR" ID="0xe05a03ea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="AsyncTaskManager::Cancel failed: invalid task ID. @async_task_manager.cpp(149),ERROR" ID="0xe05a04aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="AsyncTaskManager::CancelWithContext failed: null context. @async_task_manager.cpp(178),ERROR" ID="0xe05a0592" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gattc read by uuid param error @btsrv_gatt_client.c(1206),ERROR" ID="0xd81625b2" />
<MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gattc read by uuid addr memcpy fail @btsrv_gatt_client.c(1211),ERROR" ID="0xd81625da" />
<MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gattc write req param error @btsrv_gatt_client.c(1233),ERROR" ID="0xd816268a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write req param new fail! @btsrv_gatt_client.c(1238),ERROR" ID="0xd81626b2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write req param set fail! @btsrv_gatt_client.c(1244),ERROR" ID="0xd81626e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write req addr memcpy fail @btsrv_gatt_client.c(1249),ERROR" ID="0xd816270a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write req value memcpy fail @btsrv_gatt_client.c(1256),ERROR" ID="0xd8162742" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gattc write cmd param error @btsrv_gatt_client.c(1278),ERROR" ID="0xd81627f2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write cmd param new fail! @btsrv_gatt_client.c(1283),ERROR" ID="0xd816281a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write cmd addr memcpy fail @btsrv_gatt_client.c(1288),ERROR" ID="0xd8162842" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write cmd value memcpy fail @btsrv_gatt_client.c(1295),ERROR" ID="0xd816287a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gattc exchange mtu param error @btsrv_gatt_client.c(1317),ERROR" ID="0xd816292a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] addr memcpy fail @btsrv_gatt_client.c(1321),ERROR" ID="0xd816294a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[btsrv][ERROR] mc ble gatt mtu config req atb ret: %d @btsrv_gatt_client.c(1329),ERROR" ID="0xd816298a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gatt client callback memcpy fail @btsrv_gatt_client.c(1338),ERROR" ID="0xd81629d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write req param new fail! @btsrv_gatt_client.c(1241),ERROR" ID="0xd81626ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write req param set fail! @btsrv_gatt_client.c(1247),ERROR" ID="0xd81626fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write req addr memcpy fail @btsrv_gatt_client.c(1252),ERROR" ID="0xd8162722" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write req value memcpy fail @btsrv_gatt_client.c(1259),ERROR" ID="0xd816275a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gattc write cmd param error @btsrv_gatt_client.c(1281),ERROR" ID="0xd816280a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write cmd param new fail! @btsrv_gatt_client.c(1289),ERROR" ID="0xd816284a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write cmd addr memcpy fail @btsrv_gatt_client.c(1294),ERROR" ID="0xd8162872" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] write cmd value memcpy fail @btsrv_gatt_client.c(1301),ERROR" ID="0xd81628aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gattc exchange mtu param error @btsrv_gatt_client.c(1323),ERROR" ID="0xd816295a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] addr memcpy fail @btsrv_gatt_client.c(1327),ERROR" ID="0xd816297a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[btsrv][ERROR] mc ble gatt mtu config req atb ret: %d @btsrv_gatt_client.c(1335),ERROR" ID="0xd81629ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gatt client callback memcpy fail @btsrv_gatt_client.c(1344),ERROR" ID="0xd8162a02" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gatts send response data memcpy fail @btsrv_gatt_server.c(1601),ERROR" ID="0xd81a320a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[Error] enable ble first! @btsrv_gatt_server.c(1617),ERROR" ID="0xd81a328a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] invalid param @btsrv_gatt_server.c(1622),ERROR" ID="0xd81a32b2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] malloc send notification param fail @btsrv_gatt_server.c(1628),ERROR" ID="0xd81a32e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] data memcpy fail @btsrv_gatt_server.c(1636),ERROR" ID="0xd81a3322" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] enable ble first! @btsrv_gatt_server.c(1653),ERROR" ID="0xd81a33aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] invalid param @btsrv_gatt_server.c(1658),ERROR" ID="0xd81a33d2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] param new fail @btsrv_gatt_server.c(1663),ERROR" ID="0xd81a33fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] sen ntf/ind by uuid memcpy fail @btsrv_gatt_server.c(1673),ERROR" ID="0xd81a344a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] sen ntf/ind by uuid memcpy fail @btsrv_gatt_server.c(1682),ERROR" ID="0xd81a3492" />
- <MSG STRUCTURE="diag_log_msg1" NAME="set mtu out of bounds use dft_val:23 set_val:%d. @btsrv_gatt_server.c(1698),WARNING" ID="0xd81a3513" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gatt server callback memcpy fail @btsrv_gatt_server.c(1711),ERROR" ID="0xd81a357a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] malloc send notification param fail @btsrv_gatt_server.c(1631),ERROR" ID="0xd81a32fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] data memcpy fail @btsrv_gatt_server.c(1639),ERROR" ID="0xd81a333a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] enable ble first! @btsrv_gatt_server.c(1656),ERROR" ID="0xd81a33c2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] invalid param @btsrv_gatt_server.c(1661),ERROR" ID="0xd81a33ea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] param new fail @btsrv_gatt_server.c(1669),ERROR" ID="0xd81a342a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] sen ntf/ind by uuid memcpy fail @btsrv_gatt_server.c(1679),ERROR" ID="0xd81a347a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] sen ntf/ind by uuid memcpy fail @btsrv_gatt_server.c(1688),ERROR" ID="0xd81a34c2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="set mtu out of bounds use dft_val:23 set_val:%d. @btsrv_gatt_server.c(1704),WARNING" ID="0xd81a3543" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gatt server callback memcpy fail @btsrv_gatt_server.c(1717),ERROR" ID="0xd81a35aa" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg0" NAME="[Error] mc ble l2cap credit channel flow control atb fail! @btsv_l2cap_chan.c(50),ERROR" ID="0xd81e0192" />
<MSG STRUCTURE="diag_log_msg0" NAME="[Error] bth_l2cap_chan aleardy reg! @btsv_l2cap_chan.c(64),ERROR" ID="0xd81e0202" />
<MSG STRUCTURE="diag_log_msg0" NAME="[Error] bth_l2cap_chan reg fail! @btsv_l2cap_chan.c(73),ERROR" ID="0xd81e024a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] bth_l2cap_chan == NULL @btsv_l2cap_chan.c(102),ERROR" ID="0xd81e0332" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] conn_node == NULL @btsv_l2cap_chan.c(108),ERROR" ID="0xd81e0362" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] bth chan data write malloc fail! @btsv_l2cap_chan.c(114),ERROR" ID="0xd81e0392" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] bth chan data write: memcpy failed! @btsv_l2cap_chan.c(120),ERROR" ID="0xd81e03c2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] bth chan data write: memcpy failed! @btsv_l2cap_chan.c(128),ERROR" ID="0xd81e0402" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] bth_l2cap_chan == NULL @btsv_l2cap_chan.c(103),ERROR" ID="0xd81e033a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] conn_node == NULL @btsv_l2cap_chan.c(109),ERROR" ID="0xd81e036a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] bth chan data write malloc fail! @btsv_l2cap_chan.c(115),ERROR" ID="0xd81e039a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] bth chan data write: memcpy failed! @btsv_l2cap_chan.c(121),ERROR" ID="0xd81e03ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] bth chan data write: memcpy failed! @btsv_l2cap_chan.c(129),ERROR" ID="0xd81e040a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="osal_mutex_init in g_connect_list_lock failed @connection_manager.c(110),ERROR" ID="0xd8060372" />
- <MSG STRUCTURE="diag_log_msg1" NAME="create timer error! ret: %x @connection_manager.c(183),ERROR" ID="0xd80605ba" />
- <MSG STRUCTURE="diag_log_msg1" NAME="start timer error! ret: %x @connection_manager.c(191),ERROR" ID="0xd80605fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="start timer success! @connection_manager.c(196),INFO" ID="0xd8060625" />
- <MSG STRUCTURE="diag_log_msg0" NAME="already in discovery @connection_manager.c(216),WARNING" ID="0xd80606c3" />
- <MSG STRUCTURE="diag_log_msg1" NAME="start discovery fail ret: %x @connection_manager.c(230),ERROR" ID="0xd8060732" />
- <MSG STRUCTURE="diag_log_msg0" NAME="discovery started @connection_manager.c(238),INFO" ID="0xd8060775" />
- <MSG STRUCTURE="diag_log_msg2" NAME="reconnect phone con_hdl:0x%x, result: %08x @connection_manager.c(355),INFO" ID="0xd8060b1d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="exist connect phone reject! @connection_manager.c(381),INFO" ID="0xd8060bed" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @connection_manager.c(402),ERROR" ID="0xd8060c92" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @connection_manager.c(406),ERROR" ID="0xd8060cb2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="send msg fail. %x @connection_manager.c(412),ERROR" ID="0xd8060ce2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="create acl cfm ret = %08x @connection_manager.c(420),INFO" ID="0xd8060d25" />
- <MSG STRUCTURE="diag_log_msg3" NAME="dev_hdl: 0x%08x cod: 0x%x link_type: 0x%x @connection_manager.c(449),INFO" ID="0xd8060e0d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="already exist conn_node @connection_manager.c(459),INFO" ID="0xd8060e5d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="accept not paired earbuds. @connection_manager.c(468),INFO" ID="0xd8060ea5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="exist same type conn node. @connection_manager.c(472),INFO" ID="0xd8060ec5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="add conn info error! @connection_manager.c(479),ERROR" ID="0xd8060efa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_disconnect_acl_by_handle ret: %x @connection_manager.c(486),INFO" ID="0xd8060f35" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @connection_manager.c(494),ERROR" ID="0xd8060f72" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get addr fail @connection_manager.c(501),ERROR" ID="0xd8060faa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @connection_manager.c(506),ERROR" ID="0xd8060fd2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="send msg fail. %x @connection_manager.c(512),ERROR" ID="0xd8061002" />
- <MSG STRUCTURE="diag_log_msg0" NAME="connect exist conn_node @connection_manager.c(528),INFO" ID="0xd8061085" />
- <MSG STRUCTURE="diag_log_msg0" NAME="exist same type conn_node, disconnect. @connection_manager.c(534),INFO" ID="0xd80610b5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="find remote node fail @connection_manager.c(542),WARNING" ID="0xd80610f3" />
- <MSG STRUCTURE="diag_log_msg0" NAME="add conn info error! @connection_manager.c(549),ERROR" ID="0xd806112a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="create acl ret = %08x @connection_manager.c(561),WARNING" ID="0xd806118b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="acl is connected @connection_manager.c(569),INFO" ID="0xd80611cd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: %08x @connection_manager.c(578),INFO" ID="0xd8061215" />
- <MSG STRUCTURE="diag_log_msg0" NAME="not exist conn node. @connection_manager.c(581),INFO" ID="0xd806122d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="is phone=0x%x @connection_manager.c(584),INFO" ID="0xd8061245" />
- <MSG STRUCTURE="diag_log_msg2" NAME="status error dev_hdl: %x status: %d @connection_manager.c(587),WARNING" ID="0xd806125b" />
- <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_disconnect_acl_by_handle ret: %x @connection_manager.c(627),INFO" ID="0xd806139d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="send msg connecting @connection_manager.c(659),INFO" ID="0xd806149d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @connection_manager.c(663),ERROR" ID="0xd80614ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @connection_manager.c(667),ERROR" ID="0xd80614da" />
- <MSG STRUCTURE="diag_log_msg1" NAME="send msg fail. %x @connection_manager.c(673),ERROR" ID="0xd806150a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="send msg connecting success! @connection_manager.c(676),INFO" ID="0xd8061525" />
- <MSG STRUCTURE="diag_log_msg0" NAME="stop timer @connection_manager.c(681),INFO" ID="0xd806154d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="stop timer success! @connection_manager.c(689),INFO" ID="0xd806158d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="start timer @connection_manager.c(694),INFO" ID="0xd80615b5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @connection_manager.c(704),ERROR" ID="0xd8061602" />
- <MSG STRUCTURE="diag_log_msg1" NAME="create timer error! ret: %x @connection_manager.c(709),ERROR" ID="0xd806162a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="start timer error! ret: %x @connection_manager.c(715),ERROR" ID="0xd806165a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="start timer success! try to reconnect %d times interval %dms @connection_manager.c(720),INFO" ID="0xd8061685" />
- <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x reason: %08x @connection_manager.c(752),INFO" ID="0xd8061785" />
- <MSG STRUCTURE="diag_log_msg1" NAME="no conn record dev_hdl: %08x @connection_manager.c(761),WARNING" ID="0xd80617cb" />
- <MSG STRUCTURE="diag_log_msg2" NAME="rmt device class=0x%x is phone: 0x%x @connection_manager.c(771),INFO" ID="0xd806181d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get addr fail @connection_manager.c(784),WARNING" ID="0xd8061883" />
- <MSG STRUCTURE="diag_log_msg1" NAME="get remote dev addr failed. dev_hdl: %x @connection_manager.c(798),WARNING" ID="0xd80618f3" />
- <MSG STRUCTURE="diag_log_msg6" NAME="addr: ****%02x%02x%02x%02x dev_hdl: %08x gap_remove_pair ret(bool): %d @connection_manager.c(807),INFO" ID="0xd806193d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="error dev_hdl: %x pair_ret: %x disconn_ret: %x @connection_manager.c(816),WARNING" ID="0xd8061983" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: %08x @connection_manager.c(823),INFO" ID="0xd80619bd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="conn node is null dev_hdl: %x @connection_manager.c(827),INFO" ID="0xd80619dd" />
- <MSG STRUCTURE="diag_log_msg2" NAME="status error dev_hdl: %x status: %d @connection_manager.c(833),INFO" ID="0xd8061a0d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: %08x @connection_manager.c(847),INFO" ID="0xd8061a7d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get addr fail @connection_manager.c(855),WARNING" ID="0xd8061abb" />
- <MSG STRUCTURE="diag_log_msg0" NAME="rmt device is phone @connection_manager.c(862),INFO" ID="0xd8061af5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="rmt device is not phone @connection_manager.c(865),INFO" ID="0xd8061b0d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="node not exist @connection_manager.c(876),INFO" ID="0xd8061b65" />
- <MSG STRUCTURE="diag_log_msg0" NAME="success @connection_manager.c(884),INFO" ID="0xd8061ba5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="descovery result @connection_manager.c(947),INFO" ID="0xd8061d9d" />
- <MSG STRUCTURE="diag_log_msg5" NAME="found device addr: ****%02x%02x%02x%02x name: %s @connection_manager.c(958),INFO" ID="0xd8061df5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="gap_get_device_name failed @connection_manager.c(960),INFO" ID="0xd8061e05" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get addr fail @connection_manager.c(984),WARNING" ID="0xd8061ec3" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get device name fail @connection_manager.c(991),WARNING" ID="0xd8061efb" />
- <MSG STRUCTURE="diag_log_msg1" NAME="unhandled msg id: %d @connection_manager.c(1060),WARNING" ID="0xd8062123" />
- <MSG STRUCTURE="diag_log_msg0" NAME="set discovery status to stop @connection_manager.c(1078),INFO" ID="0xd80621b5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="unhandled msg id: %d @connection_manager.c(1149),WARNING" ID="0xd80623eb" />
- <MSG STRUCTURE="diag_log_msg0" NAME="show conn list: @connection_manager.c(1170),INFO" ID="0xd8062495" />
- <MSG STRUCTURE="diag_log_msg7" NAME="| %-4s | %-32s | %-12s | %-16s | %-16s | %-8s | %-8s | @connection_manager.c(1172),INFO" ID="0xd80624a5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="remote is null @connection_manager.c(1180),ERROR" ID="0xd80624e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="addr memcpy_s fail @connection_manager.c(1183),ERROR" ID="0xd80624fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="name memcpy_s fail @connection_manager.c(1186),ERROR" ID="0xd8062512" />
- <MSG STRUCTURE="diag_log_msg10" NAME="| %-4d | %-32s | ****%02x%02x%02x%02x | %-16d | %-16d | %-8d | %-8d | @connection_manager.c(1191),INFO" ID="0xd806253d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="show conn list end! @connection_manager.c(1196),INFO" ID="0xd8062565" />
- <MSG STRUCTURE="diag_log_msg0" NAME="show ble conn list: @connection_manager.c(1203),INFO" ID="0xd806259d" />
- <MSG STRUCTURE="diag_log_msg9" NAME="| %-4s | %-12s | %-10s | %-8s | %-12s | %-12s | %-12s | %-12s | %-48s | @connection_manager.c(1208),INFO" ID="0xd80625c5" />
- <MSG STRUCTURE="diag_log_msg11" NAME="| %-4d | %02x******%02x%02x | %-10d | %-8d | %-12d | %-12d | %-12d | %-12d | %-48s | @connection_manager.c(1221),INFO" ID="0xd806262d" />
- <MSG STRUCTURE="diag_log_msg8" NAME="| %-4s | %-12s | %-10s | %-8s | %-12s | %-12s | %-12s | %-12s | @connection_manager.c(1228),INFO" ID="0xd8062665" />
- <MSG STRUCTURE="diag_log_msg10" NAME="| %-4d | %02x******%02x%02x | %-10d | %-8d | %-12d | %-12d | %-12d | %-12d | @connection_manager.c(1234),INFO" ID="0xd8062695" />
- <MSG STRUCTURE="diag_log_msg0" NAME="show ble conn list end! @connection_manager.c(1241),INFO" ID="0xd80626cd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="show link mode: @connection_manager.c(1253),INFO" ID="0xd806272d" />
- <MSG STRUCTURE="diag_log_msg4" NAME="| %-4s | %-32s | %-12s | %-16s | @connection_manager.c(1255),INFO" ID="0xd806273d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="remote is null @connection_manager.c(1264),ERROR" ID="0xd8062782" />
- <MSG STRUCTURE="diag_log_msg0" NAME="addr memcpy_s fail @connection_manager.c(1267),ERROR" ID="0xd806279a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="name memcpy_s fail @connection_manager.c(1270),ERROR" ID="0xd80627b2" />
- <MSG STRUCTURE="diag_log_msg7" NAME="| %-4d | %-32s | ****%02x%02x%02x%02x | %-16s | @connection_manager.c(1278),INFO" ID="0xd80627f5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="show link mode end! @connection_manager.c(1283),INFO" ID="0xd806281d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="set scan mode old=%d new=%d @connection_manager.c(1345),INFO" ID="0xd8062a0d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_set_discovery_mode ret: %x @connection_manager.c(1356),INFO" ID="0xd8062a65" />
- <MSG STRUCTURE="diag_log_msg2" NAME="btsdk_set_discovery_mode mode: %x ret: %x @connection_manager.c(1367),INFO" ID="0xd8062abd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="already in discovery @connection_manager.c(1389),INFO" ID="0xd8062b6d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="bt is not enabled @connection_manager.c(1402),WARNING" ID="0xd8062bd3" />
- <MSG STRUCTURE="diag_log_msg0" NAME="discovery already stopped @connection_manager.c(1407),WARNING" ID="0xd8062bfb" />
- <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_stop_device_discovery ret=0x%x @connection_manager.c(1412),INFO" ID="0xd8062c25" />
- <MSG STRUCTURE="diag_log_msg0" NAME="discovery stopped @connection_manager.c(1415),INFO" ID="0xd8062c3d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="not start bt @connection_manager.c(1441),INFO" ID="0xd8062d0d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="param id null @connection_manager.c(1445),INFO" ID="0xd8062d2d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="exist connect audio device @connection_manager.c(1451),INFO" ID="0xd8062d5d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="gap_br_cancel_discovery fail @connection_manager.c(1456),INFO" ID="0xd8062d85" />
- <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_disconnect_acl_by_handle ret: %x @connection_manager.c(1492),INFO" ID="0xd8062ea5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gatt client add conn node memcpy fail. @connection_manager.c(1559),ERROR" ID="0xd80630ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="btsrv connect state change cbk arg NULL! @connection_manager.c(1571),ERROR" ID="0xd806311a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="connect state update memcpy fail. @connection_manager.c(1576),ERROR" ID="0xd8063142" />
- <MSG STRUCTURE="diag_log_msg0" NAME="connect node is null. @connection_manager.c(1591),ERROR" ID="0xd80631ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble smp paired keys cbk param error @connection_manager.c(1608),ERROR" ID="0xd8063242" />
- <MSG STRUCTURE="diag_log_msg0" NAME="paired keys malloc fail. @connection_manager.c(1614),ERROR" ID="0xd8063272" />
- <MSG STRUCTURE="diag_log_msg0" NAME="paired keys malloc fail. @connection_manager.c(1619),ERROR" ID="0xd806329a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="pair keys notify, keys addr memcpy fail. @connection_manager.c(1624),ERROR" ID="0xd80632c2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="pair keys notify, keys memcpy fail. @connection_manager.c(1631),ERROR" ID="0xd80632fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble smp paired complete cbk param error @connection_manager.c(1648),ERROR" ID="0xd8063382" />
- <MSG STRUCTURE="diag_log_msg0" NAME="connect param update incomes arg is NULL! @connection_manager.c(1659),ERROR" ID="0xd80633da" />
- <MSG STRUCTURE="diag_log_msg0" NAME="connect param update, conn_node not found. @connection_manager.c(1666),ERROR" ID="0xd8063412" />
- <MSG STRUCTURE="diag_log_msg0" NAME="connect param update,connect_params NULL. @connection_manager.c(1672),ERROR" ID="0xd8063442" />
- <MSG STRUCTURE="diag_log_msg0" NAME="connect param update, addr memcpy fail. @connection_manager.c(1678),ERROR" ID="0xd8063472" />
- <MSG STRUCTURE="diag_log_msg1" NAME="connect param update done ret:%d. @connection_manager.c(1687),INFO" ID="0xd80634bd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="gap_ble_connect_remote_device not start bt @connection_manager.c(1696),INFO" ID="0xd8063505" />
- <MSG STRUCTURE="diag_log_msg0" NAME="gap_ble_connect_remote_device param id null @connection_manager.c(1700),INFO" ID="0xd8063525" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][INFO] addr memcpy to param fail. @connection_manager.c(1706),INFO" ID="0xd8063555" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv]addr memcpy fail. @connection_manager.c(1724),INFO" ID="0xd80635e5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="addr memcpy_s fail @connection_manager.c(1741),ERROR" ID="0xd806366a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="read remote device rssi, conn_node not found. @connection_manager.c(1760),ERROR" ID="0xd8063702" />
- <MSG STRUCTURE="diag_log_msg0" NAME="read remote device rssi fail @connection_manager.c(1765),ERROR" ID="0xd806372a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="conn_node not found. @connection_manager.c(1779),ERROR" ID="0xd806379a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="osal_mutex_init in g_connect_list_lock failed @connection_manager.c(114),ERROR" ID="0xd8060392" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="create timer error! ret: %x @connection_manager.c(187),ERROR" ID="0xd80605da" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="start timer error! ret: %x @connection_manager.c(195),ERROR" ID="0xd806061a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="start timer success! @connection_manager.c(200),INFO" ID="0xd8060645" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="already in discovery @connection_manager.c(219),WARNING" ID="0xd80606db" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="max_num invalid. %u @connection_manager.c(223),WARNING" ID="0xd80606fb" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="already in discovery @connection_manager.c(235),WARNING" ID="0xd806075b" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="start discovery fail ret: %x @connection_manager.c(249),ERROR" ID="0xd80607ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="discovery started @connection_manager.c(257),INFO" ID="0xd806080d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="reconnect phone con_hdl:0x%x, result: %08x @connection_manager.c(374),INFO" ID="0xd8060bb5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="exist connect phone reject! @connection_manager.c(402),INFO" ID="0xd8060c95" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @connection_manager.c(423),ERROR" ID="0xd8060d3a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @connection_manager.c(427),ERROR" ID="0xd8060d5a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="send msg fail. %x @connection_manager.c(433),ERROR" ID="0xd8060d8a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="create acl cfm ret = %08x @connection_manager.c(441),INFO" ID="0xd8060dcd" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="dev_hdl: 0x%08x cod: 0x%x link_type: 0x%x @connection_manager.c(470),INFO" ID="0xd8060eb5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="already exist conn_node @connection_manager.c(480),INFO" ID="0xd8060f05" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="accept not paired earbuds. @connection_manager.c(489),INFO" ID="0xd8060f4d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="exist same type conn node. @connection_manager.c(493),INFO" ID="0xd8060f6d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="add conn info error! @connection_manager.c(500),ERROR" ID="0xd8060fa2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_disconnect_acl_by_handle ret: %x @connection_manager.c(507),INFO" ID="0xd8060fdd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @connection_manager.c(515),ERROR" ID="0xd806101a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="get addr fail @connection_manager.c(522),ERROR" ID="0xd8061052" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @connection_manager.c(527),ERROR" ID="0xd806107a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="send msg fail. %x @connection_manager.c(533),ERROR" ID="0xd80610aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="connect exist conn_node @connection_manager.c(549),INFO" ID="0xd806112d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="exist same type conn_node, disconnect. @connection_manager.c(555),INFO" ID="0xd806115d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="find remote node fail @connection_manager.c(563),WARNING" ID="0xd806119b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="add conn info error! @connection_manager.c(570),ERROR" ID="0xd80611d2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="create acl ret = %08x @connection_manager.c(582),WARNING" ID="0xd8061233" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="acl is connected @connection_manager.c(590),INFO" ID="0xd8061275" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: %08x @connection_manager.c(599),INFO" ID="0xd80612bd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="not exist conn node. @connection_manager.c(602),INFO" ID="0xd80612d5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="is phone=0x%x @connection_manager.c(605),INFO" ID="0xd80612ed" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="status error dev_hdl: %x status: %d @connection_manager.c(608),WARNING" ID="0xd8061303" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_disconnect_acl_by_handle ret: %x @connection_manager.c(648),INFO" ID="0xd8061445" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="send msg connecting @connection_manager.c(680),INFO" ID="0xd8061545" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @connection_manager.c(684),ERROR" ID="0xd8061562" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @connection_manager.c(688),ERROR" ID="0xd8061582" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="send msg fail. %x @connection_manager.c(694),ERROR" ID="0xd80615b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="send msg connecting success! @connection_manager.c(697),INFO" ID="0xd80615cd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="stop timer @connection_manager.c(702),INFO" ID="0xd80615f5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="stop timer success! @connection_manager.c(710),INFO" ID="0xd8061635" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="start timer @connection_manager.c(715),INFO" ID="0xd806165d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @connection_manager.c(725),ERROR" ID="0xd80616aa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="create timer error! ret: %x @connection_manager.c(730),ERROR" ID="0xd80616d2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="start timer error! ret: %x @connection_manager.c(736),ERROR" ID="0xd8061702" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="start timer success! try to reconnect %d times interval %dms @connection_manager.c(741),INFO" ID="0xd806172d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x reason: %08x @connection_manager.c(778),INFO" ID="0xd8061855" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="no conn record dev_hdl: %08x @connection_manager.c(787),WARNING" ID="0xd806189b" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="rmt device class=0x%x is phone: 0x%x @connection_manager.c(797),INFO" ID="0xd80618ed" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="get addr fail @connection_manager.c(810),WARNING" ID="0xd8061953" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="get remote dev addr failed. dev_hdl: %x @connection_manager.c(824),WARNING" ID="0xd80619c3" />
+ <MSG STRUCTURE="diag_log_msg6" NAME="addr: ****%02x%02x%02x%02x dev_hdl: %08x gap_remove_pair ret(bool): %d @connection_manager.c(833),INFO" ID="0xd8061a0d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="error dev_hdl: %x pair_ret: %x disconn_ret: %x @connection_manager.c(842),WARNING" ID="0xd8061a53" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: %08x @connection_manager.c(849),INFO" ID="0xd8061a8d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="conn node is null dev_hdl: %x @connection_manager.c(853),INFO" ID="0xd8061aad" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="status error dev_hdl: %x status: %d @connection_manager.c(859),INFO" ID="0xd8061add" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: %08x @connection_manager.c(873),INFO" ID="0xd8061b4d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="get addr fail @connection_manager.c(881),WARNING" ID="0xd8061b8b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="rmt device is phone @connection_manager.c(888),INFO" ID="0xd8061bc5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="rmt device is not phone @connection_manager.c(891),INFO" ID="0xd8061bdd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="node not exist @connection_manager.c(902),INFO" ID="0xd8061c35" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="success @connection_manager.c(910),INFO" ID="0xd8061c75" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="descovery result @connection_manager.c(973),INFO" ID="0xd8061e6d" />
+ <MSG STRUCTURE="diag_log_msg5" NAME="found device addr: ****%02x%02x%02x%02x name: %s @connection_manager.c(982),INFO" ID="0xd8061eb5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="gap_get_device_name failed @connection_manager.c(984),INFO" ID="0xd8061ec5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="get device name fail @connection_manager.c(1009),WARNING" ID="0xd8061f8b" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="unhandled msg id: %d @connection_manager.c(1078),WARNING" ID="0xd80621b3" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="set discovery status to stop @connection_manager.c(1096),INFO" ID="0xd8062245" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="unhandled msg id: %d @connection_manager.c(1167),WARNING" ID="0xd806247b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="show conn list: @connection_manager.c(1188),INFO" ID="0xd8062525" />
+ <MSG STRUCTURE="diag_log_msg7" NAME="| %-4s | %-32s | %-12s | %-16s | %-16s | %-8s | %-8s | @connection_manager.c(1190),INFO" ID="0xd8062535" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="remote is null @connection_manager.c(1198),ERROR" ID="0xd8062572" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="addr memcpy_s fail @connection_manager.c(1201),ERROR" ID="0xd806258a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="name memcpy_s fail @connection_manager.c(1204),ERROR" ID="0xd80625a2" />
+ <MSG STRUCTURE="diag_log_msg10" NAME="| %-4d | %-32s | ****%02x%02x%02x%02x | %-16d | %-16d | %-8d | %-8d | @connection_manager.c(1209),INFO" ID="0xd80625cd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="show conn list end! @connection_manager.c(1214),INFO" ID="0xd80625f5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="show ble conn list: @connection_manager.c(1221),INFO" ID="0xd806262d" />
+ <MSG STRUCTURE="diag_log_msg9" NAME="| %-4s | %-12s | %-10s | %-8s | %-12s | %-12s | %-12s | %-12s | %-48s | @connection_manager.c(1226),INFO" ID="0xd8062655" />
+ <MSG STRUCTURE="diag_log_msg11" NAME="| %-4d | %02x******%02x%02x | %-10d | %-8d | %-12d | %-12d | %-12d | %-12d | %-48s | @connection_manager.c(1239),INFO" ID="0xd80626bd" />
+ <MSG STRUCTURE="diag_log_msg8" NAME="| %-4s | %-12s | %-10s | %-8s | %-12s | %-12s | %-12s | %-12s | @connection_manager.c(1246),INFO" ID="0xd80626f5" />
+ <MSG STRUCTURE="diag_log_msg10" NAME="| %-4d | %02x******%02x%02x | %-10d | %-8d | %-12d | %-12d | %-12d | %-12d | @connection_manager.c(1252),INFO" ID="0xd8062725" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="show ble conn list end! @connection_manager.c(1259),INFO" ID="0xd806275d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="show link mode: @connection_manager.c(1271),INFO" ID="0xd80627bd" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="| %-4s | %-32s | %-12s | %-16s | @connection_manager.c(1273),INFO" ID="0xd80627cd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="remote is null @connection_manager.c(1282),ERROR" ID="0xd8062812" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="addr memcpy_s fail @connection_manager.c(1285),ERROR" ID="0xd806282a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="name memcpy_s fail @connection_manager.c(1288),ERROR" ID="0xd8062842" />
+ <MSG STRUCTURE="diag_log_msg7" NAME="| %-4d | %-32s | ****%02x%02x%02x%02x | %-16s | @connection_manager.c(1296),INFO" ID="0xd8062885" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="show link mode end! @connection_manager.c(1301),INFO" ID="0xd80628ad" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="set scan mode old=%d new=%d @connection_manager.c(1363),INFO" ID="0xd8062a9d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_set_discovery_mode ret: %x @connection_manager.c(1374),INFO" ID="0xd8062af5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="btsdk_set_discovery_mode mode: %x ret: %x @connection_manager.c(1385),INFO" ID="0xd8062b4d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="already in discovery @connection_manager.c(1407),INFO" ID="0xd8062bfd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="bt is not enabled @connection_manager.c(1420),WARNING" ID="0xd8062c63" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="discovery already stopped @connection_manager.c(1425),WARNING" ID="0xd8062c8b" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_stop_device_discovery ret=0x%x @connection_manager.c(1430),INFO" ID="0xd8062cb5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="discovery stopped @connection_manager.c(1433),INFO" ID="0xd8062ccd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="not start bt @connection_manager.c(1459),INFO" ID="0xd8062d9d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="param id null @connection_manager.c(1463),INFO" ID="0xd8062dbd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="exist connect audio device @connection_manager.c(1469),INFO" ID="0xd8062ded" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="gap_br_cancel_discovery fail @connection_manager.c(1474),INFO" ID="0xd8062e15" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_disconnect_acl_by_handle ret: %x @connection_manager.c(1510),INFO" ID="0xd8062f35" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] gatt client add conn node memcpy fail. @connection_manager.c(1577),ERROR" ID="0xd806314a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="btsrv connect state change cbk arg NULL! @connection_manager.c(1589),ERROR" ID="0xd80631aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="connect state update memcpy fail. @connection_manager.c(1594),ERROR" ID="0xd80631d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="connect node is null. @connection_manager.c(1609),ERROR" ID="0xd806324a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble smp paired keys cbk param error @connection_manager.c(1626),ERROR" ID="0xd80632d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="paired keys malloc fail. @connection_manager.c(1632),ERROR" ID="0xd8063302" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="paired keys malloc fail. @connection_manager.c(1637),ERROR" ID="0xd806332a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="pair keys notify, keys addr memcpy fail. @connection_manager.c(1642),ERROR" ID="0xd8063352" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="pair keys notify, keys memcpy fail. @connection_manager.c(1649),ERROR" ID="0xd806338a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble smp paired complete cbk param error @connection_manager.c(1666),ERROR" ID="0xd8063412" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="connect param update incomes arg is NULL! @connection_manager.c(1677),ERROR" ID="0xd806346a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="connect param update, conn_node not found. @connection_manager.c(1684),ERROR" ID="0xd80634a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="connect param update,connect_params NULL. @connection_manager.c(1690),ERROR" ID="0xd80634d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="connect param update, addr memcpy fail. @connection_manager.c(1696),ERROR" ID="0xd8063502" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="connect param update done ret:%d. @connection_manager.c(1705),INFO" ID="0xd806354d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="gap_ble_connect_remote_device not start bt @connection_manager.c(1714),INFO" ID="0xd8063595" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="gap_ble_connect_remote_device param id null @connection_manager.c(1718),INFO" ID="0xd80635b5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][INFO] addr memcpy to param fail. @connection_manager.c(1724),INFO" ID="0xd80635e5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv]addr memcpy fail. @connection_manager.c(1742),INFO" ID="0xd8063675" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="addr memcpy_s fail @connection_manager.c(1759),ERROR" ID="0xd80636fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read remote device rssi, conn_node not found. @connection_manager.c(1778),ERROR" ID="0xd8063792" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read remote device rssi fail @connection_manager.c(1783),ERROR" ID="0xd80637ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="conn_node not found. @connection_manager.c(1797),ERROR" ID="0xd806382a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="auto reconnect is enabled, close it first. @connection_manager.c(1820),ERROR" ID="0xd80638e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @connection_manager.c(1825),ERROR" ID="0xd806390a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @connection_manager.c(1829),ERROR" ID="0xd806392a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="send msg fail. %x @connection_manager.c(1836),ERROR" ID="0xd8063962" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="send msg connecting success! @connection_manager.c(1839),INFO" ID="0xd806397d" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="Failed to RenderForDescriptor because the result value is undefined. @descriptor_utils.cpp(94),ERROR" ID="0xe0ca02f2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="delete native view pointer from native element failed. @descriptor_utils.cpp(193),WARNING" ID="0xe0ca060b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to create descriptor because the type argument is null or empty. @descriptor_utils.cpp(211),ERROR" ID="0xe0ca069a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to create descriptor because the getter argument is not a function. @descriptor_utils.cpp(216),ERROR" ID="0xe0ca06c2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to create descriptor because the render argument is not a function. @descriptor_utils.cpp(221),ERROR" ID="0xe0ca06ea" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="Failed to RenderForDescriptor because the result value is undefined. @descriptor_utils.cpp(94),ERROR" ID="0xe0ce02f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="delete native view pointer from native element failed. @descriptor_utils.cpp(193),WARNING" ID="0xe0ce060b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to create descriptor because the type argument is null or empty. @descriptor_utils.cpp(211),ERROR" ID="0xe0ce069a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to create descriptor because the getter argument is not a function. @descriptor_utils.cpp(216),ERROR" ID="0xe0ce06c2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to create descriptor because the render argument is not a function. @descriptor_utils.cpp(221),ERROR" ID="0xe0ce06ea" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="malloc buffer for path failed. @dft_impl.cpp(43),ERROR" ID="0xe058015a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="malloc buffer for path failed. @dft_impl.cpp(43),ERROR" ID="0xe05c015a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[Error value to string failed] @dfx_assist.cpp(36),ERROR" ID="0xe05a0122" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error message too long] @dfx_assist.cpp(43),ERROR" ID="0xe05a015a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc memory failed! @dfx_assist.cpp(50),ERROR" ID="0xe05a0192" />
- <MSG STRUCTURE="diag_log_msg1" NAME=" [JS Error]: %s @dfx_assist.cpp(57),ERROR" ID="0xe05a01ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc memory failed! @dfx_assist.cpp(95),ERROR" ID="0xe05a02fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Exception backtrace]: @dfx_assist.cpp(99),ERROR" ID="0xe05a031a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="%u: [Backtrace string too long] @dfx_assist.cpp(108),ERROR" ID="0xe05a0362" />
- <MSG STRUCTURE="diag_log_msg2" NAME="%u: %s @dfx_assist.cpp(112),ERROR" ID="0xe05a0382" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[Error value to string failed] @dfx_assist.cpp(36),ERROR" ID="0xe05e0122" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error message too long] @dfx_assist.cpp(43),ERROR" ID="0xe05e015a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc memory failed! @dfx_assist.cpp(50),ERROR" ID="0xe05e0192" />
+ <MSG STRUCTURE="diag_log_msg1" NAME=" [JS Error]: %s @dfx_assist.cpp(57),ERROR" ID="0xe05e01ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc memory failed! @dfx_assist.cpp(95),ERROR" ID="0xe05e02fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Exception backtrace]: @dfx_assist.cpp(99),ERROR" ID="0xe05e031a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="%u: [Backtrace string too long] @dfx_assist.cpp(108),ERROR" ID="0xe05e0362" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="%u: %s @dfx_assist.cpp(112),ERROR" ID="0xe05e0382" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="failed to execute the callback function of event. @event_util.cpp(42),ERROR" ID="0xe05c0152" />
- <MSG STRUCTURE="diag_log_msg0" NAME="failed to execute the callback function of event. @event_util.cpp(48),ERROR" ID="0xe05c0182" />
- <MSG STRUCTURE="diag_log_msg0" NAME="failed to set direction attribute for event argument. @event_util.cpp(113),ERROR" ID="0xe05c038a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="fail to invoke event callback. @event_util.cpp(132),ERROR" ID="0xe05c0422" />
- <MSG STRUCTURE="diag_log_msg0" NAME="EventUtil::InvokeCallback failed: Async task dispatch failure. @event_util.cpp(142),ERROR" ID="0xe05c0472" />
- <MSG STRUCTURE="diag_log_msg0" NAME="fail to get element by UI view. @event_util.cpp(151),ERROR" ID="0xe05c04ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="fail to get element by UI view. @event_util.cpp(156),ERROR" ID="0xe05c04e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="fail to get element by UI view. @event_util.cpp(161),ERROR" ID="0xe05c050a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="failed to execute the callback function of event. @event_util.cpp(42),ERROR" ID="0xe0600152" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="failed to execute the callback function of event. @event_util.cpp(48),ERROR" ID="0xe0600182" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="failed to set direction attribute for event argument. @event_util.cpp(113),ERROR" ID="0xe060038a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="fail to invoke event callback. @event_util.cpp(132),ERROR" ID="0xe0600422" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="EventUtil::InvokeCallback failed: Async task dispatch failure. @event_util.cpp(142),ERROR" ID="0xe0600472" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="fail to get element by UI view. @event_util.cpp(151),ERROR" ID="0xe06004ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="fail to get element by UI view. @event_util.cpp(156),ERROR" ID="0xe06004e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="fail to get element by UI view. @event_util.cpp(161),ERROR" ID="0xe060050a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="hitted by fatal error[%d] @fatal_handler.cpp(56),ERROR" ID="0xe0ba01c2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="the JS task is not killed after sleep very long time @fatal_handler.cpp(77),ERROR" ID="0xe0ba026a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="hitted again when handling fatal error @fatal_handler.cpp(157),WARNING" ID="0xe0ba04eb" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="hitted by fatal error[%d] @fatal_handler.cpp(56),ERROR" ID="0xe0be01c2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="the JS task is not killed after sleep very long time @fatal_handler.cpp(77),ERROR" ID="0xe0be026a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="hitted again when handling fatal error @fatal_handler.cpp(157),WARNING" ID="0xe0be04eb" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="GtBundleInstaller::PreCheckBundle fileSize = %d @gt_bundle_installer.cpp(65),INFO" ID="0xe042020d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="bundleName does not match the appId! @gt_bundle_installer.cpp(91),ERROR" ID="0xe04202da" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] bundle num is %d @gt_bundle_installer.cpp(107),INFO" ID="0xe042035d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] bundle quantity exceeds the limit! @gt_bundle_installer.cpp(110),ERROR" ID="0xe0420372" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] APPVERI_AppVerify is %d @gt_bundle_installer.cpp(126),INFO" ID="0xe04203f5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="VINCENTSS::GtBundleInstaller::Install path = %s @gt_bundle_installer.cpp(181),INFO" ID="0xe04205ad" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] create random str fail! @gt_bundle_installer.cpp(208),ERROR" ID="0xe0420682" />
- <MSG STRUCTURE="diag_log_msg0" NAME="VINCENTSS::GtBundleInstaller::Install 0002 @gt_bundle_installer.cpp(212),INFO" ID="0xe04206a5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="errorCode3 = %d @gt_bundle_installer.cpp(216),INFO" ID="0xe04206c5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="VINCENTSS::GtBundleInstaller::Install 003 @gt_bundle_installer.cpp(224),INFO" ID="0xe0420705" />
- <MSG STRUCTURE="diag_log_msg0" NAME="VINCENTSS::GtBundleInstaller::ProcessBundleInstall 001 @gt_bundle_installer.cpp(258),INFO" ID="0xe0420815" />
- <MSG STRUCTURE="diag_log_msg1" NAME="errorCode1 = %d @gt_bundle_installer.cpp(263),INFO" ID="0xe042083d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="VINCENTSS::GtBundleInstaller::ProcessBundleInstall 002 @gt_bundle_installer.cpp(269),INFO" ID="0xe042086d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="errorCode2 = %d @gt_bundle_installer.cpp(273),INFO" ID="0xe042088d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="errorCode3 = %d @gt_bundle_installer.cpp(287),INFO" ID="0xe04208fd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="errorCode4 = %d @gt_bundle_installer.cpp(304),INFO" ID="0xe0420985" />
- <MSG STRUCTURE="diag_log_msg1" NAME="errorCode5 = %d @gt_bundle_installer.cpp(312),INFO" ID="0xe04209c5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="errorCode6 = %d @gt_bundle_installer.cpp(317),INFO" ID="0xe04209ed" />
- <MSG STRUCTURE="diag_log_msg1" NAME="errorCode7 = %d @gt_bundle_installer.cpp(328),INFO" ID="0xe0420a45" />
- <MSG STRUCTURE="diag_log_msg1" NAME="errorCode8 = %d @gt_bundle_installer.cpp(335),INFO" ID="0xe0420a7d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="errorCode9 = %d @gt_bundle_installer.cpp(345),INFO" ID="0xe0420acd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="errorCode10 = %d @gt_bundle_installer.cpp(352),INFO" ID="0xe0420b05" />
- <MSG STRUCTURE="diag_log_msg1" NAME="errorCode11 = %d @gt_bundle_installer.cpp(361),INFO" ID="0xe0420b4d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="errorCode12 = %d @gt_bundle_installer.cpp(367),INFO" ID="0xe0420b7d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] UpdateBundleInfo errorCode = %d @gt_bundle_installer.cpp(369),INFO" ID="0xe0420b8d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] srcRawFilePath is nullptr @gt_bundle_installer.cpp(389),ERROR" ID="0xe0420c2a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] rawfile is not exists! @gt_bundle_installer.cpp(394),INFO" ID="0xe0420c55" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] dstRawFilePath is nullptr @gt_bundle_installer.cpp(402),ERROR" ID="0xe0420c92" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] frename rawfile fail! @gt_bundle_installer.cpp(408),ERROR" ID="0xe0420cc2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] transform js to bc when install, result is %d @gt_bundle_installer.cpp(555),INFO" ID="0xe042115d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] ConvertResInfoToBundleInfo errorCode = %d @gt_bundle_installer.cpp(580),INFO" ID="0xe0421225" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] delete permissions, result is %d @gt_bundle_installer.cpp(814),INFO" ID="0xe0421975" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="GtBundleInstaller::PreCheckBundle fileSize = %d @gt_bundle_installer.cpp(66),INFO" ID="0xe0420215" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="bundleName does not match the appId! @gt_bundle_installer.cpp(92),ERROR" ID="0xe04202e2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] bundle num is %d @gt_bundle_installer.cpp(108),INFO" ID="0xe0420365" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] bundle quantity exceeds the limit! @gt_bundle_installer.cpp(111),ERROR" ID="0xe042037a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] APPVERI_AppVerify is %d @gt_bundle_installer.cpp(127),INFO" ID="0xe04203fd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="VINCENTSS::GtBundleInstaller::Install path = %s @gt_bundle_installer.cpp(182),INFO" ID="0xe04205b5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] create random str fail! @gt_bundle_installer.cpp(209),ERROR" ID="0xe042068a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="VINCENTSS::GtBundleInstaller::Install 0002 @gt_bundle_installer.cpp(213),INFO" ID="0xe04206ad" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="errorCode3 = %d @gt_bundle_installer.cpp(217),INFO" ID="0xe04206cd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="VINCENTSS::GtBundleInstaller::Install 003 @gt_bundle_installer.cpp(225),INFO" ID="0xe042070d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="VINCENTSS::GtBundleInstaller::ProcessBundleInstall 001 @gt_bundle_installer.cpp(259),INFO" ID="0xe042081d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="errorCode1 = %d @gt_bundle_installer.cpp(264),INFO" ID="0xe0420845" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="VINCENTSS::GtBundleInstaller::ProcessBundleInstall 002 @gt_bundle_installer.cpp(270),INFO" ID="0xe0420875" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="errorCode2 = %d @gt_bundle_installer.cpp(274),INFO" ID="0xe0420895" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="errorCode3 = %d @gt_bundle_installer.cpp(288),INFO" ID="0xe0420905" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="errorCode4 = %d @gt_bundle_installer.cpp(305),INFO" ID="0xe042098d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="errorCode5 = %d @gt_bundle_installer.cpp(313),INFO" ID="0xe04209cd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="errorCode6 = %d @gt_bundle_installer.cpp(318),INFO" ID="0xe04209f5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="errorCode7 = %d @gt_bundle_installer.cpp(329),INFO" ID="0xe0420a4d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="errorCode8 = %d @gt_bundle_installer.cpp(336),INFO" ID="0xe0420a85" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="errorCode9 = %d @gt_bundle_installer.cpp(346),INFO" ID="0xe0420ad5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="errorCode10 = %d @gt_bundle_installer.cpp(353),INFO" ID="0xe0420b0d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="errorCode11 = %d @gt_bundle_installer.cpp(362),INFO" ID="0xe0420b55" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="errorCode12 = %d @gt_bundle_installer.cpp(368),INFO" ID="0xe0420b85" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] UpdateBundleInfo errorCode = %d @gt_bundle_installer.cpp(370),INFO" ID="0xe0420b95" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] srcRawFilePath is nullptr @gt_bundle_installer.cpp(390),ERROR" ID="0xe0420c32" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] rawfile is not exists! @gt_bundle_installer.cpp(395),INFO" ID="0xe0420c5d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] dstRawFilePath is nullptr @gt_bundle_installer.cpp(403),ERROR" ID="0xe0420c9a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BMS] frename rawfile fail! @gt_bundle_installer.cpp(409),ERROR" ID="0xe0420cca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] transform js to bc when install, result is %d @gt_bundle_installer.cpp(556),INFO" ID="0xe0421165" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] ConvertResInfoToBundleInfo errorCode = %d @gt_bundle_installer.cpp(581),INFO" ID="0xe042122d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BMS] delete permissions, result is %d @gt_bundle_installer.cpp(815),INFO" ID="0xe042197d" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg1" NAME="[BMS] delete byte code, result is %d @gt_bundle_manager_service.cpp(809),INFO" ID="0xe044194d" />
<MSG STRUCTURE="diag_log_msg0" NAME="[BMS] add transform result record fail when restart! @gt_bundle_manager_service.cpp(822),ERROR" ID="0xe04419b2" />
<MSG STRUCTURE="diag_log_msg0" NAME="[BMS] refresh transform result record fail when restart! @gt_bundle_manager_service.cpp(828),ERROR" ID="0xe04419e2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="current sign mode is %d @gt_bundle_manager_service.cpp(1070),INFO" ID="0xe0442175" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="Invalid file path. @image_cache_manager.cpp(50),ERROR" ID="0xcb1c0192" />
- <MSG STRUCTURE="diag_log_msg2" NAME="File(%s) can not open. errno: %d @image_cache_manager.cpp(56),ERROR" ID="0xcb1c01c2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ResId is invalid. @image_cache_manager.cpp(65),ERROR" ID="0xcb1c020a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="DirId can not match @image_cache_manager.cpp(70),ERROR" ID="0xcb1c0232" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ResId is out of the range @image_cache_manager.cpp(75),ERROR" ID="0xcb1c025a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="Invalid file path: %s @image_cache_manager.cpp(49),ERROR" ID="0xcb1c018a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="File(%s) can not open. errno: %d @image_cache_manager.cpp(55),ERROR" ID="0xcb1c01ba" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ResId is invalid: 0x%x @image_cache_manager.cpp(64),ERROR" ID="0xcb1c0202" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="DirId can not match: resId: 0x%x, dirId: 0x%x @image_cache_manager.cpp(69),ERROR" ID="0xcb1c022a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ResId is out of the range: 0x%x @image_cache_manager.cpp(74),ERROR" ID="0xcb1c0252" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="multiImgInfo is nullptr! @image_cache_manager.cpp(95),ERROR" ID="0xcb1c02fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="UIMalloc node failed! @image_cache_manager.cpp(105),ERROR" ID="0xcb1c034a" />
<MSG STRUCTURE="diag_log_msg0" NAME="multiImgInfo.info is nullptr @image_cache_manager.cpp(115),ERROR" ID="0xcb1c039a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Res file is already loaded. @image_cache_manager.cpp(354),WARNING" ID="0xcb1c0b13" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Res file is not loaded. @image_cache_manager.cpp(529),ERROR" ID="0xcb1c108a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Res file is not loaded. @image_cache_manager.cpp(557),ERROR" ID="0xcb1c116a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Res file is not loaded. @image_cache_manager.cpp(584),ERROR" ID="0xcb1c1242" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Res file is not loaded. @image_cache_manager.cpp(599),ERROR" ID="0xcb1c12ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Res file is not loaded. @image_cache_manager.cpp(687),ERROR" ID="0xcb1c157a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="UIMalloc for node failed! @image_cache_manager.cpp(155),ERROR" ID="0xcb1c04da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ImageCacheMalloc for img data failed! @image_cache_manager.cpp(163),ERROR" ID="0xcb1c051a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="CreateImageNode failed! @image_cache_manager.cpp(228),ERROR" ID="0xcb1c0722" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="fread info header failed! @image_cache_manager.cpp(236),ERROR" ID="0xcb1c0762" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="LoadAllImgInfo failed! @image_cache_manager.cpp(262),ERROR" ID="0xcb1c0832" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="LoadSingleImgInfo failed! node is nullptr or imgIndex is invalid. @image_cache_manager.cpp(270),ERROR" ID="0xcb1c0872" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="CreateImageNode failed! @image_cache_manager.cpp(292),ERROR" ID="0xcb1c0922" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="LoadSingleImgInfo failed! @image_cache_manager.cpp(320),ERROR" ID="0xcb1c0a02" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="LoadAllInMultiRes failed! Open file failed: %s @image_cache_manager.cpp(331),ERROR" ID="0xcb1c0a5a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="fread bin header failed! @image_cache_manager.cpp(343),ERROR" ID="0xcb1c0aba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="LoadAllImgInfo failed! @image_cache_manager.cpp(362),ERROR" ID="0xcb1c0b52" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="LoadAllInMultiRes failed! file: %s @image_cache_manager.cpp(377),ERROR" ID="0xcb1c0bca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Res file is already loaded. @image_cache_manager.cpp(385),WARNING" ID="0xcb1c0c0b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="CreateImageNode failed! @image_cache_manager.cpp(403),ERROR" ID="0xcb1c0c9a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy info header failed! @image_cache_manager.cpp(407),ERROR" ID="0xcb1c0cba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy img data failed! @image_cache_manager.cpp(412),ERROR" ID="0xcb1c0ce2" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="LoadOneInMultiRes failed! resId: 0x%x, file: %s @image_cache_manager.cpp(499),ERROR" ID="0xcb1c0f9a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="CreateImageNode failed! @image_cache_manager.cpp(513),ERROR" ID="0xcb1c100a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="Res file is not loaded: %s @image_cache_manager.cpp(570),ERROR" ID="0xcb1c11d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Res file is not loaded. @image_cache_manager.cpp(598),ERROR" ID="0xcb1c12b2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="Res file is not loaded: %s @image_cache_manager.cpp(625),ERROR" ID="0xcb1c138a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Res file is not loaded. @image_cache_manager.cpp(640),ERROR" ID="0xcb1c1402" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="CreateImageNode failed! @image_cache_manager.cpp(687),ERROR" ID="0xcb1c157a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="available free size: %d @js_ability.cpp(56),DBG" ID="0xe0bc01c6" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Launch only can be triggered once @js_ability.cpp(64),ERROR" ID="0xe0bc0202" />
- <MSG STRUCTURE="diag_log_msg0" NAME="invalid app path @js_ability.cpp(70),ERROR" ID="0xe0bc0232" />
- <MSG STRUCTURE="diag_log_msg0" NAME="invalid bundle name @js_ability.cpp(76),ERROR" ID="0xe0bc0262" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Create JSAbilityRuntime failed @js_ability.cpp(91),ERROR" ID="0xe0bc02da" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Must trigger Launch first @js_ability.cpp(109),ERROR" ID="0xe0bc036a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="LIFECYCLE: JS Ability will be shown @js_ability.cpp(113),INFO" ID="0xe0bc038d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Must trigger Launch first @js_ability.cpp(124),ERROR" ID="0xe0bc03e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="LIFECYCLE: JS Ability will be hidden @js_ability.cpp(127),INFO" ID="0xe0bc03fd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Must trigger Launch first @js_ability.cpp(138),ERROR" ID="0xe0bc0452" />
- <MSG STRUCTURE="diag_log_msg0" NAME="LIFECYCLE: JS Ability is exiting @js_ability.cpp(142),INFO" ID="0xe0bc0475" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Fail to recover screen visible property @js_ability.cpp(152),ERROR" ID="0xe0bc04c2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Must trigger Launch first @js_ability.cpp(167),ERROR" ID="0xe0bc053a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ForceDestroy interface is deprecated as JS engine can not run on other task @js_ability.cpp(183),ERROR" ID="0xe0bc05ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSAbility::HandleRenderTick js app is not forground @js_ability.cpp(218),ERROR" ID="0xe0bc06d2" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="available free size: %d @js_ability.cpp(56),DBG" ID="0xe0c001c6" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Launch only can be triggered once @js_ability.cpp(64),ERROR" ID="0xe0c00202" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="invalid app path @js_ability.cpp(70),ERROR" ID="0xe0c00232" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="invalid bundle name @js_ability.cpp(76),ERROR" ID="0xe0c00262" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Create JSAbilityRuntime failed @js_ability.cpp(91),ERROR" ID="0xe0c002da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Must trigger Launch first @js_ability.cpp(109),ERROR" ID="0xe0c0036a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="LIFECYCLE: JS Ability will be shown @js_ability.cpp(113),INFO" ID="0xe0c0038d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Must trigger Launch first @js_ability.cpp(124),ERROR" ID="0xe0c003e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="LIFECYCLE: JS Ability will be hidden @js_ability.cpp(127),INFO" ID="0xe0c003fd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Must trigger Launch first @js_ability.cpp(138),ERROR" ID="0xe0c00452" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="LIFECYCLE: JS Ability is exiting @js_ability.cpp(142),INFO" ID="0xe0c00475" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Fail to recover screen visible property @js_ability.cpp(152),ERROR" ID="0xe0c004c2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Must trigger Launch first @js_ability.cpp(167),ERROR" ID="0xe0c0053a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ForceDestroy interface is deprecated as JS engine can not run on other task @js_ability.cpp(183),ERROR" ID="0xe0c005ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSAbility::HandleRenderTick js app is not forground @js_ability.cpp(218),ERROR" ID="0xe0c006d2" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="invalid input parameters @js_ability_impl.cpp(35),ERROR" ID="0xe0be011a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="already initialized, return @js_ability_impl.cpp(40),ERROR" ID="0xe0be0142" />
- <MSG STRUCTURE="diag_log_msg0" NAME="relocate js file failed @js_ability_impl.cpp(62),ERROR" ID="0xe0be01f2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc router heap memory failed. @js_ability_impl.cpp(75),ERROR" ID="0xe0be025a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="no router instance to perform the show request @js_ability_impl.cpp(135),ERROR" ID="0xe0be043a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="no router instance to perform the hide request @js_ability_impl.cpp(144),ERROR" ID="0xe0be0482" />
- <MSG STRUCTURE="diag_log_msg0" NAME="view model is undefined when call user's init @js_ability_impl.cpp(164),ERROR" ID="0xe0be0522" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="invalid input parameters @js_ability_impl.cpp(35),ERROR" ID="0xe0c2011a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="already initialized, return @js_ability_impl.cpp(40),ERROR" ID="0xe0c20142" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="relocate js file failed @js_ability_impl.cpp(62),ERROR" ID="0xe0c201f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc router heap memory failed. @js_ability_impl.cpp(77),ERROR" ID="0xe0c2026a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="no router instance to perform the show request @js_ability_impl.cpp(137),ERROR" ID="0xe0c2044a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="no router instance to perform the hide request @js_ability_impl.cpp(146),ERROR" ID="0xe0c20492" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="view model is undefined when call user's init @js_ability_impl.cpp(166),ERROR" ID="0xe0c20532" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="invalid snapshot version[%{public}d] @js_app_context.cpp(65),ERROR" ID="0xe0c0020a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to eval js code cause by empty JavaScript script. @js_app_context.cpp(75),ERROR" ID="0xe0c0025a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="empty js file or length is incorrect, eval user code failed @js_app_context.cpp(86),ERROR" ID="0xe0c002b2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="JS mode changed unexpected [%{public}d] @js_app_context.cpp(161),ERROR" ID="0xe0c0050a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to render app cause by render error. @js_app_context.cpp(180),ERROR" ID="0xe0c005a2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Nothing to render as it is undefined. @js_app_context.cpp(185),ERROR" ID="0xe0c005ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc buffer for current ability path failed @js_app_context.cpp(222),ERROR" ID="0xe0c006f2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc buffer for current uuid failed @js_app_context.cpp(239),ERROR" ID="0xe0c0077a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc buffer for current js path failed @js_app_context.cpp(269),ERROR" ID="0xe0c0086a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="uri is null. @js_app_context.cpp(302),ERROR" ID="0xe0c00972" />
- <MSG STRUCTURE="diag_log_msg0" NAME="uri is empty or too long. @js_app_context.cpp(307),ERROR" ID="0xe0c0099a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="fail to get resource path. @js_app_context.cpp(313),ERROR" ID="0xe0c009ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="fail to get resource path. @js_app_context.cpp(320),ERROR" ID="0xe0c00a02" />
- <MSG STRUCTURE="diag_log_msg0" NAME="fail to get resource path. @js_app_context.cpp(325),ERROR" ID="0xe0c00a2a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="invalid snapshot version[%{public}d] @js_app_context.cpp(65),ERROR" ID="0xe0c4020a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to eval js code cause by empty JavaScript script. @js_app_context.cpp(75),ERROR" ID="0xe0c4025a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="empty js file or length is incorrect, eval user code failed @js_app_context.cpp(86),ERROR" ID="0xe0c402b2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="JS mode changed unexpected [%{public}d] @js_app_context.cpp(161),ERROR" ID="0xe0c4050a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to render app cause by render error. @js_app_context.cpp(180),ERROR" ID="0xe0c405a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Nothing to render as it is undefined. @js_app_context.cpp(185),ERROR" ID="0xe0c405ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc buffer for current ability path failed @js_app_context.cpp(222),ERROR" ID="0xe0c406f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc buffer for current uuid failed @js_app_context.cpp(239),ERROR" ID="0xe0c4077a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc buffer for current js path failed @js_app_context.cpp(269),ERROR" ID="0xe0c4086a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="uri is null. @js_app_context.cpp(302),ERROR" ID="0xe0c40972" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="uri is empty or too long. @js_app_context.cpp(307),ERROR" ID="0xe0c4099a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="fail to get resource path. @js_app_context.cpp(313),ERROR" ID="0xe0c409ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="fail to get resource path. @js_app_context.cpp(320),ERROR" ID="0xe0c40a02" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="fail to get resource path. @js_app_context.cpp(325),ERROR" ID="0xe0c40a2a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="JsAppEnvironment::JsAppEnvironment @js_app_environment.cpp(47),DBG" ID="0xe0c2017e" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to load JavaScript framework. @js_app_environment.cpp(108),ERROR" ID="0xe0c20362" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Success to load JavaScript framework. @js_app_environment.cpp(112),INFO" ID="0xe0c20385" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ACELite is running in snapshot mode @js_app_environment.cpp(141),DBG" ID="0xe0c2046e" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ACELite is running in JS parser mode @js_app_environment.cpp(143),DBG" ID="0xe0c2047e" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="JsAppEnvironment::JsAppEnvironment @js_app_environment.cpp(48),DBG" ID="0xe0c60186" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to load JavaScript framework. @js_app_environment.cpp(110),ERROR" ID="0xe0c60372" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Success to load JavaScript framework. @js_app_environment.cpp(114),INFO" ID="0xe0c60395" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ACELite is running in snapshot mode @js_app_environment.cpp(143),DBG" ID="0xe0c6047e" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ACELite is running in JS parser mode @js_app_environment.cpp(145),DBG" ID="0xe0c6048e" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="please connect to debugger server with localhost:%d @js_debugger_config.cpp(56),INFO" ID="0xe05e01c5" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="please connect to debugger server with localhost:%d @js_debugger_config.cpp(56),INFO" ID="0xe06201c5" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="js value is not bool. @js_fwk_common.cpp(99),ERROR" ID="0xe060031a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to set function property cause by empty name. @js_fwk_common.cpp(110),ERROR" ID="0xe0600372" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to set function property cause by empty handler. @js_fwk_common.cpp(115),ERROR" ID="0xe060039a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="jerry_value_to_string failed, can not continue to generate char buffer @js_fwk_common.cpp(149),ERROR" ID="0xe06004aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc buffer for convert jerry string failed @js_fwk_common.cpp(159),ERROR" ID="0xe06004fa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="jerry string to char buffer failed, target size[%d] @js_fwk_common.cpp(170),ERROR" ID="0xe0600552" />
- <MSG STRUCTURE="diag_log_msg0" NAME="js value is not bool. @js_fwk_common.cpp(190),ERROR" ID="0xe06005f2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="js number value is out of range. @js_fwk_common.cpp(208),DBG" ID="0xe0600686" />
- <MSG STRUCTURE="diag_log_msg0" NAME="js number value is out of range. @js_fwk_common.cpp(212),DBG" ID="0xe06006a6" />
- <MSG STRUCTURE="diag_log_msg0" NAME="cstr is nullptr. @js_fwk_common.cpp(226),ERROR" ID="0xe0600712" />
- <MSG STRUCTURE="diag_log_msg0" NAME="secLength is too long. @js_fwk_common.cpp(409),ERROR" ID="0xe0600cca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="append path error @js_fwk_common.cpp(433),ERROR" ID="0xe0600d8a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="error happen when append path @js_fwk_common.cpp(443),ERROR" ID="0xe0600dda" />
- <MSG STRUCTURE="diag_log_msg0" NAME="input path or fileName is invalid @js_fwk_common.cpp(460),ERROR" ID="0xe0600e62" />
- <MSG STRUCTURE="diag_log_msg0" NAME="input path or fileName is too long @js_fwk_common.cpp(467),ERROR" ID="0xe0600e9a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for path failed, needed length[%u] @js_fwk_common.cpp(475),ERROR" ID="0xe0600eda" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc dirPath memory heap failed. @js_fwk_common.cpp(519),ERROR" ID="0xe060103a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="file doesn't exit or it's empty, [%s] @js_fwk_common.cpp(596),ERROR" ID="0xe06012a2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="realpath handle failed, [%s] @js_fwk_common.cpp(613),ERROR" ID="0xe060132a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="file name too long. @js_fwk_common.cpp(631),ERROR" ID="0xe06013ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="splice trace data failed. @js_fwk_common.cpp(639),ERROR" ID="0xe06013fa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="open file[%s] failed for reading. @js_fwk_common.cpp(655),ERROR" ID="0xe060147a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="open file[fd: %d] failed for reading @js_fwk_common.cpp(687),ERROR" ID="0xe060157a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="open file[path: %s] failed for reading @js_fwk_common.cpp(688),ERROR" ID="0xe0601582" />
- <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for file content failed, file length[%d] @js_fwk_common.cpp(694),ERROR" ID="0xe06015b2" />
- <MSG STRUCTURE="diag_log_msg3" NAME="read fail, count(%d), length(%u), path(%s) @js_fwk_common.cpp(703),ERROR" ID="0xe06015fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="error index.js file path after locate @js_fwk_common.cpp(732),ERROR" ID="0xe06016e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="empty index.js file path after locate @js_fwk_common.cpp(737),ERROR" ID="0xe060170a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for file path calculating from url, file length[%d] @js_fwk_common.cpp(807),ERROR" ID="0xe060193a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="append path error when calculating from url @js_fwk_common.cpp(811),ERROR" ID="0xe060195a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="watcher is undefined when inserting a watcher. @js_fwk_common.cpp(847),ERROR" ID="0xe0601a7a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc memory watcher failed. @js_fwk_common.cpp(854),ERROR" ID="0xe0601ab2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="No component binds element. @js_fwk_common.cpp(945),ERROR" ID="0xe0601d8a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for path failed, needed length[%u] @js_fwk_common.cpp(1177),ERROR" ID="0xe06024ca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="use strcpy_s secure function errro(%d) @js_fwk_common.cpp(1184),ERROR" ID="0xe0602502" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get imagePath failed! @js_fwk_common.cpp(1221),ERROR" ID="0xe060262a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for path failed, needed length[%u] @js_fwk_common.cpp(1250),ERROR" ID="0xe0602712" />
- <MSG STRUCTURE="diag_log_msg0" NAME="strcat_s failed! @js_fwk_common.cpp(1257),ERROR" ID="0xe060274a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="the image suffix error, please check! @js_fwk_common.cpp(1263),ERROR" ID="0xe060277a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to parse image src cause by empty source. @js_fwk_common.cpp(1277),ERROR" ID="0xe06027ea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Failed to parse image src cause by empty source. @js_fwk_common.cpp(1281),ERROR" ID="0xe060280a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Relative path is not allowed in image src. @js_fwk_common.cpp(1288),ERROR" ID="0xe0602842" />
- <MSG STRUCTURE="diag_log_msg0" NAME="the fontFamily is too long @js_fwk_common.cpp(1313),ERROR" ID="0xe060290a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc string failed @js_fwk_common.cpp(1319),ERROR" ID="0xe060293a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="copy fontFamily failed @js_fwk_common.cpp(1323),ERROR" ID="0xe060295a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="js value is not bool. @js_fwk_common.cpp(99),ERROR" ID="0xe064031a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to set function property cause by empty name. @js_fwk_common.cpp(110),ERROR" ID="0xe0640372" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to set function property cause by empty handler. @js_fwk_common.cpp(115),ERROR" ID="0xe064039a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="jerry_value_to_string failed, can not continue to generate char buffer @js_fwk_common.cpp(149),ERROR" ID="0xe06404aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc buffer for convert jerry string failed @js_fwk_common.cpp(159),ERROR" ID="0xe06404fa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="jerry string to char buffer failed, target size[%d] @js_fwk_common.cpp(170),ERROR" ID="0xe0640552" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="js value is not bool. @js_fwk_common.cpp(190),ERROR" ID="0xe06405f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="js number value is out of range. @js_fwk_common.cpp(208),DBG" ID="0xe0640686" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="js number value is out of range. @js_fwk_common.cpp(212),DBG" ID="0xe06406a6" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="cstr is nullptr. @js_fwk_common.cpp(226),ERROR" ID="0xe0640712" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="secLength is too long. @js_fwk_common.cpp(409),ERROR" ID="0xe0640cca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="append path error @js_fwk_common.cpp(433),ERROR" ID="0xe0640d8a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="error happen when append path @js_fwk_common.cpp(443),ERROR" ID="0xe0640dda" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="input path or fileName is invalid @js_fwk_common.cpp(460),ERROR" ID="0xe0640e62" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="input path or fileName is too long @js_fwk_common.cpp(467),ERROR" ID="0xe0640e9a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for path failed, needed length[%u] @js_fwk_common.cpp(475),ERROR" ID="0xe0640eda" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc dirPath memory heap failed. @js_fwk_common.cpp(519),ERROR" ID="0xe064103a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="file doesn't exit or it's empty, [%s] @js_fwk_common.cpp(596),ERROR" ID="0xe06412a2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="realpath handle failed, [%s] @js_fwk_common.cpp(613),ERROR" ID="0xe064132a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="file name too long. @js_fwk_common.cpp(631),ERROR" ID="0xe06413ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="splice trace data failed. @js_fwk_common.cpp(639),ERROR" ID="0xe06413fa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="open file[%s] failed for reading. @js_fwk_common.cpp(655),ERROR" ID="0xe064147a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="open file[fd: %d] failed for reading @js_fwk_common.cpp(687),ERROR" ID="0xe064157a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="open file[path: %s] failed for reading @js_fwk_common.cpp(688),ERROR" ID="0xe0641582" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for file content failed, file length[%d] @js_fwk_common.cpp(694),ERROR" ID="0xe06415b2" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="read fail, count(%d), length(%u), path(%s) @js_fwk_common.cpp(703),ERROR" ID="0xe06415fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="error index.js file path after locate @js_fwk_common.cpp(732),ERROR" ID="0xe06416e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="empty index.js file path after locate @js_fwk_common.cpp(737),ERROR" ID="0xe064170a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for file path calculating from url, file length[%d] @js_fwk_common.cpp(807),ERROR" ID="0xe064193a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="append path error when calculating from url @js_fwk_common.cpp(811),ERROR" ID="0xe064195a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="watcher is undefined when inserting a watcher. @js_fwk_common.cpp(847),ERROR" ID="0xe0641a7a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc memory watcher failed. @js_fwk_common.cpp(854),ERROR" ID="0xe0641ab2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="No component binds element. @js_fwk_common.cpp(945),ERROR" ID="0xe0641d8a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for path failed, needed length[%u] @js_fwk_common.cpp(1177),ERROR" ID="0xe06424ca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="use strcpy_s secure function errro(%d) @js_fwk_common.cpp(1184),ERROR" ID="0xe0642502" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="get imagePath failed! @js_fwk_common.cpp(1221),ERROR" ID="0xe064262a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="malloc buffer for path failed, needed length[%u] @js_fwk_common.cpp(1250),ERROR" ID="0xe0642712" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="strcat_s failed! @js_fwk_common.cpp(1257),ERROR" ID="0xe064274a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="the image suffix error, please check! @js_fwk_common.cpp(1263),ERROR" ID="0xe064277a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to parse image src cause by empty source. @js_fwk_common.cpp(1277),ERROR" ID="0xe06427ea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Failed to parse image src cause by empty source. @js_fwk_common.cpp(1281),ERROR" ID="0xe064280a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Relative path is not allowed in image src. @js_fwk_common.cpp(1288),ERROR" ID="0xe0642842" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="the fontFamily is too long @js_fwk_common.cpp(1313),ERROR" ID="0xe064290a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc string failed @js_fwk_common.cpp(1319),ERROR" ID="0xe064293a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="copy fontFamily failed @js_fwk_common.cpp(1323),ERROR" ID="0xe064295a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="undefined state -> init state @js_page_state.cpp(29),INFO" ID="0xe0fc00ed" />
- <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) is invalid when changing undefined state to init state. @js_page_state.cpp(41),ERROR" ID="0xe0fc014a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="init state -> ready state @js_page_state.cpp(49),INFO" ID="0xe0fc018d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) is invalid when changing init state to ready state. @js_page_state.cpp(60),ERROR" ID="0xe0fc01e2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) -> show state @js_page_state.cpp(68),INFO" ID="0xe0fc0225" />
- <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) is invalid when changing ready state to show state. @js_page_state.cpp(77),ERROR" ID="0xe0fc026a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) -> background state @js_page_state.cpp(85),INFO" ID="0xe0fc02ad" />
- <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) is invalid when changing show state to background state. @js_page_state.cpp(93),ERROR" ID="0xe0fc02ea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) -> destroy state @js_page_state.cpp(102),INFO" ID="0xe0fc0335" />
- <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) is invalid when changing show state to destroy state. @js_page_state.cpp(111),ERROR" ID="0xe0fc037a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="undefined state -> init state @js_page_state.cpp(29),INFO" ID="0xe10000ed" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) is invalid when changing undefined state to init state. @js_page_state.cpp(41),ERROR" ID="0xe100014a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="init state -> ready state @js_page_state.cpp(49),INFO" ID="0xe100018d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) is invalid when changing init state to ready state. @js_page_state.cpp(60),ERROR" ID="0xe10001e2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) -> show state @js_page_state.cpp(68),INFO" ID="0xe1000225" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) is invalid when changing ready state to show state. @js_page_state.cpp(77),ERROR" ID="0xe100026a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) -> background state @js_page_state.cpp(85),INFO" ID="0xe10002ad" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) is invalid when changing show state to background state. @js_page_state.cpp(93),ERROR" ID="0xe10002ea" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) -> destroy state @js_page_state.cpp(102),INFO" ID="0xe1000335" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="current state(%d) is invalid when changing show state to destroy state. @js_page_state.cpp(111),ERROR" ID="0xe100037a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="error input state:%d @js_page_state_machine.cpp(83),ERROR" ID="0xe0fe029a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc path memory heap failed. @js_page_state_machine.cpp(116),ERROR" ID="0xe0fe03a2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="delete $page property failed from global object. @js_page_state_machine.cpp(148),ERROR" ID="0xe0fe04a2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as this app's root path is invalid. @js_page_state_machine.cpp(160),ERROR" ID="0xe0fe0502" />
- <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as object is invalid. @js_page_state_machine.cpp(177),ERROR" ID="0xe0fe058a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as uri is invalid. @js_page_state_machine.cpp(186),ERROR" ID="0xe0fe05d2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as uri is invalid. @js_page_state_machine.cpp(194),ERROR" ID="0xe0fe0612" />
- <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as uri is empty. @js_page_state_machine.cpp(201),ERROR" ID="0xe0fe064a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as generating js file's path failed. @js_page_state_machine.cpp(211),ERROR" ID="0xe0fe069a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as js file isn't existed. @js_page_state_machine.cpp(220),ERROR" ID="0xe0fe06e2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="error input state:%d @js_page_state_machine.cpp(278),ERROR" ID="0xe0fe08b2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="relocat page JS file failed @js_page_state_machine.cpp(295),ERROR" ID="0xe0fe093a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Eval JS file failed @js_page_state_machine.cpp(301),ERROR" ID="0xe0fe096a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="JS Heap allocBytes[%d], peakAllocBytes[%d] @js_page_state_machine.cpp(333),DBG" ID="0xe0fe0a6e" />
- <MSG STRUCTURE="diag_log_msg0" NAME="StateMachine::ShowPage @js_page_state_machine.cpp(365),INFO" ID="0xe0fe0b6d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="showpage: the whole application already in background, do not operate rootview @js_page_state_machine.cpp(367),WARNING" ID="0xe0fe0b7b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="hidepage: the whole application already in background, do not operate rootview @js_page_state_machine.cpp(382),WARNING" ID="0xe0fe0bf3" />
- <MSG STRUCTURE="diag_log_msg0" NAME="input parameter is invalid when invoking page life cycle callback. @js_page_state_machine.cpp(399),ERROR" ID="0xe0fe0c7a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="delete $page property failed from global object. @js_page_state_machine.cpp(424),ERROR" ID="0xe0fe0d42" />
- <MSG STRUCTURE="diag_log_msg0" NAME="delete $root property failed from global object. @js_page_state_machine.cpp(433),ERROR" ID="0xe0fe0d8a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[%d] components leaked! @js_page_state_machine.cpp(475),ERROR" ID="0xe0fe0eda" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="error input state:%d @js_page_state_machine.cpp(83),ERROR" ID="0xe102029a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc path memory heap failed. @js_page_state_machine.cpp(116),ERROR" ID="0xe10203a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="delete $page property failed from global object. @js_page_state_machine.cpp(148),ERROR" ID="0xe10204a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as this app's root path is invalid. @js_page_state_machine.cpp(160),ERROR" ID="0xe1020502" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as object is invalid. @js_page_state_machine.cpp(177),ERROR" ID="0xe102058a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as uri is invalid. @js_page_state_machine.cpp(186),ERROR" ID="0xe10205d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as uri is invalid. @js_page_state_machine.cpp(194),ERROR" ID="0xe1020612" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as uri is empty. @js_page_state_machine.cpp(201),ERROR" ID="0xe102064a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as generating js file's path failed. @js_page_state_machine.cpp(211),ERROR" ID="0xe102069a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="statemachine init failed as js file isn't existed. @js_page_state_machine.cpp(220),ERROR" ID="0xe10206e2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="error input state:%d @js_page_state_machine.cpp(278),ERROR" ID="0xe10208b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="relocat page JS file failed @js_page_state_machine.cpp(295),ERROR" ID="0xe102093a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Eval JS file failed @js_page_state_machine.cpp(301),ERROR" ID="0xe102096a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="JS Heap allocBytes[%d], peakAllocBytes[%d] @js_page_state_machine.cpp(333),DBG" ID="0xe1020a6e" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="StateMachine::ShowPage @js_page_state_machine.cpp(365),INFO" ID="0xe1020b6d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="showpage: the whole application already in background, do not operate rootview @js_page_state_machine.cpp(367),WARNING" ID="0xe1020b7b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="hidepage: the whole application already in background, do not operate rootview @js_page_state_machine.cpp(382),WARNING" ID="0xe1020bf3" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="input parameter is invalid when invoking page life cycle callback. @js_page_state_machine.cpp(399),ERROR" ID="0xe1020c7a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="delete $page property failed from global object. @js_page_state_machine.cpp(424),ERROR" ID="0xe1020d42" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="delete $root property failed from global object. @js_page_state_machine.cpp(433),ERROR" ID="0xe1020d8a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%d] components leaked! @js_page_state_machine.cpp(475),ERROR" ID="0xe1020eda" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="malloc performance data buffer failed @js_profiler.cpp(205),ERROR" ID="0xe0c6066a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc performance data buffer failed @js_profiler.cpp(211),ERROR" ID="0xe0c6069a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="sync js profiler msg error @js_profiler.cpp(224),ERROR" ID="0xe0c60702" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler flushmsg sprintf error @js_profiler.cpp(231),ERROR" ID="0xe0c6073a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler create error @js_profiler.cpp(237),ERROR" ID="0xe0c6076a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler open error @js_profiler.cpp(243),ERROR" ID="0xe0c6079a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ace dump js profiler msg error @js_profiler.cpp(251),ERROR" ID="0xe0c607da" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler close error @js_profiler.cpp(257),ERROR" ID="0xe0c6080a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler memset_s failed @js_profiler.cpp(280),ERROR" ID="0xe0c608c2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler memset_s failed @js_profiler.cpp(289),ERROR" ID="0xe0c6090a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ace js profiler tag(%d) mismatch! @js_profiler.cpp(358),ERROR" ID="0xe0c60b32" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler memset_s msg failed @js_profiler.cpp(394),ERROR" ID="0xe0c60c52" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler write msg failed @js_profiler.cpp(398),ERROR" ID="0xe0c60c72" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="malloc performance data buffer failed @js_profiler.cpp(205),ERROR" ID="0xe0ca066a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc performance data buffer failed @js_profiler.cpp(211),ERROR" ID="0xe0ca069a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="sync js profiler msg error @js_profiler.cpp(224),ERROR" ID="0xe0ca0702" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler flushmsg sprintf error @js_profiler.cpp(231),ERROR" ID="0xe0ca073a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler create error @js_profiler.cpp(237),ERROR" ID="0xe0ca076a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler open error @js_profiler.cpp(243),ERROR" ID="0xe0ca079a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ace dump js profiler msg error @js_profiler.cpp(251),ERROR" ID="0xe0ca07da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler close error @js_profiler.cpp(257),ERROR" ID="0xe0ca080a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler memset_s failed @js_profiler.cpp(280),ERROR" ID="0xe0ca08c2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler memset_s failed @js_profiler.cpp(289),ERROR" ID="0xe0ca090a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ace js profiler tag(%d) mismatch! @js_profiler.cpp(358),ERROR" ID="0xe0ca0b32" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler memset_s msg failed @js_profiler.cpp(394),ERROR" ID="0xe0ca0c52" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ace js profiler write msg failed @js_profiler.cpp(398),ERROR" ID="0xe0ca0c72" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="replace async failed with null input parameter @js_router.cpp(31),ERROR" ID="0xe10000fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="router is replacing, can not handle the new request @js_router.cpp(43),ERROR" ID="0xe100015a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc state machine memory heap failed. @js_router.cpp(48),ERROR" ID="0xe1000182" />
- <MSG STRUCTURE="diag_log_msg0" NAME="dispatch replacing request failed @js_router.cpp(64),ERROR" ID="0xe1000202" />
- <MSG STRUCTURE="diag_log_msg0" NAME="replace sync failed, new sm should be prepared @js_router.cpp(78),ERROR" ID="0xe1000272" />
- <MSG STRUCTURE="diag_log_msg0" NAME="the whole application is in background, move to HIDE state directly @js_router.cpp(94),DBG" ID="0xe10002f6" />
- <MSG STRUCTURE="diag_log_msg0" NAME="no SM when performing show @js_router.cpp(110),ERROR" ID="0xe1000372" />
- <MSG STRUCTURE="diag_log_msg0" NAME="no SM when performing background @js_router.cpp(122),ERROR" ID="0xe10003d2" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="replace async failed with null input parameter @js_router.cpp(31),ERROR" ID="0xe10400fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="router is replacing, can not handle the new request @js_router.cpp(43),ERROR" ID="0xe104015a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc state machine memory heap failed. @js_router.cpp(48),ERROR" ID="0xe1040182" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="dispatch replacing request failed @js_router.cpp(64),ERROR" ID="0xe1040202" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="replace sync failed, new sm should be prepared @js_router.cpp(78),ERROR" ID="0xe1040272" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="the whole application is in background, move to HIDE state directly @js_router.cpp(94),DBG" ID="0xe10402f6" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="no SM when performing show @js_router.cpp(110),ERROR" ID="0xe1040372" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="no SM when performing background @js_router.cpp(122),ERROR" ID="0xe10403d2" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetGlobalObject has not been implemented in this js engine! @jsi.cpp(33),ERROR" ID="0xe0ce010a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateObject has not been implemented in this js engine! @jsi.cpp(43),ERROR" ID="0xe0ce015a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetProperty failed! @jsi.cpp(51),ERROR" ID="0xe0ce019a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetProperty has not been implemented in this js engine! @jsi.cpp(61),ERROR" ID="0xe0ce01ea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetNamedProperty failed! @jsi.cpp(68),ERROR" ID="0xe0ce0222" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetNamedProperty has not been implemented in this js engine! @jsi.cpp(76),ERROR" ID="0xe0ce0262" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetNumberProperty failed! @jsi.cpp(83),ERROR" ID="0xe0ce029a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetBooleanProperty failed! @jsi.cpp(94),ERROR" ID="0xe0ce02f2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetStringProperty failed! @jsi.cpp(105),ERROR" ID="0xe0ce034a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetStringPropertyWithBufferSize failed! @jsi.cpp(116),ERROR" ID="0xe0ce03a2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateJerryFuncHelper get function pointer failed! @jsi.cpp(137),ERROR" ID="0xe0ce044a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateJerryFuncHelper allocate memory failed! @jsi.cpp(149),ERROR" ID="0xe0ce04aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateFunction failed! @jsi.cpp(166),ERROR" ID="0xe0ce0532" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateFunction has not been implemented in this js engine! @jsi.cpp(175),ERROR" ID="0xe0ce057a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateString has not been implemented in this js engine! @jsi.cpp(188),ERROR" ID="0xe0ce05e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateStringWithBufferSize has not been implemented in this js engine! @jsi.cpp(201),ERROR" ID="0xe0ce064a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateUndefined has not been implemented in this js engine! @jsi.cpp(210),ERROR" ID="0xe0ce0692" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsFunction has not been implemented in this js engine! @jsi.cpp(220),ERROR" ID="0xe0ce06e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsUndefined has not been implemented in this js engine! @jsi.cpp(230),ERROR" ID="0xe0ce0732" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsNumber has not been implemented in this js engine! @jsi.cpp(240),ERROR" ID="0xe0ce0782" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsString has not been implemented in this js engine! @jsi.cpp(250),ERROR" ID="0xe0ce07d2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsBoolean has not been implemented in this js engine! @jsi.cpp(260),ERROR" ID="0xe0ce0822" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsNull has not been implemented in this js engine! @jsi.cpp(270),ERROR" ID="0xe0ce0872" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsObject has not been implemented in this js engine! @jsi.cpp(280),ERROR" ID="0xe0ce08c2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsError has not been implemented in this js engine! @jsi.cpp(290),ERROR" ID="0xe0ce0912" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:JsonStringify failed! @jsi.cpp(298),ERROR" ID="0xe0ce0952" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:JsonStringify has not been implemented in this js engine! @jsi.cpp(307),ERROR" ID="0xe0ce099a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:JsonParse failed! @jsi.cpp(315),ERROR" ID="0xe0ce09da" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:JsonParse has not been implemented in this js engine! @jsi.cpp(322),ERROR" ID="0xe0ce0a12" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetProperty failed! @jsi.cpp(330),ERROR" ID="0xe0ce0a52" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetProperty has not been implemented in this js engine! @jsi.cpp(338),ERROR" ID="0xe0ce0a92" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetNamedProperty failed! @jsi.cpp(346),ERROR" ID="0xe0ce0ad2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetNamedProperty has not been implemented in this js engine! @jsi.cpp(355),ERROR" ID="0xe0ce0b1a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetNumberProperty failed! @jsi.cpp(363),ERROR" ID="0xe0ce0b5a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetBooleanProperty failed! @jsi.cpp(375),ERROR" ID="0xe0ce0bba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetStringProperty failed! @jsi.cpp(387),ERROR" ID="0xe0ce0c1a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ReleaseValue has not been implemented in this js engine! @jsi.cpp(403),ERROR" ID="0xe0ce0c9a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetStringPropertyWithBufferSize failed! @jsi.cpp(410),ERROR" ID="0xe0ce0cd2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CallFunction failed! @jsi.cpp(430),ERROR" ID="0xe0ce0d72" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CallFunction error returned! @jsi.cpp(439),ERROR" ID="0xe0ce0dba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CallFunction allocate memory failed! @jsi.cpp(446),ERROR" ID="0xe0ce0df2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CallFunction error returned! @jsi.cpp(455),ERROR" ID="0xe0ce0e3a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CallFunction has not been implemented in this js engine! @jsi.cpp(461),ERROR" ID="0xe0ce0e6a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateNumber has not been implemented in this js engine! @jsi.cpp(470),ERROR" ID="0xe0ce0eb2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateNumberNan has not been implemented in this js engine! @jsi.cpp(480),ERROR" ID="0xe0ce0f02" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateError parameters invalid! @jsi.cpp(555),ERROR" ID="0xe0ce115a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateError has not been implemented in this js engine! @jsi.cpp(563),ERROR" ID="0xe0ce119a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetErrorType has not been implemented in this js engine! @jsi.cpp(578),ERROR" ID="0xe0ce1212" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateBoolean has not been implemented in this js engine! @jsi.cpp(588),ERROR" ID="0xe0ce1262" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateNull has not been implemented in this js engine! @jsi.cpp(598),ERROR" ID="0xe0ce12b2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateSymbol has not been implemented in this js engine! @jsi.cpp(610),ERROR" ID="0xe0ce1312" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsSymbol has not been implemented in this js engine! @jsi.cpp(620),ERROR" ID="0xe0ce1362" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateArray has not been implemented in this js engine! @jsi.cpp(631),ERROR" ID="0xe0ce13ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetPropertyByIndex has not been implemented in this js engine! @jsi.cpp(650),ERROR" ID="0xe0ce1452" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToString params invalid! @jsi.cpp(661),ERROR" ID="0xe0ce14aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToString malloc memory for empty char failed! @jsi.cpp(670),ERROR" ID="0xe0ce14f2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToString malloc memory failed! @jsi.cpp(678),ERROR" ID="0xe0ce1532" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToString jerry string to char buffer failed @jsi.cpp(683),ERROR" ID="0xe0ce155a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToString has not been implemented in this js engine! @jsi.cpp(693),ERROR" ID="0xe0ce15aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToStringWithBufferSize params invalid! @jsi.cpp(703),ERROR" ID="0xe0ce15fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToStringWithBufferSize malloc memory failed! @jsi.cpp(716),ERROR" ID="0xe0ce1662" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToStringWithBufferSize jerry string to char buffer failed @jsi.cpp(722),ERROR" ID="0xe0ce1692" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToStringWithBufferSize has not been implemented in this js engine! @jsi.cpp(731),ERROR" ID="0xe0ce16da" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToNumber params invalid! @jsi.cpp(742),ERROR" ID="0xe0ce1732" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToNumber has not been implemented in this js engine! @jsi.cpp(747),ERROR" ID="0xe0ce175a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToBoolean params invalid! @jsi.cpp(757),ERROR" ID="0xe0ce17aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToBoolean has not been implemented in this js engine! @jsi.cpp(762),ERROR" ID="0xe0ce17d2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:JSIValueToString has not been implemented in this js engine! @jsi.cpp(775),ERROR" ID="0xe0ce183a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetArrayLength params invalid! @jsi.cpp(785),ERROR" ID="0xe0ce188a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetArrayLength has not been implemented in this js engine! @jsi.cpp(790),ERROR" ID="0xe0ce18b2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetPropertyByIndex has not been implemented in this js engine! @jsi.cpp(801),ERROR" ID="0xe0ce190a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetObjectKeys failed! @jsi.cpp(809),ERROR" ID="0xe0ce194a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetObjectKeys has not been implemented in this js engine! @jsi.cpp(816),ERROR" ID="0xe0ce1982" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetJSHeapStatus has not been implemented in this js engine! @jsi.cpp(833),ERROR" ID="0xe0ce1a0a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsArray has not been implemented in this js engine! @jsi.cpp(843),ERROR" ID="0xe0ce1a5a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:AcquireValue has not been implemented in this js engine! @jsi.cpp(854),ERROR" ID="0xe0ce1ab2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetModuleAPI failed! @jsi.cpp(862),ERROR" ID="0xe0ce1af2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetOnDestroy failed! @jsi.cpp(873),ERROR" ID="0xe0ce1b4a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetOnDestroy has not been implemented in this js engine! @jsi.cpp(880),ERROR" ID="0xe0ce1b82" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetOnTerminate failed! @jsi.cpp(892),ERROR" ID="0xe0ce1be2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetNamedPointer failed! @jsi.cpp(909),ERROR" ID="0xe0ce1c6a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetNamedPointer has not been implemented in this js engine! @jsi.cpp(919),ERROR" ID="0xe0ce1cba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetTypedArrayInfo failed! @jsi.cpp(972),ERROR" ID="0xe0ce1e62" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetTypedArrayInfo has not been implemented in this js engine! @jsi.cpp(990),ERROR" ID="0xe0ce1ef2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateTypedArray has not been implemented in this js engine! @jsi.cpp(1045),ERROR" ID="0xe0ce20aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetArrayBufferInfo failed! @jsi.cpp(1053),ERROR" ID="0xe0ce20ea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetArrayBufferInfo has not been implemented in this js engine! @jsi.cpp(1063),ERROR" ID="0xe0ce213a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateArrayBuffer has not been implemented in this js engine! @jsi.cpp(1078),ERROR" ID="0xe0ce21b2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsArrayBuffer has not been implemented in this js engine! @jsi.cpp(1088),ERROR" ID="0xe0ce2202" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsTypedArray has not been implemented in this js engine! @jsi.cpp(1098),ERROR" ID="0xe0ce2252" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:DefineProperty failed! @jsi.cpp(1107),ERROR" ID="0xe0ce229a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:DefineProperty has not been implemented in this js engine! @jsi.cpp(1134),ERROR" ID="0xe0ce2372" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:DefineNamedProperty failed! @jsi.cpp(1142),ERROR" ID="0xe0ce23b2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:DefineNamedProperty has not been implemented in this js engine! @jsi.cpp(1151),ERROR" ID="0xe0ce23fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateErrorWithCode parameters invalid! @jsi.cpp(1201),ERROR" ID="0xe0ce258a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateErrorWithCode error message too long! @jsi.cpp(1206),ERROR" ID="0xe0ce25b2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateErrorWithCode has not been implemented in this js engine! @jsi.cpp(1219),ERROR" ID="0xe0ce261a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetGlobalObject has not been implemented in this js engine! @jsi.cpp(33),ERROR" ID="0xe0d2010a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateObject has not been implemented in this js engine! @jsi.cpp(43),ERROR" ID="0xe0d2015a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetProperty failed! @jsi.cpp(51),ERROR" ID="0xe0d2019a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetProperty has not been implemented in this js engine! @jsi.cpp(61),ERROR" ID="0xe0d201ea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetNamedProperty failed! @jsi.cpp(68),ERROR" ID="0xe0d20222" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetNamedProperty has not been implemented in this js engine! @jsi.cpp(76),ERROR" ID="0xe0d20262" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetNumberProperty failed! @jsi.cpp(83),ERROR" ID="0xe0d2029a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetBooleanProperty failed! @jsi.cpp(94),ERROR" ID="0xe0d202f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetStringProperty failed! @jsi.cpp(105),ERROR" ID="0xe0d2034a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetStringPropertyWithBufferSize failed! @jsi.cpp(116),ERROR" ID="0xe0d203a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateJerryFuncHelper get function pointer failed! @jsi.cpp(137),ERROR" ID="0xe0d2044a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateJerryFuncHelper allocate memory failed! @jsi.cpp(149),ERROR" ID="0xe0d204aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateFunction failed! @jsi.cpp(166),ERROR" ID="0xe0d20532" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateFunction has not been implemented in this js engine! @jsi.cpp(175),ERROR" ID="0xe0d2057a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateString has not been implemented in this js engine! @jsi.cpp(188),ERROR" ID="0xe0d205e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateStringWithBufferSize has not been implemented in this js engine! @jsi.cpp(201),ERROR" ID="0xe0d2064a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateUndefined has not been implemented in this js engine! @jsi.cpp(210),ERROR" ID="0xe0d20692" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsFunction has not been implemented in this js engine! @jsi.cpp(220),ERROR" ID="0xe0d206e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsUndefined has not been implemented in this js engine! @jsi.cpp(230),ERROR" ID="0xe0d20732" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsNumber has not been implemented in this js engine! @jsi.cpp(240),ERROR" ID="0xe0d20782" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsString has not been implemented in this js engine! @jsi.cpp(250),ERROR" ID="0xe0d207d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsBoolean has not been implemented in this js engine! @jsi.cpp(260),ERROR" ID="0xe0d20822" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsNull has not been implemented in this js engine! @jsi.cpp(270),ERROR" ID="0xe0d20872" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsObject has not been implemented in this js engine! @jsi.cpp(280),ERROR" ID="0xe0d208c2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsError has not been implemented in this js engine! @jsi.cpp(290),ERROR" ID="0xe0d20912" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:JsonStringify failed! @jsi.cpp(298),ERROR" ID="0xe0d20952" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:JsonStringify has not been implemented in this js engine! @jsi.cpp(307),ERROR" ID="0xe0d2099a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:JsonParse failed! @jsi.cpp(315),ERROR" ID="0xe0d209da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:JsonParse has not been implemented in this js engine! @jsi.cpp(322),ERROR" ID="0xe0d20a12" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetProperty failed! @jsi.cpp(330),ERROR" ID="0xe0d20a52" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetProperty has not been implemented in this js engine! @jsi.cpp(338),ERROR" ID="0xe0d20a92" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetNamedProperty failed! @jsi.cpp(346),ERROR" ID="0xe0d20ad2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetNamedProperty has not been implemented in this js engine! @jsi.cpp(355),ERROR" ID="0xe0d20b1a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetNumberProperty failed! @jsi.cpp(363),ERROR" ID="0xe0d20b5a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetBooleanProperty failed! @jsi.cpp(375),ERROR" ID="0xe0d20bba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetStringProperty failed! @jsi.cpp(387),ERROR" ID="0xe0d20c1a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ReleaseValue has not been implemented in this js engine! @jsi.cpp(403),ERROR" ID="0xe0d20c9a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetStringPropertyWithBufferSize failed! @jsi.cpp(410),ERROR" ID="0xe0d20cd2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CallFunction failed! @jsi.cpp(430),ERROR" ID="0xe0d20d72" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CallFunction error returned! @jsi.cpp(439),ERROR" ID="0xe0d20dba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CallFunction allocate memory failed! @jsi.cpp(446),ERROR" ID="0xe0d20df2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CallFunction error returned! @jsi.cpp(455),ERROR" ID="0xe0d20e3a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CallFunction has not been implemented in this js engine! @jsi.cpp(461),ERROR" ID="0xe0d20e6a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateNumber has not been implemented in this js engine! @jsi.cpp(470),ERROR" ID="0xe0d20eb2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateNumberNan has not been implemented in this js engine! @jsi.cpp(480),ERROR" ID="0xe0d20f02" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateError parameters invalid! @jsi.cpp(555),ERROR" ID="0xe0d2115a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateError has not been implemented in this js engine! @jsi.cpp(563),ERROR" ID="0xe0d2119a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetErrorType has not been implemented in this js engine! @jsi.cpp(578),ERROR" ID="0xe0d21212" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateBoolean has not been implemented in this js engine! @jsi.cpp(588),ERROR" ID="0xe0d21262" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateNull has not been implemented in this js engine! @jsi.cpp(598),ERROR" ID="0xe0d212b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateSymbol has not been implemented in this js engine! @jsi.cpp(610),ERROR" ID="0xe0d21312" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsSymbol has not been implemented in this js engine! @jsi.cpp(620),ERROR" ID="0xe0d21362" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateArray has not been implemented in this js engine! @jsi.cpp(631),ERROR" ID="0xe0d213ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetPropertyByIndex has not been implemented in this js engine! @jsi.cpp(650),ERROR" ID="0xe0d21452" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToString params invalid! @jsi.cpp(661),ERROR" ID="0xe0d214aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToString malloc memory for empty char failed! @jsi.cpp(670),ERROR" ID="0xe0d214f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToString malloc memory failed! @jsi.cpp(678),ERROR" ID="0xe0d21532" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToString jerry string to char buffer failed @jsi.cpp(683),ERROR" ID="0xe0d2155a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToString has not been implemented in this js engine! @jsi.cpp(693),ERROR" ID="0xe0d215aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToStringWithBufferSize params invalid! @jsi.cpp(703),ERROR" ID="0xe0d215fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToStringWithBufferSize malloc memory failed! @jsi.cpp(716),ERROR" ID="0xe0d21662" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToStringWithBufferSize jerry string to char buffer failed @jsi.cpp(722),ERROR" ID="0xe0d21692" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToStringWithBufferSize has not been implemented in this js engine! @jsi.cpp(731),ERROR" ID="0xe0d216da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToNumber params invalid! @jsi.cpp(742),ERROR" ID="0xe0d21732" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToNumber has not been implemented in this js engine! @jsi.cpp(747),ERROR" ID="0xe0d2175a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToBoolean params invalid! @jsi.cpp(757),ERROR" ID="0xe0d217aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueToBoolean has not been implemented in this js engine! @jsi.cpp(762),ERROR" ID="0xe0d217d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:JSIValueToString has not been implemented in this js engine! @jsi.cpp(775),ERROR" ID="0xe0d2183a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetArrayLength params invalid! @jsi.cpp(785),ERROR" ID="0xe0d2188a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetArrayLength has not been implemented in this js engine! @jsi.cpp(790),ERROR" ID="0xe0d218b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetPropertyByIndex has not been implemented in this js engine! @jsi.cpp(801),ERROR" ID="0xe0d2190a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetObjectKeys failed! @jsi.cpp(809),ERROR" ID="0xe0d2194a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetObjectKeys has not been implemented in this js engine! @jsi.cpp(816),ERROR" ID="0xe0d21982" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetJSHeapStatus has not been implemented in this js engine! @jsi.cpp(833),ERROR" ID="0xe0d21a0a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsArray has not been implemented in this js engine! @jsi.cpp(843),ERROR" ID="0xe0d21a5a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:AcquireValue has not been implemented in this js engine! @jsi.cpp(854),ERROR" ID="0xe0d21ab2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetModuleAPI failed! @jsi.cpp(862),ERROR" ID="0xe0d21af2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetOnDestroy failed! @jsi.cpp(873),ERROR" ID="0xe0d21b4a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetOnDestroy has not been implemented in this js engine! @jsi.cpp(880),ERROR" ID="0xe0d21b82" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetOnTerminate failed! @jsi.cpp(892),ERROR" ID="0xe0d21be2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetNamedPointer failed! @jsi.cpp(909),ERROR" ID="0xe0d21c6a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:SetNamedPointer has not been implemented in this js engine! @jsi.cpp(919),ERROR" ID="0xe0d21cba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetTypedArrayInfo failed! @jsi.cpp(972),ERROR" ID="0xe0d21e62" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetTypedArrayInfo has not been implemented in this js engine! @jsi.cpp(990),ERROR" ID="0xe0d21ef2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateTypedArray has not been implemented in this js engine! @jsi.cpp(1045),ERROR" ID="0xe0d220aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetArrayBufferInfo failed! @jsi.cpp(1053),ERROR" ID="0xe0d220ea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:GetArrayBufferInfo has not been implemented in this js engine! @jsi.cpp(1063),ERROR" ID="0xe0d2213a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateArrayBuffer has not been implemented in this js engine! @jsi.cpp(1078),ERROR" ID="0xe0d221b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsArrayBuffer has not been implemented in this js engine! @jsi.cpp(1088),ERROR" ID="0xe0d22202" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:ValueIsTypedArray has not been implemented in this js engine! @jsi.cpp(1098),ERROR" ID="0xe0d22252" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:DefineProperty failed! @jsi.cpp(1107),ERROR" ID="0xe0d2229a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:DefineProperty has not been implemented in this js engine! @jsi.cpp(1134),ERROR" ID="0xe0d22372" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:DefineNamedProperty failed! @jsi.cpp(1142),ERROR" ID="0xe0d223b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:DefineNamedProperty has not been implemented in this js engine! @jsi.cpp(1151),ERROR" ID="0xe0d223fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateErrorWithCode parameters invalid! @jsi.cpp(1201),ERROR" ID="0xe0d2258a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateErrorWithCode error message too long! @jsi.cpp(1206),ERROR" ID="0xe0d225b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="JSI:CreateErrorWithCode has not been implemented in this js engine! @jsi.cpp(1219),ERROR" ID="0xe0d2261a" />
</MSG_LOG>
\ No newline at end of file
--- /dev/null
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="Alloc buffer for data failed. @kaleidoscope_utils.cpp(31),ERROR" ID="0xcb3c00fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="kaleidoscopeInfo_ is not nullptr @kaleidoscope_utils.cpp(48),ERROR" ID="0xcb3c0182" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="UIMalloc for kaleidoscopeInfo_ failed! @kaleidoscope_utils.cpp(54),ERROR" ID="0xcb3c01b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Alloc for data failed. @kaleidoscope_utils.cpp(66),ERROR" ID="0xcb3c0212" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="dst->info.data is nullptr @kaleidoscope_utils.cpp(78),ERROR" ID="0xcb3c0272" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="size does not match: src[%u, %u], dst[%u, %u]. @kaleidoscope_utils.cpp(85),ERROR" ID="0xcb3c02aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Alloc for sectorPath cmds failed. @kaleidoscope_utils.cpp(101),ERROR" ID="0xcb3c032a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Alloc for sectorPath data failed. @kaleidoscope_utils.cpp(106),ERROR" ID="0xcb3c0352" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Alloc for imgPath cmds failed. @kaleidoscope_utils.cpp(114),ERROR" ID="0xcb3c0392" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Alloc for imgPath data failed. @kaleidoscope_utils.cpp(129),ERROR" ID="0xcb3c040a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="UIMalloc for partialInfo_ failed. @kaleidoscope_utils.cpp(152),ERROR" ID="0xcb3c04c2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Alloc for partial info data failed. @kaleidoscope_utils.cpp(164),ERROR" ID="0xcb3c0522" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="src or src->data is null. @kaleidoscope_utils.cpp(217),ERROR" ID="0xcb3c06ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="UIMalloc for imgInfo_ failed. @kaleidoscope_utils.cpp(224),ERROR" ID="0xcb3c0702" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy imgInfo_ failed. @kaleidoscope_utils.cpp(230),ERROR" ID="0xcb3c0732" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="InitKaleidoscopeInfo failed. @kaleidoscope_utils.cpp(236),ERROR" ID="0xcb3c0762" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="InitInnerPath failed. @kaleidoscope_utils.cpp(243),ERROR" ID="0xcb3c079a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="InitPartialInfo failed. @kaleidoscope_utils.cpp(251),ERROR" ID="0xcb3c07da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="kaleidoscopeInfo_ or partialInfo_ is nullptr. @kaleidoscope_utils.cpp(422),ERROR" ID="0xcb3c0d32" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="kaleidoscopeInfo_ or kaleidoscopeInfo_->info.data is nullptr. @kaleidoscope_utils.cpp(445),ERROR" ID="0xcb3c0dea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ConstructPartial failed. @kaleidoscope_utils.cpp(452),ERROR" ID="0xcb3c0e22" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="UpdateKaleidoscopeImgInfo failed, because isInternalMem_ is false. @kaleidoscope_utils.cpp(461),ERROR" ID="0xcb3c0e6a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="UpdateKaleidoscopeImgInfo failed, because addr is nullptr. @kaleidoscope_utils.cpp(466),ERROR" ID="0xcb3c0e92" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="UpdateKaleidoscopeImgInfo failed, because kaleidoscopeInfo_ is nullptr. @kaleidoscope_utils.cpp(471),ERROR" ID="0xcb3c0eba" />
+ </MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="create watcher errpr @lazy_load_manager.cpp(105),ERROR" ID="0xe064034a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="create watcher errpr @lazy_load_manager.cpp(105),ERROR" ID="0xe068034a" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg0" NAME="Convert2VGUBuffer failed. @lite_m_gfx_engine.cpp(584),ERROR" ID="0xcb0e1242" />
<MSG STRUCTURE="diag_log_msg0" NAME="Convert2VGUBuffer failed. @lite_m_gfx_engine.cpp(611),ERROR" ID="0xcb0e131a" />
<MSG STRUCTURE="diag_log_msg0" NAME="RenderBlur failed! @lite_m_gfx_engine.cpp(624),ERROR" ID="0xcb0e1382" />
- <MSG STRUCTURE="diag_log_msg0" NAME="RenderBlit failed! @lite_m_gfx_engine.cpp(676),ERROR" ID="0xcb0e1522" />
- <MSG STRUCTURE="diag_log_msg0" NAME="DrawTransform failed. Software can only process uncompressed data. @lite_m_gfx_engine.cpp(710),ERROR" ID="0xcb0e1632" />
- <MSG STRUCTURE="diag_log_msg0" NAME="vguFuncs_ is null! @lite_m_gfx_engine.cpp(761),ERROR" ID="0xcb0e17ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="InitVgu or RenderClearRect is null! @lite_m_gfx_engine.cpp(765),ERROR" ID="0xcb0e17ea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="VGUPathInit, VGUPathAppendData, VGUPathClear or RenderPath is nullptr! @lite_m_gfx_engine.cpp(772),ERROR" ID="0xcb0e1822" />
- <MSG STRUCTURE="diag_log_msg0" NAME="VGUPathInit, VGUPathAppendData, VGUPathClear or RenderPath is nullptr! @lite_m_gfx_engine.cpp(778),ERROR" ID="0xcb0e1852" />
- <MSG STRUCTURE="diag_log_msg0" NAME="InitVgu failed! @lite_m_gfx_engine.cpp(783),ERROR" ID="0xcb0e187a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="vguFuncs_ is null! @lite_m_gfx_engine.cpp(794),INFO" ID="0xcb0e18d5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="DeinitVgu failed! @lite_m_gfx_engine.cpp(799),ERROR" ID="0xcb0e18fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="AllocBuffer failed. @lite_m_gfx_engine.cpp(817),ERROR" ID="0xcb0e198a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="unsupported PixelFormat: %d @lite_m_gfx_engine.cpp(844),ERROR" ID="0xcb0e1a62" />
- <MSG STRUCTURE="diag_log_msg0" NAME="bufferInfo_ is not inited. @lite_m_gfx_engine.cpp(961),ERROR" ID="0xcb0e1e0a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="set value: %d @lite_m_gfx_engine.cpp(1005),DBG" ID="0xcb0e1f6e" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="RenderBlit failed! @lite_m_gfx_engine.cpp(680),ERROR" ID="0xcb0e1542" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="DrawTransform failed. Software can only process uncompressed data. @lite_m_gfx_engine.cpp(713),ERROR" ID="0xcb0e164a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="vguFuncs_ is null! @lite_m_gfx_engine.cpp(764),ERROR" ID="0xcb0e17e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="InitVgu or RenderClearRect is null! @lite_m_gfx_engine.cpp(768),ERROR" ID="0xcb0e1802" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="VGUPathInit, VGUPathAppendData, VGUPathClear or RenderPath is nullptr! @lite_m_gfx_engine.cpp(775),ERROR" ID="0xcb0e183a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="VGUPathInit, VGUPathAppendData, VGUPathClear or RenderPath is nullptr! @lite_m_gfx_engine.cpp(781),ERROR" ID="0xcb0e186a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="InitVgu failed! @lite_m_gfx_engine.cpp(786),ERROR" ID="0xcb0e1892" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="vguFuncs_ is null! @lite_m_gfx_engine.cpp(797),INFO" ID="0xcb0e18ed" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="DeinitVgu failed! @lite_m_gfx_engine.cpp(802),ERROR" ID="0xcb0e1912" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="AllocBuffer failed. @lite_m_gfx_engine.cpp(820),ERROR" ID="0xcb0e19a2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="unsupported PixelFormat: %d @lite_m_gfx_engine.cpp(847),ERROR" ID="0xcb0e1a7a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="bufferInfo_ is not inited. @lite_m_gfx_engine.cpp(963),ERROR" ID="0xcb0e1e1a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="set value: %d @lite_m_gfx_engine.cpp(1007),DBG" ID="0xcb0e1f7e" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg6" NAME="generate addr: ****%02x%02x%02x%02x name: %s sp-ret: %d @local_device_manager.c(219),INFO" ID="0xd80806dd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="local dev info write error! ret 0x%x @local_device_manager.c(244),ERROR" ID="0xd80807a2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="deinit bt stack @local_device_manager.c(277),INFO" ID="0xd80808ad" />
- <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(353),ERROR" ID="0xd8080b0a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] ble gap conn state change fail. @local_device_manager.c(372),ERROR" ID="0xd8080ba2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] ble gap conn addr memcpy fail. @local_device_manager.c(381),ERROR" ID="0xd8080bea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble smp can not find connect node by handle @local_device_manager.c(400),ERROR" ID="0xd8080c82" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] ble gap conn addr memcpy fail. @local_device_manager.c(407),ERROR" ID="0xd8080cba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(428),ERROR" ID="0xd8080d62" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble enable err,B core may be not calibration end and not notify A Core @local_device_manager.c(451),ERROR" ID="0xd8080e1a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt init err ret = %08x @local_device_manager.c(482),ERROR" ID="0xd8080f12" />
- <MSG STRUCTURE="diag_log_msg1" NAME="unhandled msg id %x @local_device_manager.c(575),WARNING" ID="0xd80811fb" />
- <MSG STRUCTURE="diag_log_msg0" NAME="inquiry complete @local_device_manager.c(583),INFO" ID="0xd808123d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl:0x%08x @local_device_manager.c(590),INFO" ID="0xd8081275" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl:0x%08x @local_device_manager.c(604),INFO" ID="0xd80812e5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="btsrv_connection_request_ind_callback: memecpy error @local_device_manager.c(618),ERROR" ID="0xd8081352" />
- <MSG STRUCTURE="diag_log_msg4" NAME="addr:****%02x%02x%02x%02x @local_device_manager.c(623),INFO" ID="0xd808137d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl:0x%08x @local_device_manager.c(633),INFO" ID="0xd80813cd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @local_device_manager.c(647),ERROR" ID="0xd808143a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @local_device_manager.c(661),ERROR" ID="0xd80814aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @local_device_manager.c(667),ERROR" ID="0xd80814da" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg6" NAME="generate addr: ****%02x%02x%02x%02x name: %s sp-ret: %d @local_device_manager.c(238),INFO" ID="0xd8080775" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="local dev info write error! ret 0x%x @local_device_manager.c(263),ERROR" ID="0xd808083a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="deinit bt stack @local_device_manager.c(298),INFO" ID="0xd8080955" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(374),ERROR" ID="0xd8080bb2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] ble gap conn state change fail. @local_device_manager.c(393),ERROR" ID="0xd8080c4a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] ble gap conn addr memcpy fail. @local_device_manager.c(402),ERROR" ID="0xd8080c92" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble smp can not find connect node by handle @local_device_manager.c(430),ERROR" ID="0xd8080d72" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[btsrv][ERROR] ble gap conn addr memcpy fail. @local_device_manager.c(437),ERROR" ID="0xd8080daa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(458),ERROR" ID="0xd8080e52" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble enable err,B core may be not calibration end and not notify A Core @local_device_manager.c(482),ERROR" ID="0xd8080f12" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt init err ret = %08x @local_device_manager.c(513),ERROR" ID="0xd808100a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="unhandled msg id %x @local_device_manager.c(610),WARNING" ID="0xd8081313" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="inquiry complete @local_device_manager.c(618),INFO" ID="0xd8081355" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl:0x%08x @local_device_manager.c(625),INFO" ID="0xd808138d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl:0x%08x @local_device_manager.c(639),INFO" ID="0xd80813fd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="btsrv_connection_request_ind_callback: memecpy error @local_device_manager.c(653),ERROR" ID="0xd808146a" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="addr:****%02x%02x%02x%02x @local_device_manager.c(658),INFO" ID="0xd8081495" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl:0x%08x @local_device_manager.c(668),INFO" ID="0xd80814e5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @local_device_manager.c(682),ERROR" ID="0xd8081552" />
<MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @local_device_manager.c(696),ERROR" ID="0xd80815c2" />
<MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @local_device_manager.c(702),ERROR" ID="0xd80815f2" />
- <MSG STRUCTURE="diag_log_msg8" NAME="conn_hdl: %08x event: %04x role: %x result: %x dev_hdl: %x svc_hdl: %x svc_class: %x duration: %d @local_device_manager.c(716),INFO" ID="0xd8081665" />
- <MSG STRUCTURE="diag_log_msg2" NAME="received_bytes: %d sent_bytes: %d @local_device_manager.c(719),INFO" ID="0xd808167d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="unhandled service class 0x%x @local_device_manager.c(745),WARNING" ID="0xd808174b" />
- <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x num_value:%08x @local_device_manager.c(768),INFO" ID="0xd8081805" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: 0x%08x @local_device_manager.c(775),INFO" ID="0xd808183d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: 0x%08x @local_device_manager.c(782),INFO" ID="0xd8081875" />
- <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x num_value:%08x @local_device_manager.c(788),INFO" ID="0xd80818a5" />
- <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x reason: %x @local_device_manager.c(802),INFO" ID="0xd8081915" />
- <MSG STRUCTURE="diag_log_msg1" NAME="white_list_size:%d @local_device_manager.c(808),INFO" ID="0xd8081945" />
- <MSG STRUCTURE="diag_log_msg1" NAME="transmit_power_level:%d @local_device_manager.c(813),INFO" ID="0xd808196d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="register err id: %x ret: %x @local_device_manager.c(844),ERROR" ID="0xd8081a62" />
- <MSG STRUCTURE="diag_log_msg0" NAME="bt enable err,B core may be not calibration end and not notify A Core @local_device_manager.c(878),ERROR" ID="0xd8081b72" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt_init err ret = %08x @local_device_manager.c(907),ERROR" ID="0xd8081c5a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="buff is't long enough, need length:%d. @local_device_manager.c(1014),ERROR" ID="0xd8081fb2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get local name memcpy fail. @local_device_manager.c(1018),ERROR" ID="0xd8081fd2" />
- <MSG STRUCTURE="diag_log_msg2" NAME="name: %s, length: %d @local_device_manager.c(1027),INFO" ID="0xd808201d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="failed: bt not enabled @local_device_manager.c(1042),INFO" ID="0xd8082095" />
- <MSG STRUCTURE="diag_log_msg1" NAME="local name null or length not match, len: %d @local_device_manager.c(1046),INFO" ID="0xd80820b5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="returns error ret: %x @local_device_manager.c(1052),WARNING" ID="0xd80820e3" />
- <MSG STRUCTURE="diag_log_msg3" NAME="set result name: "%s" name_len: %d get_re: %x @local_device_manager.c(1058),INFO" ID="0xd8082115" />
- <MSG STRUCTURE="diag_log_msg0" NAME="gap_remove_all_pairs fail @local_device_manager.c(1118),ERROR" ID="0xd80822f2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="gap ble remove all pairs fail @local_device_manager.c(1124),ERROR" ID="0xd8082322" />
- <MSG STRUCTURE="diag_log_msg1" NAME="diable_bt_ret(errcode_t): %x @local_device_manager.c(1131),INFO" ID="0xd808235d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="disable_ble_ret(errcode_t): %x @local_device_manager.c(1136),INFO" ID="0xd8082385" />
- <MSG STRUCTURE="diag_log_msg0" NAME="set discovery data pointer is null. @local_device_manager.c(1167),ERROR" ID="0xd808247a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="adv_id(%d) advertising, please stop first. @local_device_manager.c(1182),ERROR" ID="0xd80824f2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="adv data alloc faild, length:%d @local_device_manager.c(1194),ERROR" ID="0xd8082552" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap_ble_set_adv_data adv data memcpy_s fail @local_device_manager.c(1198),ERROR" ID="0xd8082572" />
- <MSG STRUCTURE="diag_log_msg1" NAME="scan rsp data alloc faild, length:%d @local_device_manager.c(1207),ERROR" ID="0xd80825ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap_ble_set_adv_data scan rsp data memcpy_s fail @local_device_manager.c(1211),ERROR" ID="0xd80825da" />
- <MSG STRUCTURE="diag_log_msg1" NAME="adv_id(%d) advertising, please stop first. @local_device_manager.c(1247),ERROR" ID="0xd80826fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap ble set adv param memcpy_s fail @local_device_manager.c(1259),ERROR" ID="0xd808275a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap ble set adv param memcpy_s fail @local_device_manager.c(1273),ERROR" ID="0xd80827ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble gap set sec param error param NULL @local_device_manager.c(1295),ERROR" ID="0xd808287a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble gap set sec param error param NULL @local_device_manager.c(1300),ERROR" ID="0xd80828a2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap set adv data memcpy_s fail @local_device_manager.c(1324),ERROR" ID="0xd8082962" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap set scan rsp data memcpy_s fail @local_device_manager.c(1331),ERROR" ID="0xd808299a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] btsrv_gap_set_adv_param memcpy_s fail @local_device_manager.c(1350),ERROR" ID="0xd8082a32" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap set adv param memcpy_s fail @local_device_manager.c(1355),ERROR" ID="0xd8082a5a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble gap ext adv rpt memcpy fail @local_device_manager.c(1375),ERROR" ID="0xd8082afa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble gap ext adv rpt memcpy fail @local_device_manager.c(1390),ERROR" ID="0xd8082b72" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble gap adv set terminated cbk param error @local_device_manager.c(1402),ERROR" ID="0xd8082bd2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble enable cbk param error @local_device_manager.c(1413),ERROR" ID="0xd8082c2a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble read remote rssi cbk param error @local_device_manager.c(1424),ERROR" ID="0xd8082c82" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble conn param update cbk param error @local_device_manager.c(1440),ERROR" ID="0xd8082d02" />
- <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(1482),ERROR" ID="0xd8082e52" />
- <MSG STRUCTURE="diag_log_msg1" NAME="adv id(%d) is discoverying, please stop first. @local_device_manager.c(1486),ERROR" ID="0xd8082e72" />
- <MSG STRUCTURE="diag_log_msg0" NAME="adv param alloc fail @local_device_manager.c(1495),ERROR" ID="0xd8082eba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(1528),ERROR" ID="0xd8082fc2" />
- <MSG STRUCTURE="diag_log_msg2" NAME="no advertising in progress or advertising for adv_id(%d). No advertising for adv_id(%d). @local_device_manager.c(1534),ERROR" ID="0xd8082ff2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="mc sdk ble stop adv atb failed @local_device_manager.c(1540),ERROR" ID="0xd8083022" />
- <MSG STRUCTURE="diag_log_msg0" NAME="scanning in process, please stop first. @local_device_manager.c(1574),ERROR" ID="0xd8083132" />
- <MSG STRUCTURE="diag_log_msg0" NAME="scanning already stopped. @local_device_manager.c(1606),ERROR" ID="0xd8083232" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble stop extern scan ret: %#x @local_device_manager.c(1610),INFO" ID="0xd8083255" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble set phy node == NULL @local_device_manager.c(1633),ERROR" ID="0xd808330a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble set phy memcpy fail @local_device_manager.c(1638),ERROR" ID="0xd8083332" />
- <MSG STRUCTURE="diag_log_msg5" NAME="ble general set phy hdl:%x all:%x rx:%x tx:%x op:%x. @local_device_manager.c(1643),INFO" ID="0xd808335d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble set phy ret: %#x @local_device_manager.c(1646),ERROR" ID="0xd8083372" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble set data length node == NULL @local_device_manager.c(1667),ERROR" ID="0xd808341a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble set data length memcpy fail @local_device_manager.c(1672),ERROR" ID="0xd8083442" />
- <MSG STRUCTURE="diag_log_msg3" NAME="ble general set len hdl:%x maxoct:%x maxtime:%x @local_device_manager.c(1677),INFO" ID="0xd808346d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble set len ret: %#x @local_device_manager.c(1680),ERROR" ID="0xd8083482" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bts sert log type levle:%x @local_device_manager.c(1698),INFO" ID="0xd8083515" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc errr @local_device_manager.c(731),ERROR" ID="0xd80816da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s errr @local_device_manager.c(737),ERROR" ID="0xd808170a" />
+ <MSG STRUCTURE="diag_log_msg8" NAME="conn_hdl: %08x event: %04x role: %x result: %x dev_hdl: %x svc_hdl: %x svc_class: %x duration: %d @local_device_manager.c(751),INFO" ID="0xd808177d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="received_bytes: %d sent_bytes: %d @local_device_manager.c(754),INFO" ID="0xd8081795" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="unhandled service class 0x%x @local_device_manager.c(780),WARNING" ID="0xd8081863" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x num_value: %06d @local_device_manager.c(803),INFO" ID="0xd808191d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: 0x%08x @local_device_manager.c(810),INFO" ID="0xd8081955" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: 0x%08x @local_device_manager.c(817),INFO" ID="0xd808198d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x num_value: %06d @local_device_manager.c(823),INFO" ID="0xd80819bd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x reason: %x @local_device_manager.c(837),INFO" ID="0xd8081a2d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="white_list_size:%d @local_device_manager.c(843),INFO" ID="0xd8081a5d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="transmit_power_level:%d @local_device_manager.c(848),INFO" ID="0xd8081a85" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="register err id: %x ret: %x @local_device_manager.c(879),ERROR" ID="0xd8081b7a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="bt enable err,B core may be not calibration end and not notify A Core @local_device_manager.c(914),ERROR" ID="0xd8081c92" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt_init err ret = %08x @local_device_manager.c(943),ERROR" ID="0xd8081d7a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="buff is't long enough, need length:%d. @local_device_manager.c(1050),ERROR" ID="0xd80820d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="get local name memcpy fail. @local_device_manager.c(1054),ERROR" ID="0xd80820f2" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="name: %s, length: %d @local_device_manager.c(1063),INFO" ID="0xd808213d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="failed: bt not enabled @local_device_manager.c(1078),INFO" ID="0xd80821b5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="local name null or length not match, len: %d @local_device_manager.c(1082),INFO" ID="0xd80821d5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="returns error ret: %x @local_device_manager.c(1088),WARNING" ID="0xd8082203" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="set result name: "%s" name_len: %d get_re: %x @local_device_manager.c(1094),INFO" ID="0xd8082235" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="gap_remove_all_pairs fail @local_device_manager.c(1154),ERROR" ID="0xd8082412" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="gap ble remove all pairs fail @local_device_manager.c(1160),ERROR" ID="0xd8082442" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="diable_bt_ret(errcode_t): %x @local_device_manager.c(1167),INFO" ID="0xd808247d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="disable_ble_ret(errcode_t): %x @local_device_manager.c(1172),INFO" ID="0xd80824a5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="set discovery data pointer is null. @local_device_manager.c(1203),ERROR" ID="0xd808259a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="adv_id(%d) advertising, please stop first. @local_device_manager.c(1218),ERROR" ID="0xd8082612" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="adv data alloc faild, length:%d @local_device_manager.c(1231),ERROR" ID="0xd808267a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap_ble_set_adv_data adv data memcpy_s fail @local_device_manager.c(1235),ERROR" ID="0xd808269a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="scan rsp data alloc faild, length:%d @local_device_manager.c(1244),ERROR" ID="0xd80826e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap_ble_set_adv_data scan rsp data memcpy_s fail @local_device_manager.c(1248),ERROR" ID="0xd8082702" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="adv_id(%d) advertising, please stop first. @local_device_manager.c(1284),ERROR" ID="0xd8082822" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap ble set adv param memcpy_s fail @local_device_manager.c(1296),ERROR" ID="0xd8082882" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap ble set adv param memcpy_s fail @local_device_manager.c(1310),ERROR" ID="0xd80828f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gap set sec param error param NULL @local_device_manager.c(1332),ERROR" ID="0xd80829a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gap set sec param error param NULL @local_device_manager.c(1337),ERROR" ID="0xd80829ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap set adv data memcpy_s fail @local_device_manager.c(1361),ERROR" ID="0xd8082a8a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap set scan rsp data memcpy_s fail @local_device_manager.c(1368),ERROR" ID="0xd8082ac2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] btsrv_gap_set_adv_param memcpy_s fail @local_device_manager.c(1387),ERROR" ID="0xd8082b5a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] gap set adv param memcpy_s fail @local_device_manager.c(1392),ERROR" ID="0xd8082b82" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gap ext adv rpt memcpy fail @local_device_manager.c(1412),ERROR" ID="0xd8082c22" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gap ext adv rpt memcpy fail @local_device_manager.c(1427),ERROR" ID="0xd8082c9a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gap adv set terminated cbk param error @local_device_manager.c(1439),ERROR" ID="0xd8082cfa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble enable cbk param error @local_device_manager.c(1450),ERROR" ID="0xd8082d52" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble read remote rssi cbk param error @local_device_manager.c(1461),ERROR" ID="0xd8082daa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble conn param update cbk param error @local_device_manager.c(1477),ERROR" ID="0xd8082e2a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gap conn param malloc fail @local_device_manager.c(1489),ERROR" ID="0xd8082e8a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="ble conn param update cbk interval:%x, latency:%x, timeout:%x @local_device_manager.c(1496),INFO" ID="0xd8082ec5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(1530),ERROR" ID="0xd8082fd2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="adv id(%d) is discoverying, please stop first. @local_device_manager.c(1534),ERROR" ID="0xd8082ff2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="adv param alloc fail @local_device_manager.c(1543),ERROR" ID="0xd808303a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="adv id is not active, please set param first. @local_device_manager.c(1576),ERROR" ID="0xd8083142" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="no advertising in progress or advertising for adv_id(%d). No advertising for adv_id(%d). @local_device_manager.c(1582),ERROR" ID="0xd8083172" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mc sdk ble stop adv atb failed @local_device_manager.c(1588),ERROR" ID="0xd80831a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="scanning in process, please stop first. @local_device_manager.c(1622),ERROR" ID="0xd80832b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="scanning already stopped. @local_device_manager.c(1654),ERROR" ID="0xd80833b2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble stop extern scan ret: %#x @local_device_manager.c(1658),INFO" ID="0xd80833d5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble set phy node == NULL @local_device_manager.c(1681),ERROR" ID="0xd808348a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble set phy memcpy fail @local_device_manager.c(1686),ERROR" ID="0xd80834b2" />
+ <MSG STRUCTURE="diag_log_msg5" NAME="ble general set phy hdl:%x all:%x rx:%x tx:%x op:%x. @local_device_manager.c(1691),INFO" ID="0xd80834dd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble set phy ret: %#x @local_device_manager.c(1694),ERROR" ID="0xd80834f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble set data length node == NULL @local_device_manager.c(1715),ERROR" ID="0xd808359a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble set data length memcpy fail @local_device_manager.c(1720),ERROR" ID="0xd80835c2" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="ble general set len hdl:%x maxoct:%x maxtime:%x @local_device_manager.c(1725),INFO" ID="0xd80835ed" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble set len ret: %#x @local_device_manager.c(1728),ERROR" ID="0xd8083602" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bts sert log type levle:%x @local_device_manager.c(1746),INFO" ID="0xd8083695" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="g_bts_feature_bitmap bt_auto_reconnect_closed:%d. @local_device_manager.c(1767),ERROR" ID="0xd808373a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="malloc system info failed @locale_util.cpp(70),ERROR" ID="0xe0680232" />
- <MSG STRUCTURE="diag_log_msg0" NAME="get system language info failed @locale_util.cpp(76),ERROR" ID="0xe0680262" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="malloc system info failed @locale_util.cpp(70),ERROR" ID="0xe06c0232" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="get system language info failed @locale_util.cpp(76),ERROR" ID="0xe06c0262" />
</MSG_LOG>
\ No newline at end of file
--- /dev/null
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="set svg faild, path len is 0 @map_svg_parser.cpp(54),ERROR" ID="0xcb4601b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Invalid file path. @map_svg_parser.cpp(67),ERROR" ID="0xcb46021a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="File(%s) can not open. errno: %d @map_svg_parser.cpp(73),ERROR" ID="0xcb46024a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read map header faild @map_svg_parser.cpp(78),ERROR" ID="0xcb460272" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="parser map success @map_svg_parser.cpp(97),DBG" ID="0xcb46030e" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="parser map failed @map_svg_parser.cpp(104),DBG" ID="0xcb460346" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s map header faild @map_svg_parser.cpp(113),ERROR" ID="0xcb46038a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="The remaining data is insufficient. The read ends. @map_svg_parser.cpp(118),WARNING" ID="0xcb4603b3" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="parser map success @map_svg_parser.cpp(153),DBG" ID="0xcb4604ce" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(160),ERROR" ID="0xcb460502" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map node array faild! @map_svg_parser.cpp(167),ERROR" ID="0xcb46053a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="read map node array faild, readLen:%d, realReadLen:%d @map_svg_parser.cpp(174),ERROR" ID="0xcb460572" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(187),ERROR" ID="0xcb4605da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read map node faild.The data length is less than the read length! @map_svg_parser.cpp(193),ERROR" ID="0xcb46060a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map node array faild! @map_svg_parser.cpp(198),ERROR" ID="0xcb460632" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="memcpy_s map node array faild, nodeLen: 0x%x @map_svg_parser.cpp(205),ERROR" ID="0xcb46066a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(215),ERROR" ID="0xcb4606ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc path style array faild! @map_svg_parser.cpp(222),ERROR" ID="0xcb4606f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s path style array faild @map_svg_parser.cpp(229),ERROR" ID="0xcb46072a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(242),ERROR" ID="0xcb460792" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read path style faild.The data length is less than the read length! @map_svg_parser.cpp(248),ERROR" ID="0xcb4607c2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc path style array faild! @map_svg_parser.cpp(254),ERROR" ID="0xcb4607f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s path style array faild @map_svg_parser.cpp(261),ERROR" ID="0xcb46082a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Alloc buffer for buffer failed. @map_svg_parser.cpp(275),ERROR" ID="0xcb46089a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Alloc buffer for buffer failed. @map_svg_parser.cpp(284),ERROR" ID="0xcb4608e2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(295),ERROR" ID="0xcb46093a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path array faild! @map_svg_parser.cpp(302),ERROR" ID="0xcb460972" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read map path array faild @map_svg_parser.cpp(311),ERROR" ID="0xcb4609ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="alloc path faild @map_svg_parser.cpp(318),ERROR" ID="0xcb4609f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read path cmd faild @map_svg_parser.cpp(324),ERROR" ID="0xcb460a22" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read path data faild @map_svg_parser.cpp(330),ERROR" ID="0xcb460a52" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(341),ERROR" ID="0xcb460aaa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path array faild! @map_svg_parser.cpp(348),ERROR" ID="0xcb460ae2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s map path array faild @map_svg_parser.cpp(356),ERROR" ID="0xcb460b22" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="alloc path faild @map_svg_parser.cpp(366),ERROR" ID="0xcb460b72" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s path cmd faild @map_svg_parser.cpp(371),ERROR" ID="0xcb460b9a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s path data faild @map_svg_parser.cpp(378),ERROR" ID="0xcb460bd2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(413),ERROR" ID="0xcb460cea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path array faild! @map_svg_parser.cpp(420),ERROR" ID="0xcb460d22" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read map text array faild @map_svg_parser.cpp(429),ERROR" ID="0xcb460d6a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path cmd faild @map_svg_parser.cpp(436),ERROR" ID="0xcb460da2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read text faild @map_svg_parser.cpp(443),ERROR" ID="0xcb460dda" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc text offset faild @map_svg_parser.cpp(451),ERROR" ID="0xcb460e1a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read text offset faild @map_svg_parser.cpp(457),ERROR" ID="0xcb460e4a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(468),ERROR" ID="0xcb460ea2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path array faild! @map_svg_parser.cpp(475),ERROR" ID="0xcb460eda" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s map text array faild @map_svg_parser.cpp(483),ERROR" ID="0xcb460f1a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path cmd faild @map_svg_parser.cpp(492),ERROR" ID="0xcb460f62" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s text faild @map_svg_parser.cpp(497),ERROR" ID="0xcb460f8a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc text offset faild @map_svg_parser.cpp(507),ERROR" ID="0xcb460fda" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s text offset faild @map_svg_parser.cpp(512),ERROR" ID="0xcb461002" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(546),ERROR" ID="0xcb461112" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path array faild! @map_svg_parser.cpp(553),ERROR" ID="0xcb46114a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read map image array faild @map_svg_parser.cpp(558),ERROR" ID="0xcb461172" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path array faild! @map_svg_parser.cpp(566),ERROR" ID="0xcb4611b2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(595),ERROR" ID="0xcb46129a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path array faild! @map_svg_parser.cpp(602),ERROR" ID="0xcb4612d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s map text array faild @map_svg_parser.cpp(607),ERROR" ID="0xcb4612fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path array faild! @map_svg_parser.cpp(615),ERROR" ID="0xcb46133a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(647),ERROR" ID="0xcb46143a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path array faild! @map_svg_parser.cpp(654),ERROR" ID="0xcb461472" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read map road array faild @map_svg_parser.cpp(659),ERROR" ID="0xcb46149a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(669),ERROR" ID="0xcb4614ea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path array faild! @map_svg_parser.cpp(676),ERROR" ID="0xcb461522" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s map text array faild @map_svg_parser.cpp(681),ERROR" ID="0xcb46154a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(700),ERROR" ID="0xcb4615e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path array faild! @map_svg_parser.cpp(707),ERROR" ID="0xcb46161a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="read map poi array faild @map_svg_parser.cpp(712),ERROR" ID="0xcb461642" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[%s] param error! @map_svg_parser.cpp(722),ERROR" ID="0xcb461692" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc map path array faild! @map_svg_parser.cpp(729),ERROR" ID="0xcb4616ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s map text array faild @map_svg_parser.cpp(734),ERROR" ID="0xcb4616f2" />
+ </MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="MemUtils::InitPSRam g_psramMemory = %x @mem_util.cpp(27),DBG" ID="0xe06c00de" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="MemUtils::InitPSRam g_psramMemory = %x @mem_util.cpp(27),DBG" ID="0xe07000de" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="parse percent value failed, invalid input parameters @number_parser.cpp(35),ERROR" ID="0xe06e011a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="parse percent value failed, input string too long [%d] @number_parser.cpp(44),ERROR" ID="0xe06e0162" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="parse percent value failed, invalid input parameters @number_parser.cpp(35),ERROR" ID="0xe072011a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="parse percent value failed, input string too long [%d] @number_parser.cpp(44),ERROR" ID="0xe0720162" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="ACELite version: %s @platform_adapter.cpp(33),DBG" ID="0xe10c010e" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ACELite commit: %s @platform_adapter.cpp(34),DBG" ID="0xe10c0116" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ACELite build stamp: %s @platform_adapter.cpp(35),DBG" ID="0xe10c011e" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="ACELite version: %s @platform_adapter.cpp(34),DBG" ID="0xe1100116" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ACELite commit: %s @platform_adapter.cpp(35),DBG" ID="0xe110011e" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ACELite build stamp: %s @platform_adapter.cpp(36),DBG" ID="0xe1100126" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg1" NAME="paired dev info write error! ret 0x%x @remote_device_manager.c(214),ERROR" ID="0xd80a06b2" />
<MSG STRUCTURE="diag_log_msg10" NAME="addr: ****%02x%02x%02x%02x [little endian: %02x%02x%02x%02x**** ] name: %s hdl: %x @remote_device_manager.c(229),INFO" ID="0xd80a072d" />
<MSG STRUCTURE="diag_log_msg0" NAME="create node error @remote_device_manager.c(233),ERROR" ID="0xd80a074a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @remote_device_manager.c(275),ERROR" ID="0xd80a089a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @remote_device_manager.c(282),ERROR" ID="0xd80a08d2" />
- <MSG STRUCTURE="diag_log_msg5" NAME="addr: ****%02x%02x%02x%02x hdl: %x @remote_device_manager.c(288),WARNING" ID="0xd80a0903" />
- <MSG STRUCTURE="diag_log_msg0" NAME="btsrv add remote dev node, acquire rmt dev list lock failed. @remote_device_manager.c(292),ERROR" ID="0xd80a0922" />
- <MSG STRUCTURE="diag_log_msg0" NAME="btsrv get remote dev node, acquire rmt dev list lock failed. @remote_device_manager.c(305),ERROR" ID="0xd80a098a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="btsrv clear remtoe dev list, acquire rmt dev list lock failed. @remote_device_manager.c(351),ERROR" ID="0xd80a0afa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="btsrv set remote dev status found 2 none, acquire rmt dev list lock failed. @remote_device_manager.c(389),ERROR" ID="0xd80a0c2a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="btsrv dfx show remote dev list, acquire rmt dev list lock failed. @remote_device_manager.c(416),ERROR" ID="0xd80a0d02" />
- <MSG STRUCTURE="diag_log_msg0" NAME="show remote device list: @remote_device_manager.c(422),INFO" ID="0xd80a0d35" />
- <MSG STRUCTURE="diag_log_msg9" NAME="| %-4s | %-32s | %-12s | %-16s | %-8s | %-8s | %-8s | %-8s | %-48s | @remote_device_manager.c(428),INFO" ID="0xd80a0d65" />
- <MSG STRUCTURE="diag_log_msg12" NAME="| %-4d | %-32s | ****%02x%02x%02x%02x | %-16x | %-8d | %-8d | %-8d | %-8d | %-48s | @remote_device_manager.c(444),INFO" ID="0xd80a0de5" />
- <MSG STRUCTURE="diag_log_msg6" NAME="| %-4s | %-32s | %-12s | %-16s | %-8s | %-8s | @remote_device_manager.c(451),INFO" ID="0xd80a0e1d" />
- <MSG STRUCTURE="diag_log_msg9" NAME="| %-4d | %-32s | ****%02x%02x%02x%02x | %-16x | %-8d | %-8d | @remote_device_manager.c(458),INFO" ID="0xd80a0e55" />
- <MSG STRUCTURE="diag_log_msg0" NAME="show remote device list end! @remote_device_manager.c(466),INFO" ID="0xd80a0e95" />
- <MSG STRUCTURE="diag_log_msg4" NAME="addr: ****%02X%02X%02X%02X @remote_device_manager.c(474),INFO" ID="0xd80a0ed5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="not in remote list @remote_device_manager.c(483),INFO" ID="0xd80a0f1d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="not have key status: %d have_key: %d @remote_device_manager.c(489),INFO" ID="0xd80a0f4d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s error @remote_device_manager.c(495),ERROR" ID="0xd80a0f7a" />
- <MSG STRUCTURE="diag_log_msg4" NAME="addr: ****%02X%02X%02X%02X @remote_device_manager.c(520),INFO" ID="0xd80a1045" />
- <MSG STRUCTURE="diag_log_msg0" NAME="not in remote list @remote_device_manager.c(525),WARNING" ID="0xd80a106b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy error @remote_device_manager.c(532),ERROR" ID="0xd80a10a2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @remote_device_manager.c(544),ERROR" ID="0xd80a1102" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @remote_device_manager.c(549),ERROR" ID="0xd80a112a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x result: %02x @remote_device_manager.c(571),INFO" ID="0xd80a11dd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="find/add remote device failed @remote_device_manager.c(596),WARNING" ID="0xd80a12a3" />
- <MSG STRUCTURE="diag_log_msg1" NAME="get remote device name fail. ret: %x @remote_device_manager.c(611),WARNING" ID="0xd80a131b" />
- <MSG STRUCTURE="diag_log_msg2" NAME="get remote device name success. name: %s name_len: %d @remote_device_manager.c(616),INFO" ID="0xd80a1345" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc tmp_addr fail @remote_device_manager.c(620),ERROR" ID="0xd80a1362" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc tmp_name fail @remote_device_manager.c(624),ERROR" ID="0xd80a1382" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @remote_device_manager.c(630),ERROR" ID="0xd80a13b2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="send msg fail. %x @remote_device_manager.c(637),ERROR" ID="0xd80a13ea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: %x @remote_device_manager.c(645),INFO" ID="0xd80a142d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="acl disconnected. dev_hdl: %x @remote_device_manager.c(647),INFO" ID="0xd80a143d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="dev not found @remote_device_manager.c(660),INFO" ID="0xd80a14a5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="find node fail @remote_device_manager.c(671),WARNING" ID="0xd80a14fb" />
- <MSG STRUCTURE="diag_log_msg4" NAME="memcpy error! last_len: %d cur_len: %d cpy_len: %d ret: %x @remote_device_manager.c(682),ERROR" ID="0xd80a1552" />
- <MSG STRUCTURE="diag_log_msg1" NAME="get pair devices num fail ret = %d @remote_device_manager.c(733),ERROR" ID="0xd80a16ea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="get pair devices fail ret = %d @remote_device_manager.c(748),ERROR" ID="0xd80a1762" />
- <MSG STRUCTURE="diag_log_msg0" NAME="gap get paired devices list, acquire rmt dev list lock failed. @remote_device_manager.c(769),ERROR" ID="0xd80a180a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="num error! i: %d *number: %d @remote_device_manager.c(798),ERROR" ID="0xd80a18f2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="get pair devices num fail ret = %d @remote_device_manager.c(837),ERROR" ID="0xd80a1a2a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_disconnect_acl_by_handle ret: %x @remote_device_manager.c(856),INFO" ID="0xd80a1ac5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_un_pair_device ret: %x @remote_device_manager.c(859),INFO" ID="0xd80a1add" />
- <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @remote_device_manager.c(863),ERROR" ID="0xd80a1afa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @remote_device_manager.c(867),ERROR" ID="0xd80a1b1a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="acquire rmt dev list lock failed. @remote_device_manager.c(895),ERROR" ID="0xd80a1bfa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="gap remove all pairs, acquire rmt dev list lock failed. @remote_device_manager.c(923),ERROR" ID="0xd80a1cda" />
- <MSG STRUCTURE="diag_log_msg0" NAME="remove pair device fail @remote_device_manager.c(955),ERROR" ID="0xd80a1dda" />
- <MSG STRUCTURE="diag_log_msg0" NAME="remove pair all devices key fail @remote_device_manager.c(965),ERROR" ID="0xd80a1e2a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="disconnect all devices fail @remote_device_manager.c(969),ERROR" ID="0xd80a1e4a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="dev not found @remote_device_manager.c(996),INFO" ID="0xd80a1f25" />
- <MSG STRUCTURE="diag_log_msg0" NAME="dev not found @remote_device_manager.c(1019),INFO" ID="0xd80a1fdd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @remote_device_manager.c(1038),INFO" ID="0xd80a2075" />
- <MSG STRUCTURE="diag_log_msg0" NAME="dev not found @remote_device_manager.c(1062),INFO" ID="0xd80a2135" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @remote_device_manager.c(259),ERROR" ID="0xd80a081a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @remote_device_manager.c(264),ERROR" ID="0xd80a0842" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @remote_device_manager.c(293),ERROR" ID="0xd80a092a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @remote_device_manager.c(300),ERROR" ID="0xd80a0962" />
+ <MSG STRUCTURE="diag_log_msg5" NAME="addr: ****%02x%02x%02x%02x hdl: %x @remote_device_manager.c(306),WARNING" ID="0xd80a0993" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="btsrv add remote dev node, acquire rmt dev list lock failed. @remote_device_manager.c(310),ERROR" ID="0xd80a09b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="btsrv get remote dev node, acquire rmt dev list lock failed. @remote_device_manager.c(323),ERROR" ID="0xd80a0a1a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="btsrv clear remtoe dev list, acquire rmt dev list lock failed. @remote_device_manager.c(369),ERROR" ID="0xd80a0b8a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="btsrv set remote dev status found 2 none, acquire rmt dev list lock failed. @remote_device_manager.c(407),ERROR" ID="0xd80a0cba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="btsrv dfx show remote dev list, acquire rmt dev list lock failed. @remote_device_manager.c(434),ERROR" ID="0xd80a0d92" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="show remote device list: @remote_device_manager.c(440),INFO" ID="0xd80a0dc5" />
+ <MSG STRUCTURE="diag_log_msg9" NAME="| %-4s | %-32s | %-12s | %-16s | %-8s | %-8s | %-8s | %-8s | %-48s | @remote_device_manager.c(446),INFO" ID="0xd80a0df5" />
+ <MSG STRUCTURE="diag_log_msg12" NAME="| %-4d | %-32s | ****%02x%02x%02x%02x | %-16x | %-8d | %-8d | %-8d | %-8d | %-48s | @remote_device_manager.c(462),INFO" ID="0xd80a0e75" />
+ <MSG STRUCTURE="diag_log_msg6" NAME="| %-4s | %-32s | %-12s | %-16s | %-8s | %-8s | @remote_device_manager.c(469),INFO" ID="0xd80a0ead" />
+ <MSG STRUCTURE="diag_log_msg9" NAME="| %-4d | %-32s | ****%02x%02x%02x%02x | %-16x | %-8d | %-8d | @remote_device_manager.c(476),INFO" ID="0xd80a0ee5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="show remote device list end! @remote_device_manager.c(484),INFO" ID="0xd80a0f25" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="addr: ****%02X%02X%02X%02X @remote_device_manager.c(492),INFO" ID="0xd80a0f65" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="not in remote list @remote_device_manager.c(501),INFO" ID="0xd80a0fad" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="not have key status: %d have_key: %d @remote_device_manager.c(507),INFO" ID="0xd80a0fdd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s error @remote_device_manager.c(513),ERROR" ID="0xd80a100a" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="addr: ****%02X%02X%02X%02X @remote_device_manager.c(538),INFO" ID="0xd80a10d5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="not in remote list @remote_device_manager.c(543),WARNING" ID="0xd80a10fb" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy error @remote_device_manager.c(550),ERROR" ID="0xd80a1132" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @remote_device_manager.c(562),ERROR" ID="0xd80a1192" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @remote_device_manager.c(567),ERROR" ID="0xd80a11ba" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="dev_hdl: %08x result: %02x @remote_device_manager.c(589),INFO" ID="0xd80a126d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="find/add remote device failed @remote_device_manager.c(614),WARNING" ID="0xd80a1333" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="get remote device name fail. ret: %x @remote_device_manager.c(629),WARNING" ID="0xd80a13ab" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="get remote device name success. name: %s name_len: %d @remote_device_manager.c(634),INFO" ID="0xd80a13d5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc tmp_addr fail @remote_device_manager.c(638),ERROR" ID="0xd80a13f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc tmp_name fail @remote_device_manager.c(642),ERROR" ID="0xd80a1412" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @remote_device_manager.c(648),ERROR" ID="0xd80a1442" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="send msg fail. %x @remote_device_manager.c(655),ERROR" ID="0xd80a147a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="dev_hdl: %x @remote_device_manager.c(663),INFO" ID="0xd80a14bd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="acl disconnected. dev_hdl: %x @remote_device_manager.c(665),INFO" ID="0xd80a14cd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="dev not found @remote_device_manager.c(678),INFO" ID="0xd80a1535" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="find node fail @remote_device_manager.c(689),WARNING" ID="0xd80a158b" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="memcpy error! last_len: %d cur_len: %d cpy_len: %d ret: %x @remote_device_manager.c(700),ERROR" ID="0xd80a15e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @remote_device_manager.c(707),ERROR" ID="0xd80a161a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @remote_device_manager.c(712),ERROR" ID="0xd80a1642" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="get pair devices num fail ret = %d @remote_device_manager.c(765),ERROR" ID="0xd80a17ea" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="get pair devices fail ret = %d @remote_device_manager.c(780),ERROR" ID="0xd80a1862" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="gap get paired devices list, acquire rmt dev list lock failed. @remote_device_manager.c(801),ERROR" ID="0xd80a190a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="num error! i: %d *number: %d @remote_device_manager.c(830),ERROR" ID="0xd80a19f2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="get pair devices num fail ret = %d @remote_device_manager.c(869),ERROR" ID="0xd80a1b2a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_disconnect_acl_by_handle ret: %x @remote_device_manager.c(888),INFO" ID="0xd80a1bc5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="btsdk_un_pair_device ret: %x @remote_device_manager.c(891),INFO" ID="0xd80a1bdd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @remote_device_manager.c(895),ERROR" ID="0xd80a1bfa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @remote_device_manager.c(899),ERROR" ID="0xd80a1c1a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="acquire rmt dev list lock failed. @remote_device_manager.c(927),ERROR" ID="0xd80a1cfa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="gap remove all pairs, acquire rmt dev list lock failed. @remote_device_manager.c(955),ERROR" ID="0xd80a1dda" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="remove pair device fail @remote_device_manager.c(987),ERROR" ID="0xd80a1eda" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="remove pair all devices key fail @remote_device_manager.c(997),ERROR" ID="0xd80a1f2a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="disconnect all devices fail @remote_device_manager.c(1001),ERROR" ID="0xd80a1f4a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="malloc fail @remote_device_manager.c(1032),ERROR" ID="0xd80a2042" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @remote_device_manager.c(1037),ERROR" ID="0xd80a206a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="dev not found @remote_device_manager.c(1046),INFO" ID="0xd80a20b5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="dev not found @remote_device_manager.c(1069),INFO" ID="0xd80a216d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy fail @remote_device_manager.c(1088),INFO" ID="0xd80a2205" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="dev not found @remote_device_manager.c(1112),INFO" ID="0xd80a22c5" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg4" NAME="addr:%02x:**:**:**:%02x:%02x, handle:%02x @sdk_general_gatt.c(403),INFO" ID="0xd86e0c9d" />
<MSG STRUCTURE="diag_log_msg3" NAME="[ACore] ble gatt le conn event cbk already connected on addr:%02x:**:**:**:%02x:%02x @sdk_general_gatt.c(418),INFO" ID="0xd86e0d15" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ACore] ble gatt le conn event cbk memcpy addr error @sdk_general_gatt.c(428),ERROR" ID="0xd86e0d62" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[ACore] ble gatt le conn event cbk tl not found on addr:%02x:**:**:**:%02x:%02x @sdk_general_gatt.c(438),INFO" ID="0xd86e0db5" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[ACore] ble gatt le conn event cbk tl remove on addr:%02x:**:**:**:%02x:%02x @sdk_general_gatt.c(444),INFO" ID="0xd86e0de5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt create server result bta len error, len = %u @sdk_general_gatt.c(459),ERROR" ID="0xd86e0e5a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[ACore] mc ble gatt create server result bta memcpy fail:%d,len:%d @sdk_general_gatt.c(467),ERROR" ID="0xd86e0e9a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt create service result bta len error. len = %u @sdk_general_gatt.c(480),ERROR" ID="0xd86e0f02" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt create service result bta memcpy fail: %d @sdk_general_gatt.c(487),ERROR" ID="0xd86e0f3a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt start service result bta len error. len = %u @sdk_general_gatt.c(501),ERROR" ID="0xd86e0faa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt start service result bta memcpy faile error: %d @sdk_general_gatt.c(508),ERROR" ID="0xd86e0fe2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt get gap ui attributes result bta len error. len = %u @sdk_general_gatt.c(521),ERROR" ID="0xd86e104a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt get gap ui attributes result bta memcpy faile error: %d @sdk_general_gatt.c(528),ERROR" ID="0xd86e1082" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery service rsp bta len error. len = %u @sdk_general_gatt.c(541),ERROR" ID="0xd86e10ea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt discovery service rsp bta discovery_service error @sdk_general_gatt.c(549),ERROR" ID="0xd86e112a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery service complete bta len error. len = %u @sdk_general_gatt.c(562),ERROR" ID="0xd86e1192" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt discovery service complete bta discovery_service error @sdk_general_gatt.c(570),ERROR" ID="0xd86e11d2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt add characteristic result bta len error, len = %u @sdk_general_gatt.c(583),ERROR" ID="0xd86e123a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt add characteristic result bta memcpy fail error: %d @sdk_general_gatt.c(589),ERROR" ID="0xd86e126a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery include service rsp bta len error. len = %u @sdk_general_gatt.c(602),ERROR" ID="0xd86e12d2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt discovery include service rsp bta discovery_service error @sdk_general_gatt.c(610),ERROR" ID="0xd86e1312" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery characteristics response bta len error. len = %u @sdk_general_gatt.c(623),ERROR" ID="0xd86e137a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore]mc ble gatt discovery characteristics response bta discovery_service error @sdk_general_gatt.c(631),ERROR" ID="0xd86e13ba" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery characteristics complete bta len error. len = %u @sdk_general_gatt.c(644),ERROR" ID="0xd86e1422" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore]mc ble gatt discovery characteristics complete bta discovery_service error @sdk_general_gatt.c(652),ERROR" ID="0xd86e1462" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery descriptor response bta len error. len = %u @sdk_general_gatt.c(665),ERROR" ID="0xd86e14ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt discovery descriptor response bta discovery_service error @sdk_general_gatt.c(673),ERROR" ID="0xd86e150a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery descriptor complete bta len error. len = %u @sdk_general_gatt.c(686),ERROR" ID="0xd86e1572" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt discovery descriptor complete bta discovery_service error @sdk_general_gatt.c(693),ERROR" ID="0xd86e15aa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt get hid report map response bta finish. result code = %x @sdk_general_gatt.c(705),INFO" ID="0xd86e160d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt get hid report map response bta len error. len = %u @sdk_general_gatt.c(711),INFO" ID="0xd86e163d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt read character complete bta len error. len = %u @sdk_general_gatt.c(726),ERROR" ID="0xd86e16b2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt read characterr complete bta read character error @sdk_general_gatt.c(733),ERROR" ID="0xd86e16ea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] read service value finish. error code = %x @sdk_general_gatt.c(745),INFO" ID="0xd86e174d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] read service value response len error. len = %u @sdk_general_gatt.c(751),INFO" ID="0xd86e177d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] write service value finish. error code = %x @sdk_general_gatt.c(765),INFO" ID="0xd86e17ed" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] write service value response len error. len = %u @sdk_general_gatt.c(771),INFO" ID="0xd86e181d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt read descriptor response bta len error. len = %u @sdk_general_gatt.c(786),INFO" ID="0xd86e1895" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt read descriptor response bta error @sdk_general_gatt.c(793),ERROR" ID="0xd86e18ca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt character value notification bta len error. len = %u @sdk_general_gatt.c(806),INFO" ID="0xd86e1935" />
- <MSG STRUCTURE="diag_log_msg0" NAME="mc ble gatt character value notification bta new fail @sdk_general_gatt.c(814),ERROR" ID="0xd86e1972" />
- <MSG STRUCTURE="diag_log_msg0" NAME="mc ble gatt character value notification bta memset fail @sdk_general_gatt.c(821),ERROR" ID="0xd86e19aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt character value notification bta error @sdk_general_gatt.c(829),ERROR" ID="0xd86e19ea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt read descriptor response bta error @sdk_general_gatt.c(837),ERROR" ID="0xd86e1a2a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="mc ble gatt character value notification bta handle:0x%x, len:%d @sdk_general_gatt.c(847),INFO" ID="0xd86e1a7d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt exchange mtu ind len error. len = %u @sdk_general_gatt.c(859),INFO" ID="0xd86e1add" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt exchange mtu ind error @sdk_general_gatt.c(863),ERROR" ID="0xd86e1afa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt handle service evt bta len error. len = %u @sdk_general_gatt.c(875),INFO" ID="0xd86e1b5d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="mc ble gatt handle service evt bta new fail @sdk_general_gatt.c(882),ERROR" ID="0xd86e1b92" />
- <MSG STRUCTURE="diag_log_msg0" NAME="mc ble gatt handle service evt bta memset fail @sdk_general_gatt.c(889),ERROR" ID="0xd86e1bca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt handle service evt bta addr error @sdk_general_gatt.c(897),ERROR" ID="0xd86e1c0a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt server read evt bta len error len = %u @sdk_general_gatt.c(910),INFO" ID="0xd86e1c75" />
- <MSG STRUCTURE="diag_log_msg0" NAME="mc ble gatt server read evt bta new fail @sdk_general_gatt.c(916),ERROR" ID="0xd86e1ca2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="mc ble gatt server read evt bta memset fai @sdk_general_gatt.c(921),ERROR" ID="0xd86e1cca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt server read evt bta addr error @sdk_general_gatt.c(927),ERROR" ID="0xd86e1cfa" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[ACore] ble conn general gatt proc:cmdid:0x%02X pay_len:%d. @sdk_general_gatt.c(946),INFO" ID="0xd86e1d95" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] ble conn general gatt proc no handle for command id:0x%02x. @sdk_general_gatt.c(961),INFO" ID="0xd86e1e0d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[Error] bt at cmd set le att mtu param fail, mtu param is null! @sdk_general_gatt.c(991),ERROR" ID="0xd86e1efa" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ACore] ble gatt le conn event cbk tl not found on addr:%02x:**:**:**:%02x:%02x @sdk_general_gatt.c(439),INFO" ID="0xd86e0dbd" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ACore] ble gatt le conn event cbk tl remove on addr:%02x:**:**:**:%02x:%02x @sdk_general_gatt.c(445),INFO" ID="0xd86e0ded" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt create server result bta len error, len = %u @sdk_general_gatt.c(461),ERROR" ID="0xd86e0e6a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[ACore] mc ble gatt create server result bta memcpy fail:%d,len:%d @sdk_general_gatt.c(469),ERROR" ID="0xd86e0eaa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt create service result bta len error. len = %u @sdk_general_gatt.c(482),ERROR" ID="0xd86e0f12" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt create service result bta memcpy fail: %d @sdk_general_gatt.c(489),ERROR" ID="0xd86e0f4a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt start service result bta len error. len = %u @sdk_general_gatt.c(503),ERROR" ID="0xd86e0fba" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt start service result bta memcpy faile error: %d @sdk_general_gatt.c(510),ERROR" ID="0xd86e0ff2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt get gap ui attributes result bta len error. len = %u @sdk_general_gatt.c(523),ERROR" ID="0xd86e105a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt get gap ui attributes result bta memcpy faile error: %d @sdk_general_gatt.c(530),ERROR" ID="0xd86e1092" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery service rsp bta len error. len = %u @sdk_general_gatt.c(543),ERROR" ID="0xd86e10fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt discovery service rsp bta discovery_service error @sdk_general_gatt.c(551),ERROR" ID="0xd86e113a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery service complete bta len error. len = %u @sdk_general_gatt.c(564),ERROR" ID="0xd86e11a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt discovery service complete bta discovery_service error @sdk_general_gatt.c(572),ERROR" ID="0xd86e11e2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt add characteristic result bta len error, len = %u @sdk_general_gatt.c(585),ERROR" ID="0xd86e124a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt add characteristic result bta memcpy fail error: %d @sdk_general_gatt.c(591),ERROR" ID="0xd86e127a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery include service rsp bta len error. len = %u @sdk_general_gatt.c(604),ERROR" ID="0xd86e12e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt discovery include service rsp bta discovery_service error @sdk_general_gatt.c(612),ERROR" ID="0xd86e1322" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery characteristics response bta len error. len = %u @sdk_general_gatt.c(625),ERROR" ID="0xd86e138a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore]mc ble gatt discovery characteristics response bta discovery_service error @sdk_general_gatt.c(633),ERROR" ID="0xd86e13ca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery characteristics complete bta len error. len = %u @sdk_general_gatt.c(646),ERROR" ID="0xd86e1432" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore]mc ble gatt discovery characteristics complete bta discovery_service error @sdk_general_gatt.c(654),ERROR" ID="0xd86e1472" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery descriptor response bta len error. len = %u @sdk_general_gatt.c(667),ERROR" ID="0xd86e14da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt discovery descriptor response bta discovery_service error @sdk_general_gatt.c(675),ERROR" ID="0xd86e151a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt discovery descriptor complete bta len error. len = %u @sdk_general_gatt.c(688),ERROR" ID="0xd86e1582" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt discovery descriptor complete bta discovery_service error @sdk_general_gatt.c(695),ERROR" ID="0xd86e15ba" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt get hid report map response bta finish. result code = %x @sdk_general_gatt.c(707),INFO" ID="0xd86e161d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt get hid report map response bta len error. len = %u @sdk_general_gatt.c(713),INFO" ID="0xd86e164d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt read character complete bta len error. len = %u @sdk_general_gatt.c(728),ERROR" ID="0xd86e16c2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt read characterr complete bta read character error @sdk_general_gatt.c(735),ERROR" ID="0xd86e16fa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] read service value finish. error code = %x @sdk_general_gatt.c(747),INFO" ID="0xd86e175d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] read service value response len error. len = %u @sdk_general_gatt.c(753),INFO" ID="0xd86e178d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] write service value finish. error code = %x @sdk_general_gatt.c(767),INFO" ID="0xd86e17fd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] write service value response len error. len = %u @sdk_general_gatt.c(773),INFO" ID="0xd86e182d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt read descriptor response bta len error. len = %u @sdk_general_gatt.c(788),INFO" ID="0xd86e18a5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt read descriptor response bta error @sdk_general_gatt.c(795),ERROR" ID="0xd86e18da" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt character value notification bta len error. len = %u @sdk_general_gatt.c(808),INFO" ID="0xd86e1945" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mc ble gatt character value notification bta new fail @sdk_general_gatt.c(816),ERROR" ID="0xd86e1982" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mc ble gatt character value notification bta memset fail @sdk_general_gatt.c(823),ERROR" ID="0xd86e19ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt character value notification bta error @sdk_general_gatt.c(831),ERROR" ID="0xd86e19fa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt read descriptor response bta error @sdk_general_gatt.c(839),ERROR" ID="0xd86e1a3a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="mc ble gatt character value notification bta handle:0x%x, len:%d @sdk_general_gatt.c(849),INFO" ID="0xd86e1a8d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt exchange mtu ind len error. len = %u @sdk_general_gatt.c(861),INFO" ID="0xd86e1aed" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt exchange mtu ind error @sdk_general_gatt.c(865),ERROR" ID="0xd86e1b0a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt handle service evt bta len error. len = %u @sdk_general_gatt.c(877),INFO" ID="0xd86e1b6d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mc ble gatt handle service evt bta new fail @sdk_general_gatt.c(884),ERROR" ID="0xd86e1ba2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mc ble gatt handle service evt bta memset fail @sdk_general_gatt.c(891),ERROR" ID="0xd86e1bda" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt handle service evt bta addr error @sdk_general_gatt.c(899),ERROR" ID="0xd86e1c1a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] mc ble gatt server read evt bta len error len = %u @sdk_general_gatt.c(912),INFO" ID="0xd86e1c85" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mc ble gatt server read evt bta new fail @sdk_general_gatt.c(918),ERROR" ID="0xd86e1cb2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mc ble gatt server read evt bta memset fai @sdk_general_gatt.c(923),ERROR" ID="0xd86e1cda" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ACore] mc ble gatt server read evt bta addr error @sdk_general_gatt.c(929),ERROR" ID="0xd86e1d0a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[ACore] ble conn general gatt proc:cmdid:0x%02X pay_len:%d. @sdk_general_gatt.c(948),INFO" ID="0xd86e1da5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ACore] ble conn general gatt proc no handle for command id:0x%02x. @sdk_general_gatt.c(963),INFO" ID="0xd86e1e1d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[Error] bt at cmd set le att mtu param fail, mtu param is null! @sdk_general_gatt.c(993),ERROR" ID="0xd86e1f0a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(312),ERROR" ID="0xd8e009c2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(329),ERROR" ID="0xd8e00a4a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(354),ERROR" ID="0xd8e00b12" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(318),ERROR" ID="0xd8e009f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(335),ERROR" ID="0xd8e00a7a" />
<MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(360),ERROR" ID="0xd8e00b42" />
- <MSG STRUCTURE="diag_log_msg1" NAME="rssi = %d @stack_gap_if.c(385),INFO" ID="0xd8e00c0d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="mode = %02x @stack_gap_if.c(437),INFO" ID="0xd8e00dad" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s error @stack_gap_if.c(529),ERROR" ID="0xd8e0108a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s error @stack_gap_if.c(533),ERROR" ID="0xd8e010aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(563),ERROR" ID="0xd8e0119a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="name_len = %hu, name = %s @stack_gap_if.c(567),INFO" ID="0xd8e011bd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(598),ERROR" ID="0xd8e012b2" />
- <MSG STRUCTURE="diag_log_msg3" NAME="remote addr : ***0x%x:0x%x:0x%x @stack_gap_if.c(603),INFO" ID="0xd8e012dd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(687),ERROR" ID="0xd8e0157a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(693),ERROR" ID="0xd8e015aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(732),ERROR" ID="0xd8e016e2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="conn_hdl=0x%x @stack_gap_if.c(738),INFO" ID="0xd8e01715" />
- <MSG STRUCTURE="diag_log_msg0" NAME="deinit bt sdk @stack_gap_if.c(745),INFO" ID="0xd8e0174d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="send mem_id to bt in_id=0x%x out_id=0x%x @stack_gap_if.c(772),INFO" ID="0xd8e01825" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(813),ERROR" ID="0xd8e0196a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(366),ERROR" ID="0xd8e00b72" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="rssi = %d @stack_gap_if.c(391),INFO" ID="0xd8e00c3d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="mode = %02x @stack_gap_if.c(443),INFO" ID="0xd8e00ddd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s error @stack_gap_if.c(535),ERROR" ID="0xd8e010ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s error @stack_gap_if.c(539),ERROR" ID="0xd8e010da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(569),ERROR" ID="0xd8e011ca" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="name_len = %hu, name = %s @stack_gap_if.c(573),INFO" ID="0xd8e011ed" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(609),ERROR" ID="0xd8e0130a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="remote addr : ***0x%x:0x%x:0x%x @stack_gap_if.c(614),INFO" ID="0xd8e01335" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(698),ERROR" ID="0xd8e015d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(704),ERROR" ID="0xd8e01602" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(743),ERROR" ID="0xd8e0173a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="conn_hdl=0x%x @stack_gap_if.c(749),INFO" ID="0xd8e0176d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="deinit bt sdk @stack_gap_if.c(756),INFO" ID="0xd8e017a5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="send mem_id to bt in_id=0x%x out_id=0x%x @stack_gap_if.c(783),INFO" ID="0xd8e0187d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memcpy_s fail. @stack_gap_if.c(824),ERROR" ID="0xd8e019c2" />
</MSG_LOG>
\ No newline at end of file
--- /dev/null
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="add faild, Input parameter error. @ui_coverflow_view.cpp(94),ERROR" ID="0xcb3e02f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="remove faild, Input parameter error. @ui_coverflow_view.cpp(135),ERROR" ID="0xcb3e043a" />
+ </MSG_LOG>
\ No newline at end of file
--- /dev/null
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="can not add view which is not image view @ui_hexagons_list.cpp(65),ERROR" ID="0xcb34020a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="can not add view which is not image view @ui_hexagons_list.cpp(89),ERROR" ID="0xcb3402ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="don't support scale when rebound mode is normal @ui_hexagons_list.cpp(219),ERROR" ID="0xcb3406da" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="scale value %f is invalid @ui_hexagons_list.cpp(224),ERROR" ID="0xcb340702" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="parameter is not valid, distance_:%u size:%d @ui_hexagons_list.cpp(614),ERROR" ID="0xcb341332" />
+ </MSG_LOG>
\ No newline at end of file
--- /dev/null
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="A maximum of 20 records can be added. @ui_icosahedron_view.cpp(100),ERROR" ID="0xcb420322" />
+ </MSG_LOG>
\ No newline at end of file
--- /dev/null
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="buffer is nil @ui_kaleidoscope_view.cpp(46),ERROR" ID="0xcb3a0172" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="Fmt not support: %d @ui_kaleidoscope_view.cpp(55),ERROR" ID="0xcb3a01ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Init KaleidoscopeUtils failed. @ui_kaleidoscope_view.cpp(62),ERROR" ID="0xcb3a01f2" />
+ </MSG_LOG>
\ No newline at end of file
--- /dev/null
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="pois_ malloc fail @ui_map_view.cpp(79),ERROR" ID="0xcb44027a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="roads_ malloc fail @ui_map_view.cpp(130),ERROR" ID="0xcb440412" />
+ </MSG_LOG>
\ No newline at end of file
--- /dev/null
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="RollerItemInfo is nullptr! @ui_roller_view.cpp(177),ERROR" ID="0xcb40058a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Already add an item with the same name. Remove it before adding this. @ui_roller_view.cpp(217),ERROR" ID="0xcb4006ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="name is empty! @ui_roller_view.cpp(257),ERROR" ID="0xcb40080a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Should remove an item in DISPLAY mode @ui_roller_view.cpp(262),ERROR" ID="0xcb400832" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="RollerItemInfo is null! @ui_roller_view.cpp(443),ERROR" ID="0xcb400dda" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Cannot set align item when mode is about to change. @ui_roller_view.cpp(495),ERROR" ID="0xcb400f7a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Should SetCurrentItem in DISPLAY mode. @ui_roller_view.cpp(499),ERROR" ID="0xcb400f9a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="Cannot find an item with name: %s @ui_roller_view.cpp(514),ERROR" ID="0xcb401012" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Cannot set mode when AlignAnim is running @ui_roller_view.cpp(609),ERROR" ID="0xcb40130a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mode is already set. @ui_roller_view.cpp(614),ERROR" ID="0xcb401332" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Cannot Set mode during transition or cannot set TRANSITION mode. @ui_roller_view.cpp(619),ERROR" ID="0xcb40135a" />
+ </MSG_LOG>
\ No newline at end of file
<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg = 0x%08X @core_msg.c(91),INFO" ID="0x981802dd" />
<MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call memcpy_s Failed, Error Code: [0x%08X] @core_msg.c(214),ERROR" ID="0x981806b2" />
<MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call memcpy_s Failed, Error Code: [0x%08X] @core_msg.c(237),ERROR" ID="0x9818076a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]read_pos = %u @core_msg.c(285),ERROR" ID="0x981808ea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]write_pos = %u @core_msg.c(286),ERROR" ID="0x981808f2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg_size = %u @core_msg.c(287),ERROR" ID="0x981808fa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg_size = %u @core_msg.c(323),ERROR" ID="0x98180a1a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg_crc = %u @core_msg.c(329),ERROR" ID="0x98180a4a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(372),INFO" ID="0x98180ba5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_alloc Failed, Error Code: [0x%08X] @core_msg.c(378),ERROR" ID="0x98180bd2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_attach Failed, Error Code: [0x%08X] @core_msg.c(384),ERROR" ID="0x98180c02" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(392),INFO" ID="0x98180c45" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(401),INFO" ID="0x98180c8d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_get_id Failed, Error Code: [0x%08X] @core_msg.c(409),ERROR" ID="0x98180cca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_detach Failed, Error Code: [0x%08X] @core_msg.c(415),ERROR" ID="0x98180cfa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_free Failed, Error Code: [0x%08X] @core_msg.c(421),ERROR" ID="0x98180d2a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(429),INFO" ID="0x98180d6d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(438),INFO" ID="0x98180db5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_get_id Failed, Error Code: [0x%08X] @core_msg.c(442),ERROR" ID="0x98180dd2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_attach Failed, Error Code: [0x%08X] @core_msg.c(448),ERROR" ID="0x98180e02" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(454),INFO" ID="0x98180e35" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(463),INFO" ID="0x98180e7d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_get_id Failed, Error Code: [0x%08X] @core_msg.c(467),ERROR" ID="0x98180e9a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_detach Failed, Error Code: [0x%08X] @core_msg.c(473),ERROR" ID="0x98180eca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(480),INFO" ID="0x98180f05" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(488),INFO" ID="0x98180f45" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(491),INFO" ID="0x98180f5d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_mod_init Failed, Error Code: [0x%08X] @core_msg.c(497),ERROR" ID="0x98180f8a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(504),INFO" ID="0x98180fc5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(512),INFO" ID="0x98181005" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(514),INFO" ID="0x98181015" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(519),INFO" ID="0x9818103d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_mod_deinit Failed, Error Code: [0x%08X] @core_msg.c(525),ERROR" ID="0x9818106a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(531),INFO" ID="0x9818109d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(541),INFO" ID="0x981810ed" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_mod_alloc Failed, Error Code: [0x%08X] @core_msg.c(552),ERROR" ID="0x98181142" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg_inst->qid.u32 = 0x%08X @core_msg.c(559),INFO" ID="0x9818117d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_alloc_shrb Failed, Error Code: [0x%08X] @core_msg.c(564),ERROR" ID="0x981811a2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg_inst->shrb_buf.data_buf = 0x%08X @core_msg.c(568),INFO" ID="0x981811c5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_attach_shrb Failed, Error Code: [0x%08X] @core_msg.c(572),ERROR" ID="0x981811e2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg_inst->shrb_buf.data_buf = 0x%08X @core_msg.c(576),INFO" ID="0x98181205" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(581),INFO" ID="0x9818122d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(589),INFO" ID="0x9818126d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_free_shrb Failed, Error Code: [0x%08X] @core_msg.c(594),ERROR" ID="0x98181292" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_detach_shrb Failed, Error Code: [0x%08X] @core_msg.c(601),ERROR" ID="0x981812ca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_mod_free Failed, Error Code: [0x%08X] @core_msg.c(611),ERROR" ID="0x9818131a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(615),INFO" ID="0x9818133d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_init Failed, Error Code: [0x%08X] @core_msg.c(664),ERROR" ID="0x981814c2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_create Failed, Error Code: [0x%08X] @core_msg.c(675),ERROR" ID="0x9818151a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_destroy Failed, Error Code: [0x%08X] @core_msg.c(696),ERROR" ID="0x981815c2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]ret = 0x%08X @core_msg.c(785),ERROR" ID="0x9818188a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg_size = %u @core_msg.c(284),ERROR" ID="0x981808e2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]read_pos = %u @core_msg.c(289),ERROR" ID="0x9818090a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]write_pos = %u @core_msg.c(290),ERROR" ID="0x98180912" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg_size = %u @core_msg.c(291),ERROR" ID="0x9818091a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg_size = %u @core_msg.c(327),ERROR" ID="0x98180a3a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg_crc = %u @core_msg.c(333),ERROR" ID="0x98180a6a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(376),INFO" ID="0x98180bc5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_alloc Failed, Error Code: [0x%08X] @core_msg.c(382),ERROR" ID="0x98180bf2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_attach Failed, Error Code: [0x%08X] @core_msg.c(388),ERROR" ID="0x98180c22" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(396),INFO" ID="0x98180c65" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(405),INFO" ID="0x98180cad" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_get_id Failed, Error Code: [0x%08X] @core_msg.c(413),ERROR" ID="0x98180cea" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_detach Failed, Error Code: [0x%08X] @core_msg.c(419),ERROR" ID="0x98180d1a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_free Failed, Error Code: [0x%08X] @core_msg.c(425),ERROR" ID="0x98180d4a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(433),INFO" ID="0x98180d8d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(442),INFO" ID="0x98180dd5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_get_id Failed, Error Code: [0x%08X] @core_msg.c(446),ERROR" ID="0x98180df2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_attach Failed, Error Code: [0x%08X] @core_msg.c(452),ERROR" ID="0x98180e22" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(458),INFO" ID="0x98180e55" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(467),INFO" ID="0x98180e9d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_get_id Failed, Error Code: [0x%08X] @core_msg.c(471),ERROR" ID="0x98180eba" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_shrb_detach Failed, Error Code: [0x%08X] @core_msg.c(477),ERROR" ID="0x98180eea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(484),INFO" ID="0x98180f25" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(492),INFO" ID="0x98180f65" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(495),INFO" ID="0x98180f7d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_mod_init Failed, Error Code: [0x%08X] @core_msg.c(501),ERROR" ID="0x98180faa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(508),INFO" ID="0x98180fe5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(516),INFO" ID="0x98181025" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(518),INFO" ID="0x98181035" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(523),INFO" ID="0x9818105d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_mod_deinit Failed, Error Code: [0x%08X] @core_msg.c(529),ERROR" ID="0x9818108a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(535),INFO" ID="0x981810bd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(545),INFO" ID="0x9818110d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_mod_alloc Failed, Error Code: [0x%08X] @core_msg.c(556),ERROR" ID="0x98181162" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg_inst->qid.u32 = 0x%08X @core_msg.c(563),INFO" ID="0x9818119d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_alloc_shrb Failed, Error Code: [0x%08X] @core_msg.c(568),ERROR" ID="0x981811c2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg_inst->shrb_buf.data_buf = 0x%08X @core_msg.c(572),INFO" ID="0x981811e5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_attach_shrb Failed, Error Code: [0x%08X] @core_msg.c(576),ERROR" ID="0x98181202" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]msg_inst->shrb_buf.data_buf = 0x%08X @core_msg.c(580),INFO" ID="0x98181225" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(585),INFO" ID="0x9818124d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]enter... @core_msg.c(593),INFO" ID="0x9818128d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_free_shrb Failed, Error Code: [0x%08X] @core_msg.c(598),ERROR" ID="0x981812b2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_detach_shrb Failed, Error Code: [0x%08X] @core_msg.c(605),ERROR" ID="0x981812ea" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call core_mod_free Failed, Error Code: [0x%08X] @core_msg.c(615),ERROR" ID="0x9818133a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[hifi]exit... @core_msg.c(619),INFO" ID="0x9818135d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_init Failed, Error Code: [0x%08X] @core_msg.c(668),ERROR" ID="0x981814e2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_create Failed, Error Code: [0x%08X] @core_msg.c(679),ERROR" ID="0x9818153a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]Call msg_fifo_destroy Failed, Error Code: [0x%08X] @core_msg.c(700),ERROR" ID="0x981815e2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hifi]ret = 0x%08X @core_msg.c(789),ERROR" ID="0x981818aa" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg3" NAME="[INFO][EA]next elt:cb_start=0x%x, ts=0x%x, prio=0x%x @ea_ram.c(55),INFO" ID="0x89c401bd" />
<MSG STRUCTURE="diag_log_msg1" NAME="hci_set_min_enc_key_size, key_min_size:%d @hci_enc.c(24),INFO" ID="0x880200c5" />
<MSG STRUCTURE="diag_log_msg4" NAME="hci_send_enc_change_evt, link_id:%d, status:%d, conhdl:%d, enc_stat:%d @hci_enc.c(74),INFO" ID="0x88020255" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[BIS]Invalid parameters finetimecnt:%d, iso_intv:%d, iso_subevtnum:%d @patch_lld_bis_evt.c(53),WARNING" ID="0x8a6c01ab" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[BIS]Invalid parameters finetimecnt:%d, iso_intv:%d, iso_subevtnum:%d @patch_lld_bis_evt.c(53),WARNING" ID="0x8a7001ab" />
<MSG STRUCTURE="diag_log_msg0" NAME="ble log: memcpy adv_manu_spec_data fail when get adv data @ble_general_adv.c(209),ERROR" ID="0x8cb8068a" />
<MSG STRUCTURE="diag_log_msg0" NAME="ble log: memcpy adv_data fail when get adv data @ble_general_adv.c(231),ERROR" ID="0x8cb8073a" />
<MSG STRUCTURE="diag_log_msg0" NAME="ble log: memcpy mac fail when get adv data @ble_general_adv.c(255),ERROR" ID="0x8cb807fa" />
<MSG STRUCTURE="diag_log_msg2" NAME="Controller|[%d]:0x%02x @bt_transparent_bypass.c(24),INFO" ID="0x8de400c5" />
<MSG STRUCTURE="diag_log_msg1" NAME="BypassMode = 0x%x @bt_transparent_bypass.c(35),INFO" ID="0x8de4011d" />
<MSG STRUCTURE="diag_log_msg4" NAME="[BLE_TEST] private test mode, chmap---0x%x:0x%x:0x%x,0x%x @llc_ch_asses.c(237),INFO" ID="0x8834076d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="btsdk_is_device_connected hdl:0x%x status:%d @sdk_gap_conn_management.c(601),INFO" ID="0x8b8212cd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="btsdk_is_device_connected hdl:0x%x status:%d @sdk_gap_conn_management.c(608),INFO" ID="0x8b821305" />
<MSG STRUCTURE="diag_log_msg0" NAME="[GAP][LOGN_STACK_GAP_DIS_REGISTER] RegisterDIService success. @gap_hlp_br.c(1528),INFO" ID="0x8b8a2fc5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[GAP][LOGN_STACK_GAP_DIS_REGISTER] RegisterDIService failed. @gap_hlp_br.c(1532),WARNING" ID="0x8b8a2fe3" />
<MSG STRUCTURE="diag_log_msg3" NAME="[HCI][LK_REQUEST] REMOTE_BD_ADDR=%02x:%02x:*:*:*:%02x @hci_secu.c(877),INFO" ID="0x8ad81b6d" />
<MSG STRUCTURE="diag_log_msg1" NAME="[WARNING][BIS]invalid rx phy %d @lld_bis_evt.c(2073),WARNING" ID="0x896040cb" />
<MSG STRUCTURE="diag_log_msg4" NAME="lld_evt_get_bis_cs_id, primary_desc=%d, second_desc=%d, primary_conflict=%d,second_conflict=%d @lld_bis_evt.c(2129),INFO" ID="0x8960428d" />
<MSG STRUCTURE="diag_log_msg4" NAME="lld_evt_get_bis_cs_id2, primary_rem=%d, second_rem=%d,lastcs=%d, primary|second_dbg=0x%x @lld_bis_evt.c(2134),INFO" ID="0x896042b5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][LLM]llm_ral_dev_add:ral is full @patch_llm_util.c(107),INFO" ID="0x8a6a035d" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[INFO][LLM]llm_ral_dev_add:in_wl=%d, l_irk_valid=%d, p_irk_valid=%d, peer_id_addr_type=%d @patch_llm_util.c(133),INFO" ID="0x8a6a042d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][LLM]llm_ral_dev_add:peer_id_addr=0x%8x%4x, nbral=%d @patch_llm_util.c(139),INFO" ID="0x8a6a045d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][LLM]llm_ral_dev_add:ral is full @patch_llm_util.c(107),INFO" ID="0x8a6e035d" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[INFO][LLM]llm_ral_dev_add:in_wl=%d, l_irk_valid=%d, p_irk_valid=%d, peer_id_addr_type=%d @patch_llm_util.c(133),INFO" ID="0x8a6e042d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][LLM]llm_ral_dev_add:peer_id_addr=0x%8x%4x, nbral=%d @patch_llm_util.c(139),INFO" ID="0x8a6e045d" />
<MSG STRUCTURE="diag_log_msg0" NAME="[INFO][LC]lm_get_auth_method:SP_OOB @lc_task.c(437),INFO" ID="0x887a0dad" />
<MSG STRUCTURE="diag_log_msg0" NAME="[INFO][LC]lm_get_auth_method:SP_JUST_WORKS @lc_task.c(443),INFO" ID="0x887a0ddd" />
<MSG STRUCTURE="diag_log_msg1" NAME="[INFO][LC]lm_get_auth_method:0x%x @lc_task.c(447),INFO" ID="0x887a0dfd" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ERROR][param]hci_util_pack:format = NULL @hci_util.c(155),ERROR" ID="0x88d204da" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ERROR][param]hci_util_unpack:format = NULL @hci_util.c(248),ERROR" ID="0x88d207c2" />
<MSG STRUCTURE="diag_log_msg4" NAME="[BIS]pto_tx_idx=%d,pldcntr=%d,tx_desc_idx=%d,pkt_seq_num=%d @lld_bis_evt_ram.c(137),INFO" ID="0x8a30044d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[LD]ld_acl_sched_update_ts ts=0x%x @patch_ld_acl.c(37),INFO" ID="0x8a64012d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[LD]ld_acl_sched_update_ts ts=0x%x @patch_ld_acl.c(37),INFO" ID="0x8a68012d" />
<MSG STRUCTURE="diag_log_msg2" NAME="llcp_priv_uhd_req_handler_v1:state%d,llc_env_ptr->loc_proc_state%d @llc_uhd_llcp.c(102),INFO" ID="0x894e0335" />
<MSG STRUCTURE="diag_log_msg2" NAME="[INFO][LLC][PHY]llcp_priv_uhd_req_handler_v1:txphys=%d,rxphys=%d @llc_uhd_llcp.c(106),INFO" ID="0x894e0355" />
<MSG STRUCTURE="diag_log_msg2" NAME="[INFO][LLC][PHY]llcp_priv_uhd_req_handler_v1:tx_uhd_capability%d,rx_uhd_capability%d @llc_uhd_llcp.c(109),INFO" ID="0x894e036d" />
<MSG STRUCTURE="diag_log_msg1" NAME="[HDAP]stream_id=%d not HDAP @packet_ul.c(54),INFO" ID="0x8c2a01b5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[HDAP]recv_packet_data_ind flow ctrl @packet_ul.c(58),INFO" ID="0x8c2a01d5" />
<MSG STRUCTURE="diag_log_msg5" NAME="[HCI][HDAP]data_len=%d, data[5]=0x%x, data[84]=0x%x, data[164]=0x%x, TIME=%ld @packet_ul.c(76),DBG" ID="0x8c2a0266" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]lld_big_acad_ind_handle, biginfo unpack fail @patch_llc_bis_util.c(93),WARNING" ID="0x8a6202eb" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]lld_big_acad_ind_handle, biginfo unpack fail @patch_llc_bis_util.c(93),WARNING" ID="0x8a6602eb" />
<MSG STRUCTURE="diag_log_msg4" NAME="[INFO][BIS]uhd phy update:phy=%d,uhd_cap=%d,polar=%d,data_len=%d @lld_bis_uhd.c(153),INFO" ID="0x881004cd" />
<MSG STRUCTURE="diag_log_msg1" NAME="[INFO][LLD]lld_pdu_tx_flush_list:txnode->idx=%d @lld_util.c(123),INFO" ID="0x885c03dd" />
<MSG STRUCTURE="diag_log_msg4" NAME="[INFO][LLD]lld_util_set_cs_bd_address:idx=0x%x, type=%x, bd[5:4]=%x, bd[0]=%x @lld_util.c(166),INFO" ID="0x885c0535" />
<MSG STRUCTURE="diag_log_msg1" NAME="[ERROR][handle]bt_et_currentrxdescptr_currentrxdescptr_getf()=%d @ld_sscan.c(162),ERROR" ID="0x88a00512" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ERROR][param]ld_sscan_env.evt != evt @ld_sscan.c(178),ERROR" ID="0x88a00592" />
<MSG STRUCTURE="diag_log_msg1" NAME="[ERROR][SSCAN][LD]ld_sscan_evt_canceled_cbk: status = %d @ld_sscan.c(226),INFO" ID="0x88a00715" />
- <MSG STRUCTURE="diag_log_msg2" NAME="bt_init start... em start addr is 0x%x,em_size is 0x%x @bt_main.c(445),INFO" ID="0x89220ded" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]bt init pmu state change fail @bt_main.c(449),ERROR" ID="0x89220e0a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]bt_hal_phy_init started... @bt_main.c(469),INFO" ID="0x89220ead" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]init_sleep started... @bt_main.c(474),INFO" ID="0x89220ed5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]intc_init started... @bt_main.c(477),INFO" ID="0x89220eed" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]bt param config started... @bt_main.c(480),INFO" ID="0x89220f05" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]bt init end pmu state change fail @bt_main.c(501),ERROR" ID="0x89220faa" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="bt_init start... em start addr is 0x%x,em_size is 0x%x @bt_main.c(446),INFO" ID="0x89220df5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]bt init pmu state change fail @bt_main.c(450),ERROR" ID="0x89220e12" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]bt_hal_phy_init started... @bt_main.c(470),INFO" ID="0x89220eb5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]init_sleep started... @bt_main.c(475),INFO" ID="0x89220edd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]intc_init started... @bt_main.c(478),INFO" ID="0x89220ef5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]bt param config started... @bt_main.c(481),INFO" ID="0x89220f0d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]bt init end pmu state change fail @bt_main.c(502),ERROR" ID="0x89220fb2" />
<MSG STRUCTURE="diag_log_msg0" NAME="KFIFO: bt kfifo copy in memcpy error @bt_kfifo.c(89),ERROR" ID="0x8cae02ca" />
<MSG STRUCTURE="diag_log_msg1" NAME="KFIFO: init_size:%d @bt_kfifo.c(125),INFO" ID="0x8cae03ed" />
<MSG STRUCTURE="diag_log_msg1" NAME="KFIFO: none vaild size %d @bt_kfifo.c(131),ERROR" ID="0x8cae041a" />
<MSG STRUCTURE="diag_log_msg0" NAME="BT_DFT: bt dft aging test control param is NULL @bt_dft.c(1266),INFO" ID="0x8d0a2795" />
<MSG STRUCTURE="diag_log_msg0" NAME="BT_DFT: bt dft aging test control param->pkt_ptr is NULL @bt_dft.c(1271),INFO" ID="0x8d0a27bd" />
<MSG STRUCTURE="diag_log_msg1" NAME="BT_DFT: bt dft aging test control %d @bt_dft.c(1280),INFO" ID="0x8d0a2805" />
- <MSG STRUCTURE="diag_log_msg1" NAME="sco disconnect complete sco_hdl=0x%x @tladapter.c(159),INFO" ID="0x8b9c04fd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="sco disconnect complete sco_hdl=0x%x @tladapter.c(159),ERROR" ID="0x8b9c04fa" />
<MSG STRUCTURE="diag_log_msg1" NAME="GET NV ERR, NV Buf is NULL, err_line = %d @bt_mdmrfabb_global.c(1017),ERROR" ID="0x89381fca" />
<MSG STRUCTURE="diag_log_msg1" NAME="GET NV ERR, err_line = %d @bt_mdmrfabb_global.c(1027),ERROR" ID="0x8938201a" />
<MSG STRUCTURE="diag_log_msg1" NAME="MEMCPY ERR, mem_flag = %d @bt_mdmrfabb_global.c(1041),ERROR" ID="0x8938208a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ERROR][CFG]g_aus_number_access MAX Error @bt_em_config.c(1080),ERROR" ID="0x894421c2" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ERROR][CFG]BT_CFG_FAIL @bt_em_config.c(1131),ERROR" ID="0x8944235a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ERROR][CFG] bt_write_cfg_by_em failed @bt_em_config.c(1186),ERROR" ID="0x89442512" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][DFX]dfx_bt_parse_debug_cmd:too many Parameter, quit parsing @patch_btdfx.c(50),INFO" ID="0x8a520195" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][DFX]dfx_bt_parse_debug_cmd:too many Parameter, quit parsing @patch_btdfx.c(50),INFO" ID="0x8a560195" />
<MSG STRUCTURE="diag_log_msg1" NAME="pbap srv pull phonebook ret=0x%x @bt_ahi_pbap.c(50),INFO" ID="0x8c9e0195" />
<MSG STRUCTURE="diag_log_msg1" NAME="pbap srv pull cardlist ret=0x%x @bt_ahi_pbap.c(68),INFO" ID="0x8c9e0225" />
<MSG STRUCTURE="diag_log_msg1" NAME="pbap srv pull cardentry ret=0x%x @bt_ahi_pbap.c(86),INFO" ID="0x8c9e02b5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][AE]llm_ext_adv_evt_end_elt_process:elt_to_free is NULL @llm_ae_pdu.c(944),WARNING" ID="0x884a1d83" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][AE]llm_ext_adv_evt_end_elt_process:nothing to release @llm_ae_pdu.c(952),WARNING" ID="0x884a1dc3" />
<MSG STRUCTURE="diag_log_msg2" NAME="[ERROR][AE]llm_ae_adv_elt_del:count=%, CNT = %d @llm_ae_pdu.c(1527),ERROR" ID="0x884a2fba" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[WARNING] llcp_channel_map_req_handler , INSTANT_REJECT, state=%d, mode=%d @patch_llc_llcp.c(42),WARNING" ID="0x8a520153" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[WARNING] llcp_channel_map_req_handler, INSTANT_COLLISION, map_instant_action %d instant_action %d @patch_llc_llcp.c(49),WARNING" ID="0x8a52018b" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="llcp_channel_map_req_handler, instant=%d, counter=%d, remote_device_id=%d @patch_llc_llcp.c(59),WARNING" ID="0x8a5201db" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[WARNING] llcp_channel_map_req_handler, INSTANT_PASSED, instant=%d, counter=%d @patch_llc_llcp.c(67),WARNING" ID="0x8a52021b" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ISOAL][ERR]iso_buf_alloc_fail @llc_isoal.c(200),INFO" ID="0x89de0645" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ISOAL][ERR]iso_buf_alloc_fail @llc_isoal.c(246),INFO" ID="0x89de07b5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ISOAL][ERR]iso_buf_alloc_fail @llc_isoal.c(289),INFO" ID="0x89de090d" />
<MSG STRUCTURE="diag_log_msg0" NAME="[HFP][SCO_CONN_REQ] not support sco codec neg @hfp_hlp.c(1554),WARNING" ID="0x8be43093" />
<MSG STRUCTURE="diag_log_msg1" NAME="[HFP][SCO_CONN] SCO_HANDLE=0x%x @hfp_hlp.c(1624),INFO" ID="0x8be432c5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[GAP][create_handle] memcpy failed @gap_hlp_comm.c(260),ERROR" ID="0x8b8e0822" />
- <MSG STRUCTURE="diag_log_msg6" NAME="[GAP][ACL_EVENT_CALLBACK] JOB=%u, LINK_TYPE=%u, ACL_LINK_HANDLE=0x%x, REMOTE_ADDR=%02x:%02x:**:**:**:%02x @gap_hlp_comm.c(477),INFO" ID="0x8b8e0eed" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_comm.c(887),ERROR" ID="0x8b8e1bba" />
- <MSG STRUCTURE="diag_log_msg2" NAME="gaph_hci_command_cbk, operation=%x, code:%x @gap_hlp_comm.c(981),INFO" ID="0x8b8e1ead" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][MEMCPY_FAILED]CreateContext memcpy fail,ret=%d @gap_hlp_comm.c(1048),INFO" ID="0x8b8e20c5" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LINK_ALREADY_EXISTS] REMOTE_ADDR=%02x:%02x:**:**:**:%02x @gap_hlp_comm.c(1086),INFO" ID="0x8b8e21f5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_comm.c(1842),ERROR" ID="0x8b8e3992" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_comm.c(1862),ERROR" ID="0x8b8e3a32" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LOCAL_DISC_REQ] REMOTE_ADDR=%02x:%02x:**:**:**:%02x, can't find acl link @gap_hlp_comm.c(2011),INFO" ID="0x8b8e3edd" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LOCAL_DISC_REQ] REMOTE_ADDR=%02x:%02x:**:**:**:%02x, can't find acl link @gap_hlp_comm.c(2041),INFO" ID="0x8b8e3fcd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[GAP] acl_link cbk link_type:%d job:%d @gap_hlp_comm.c(444),ERROR" ID="0x8b8e0de2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][acl]job:%d link is NULL @gap_hlp_comm.c(464),ERROR" ID="0x8b8e0e82" />
+ <MSG STRUCTURE="diag_log_msg6" NAME="[GAP][ACL_EVENT_CALLBACK] JOB=%u, LINK_TYPE=%u, ACL_LINK_HANDLE=0x%x, REMOTE_ADDR=%02x:%02x:**:**:**:%02x @gap_hlp_comm.c(482),INFO" ID="0x8b8e0f15" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_comm.c(892),ERROR" ID="0x8b8e1be2" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="gaph_hci_command_cbk, operation=%x, code:%x @gap_hlp_comm.c(986),INFO" ID="0x8b8e1ed5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][MEMCPY_FAILED]CreateContext memcpy fail,ret=%d @gap_hlp_comm.c(1053),INFO" ID="0x8b8e20ed" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LINK_ALREADY_EXISTS] REMOTE_ADDR=%02x:%02x:**:**:**:%02x @gap_hlp_comm.c(1091),INFO" ID="0x8b8e221d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_comm.c(1847),ERROR" ID="0x8b8e39ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_comm.c(1867),ERROR" ID="0x8b8e3a5a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LOCAL_DISC_REQ] REMOTE_ADDR=%02x:%02x:**:**:**:%02x, can't find acl link @gap_hlp_comm.c(2016),INFO" ID="0x8b8e3f05" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LOCAL_DISC_REQ] REMOTE_ADDR=%02x:%02x:**:**:**:%02x, can't find acl link @gap_hlp_comm.c(2046),INFO" ID="0x8b8e3ff5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][LLD]lld_ae_per_sync_start:evt_defer is null @lld_per_pdu.c(76),WARNING" ID="0x897a0263" />
<MSG STRUCTURE="diag_log_msg0" NAME="[INFO][LLD]lld_ae_per_sync_start:sync start ok @lld_per_pdu.c(79),INFO" ID="0x897a027d" />
<MSG STRUCTURE="diag_log_msg2" NAME="[WARNING][LLD]lld_ae_per_sync_start:not start, syncinfo_time=0x%x, pdu_dur=%d @lld_per_pdu.c(84),WARNING" ID="0x897a02a3" />
<MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble disconnect error, the link does not exist. handle = %x @ble_core.c(950),ERROR" ID="0x8cc01db2" />
<MSG STRUCTURE="diag_log_msg0" NAME="ble core: The number of links has reached the maximum. @ble_core.c(1002),INFO" ID="0x8cc01f55" />
<MSG STRUCTURE="diag_log_msg0" NAME="ble core: ble state ind handle message is NULL @ble_core.c(1026),ERROR" ID="0x8cc02012" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble core: The number of links has reached the maximum. @ble_core.c(1035),INFO" ID="0x8cc0205d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble core: The number of links has reached the maximum. @ble_core.c(1035),ERROR" ID="0x8cc0205a" />
<MSG STRUCTURE="diag_log_msg0" NAME="ble core: ble state ind rmt is NULL @ble_core.c(1081),ERROR" ID="0x8cc021ca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble state ind memcpy rmt fail: %d @ble_core.c(1090),ERROR" ID="0x8cc02212" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble state ind malloc fail: %d @ble_core.c(1100),ERROR" ID="0x8cc02262" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble core: app ble smp key handle message is NULL @ble_core.c(1109),ERROR" ID="0x8cc022aa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble state ind memcpy rmt fail: %d @ble_core.c(1154),ERROR" ID="0x8cc02412" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble log: AppBleConnResult msg_data is NULL @ble_core.c(1181),ERROR" ID="0x8cc024ea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble log: AppBleConnResult link does not exist on handle:%x @ble_core.c(1188),ERROR" ID="0x8cc02522" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: conn update result fail = %d @ble_core.c(1208),WARNING" ID="0x8cc025c3" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble core: Had Active Disconn,not to retry @ble_core.c(1333),INFO" ID="0x8cc029ad" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ANCS]500ms comes! @ble_core.c(1365),INFO" ID="0x8cc02aad" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: unsupported msg_id: 0x%x @ble_core.c(1385),INFO" ID="0x8cc02b4d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: app ble init fail ret:%x @ble_core.c(1481),ERROR" ID="0x8cc02e4a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble core: ble core connect proc cmds param NULL @ble_core.c(1515),ERROR" ID="0x8cc02f5a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble core: ble core connect proc cmds pkt_ptr NULL @ble_core.c(1520),ERROR" ID="0x8cc02f82" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble state ind memcpy rmt fail: %d @ble_core.c(1088),ERROR" ID="0x8cc02202" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble core: app ble smp key handle message is NULL @ble_core.c(1102),ERROR" ID="0x8cc02272" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble state ind memcpy rmt fail: %d @ble_core.c(1147),ERROR" ID="0x8cc023da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble log: AppBleConnResult msg_data is NULL @ble_core.c(1174),ERROR" ID="0x8cc024b2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble log: AppBleConnResult link does not exist on handle:%x @ble_core.c(1181),ERROR" ID="0x8cc024ea" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: conn update result fail = %d @ble_core.c(1209),WARNING" ID="0x8cc025cb" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble core: Had Active Disconn,not to retry @ble_core.c(1334),INFO" ID="0x8cc029b5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ANCS]500ms comes! @ble_core.c(1366),INFO" ID="0x8cc02ab5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: unsupported msg_id: 0x%x @ble_core.c(1386),INFO" ID="0x8cc02b55" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: app ble init fail ret:%x @ble_core.c(1482),ERROR" ID="0x8cc02e52" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble core: ble core connect proc cmds param NULL @ble_core.c(1516),ERROR" ID="0x8cc02f62" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble core: ble core connect proc cmds pkt_ptr NULL @ble_core.c(1521),ERROR" ID="0x8cc02f8a" />
<MSG STRUCTURE="diag_log_msg2" NAME="[ICO]accept status = %d, conhdl = %d @llc_iso_ico_hci.c(132),INFO" ID="0x89fa0425" />
<MSG STRUCTURE="diag_log_msg2" NAME="[iso_debug]remove ico 0x%x, %d @llc_iso_ico_hci.c(383),INFO" ID="0x89fa0bfd" />
<MSG STRUCTURE="diag_log_msg3" NAME="[ICO_debug]channel_num = %d, event_counter1 = %d, event_count2 = %d @llc_iso_ico_hci.c(441),INFO" ID="0x89fa0dcd" />
<MSG STRUCTURE="diag_log_msg1" NAME="[INFO][LMP]lmp_bt_uhd_pref_phy_req_handler Enter! State=%d @lc_lmp_uhd.c(415),INFO" ID="0x89a00cfd" />
<MSG STRUCTURE="diag_log_msg4" NAME="[L2CAP][SIGNAL_SEND]HANDLE=0x%x, CODE=0x%x, IDENTIFIER=%d, LENGTH=%d @l2cap_data_proc.c(126),INFO" ID="0x8bc403f5" />
<MSG STRUCTURE="diag_log_msg1" NAME="hfp_handle_ev_disconnect_complete hdl=0x%x @sdk_hfp.c(202),INFO" ID="0x8b7e0655" />
- <MSG STRUCTURE="diag_log_msg3" NAME="hfp set active mem id: sco_hdl=0x%x in_mem=0x%x out_mem=0x%x @sdk_hfp.c(229),WARNING" ID="0x8b7e072b" />
- <MSG STRUCTURE="diag_log_msg3" NAME="hfp map mem id: sco_hdl=0x%x in_mem=0x%x out_mem=0x%x @sdk_hfp.c(236),INFO" ID="0x8b7e0765" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="hfp set active mem id: sco_hdl=0x%x in_mem=0x%x out_mem=0x%x @sdk_hfp.c(229),ERROR" ID="0x8b7e072a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="hfp map mem id: sco_hdl=0x%x in_mem=0x%x out_mem=0x%x @sdk_hfp.c(236),ERROR" ID="0x8b7e0762" />
<MSG STRUCTURE="diag_log_msg1" NAME="memory copy failed ret=0x%x @sdk_hfp.c(250),WARNING" ID="0x8b7e07d3" />
- <MSG STRUCTURE="diag_log_msg3" NAME="hfp map mem id: sco_hdl=0x%x in_mem=0x%x out_mem=0x%x @sdk_hfp.c(291),WARNING" ID="0x8b7e091b" />
- <MSG STRUCTURE="diag_log_msg2" NAME="SDK_HFP: send msg to mcu ev= 0x%x, role=0x%x @sdk_hfp.c(296),WARNING" ID="0x8b7e0943" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="hfp map mem id: sco_hdl=0x%x in_mem=0x%x out_mem=0x%x @sdk_hfp.c(291),ERROR" ID="0x8b7e091a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="SDK_HFP: send msg to mcu ev= 0x%x, role=0x%x @sdk_hfp.c(296),ERROR" ID="0x8b7e0942" />
<MSG STRUCTURE="diag_log_msg2" NAME="SDK_HFP: ev disconnect, conn_cfm->role = %x, conn_cfm->result=%d @sdk_hfp.c(360),INFO" ID="0x8b7e0b45" />
<MSG STRUCTURE="diag_log_msg2" NAME="SDK_HFP: slc event = %d, slc_info->role = %x @sdk_hfp.c(388),INFO" ID="0x8b7e0c25" />
<MSG STRUCTURE="diag_log_msg2" NAME="[HFP][SDK]SLC RELEASED role=%d handle=0x%x @sdk_hfp.c(452),INFO" ID="0x8b7e0e25" />
<MSG STRUCTURE="diag_log_msg0" NAME="[INFO][AE]llm_per_sync_lost_report:sync link establish fail @llm_per_common.c(73),INFO" ID="0x8996024d" />
<MSG STRUCTURE="diag_log_msg0" NAME="[INFO][AE]llm_per_sync_lost_report:sync link timeout @llm_per_common.c(86),INFO" ID="0x899602b5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][AE]:event is masked @llm_per_common.c(114),WARNING" ID="0x89960393" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[HCI] create le connection addr:%02x******%02x%02x @hci_link_le.c(116),ERROR" ID="0x8ad603a2" />
<MSG STRUCTURE="diag_log_msg2" NAME="[INFO][LLD]lld_evt_ext_adv_schedule:llc_env[%d]=0x%x @lld_ae_sched.c(71),INFO" ID="0x8818023d" />
<MSG STRUCTURE="diag_log_msg0" NAME="[INFO][LLD]lld_evt_ext_adv_schedule:adv expire stop @lld_ae_sched.c(77),INFO" ID="0x8818026d" />
<MSG STRUCTURE="diag_log_msg0" NAME="pri_embuff failed @lld_ae_sched.c(166),ERROR" ID="0x88180532" />
<MSG STRUCTURE="diag_log_msg1" NAME="role = slave, esco_lt_addr = acl_lt_addr = %d @lc_sco.c(1659),INFO" ID="0x887233dd" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ERROR][param]lc_sco_env[sync_linkid].p_nego_params != NULL @lc_sco.c(1912),ERROR" ID="0x88723bc2" />
<MSG STRUCTURE="diag_log_msg2" NAME="[ERROR]lc_sco_peer_reject_disc link_id=%d, reason=%d @lc_sco.c(2020),ERROR" ID="0x88723f22" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][LE_CONN_COMPLETE] STATUS=0x%x @hci_ev_le.c(408),INFO" ID="0x8ad00cc5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[HCI][LE_META_ISO_EV] it is iso event @hci_ev_le.c(527),INFO" ID="0x8ad0107d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][LE_CONN_COMPLETE] STATUS=0x%x role:%d conn_handle:%d @hci_ev_le.c(410),ERROR" ID="0x8ad00cd2" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][LE_CONN_COMPLETE] addr=%02x******%02x%02x addr_type:%d @hci_ev_le.c(417),ERROR" ID="0x8ad00d0a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[HCI][LE_META_ISO_EV] it is iso event @hci_ev_le.c(536),INFO" ID="0x8ad010c5" />
<MSG STRUCTURE="diag_log_msg1" NAME="[JITWS][AVDTP]a2dp_set_config_ind_cfm: can't find a2dp stream handle by input HANDLE=0x%x @a2dp_hlp.c(116),INFO" ID="0x8abe03a5" />
<MSG STRUCTURE="diag_log_msg2" NAME="llc_chnl_cls_feats_process:conhdl:%d, dest_id:%d @llc_channel_classification.c(135),INFO" ID="0x89f4043d" />
<MSG STRUCTURE="diag_log_msg4" NAME="[CLS]map[0]:%d,map[1]:%d,map[2]:%d,map[3]:%d @llc_channel_classification.c(157),INFO" ID="0x89f404ed" />
<MSG STRUCTURE="diag_log_msg2" NAME="[INFO][param] BTC TopOfStack(%x), StackSize(%x) @bt_thread.c(741),INFO" ID="0x8924172d" />
<MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]bt_run_state_report OK @bt_thread.c(801),INFO" ID="0x8924190d" />
<MSG STRUCTURE="diag_log_msg1" NAME="[INFO][BT]g_BtRunState=%d @bt_thread.c(816),INFO" ID="0x89241985" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP][RandAddrCfm][ERROR] gap_fsminst is NULL @gap_hlp_le.c(1227),INFO" ID="0x8b8c265d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTI_ADV_PARAM, RESULT=0x%x @gap_hlp_le.c(2059),INFO" ID="0x8b8c405d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTI_DATA, RESULT=0x%x @gap_hlp_le.c(2124),INFO" ID="0x8b8c4265" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTI_RANDOM_ADDR, RESULT=0x%x @gap_hlp_le.c(2166),INFO" ID="0x8b8c43b5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP][LE_MULTI_ADV][ERROR] gap_fsminst is NULL @gap_hlp_le.c(2169),INFO" ID="0x8b8c43cd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTIADV_ENABLE, RESULT=0x%x @gap_hlp_le.c(2235),INFO" ID="0x8b8c45dd" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_ADV_PARAM, SUB_CODE=%d, HANDLE=0x%x @gap_hlp_le.c(2313),INFO" ID="0x8b8c484d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_ADV_DATA, SUB_CODE=%d, HANDLE=0x%x @gap_hlp_le.c(2345),INFO" ID="0x8b8c494d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_RANDOM_ADDR, SUB_CODE=%d, HANDLE=0x%x @gap_hlp_le.c(2369),INFO" ID="0x8b8c4a0d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_ADV_ENABLE, SUB_CODE=%d, HANDLE=0x%x, ENABLE=%d @gap_hlp_le.c(2400),INFO" ID="0x8b8c4b05" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[GAP] own_address_type = %x adv_event_flag = %x @gap_hlp_le.c(2553),INFO" ID="0x8b8c4fcd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]set ext adv - BT init not complete!!! @gap_hlp_le.c(3073),WARNING" ID="0x8b8c600b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3525),ERROR" ID="0x8b8c6e2a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3531),ERROR" ID="0x8b8c6e5a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3539),ERROR" ID="0x8b8c6e9a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3545),ERROR" ID="0x8b8c6eca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[GAP] smp cbk event:%d @gap_hlp_le.c(507),ERROR" ID="0x8b8c0fda" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP][RandAddrCfm][ERROR] gap_fsminst is NULL @gap_hlp_le.c(1229),INFO" ID="0x8b8c266d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTI_ADV_PARAM, RESULT=0x%x @gap_hlp_le.c(2061),INFO" ID="0x8b8c406d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTI_DATA, RESULT=0x%x @gap_hlp_le.c(2126),INFO" ID="0x8b8c4275" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTI_RANDOM_ADDR, RESULT=0x%x @gap_hlp_le.c(2168),INFO" ID="0x8b8c43c5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP][LE_MULTI_ADV][ERROR] gap_fsminst is NULL @gap_hlp_le.c(2171),INFO" ID="0x8b8c43dd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTIADV_ENABLE, RESULT=0x%x @gap_hlp_le.c(2237),INFO" ID="0x8b8c45ed" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_ADV_PARAM, SUB_CODE=%d, HANDLE=0x%x @gap_hlp_le.c(2315),INFO" ID="0x8b8c485d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_ADV_DATA, SUB_CODE=%d, HANDLE=0x%x @gap_hlp_le.c(2347),INFO" ID="0x8b8c495d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_RANDOM_ADDR, SUB_CODE=%d, HANDLE=0x%x @gap_hlp_le.c(2371),INFO" ID="0x8b8c4a1d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_ADV_ENABLE, SUB_CODE=%d, HANDLE=0x%x, ENABLE=%d @gap_hlp_le.c(2402),INFO" ID="0x8b8c4b15" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[GAP] own_address_type = %x adv_event_flag = %x @gap_hlp_le.c(2555),INFO" ID="0x8b8c4fdd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]set ext adv - BT init not complete!!! @gap_hlp_le.c(3075),WARNING" ID="0x8b8c601b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3527),ERROR" ID="0x8b8c6e3a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3533),ERROR" ID="0x8b8c6e6a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3541),ERROR" ID="0x8b8c6eaa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3547),ERROR" ID="0x8b8c6eda" />
<MSG STRUCTURE="diag_log_msg2" NAME="[WARNING]hci_bt_voice_over_dsp_param_handler acl_par[0x%x] sco_par[0x%x] @lc_hci_vodsp.c(50),WARNING" ID="0x8a500193" />
<MSG STRUCTURE="diag_log_msg1" NAME="uapi_adp_map dsp2bt_mem_hdl:0x%x success! @lc_hci_vodsp.c(63),INFO" ID="0x8a5001fd" />
<MSG STRUCTURE="diag_log_msg1" NAME="uapi_adp_map bt2dsp_mem_hdl:0x%x success! @lc_hci_vodsp.c(70),INFO" ID="0x8a500235" />
<MSG STRUCTURE="diag_log_msg0" NAME="bt_abort_when_work @ld.c(332),INFO" ID="0x88920a65" />
<MSG STRUCTURE="diag_log_msg3" NAME="[BTC][CQDDR_RX_STAT] link_id=%d, next_rate_found=%d, next_rate_idx=%d @ld.c(968),INFO" ID="0x88921e45" />
<MSG STRUCTURE="diag_log_msg3" NAME="[LD][INIT]local_bd_addr=0x%0x:0x%0x:*:*:*:0x%0x @ld.c(1171),INFO" ID="0x8892249d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP][HCI]memcpy failed @hci_core_ram.c(158),ERROR" ID="0x8ba604f2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hci][len] %02x @hci_core_ram.c(888),INFO" ID="0x8ba61bc5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][H-->C] %02x @hci_core_ram.c(891),INFO" ID="0x8ba61bdd" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[T%x][TIMEOUT] OPCODE=0x%x, TIMER=0x%x @hci_core_ram.c(1239),WARNING" ID="0x8ba626bb" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[TIMEOUT] OPCODE=0x%x, TIMER=0x%x @hci_core_ram.c(1243),WARNING" ID="0x8ba626db" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[MEMCPY_FAILED]RecvDataBuff Memcpy fail @hci_core_ram.c(1466),DBG" ID="0x8ba62dd6" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[MEMCPY_FAILED]RecvDataBuff Memcpy fail @hci_core_ram.c(1484),DBG" ID="0x8ba62e66" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[NO GLE]Gle %d! @hci_core_ram.c(1515),INFO" ID="0x8ba62f5d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP][HCI]memcpy failed @hci_core_ram.c(165),ERROR" ID="0x8ba6052a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI] cmd_opcode 0x%x @hci_core_ram.c(894),ERROR" ID="0x8ba61bf2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hci][len] %02x @hci_core_ram.c(897),INFO" ID="0x8ba61c0d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][H-->C] %02x @hci_core_ram.c(900),INFO" ID="0x8ba61c25" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[T%x][TIMEOUT] OPCODE=0x%x, TIMER=0x%x @hci_core_ram.c(1248),WARNING" ID="0x8ba62703" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[HCI][TIMEOUT] OPCODE=0x%x, TIMER=0x%x @hci_core_ram.c(1252),ERROR" ID="0x8ba62722" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[MEMCPY_FAILED]RecvDataBuff Memcpy fail @hci_core_ram.c(1481),DBG" ID="0x8ba62e4e" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[MEMCPY_FAILED]RecvDataBuff Memcpy fail @hci_core_ram.c(1499),DBG" ID="0x8ba62ede" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][RX] external fsm buff overflow! fsm_limit=%lu @hci_core_ram.c(1536),ERROR" ID="0x8ba63002" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][RX]external fsm buff overflow! free buff opcode=0x%x @hci_core_ram.c(1541),ERROR" ID="0x8ba6302a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[NO GLE]Gle %d! @hci_core_ram.c(1573),INFO" ID="0x8ba6312d" />
<MSG STRUCTURE="diag_log_msg1" NAME="[INFO]:Start DFT with hook_type=%d @log_oam_msg.c(259),INFO" ID="0xa006081d" />
<MSG STRUCTURE="diag_log_msg2" NAME="[OML]recv oml msg type:%d, length:%d @log_oam_msg.c(511),INFO" ID="0xa0060ffd" />
<MSG STRUCTURE="diag_log_msg0" NAME="receive hci message succ! @log_oam_msg.c(539),INFO" ID="0xa00610dd" />
<MSG STRUCTURE="diag_log_msg2" NAME="[WARNING] llcp_channel_map_req_handler, INSTANT_PASSED, instant=%d, counter=%d @llc_llcp.c(3624),WARNING" ID="0x88387143" />
<MSG STRUCTURE="diag_log_msg2" NAME="[INFO][LLC]llc_channel_map_instant_exec:dummy=%d,opcode=%d @llc_llcp.c(3663),INFO" ID="0x8838727d" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][LLC]llcp_channel_map_req_handler:llc_env_ptr is null @llc_llcp.c(3693),WARNING" ID="0x8838736b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="smp_pair_new_patch @patch_bth.c(42),INFO" ID="0x8d540155" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[AVDTP][GET_SEP_FAIL] Can not get sep info @patch_bth.c(146),WARNING" ID="0x8d540493" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[STACK][RECV_RING_STOP] @patch_bth.c(234),INFO" ID="0x8d540755" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="smp_pair_new_patch @patch_bth.c(43),INFO" ID="0x8d54015d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[AVDTP][GET_SEP_FAIL] Can not get sep info @patch_bth.c(147),WARNING" ID="0x8d54049b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[STACK][RECV_RING_STOP] @patch_bth.c(235),INFO" ID="0x8d54075d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT_GATT] att error rsp opcode:0x%x handle:%d error:0x%x @patch_bth.c(315),ERROR" ID="0x8d5409da" />
<MSG STRUCTURE="diag_log_msg1" NAME="ble add ble white list fail: %d @bt_mpc_adpt_gap.c(52),ERROR" ID="0x8dd401a2" />
<MSG STRUCTURE="diag_log_msg1" NAME="ble add ble white list params err! len = %d @bt_mpc_adpt_gap.c(56),ERROR" ID="0x8dd401c2" />
<MSG STRUCTURE="diag_log_msg1" NAME="ble remove all ble white list fail: %d @bt_mpc_adpt_gap.c(71),ERROR" ID="0x8dd4023a" />
<MSG STRUCTURE="diag_log_msg1" NAME="bt mpc read remote rssi: %d @bt_mpc_adpt_gap.c(522),ERROR" ID="0x8dd41052" />
<MSG STRUCTURE="diag_log_msg1" NAME="bt mpc read remote rssi err! len = %d @bt_mpc_adpt_gap.c(525),ERROR" ID="0x8dd4106a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ECC]release semaphore fail @ecc_p256.c(1857),INFO" ID="0x89463a0d" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[HCI] remove remote exceed upper limit %d addr:%02x:%02x:xx:xx:xx:%02x! @hci_hlp_ram.c(522),WARNING" ID="0x8ba81053" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI] remove remote exceed upper limit %d addr:%02x:%02x:xx:xx:xx:%02x! @hci_hlp_ram.c(522),ERROR" ID="0x8ba81052" />
<MSG STRUCTURE="diag_log_msg0" NAME="[HCI]memcpy_s error @hci_hlp_ram.c(542),ERROR" ID="0x8ba810f2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="rx_phy is %d @patch_llc.c(19),INFO" ID="0x8a5a009d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="rx_phy is %d @patch_llc.c(19),INFO" ID="0x8a5e009d" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_reserve.c(141),ERROR" ID="0x8dee046a" />
<MSG STRUCTURE="diag_log_msg1" NAME="[productline cali]productline_cali_start_tx, freq=%d, @bt_productline.c(41),INFO" ID="0x88fc014d" />
<MSG STRUCTURE="diag_log_msg0" NAME="[productline cali]productline_cali_stop_tx @bt_productline.c(61),INFO" ID="0x88fc01ed" />
<MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt reliable write characteristic value req interface fail, ret%d @bt_mpc_adpt_gatt.c(576),WARNING" ID="0x8dd61203" />
<MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt write descriptor req param len error, len = %u @bt_mpc_adpt_gatt.c(587),ERROR" ID="0x8dd6125a" />
<MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt write descriptor req interface fail, ret%d @bt_mpc_adpt_gatt.c(594),WARNING" ID="0x8dd61293" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble notify att read data memcpy error! error_code = %x @bt_mpc_adpt_gatt.c(625),INFO" ID="0x8dd6138d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble notify att read addr memcpy error! error_code = %x @bt_mpc_adpt_gatt.c(632),INFO" ID="0x8dd613c5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu config req param len error, len = %u @bt_mpc_adpt_gatt.c(653),ERROR" ID="0x8dd6146a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu config req interface fail, ret%d @bt_mpc_adpt_gatt.c(660),WARNING" ID="0x8dd614a3" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt get hid report map req param len error, len = %u @bt_mpc_adpt_gatt.c(672),ERROR" ID="0x8dd61502" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt get hid report map req interface fail, ret%d @bt_mpc_adpt_gatt.c(679),WARNING" ID="0x8dd6153b" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt read descriptor req param len error, len = %u @bt_mpc_adpt_gatt.c(732),WARNING" ID="0x8dd616e3" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt read descriptor req param fail, ret%d @bt_mpc_adpt_gatt.c(738),WARNING" ID="0x8dd61713" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu set req param len error, len = %u @bt_mpc_adpt_gatt.c(750),ERROR" ID="0x8dd61772" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu set req interface fail, ret%d @bt_mpc_adpt_gatt.c(757),WARNING" ID="0x8dd617ab" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble notify att read addr memcpy error! error_code = %x @bt_mpc_adpt_gatt.c(617),ERROR" ID="0x8dd6134a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble notify att read data memcpy error! error_code = %x @bt_mpc_adpt_gatt.c(642),INFO" ID="0x8dd61415" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble notify att read addr memcpy error! error_code = %x @bt_mpc_adpt_gatt.c(649),INFO" ID="0x8dd6144d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu config req param len error, len = %u @bt_mpc_adpt_gatt.c(670),ERROR" ID="0x8dd614f2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu config req interface fail, ret%d @bt_mpc_adpt_gatt.c(677),WARNING" ID="0x8dd6152b" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt get hid report map req param len error, len = %u @bt_mpc_adpt_gatt.c(689),ERROR" ID="0x8dd6158a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt get hid report map req interface fail, ret%d @bt_mpc_adpt_gatt.c(696),WARNING" ID="0x8dd615c3" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt read descriptor req param len error, len = %u @bt_mpc_adpt_gatt.c(753),WARNING" ID="0x8dd6178b" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt read descriptor req param fail, ret%d @bt_mpc_adpt_gatt.c(759),WARNING" ID="0x8dd617bb" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu set req param len error, len = %u @bt_mpc_adpt_gatt.c(771),ERROR" ID="0x8dd6181a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu set req interface fail, ret%d @bt_mpc_adpt_gatt.c(778),WARNING" ID="0x8dd61853" />
<MSG STRUCTURE="diag_log_msg3" NAME="[BIS]rxmaxtime=%d,sub_intv=%d,bis_spacing=%d @lld_bis.c(279),INFO" ID="0x895c08bd" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ERROR][BIS]bis tx desc alloc fail @lld_bis.c(455),ERROR" ID="0x895c0e3a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]create elt fail @lld_bis.c(521),WARNING" ID="0x895c104b" />
<MSG STRUCTURE="diag_log_msg2" NAME="[INFO][LLC][AOA]lld_cte_conn_rx_hw_set:phyrate=%d, slot_duration=%d @lld_cte.c(504),INFO" ID="0x88620fc5" />
<MSG STRUCTURE="diag_log_msg4" NAME="[INFO][BT][CTE]lld_cte_iq_process:slot_dur = 0x%x, cte_time = %d, cte_type = %d, samp_cnt = %d @lld_cte.c(684),INFO" ID="0x88621565" />
<MSG STRUCTURE="diag_log_msg0" NAME="[INFO][CTE]lld_cte_save_iq_samp: suppflag DO NOT exist! @lld_cte.c(730),INFO" ID="0x886216d5" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][SEND_ACL_DATA] SLOT=%u, LEN=%u, Remaining Packet NUM=%u, HANDLE=0x%x @hci_data_proc.c(114),INFO" ID="0x8bda0395" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[HCI]memcpy error @hci_data_proc.c(372),ERROR" ID="0x8bda0ba2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[HCI]memcpy error @hci_data_proc.c(378),ERROR" ID="0x8bda0bd2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][RECV_ACL_DATA] CONN_HANDLE=0x%x, link not found @hci_data_proc.c(465),INFO" ID="0x8bda0e8d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][H-->C] OPCODE=0x%x, HANDLE=0x%x, LEN=%u @hci_data_proc.c(669),INFO" ID="0x8bda14ed" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] OPCODE=0x%x, OGF=0x%x, disc_reason=0x%x, LEN=%u @hci_data_proc.c(679),INFO" ID="0x8bda153d" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] OPCODE=0x%x, OGF=0x%x, OCF=0x%x, LEN=%u @hci_data_proc.c(685),WARNING" ID="0x8bda156b" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][H-->C] OPCODE=0x%x, HANDLE=0x%x, LEN=%u @hci_data_proc.c(706),DBG" ID="0x8bda1616" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] OPCODE=0x%x, OGF=0x%x, OCF=0x%x, LEN=%u @hci_data_proc.c(711),DBG" ID="0x8bda163e" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][H-->C] LEN=%u @hci_data_proc.c(726),DBG" ID="0x8bda16b6" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] %02x %02x %02x %02x @hci_data_proc.c(732),DBG" ID="0x8bda16e6" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][H-->C] %02x %02x %02x @hci_data_proc.c(737),DBG" ID="0x8bda170e" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[HCI][H-->C] %02x %02x @hci_data_proc.c(740),DBG" ID="0x8bda1726" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][H-->C] %02x @hci_data_proc.c(742),DBG" ID="0x8bda1736" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[A2DP][HCI] a2dp_audio:first frame to btc, only for a2dp service. @hci_data_proc.c(761),INFO" ID="0x8bda17cd" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][SEND_ACL_DATA] SLOT=%u, LEN=%u, Remaining Packet NUM=%u, HANDLE=0x%x @hci_data_proc.c(134),INFO" ID="0x8bda0435" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[HCI]memcpy error @hci_data_proc.c(394),ERROR" ID="0x8bda0c52" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[HCI]memcpy error @hci_data_proc.c(400),ERROR" ID="0x8bda0c82" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][RECV_ACL_DATA] CONN_HANDLE=0x%x, link not found @hci_data_proc.c(489),INFO" ID="0x8bda0f4d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][H-->C] OPCODE=0x%x, HANDLE=0x%x, LEN=%u @hci_data_proc.c(697),INFO" ID="0x8bda15cd" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] OPCODE=0x%x, OGF=0x%x, disc_reason=0x%x, LEN=%u @hci_data_proc.c(707),INFO" ID="0x8bda161d" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] OPCODE=0x%x, OGF=0x%x, OCF=0x%x, LEN=%u @hci_data_proc.c(713),WARNING" ID="0x8bda164b" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][H-->C] OPCODE=0x%x, HANDLE=0x%x, LEN=%u @hci_data_proc.c(734),DBG" ID="0x8bda16f6" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] OPCODE=0x%x, OGF=0x%x, OCF=0x%x, LEN=%u @hci_data_proc.c(739),DBG" ID="0x8bda171e" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][H-->C] LEN=%u @hci_data_proc.c(754),DBG" ID="0x8bda1796" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] %02x %02x %02x %02x @hci_data_proc.c(760),DBG" ID="0x8bda17c6" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][H-->C] %02x %02x %02x @hci_data_proc.c(765),DBG" ID="0x8bda17ee" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[HCI][H-->C] %02x %02x @hci_data_proc.c(768),DBG" ID="0x8bda1806" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][H-->C] %02x @hci_data_proc.c(770),DBG" ID="0x8bda1816" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[A2DP][HCI] a2dp_audio:first frame to btc, only for a2dp service. @hci_data_proc.c(789),INFO" ID="0x8bda18ad" />
<MSG STRUCTURE="diag_log_msg4" NAME="[BTH MIPS][TRANS_TASK][%ld]MS,[RECV TASK][%ld]MS, [SCHEDULE TASK][%ld]MS, [ISR][%ld]MS @bt_dfx.c(108),INFO" ID="0x8df80365" />
<MSG STRUCTURE="diag_log_msg1" NAME="[INFO][HCI]hci_rd_phy_cmd_handler Enter! conhdl=%d @lc_hci_uhd.c(56),INFO" ID="0x89a401c5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[INFO][HCI]hci_rd_phy_cmd_handler:lc_env_ptr is NULL @lc_hci_uhd.c(62),WARNING" ID="0x89a401f3" />
<MSG STRUCTURE="diag_log_msg2" NAME="BTC_TWS->sear_abort_rx_lmp:opcode = %d, ext_opcode = %d @lm_tws_monitor.c(85),WARNING" ID="0x89ea02ab" />
<MSG STRUCTURE="diag_log_msg3" NAME="[SNIFF OFFSET] Cmd = %d 0:HL,1:PEER,2:UPDATE, offset = %d, Flag = %d @lm_tws_monitor.c(105),INFO" ID="0x89ea034d" />
<MSG STRUCTURE="diag_log_msg4" NAME="[SNIFF OFFSET] Linkid = %d, role = %d, 0:M,1:S, ClockN = 0x%x, clk_off = 0x%x @lm_tws_monitor.c(109),INFO" ID="0x89ea036d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : HciEvConnUpdate, ev NULL @ble_general.c(114),ERROR" ID="0x8dda0392" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : conn result status = 0x%02x @ble_general.c(122),INFO" ID="0x8dda03d5" />
- <MSG STRUCTURE="diag_log_msg4" NAME="ble general : handle&interval&latency&timeout, 0x%04x & 0x%04x & 0x%04x & 0x%04x @ble_general.c(125),INFO" ID="0x8dda03ed" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : memcpy conn para result fail: %d @ble_general.c(134),ERROR" ID="0x8dda0432" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : conn para result malloc fail: %d @ble_general.c(143),ERROR" ID="0x8dda047a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : HciEvEncryptionChange, ev NULL @ble_general.c(153),ERROR" ID="0x8dda04ca" />
- <MSG STRUCTURE="diag_log_msg3" NAME="ble general : ENCRYPTION, status&handle&result = 0x%02x & 0x%04x & 0x%02x @ble_general.c(164),INFO" ID="0x8dda0525" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : HciEncryptionNegativeReply, ev NULL @ble_general.c(185),ERROR" ID="0x8dda05ca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : BLE GENERAL KEY MISS, handle = 0x%02x @ble_general.c(189),ERROR" ID="0x8dda05ea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general pair cfm callback, result = 0x%04x @ble_general.c(202),INFO" ID="0x8dda0655" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy addr fail when pair cbk @ble_general.c(209),ERROR" ID="0x8dda068a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general start pair ble addr null @ble_general.c(226),ERROR" ID="0x8dda0712" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy addr fail when start pair @ble_general.c(232),ERROR" ID="0x8dda0742" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : set bondle fail = %d @ble_general.c(240),ERROR" ID="0x8dda0782" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general start ble pair addr type = %d @ble_general.c(246),INFO" ID="0x8dda07b5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update param is NULL @ble_general.c(262),ERROR" ID="0x8dda0832" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update in is NULL @ble_general.c(269),ERROR" ID="0x8dda086a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update, ble remote addr NULL @ble_general.c(275),ERROR" ID="0x8dda089a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update, memcpy fail @ble_general.c(282),ERROR" ID="0x8dda08d2" />
- <MSG STRUCTURE="diag_log_msg2" NAME="ble general : ConnUpdate cap&atype = 0x%02x & 0x%02x @ble_general.c(295),INFO" ID="0x8dda093d" />
- <MSG STRUCTURE="diag_log_msg4" NAME="ble general : min&max&latency&timeout, 0x%04x & 0x%04x & 0x%04x & 0x%04x @ble_general.c(298),INFO" ID="0x8dda0955" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general conn update fail: %d @ble_general.c(304),ERROR" ID="0x8dda0982" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general disconnect, bleRemoteAddr_cpy NULL @ble_general.c(322),ERROR" ID="0x8dda0a12" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general disconnect, memcpy fail @ble_general.c(328),ERROR" ID="0x8dda0a42" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general connect memcpy fail @ble_general.c(349),ERROR" ID="0x8dda0aea" />
- <MSG STRUCTURE="diag_log_msg2" NAME="ble general set sec params bondable & io_capability 0x%02x%02x @ble_general.c(389),INFO" ID="0x8dda0c2d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general set sec params set bondable failed @ble_general.c(394),INFO" ID="0x8dda0c55" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general set sec params set io capability failed @ble_general.c(401),INFO" ID="0x8dda0c8d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general set sec params failed @ble_general.c(414),INFO" ID="0x8dda0cf5" />
- <MSG STRUCTURE="diag_log_msg2" NAME="ble general set sec params ok! g_config_smp_lesc = %u, g_config_smp_mode = %u @ble_general.c(419),INFO" ID="0x8dda0d1d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general remove smp key addr NULL @ble_general.c(431),ERROR" ID="0x8dda0d7a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general remove smp key mamcpy fail @ble_general.c(444),ERROR" ID="0x8dda0de2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general remove smp key new fail %d @ble_general.c(450),ERROR" ID="0x8dda0e12" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general ble notification param is NULL @ble_general.c(472),ERROR" ID="0x8dda0ec2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : notify len_cpy error: %d @ble_general.c(478),ERROR" ID="0x8dda0ef2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general ble start pair new in is NULL @ble_general.c(487),ERROR" ID="0x8dda0f3a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy ble_value fail when notify @ble_general.c(494),ERROR" ID="0x8dda0f72" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memset addr error when notify @ble_general.c(505),ERROR" ID="0x8dda0fca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : sais service cb arg is NULL @ble_general.c(520),ERROR" ID="0x8dda1042" />
- <MSG STRUCTURE="diag_log_msg2" NAME="ble general : GattsSaisServiceCbk, event len = %d, %d @ble_general.c(527),INFO" ID="0x8dda107d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg sais service service is NULL @ble_general.c(569),ERROR" ID="0x8dda11ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg sais service character is NULL @ble_general.c(580),ERROR" ID="0x8dda1222" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : alipay service cb arg is NULL @ble_general.c(603),ERROR" ID="0x8dda12da" />
- <MSG STRUCTURE="diag_log_msg3" NAME="ble general : GattsAlipayServiceCbk, uuid = 0x%x, event = %d, len = %d @ble_general.c(611),INFO" ID="0x8dda131d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : GattsAlipayServiceCbk, pend uuid = 0x%04x @ble_general.c(632),DBG" ID="0x8dda13c6" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg alipay service service is NULL @ble_general.c(661),ERROR" ID="0x8dda14aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg alipay service character is NULL @ble_general.c(672),ERROR" ID="0x8dda1502" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : BleGeneralGattCallback_arg NULL @ble_general.c(688),ERROR" ID="0x8dda1582" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ANCS]Get Notification data, len=%d @ble_general.c(709),INFO" ID="0x8dda162d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : gap general conn cb para is NULL @ble_general.c(770),ERROR" ID="0x8dda1812" />
- <MSG STRUCTURE="diag_log_msg2" NAME="ble general : ble general connection event & cap: 0x%02x, 0x%02x @ble_general.c(777),INFO" ID="0x8dda184d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : gap general smp succeed cb para is NULL @ble_general.c(813),ERROR" ID="0x8dda196a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : authentication failure cb para is NULL @ble_general.c(834),ERROR" ID="0x8dda1a12" />
- <MSG STRUCTURE="diag_log_msg2" NAME="ble general : BLE GENERAL SMP REQUEST FAIL, cap = 0x%02x status: %x @ble_general.c(841),ERROR" ID="0x8dda1a4a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy addr fail when authentication @ble_general.c(849),ERROR" ID="0x8dda1a8a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : other branch @ble_general.c(867),INFO" ID="0x8dda1b1d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : gap cb event: 0x%02x @ble_general.c(902),INFO" ID="0x8dda1c35" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : batery service cb arg_cpy is NULL @ble_general.c(934),ERROR" ID="0x8dda1d32" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg battery service is NULL @ble_general.c(967),ERROR" ID="0x8dda1e3a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg battery service character is NULL @ble_general.c(982),ERROR" ID="0x8dda1eb2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="unknown product type:%x @ble_general.c(1009),INFO" ID="0x8dda1f8d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="product type:%x @ble_general.c(1017),INFO" ID="0x8dda1fcd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : App_RecoverSMPKeys data_len err, %d @ble_general.c(1080),ERROR" ID="0x8dda21c2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : NEW key_list fail, %d @ble_general.c(1086),ERROR" ID="0x8dda21f2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : List NEW key fail, %d @ble_general.c(1101),ERROR" ID="0x8dda226a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : List NEW key fail, %d @ble_general.c(1109),ERROR" ID="0x8dda22aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general ble init cBacks is NULL @ble_general.c(1132),ERROR" ID="0x8dda2362" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy cBacks fail when ble general ble init @ble_general.c(1139),ERROR" ID="0x8dda239a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : HciEvConnUpdate, ev NULL @ble_general.c(111),ERROR" ID="0x8dda037a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : conn result status = 0x%02x @ble_general.c(119),INFO" ID="0x8dda03bd" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="ble general : handle&interval&latency&timeout, 0x%04x & 0x%04x & 0x%04x & 0x%04x @ble_general.c(122),INFO" ID="0x8dda03d5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : HciEvEncryptionChange, ev NULL @ble_general.c(139),ERROR" ID="0x8dda045a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="ble general : ENCRYPTION, status&handle&result = 0x%02x & 0x%04x & 0x%02x @ble_general.c(150),INFO" ID="0x8dda04b5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : HciEncryptionNegativeReply, ev NULL @ble_general.c(168),ERROR" ID="0x8dda0542" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : BLE GENERAL KEY MISS, handle = 0x%02x @ble_general.c(172),ERROR" ID="0x8dda0562" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general pair cfm callback, result = 0x%04x @ble_general.c(181),INFO" ID="0x8dda05ad" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general start pair ble addr null @ble_general.c(195),ERROR" ID="0x8dda061a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy addr fail when start pair @ble_general.c(201),ERROR" ID="0x8dda064a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : set bondle fail = %d @ble_general.c(209),ERROR" ID="0x8dda068a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general start ble pair addr type = %d @ble_general.c(215),INFO" ID="0x8dda06bd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update param is NULL @ble_general.c(231),ERROR" ID="0x8dda073a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update in is NULL @ble_general.c(238),ERROR" ID="0x8dda0772" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update, ble remote addr NULL @ble_general.c(244),ERROR" ID="0x8dda07a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update, memcpy fail @ble_general.c(251),ERROR" ID="0x8dda07da" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ble general : ConnUpdate cap&atype = 0x%02x & 0x%02x @ble_general.c(264),INFO" ID="0x8dda0845" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="ble general : min&max&latency&timeout, 0x%04x & 0x%04x & 0x%04x & 0x%04x @ble_general.c(267),INFO" ID="0x8dda085d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general conn update fail: %d @ble_general.c(273),ERROR" ID="0x8dda088a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general disconnect, bleRemoteAddr_cpy NULL @ble_general.c(291),ERROR" ID="0x8dda091a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general disconnect, memcpy fail @ble_general.c(297),ERROR" ID="0x8dda094a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general connect memcpy fail @ble_general.c(318),ERROR" ID="0x8dda09f2" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ble general set sec params bondable & io_capability 0x%02x%02x @ble_general.c(358),INFO" ID="0x8dda0b35" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general set sec params set bondable failed @ble_general.c(363),INFO" ID="0x8dda0b5d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general set sec params set io capability failed @ble_general.c(370),INFO" ID="0x8dda0b95" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general set sec params failed @ble_general.c(383),INFO" ID="0x8dda0bfd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ble general set sec params ok! g_config_smp_lesc = %u, g_config_smp_mode = %u @ble_general.c(388),INFO" ID="0x8dda0c25" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general remove smp key addr NULL @ble_general.c(400),ERROR" ID="0x8dda0c82" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general remove smp key mamcpy fail @ble_general.c(413),ERROR" ID="0x8dda0cea" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general remove smp key new fail %d @ble_general.c(419),ERROR" ID="0x8dda0d1a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general ble notification param is NULL @ble_general.c(441),ERROR" ID="0x8dda0dca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : notify len_cpy error: %d @ble_general.c(447),ERROR" ID="0x8dda0dfa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general ble start pair new in is NULL @ble_general.c(456),ERROR" ID="0x8dda0e42" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy ble_value fail when notify @ble_general.c(463),ERROR" ID="0x8dda0e7a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memset addr error when notify @ble_general.c(474),ERROR" ID="0x8dda0ed2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : sais service cb arg is NULL @ble_general.c(489),ERROR" ID="0x8dda0f4a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ble general : GattsSaisServiceCbk, event len = %d, %d @ble_general.c(496),INFO" ID="0x8dda0f85" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg sais service service is NULL @ble_general.c(538),ERROR" ID="0x8dda10d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg sais service character is NULL @ble_general.c(549),ERROR" ID="0x8dda112a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : alipay service cb arg is NULL @ble_general.c(572),ERROR" ID="0x8dda11e2" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="ble general : GattsAlipayServiceCbk, uuid = 0x%x, event = %d, len = %d @ble_general.c(580),INFO" ID="0x8dda1225" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : GattsAlipayServiceCbk, pend uuid = 0x%04x @ble_general.c(601),DBG" ID="0x8dda12ce" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg alipay service service is NULL @ble_general.c(630),ERROR" ID="0x8dda13b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg alipay service character is NULL @ble_general.c(641),ERROR" ID="0x8dda140a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : BleGeneralGattCallback_arg NULL @ble_general.c(657),ERROR" ID="0x8dda148a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ANCS]Get Notification data, len=%d @ble_general.c(678),INFO" ID="0x8dda1535" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : gap general conn cb para is NULL @ble_general.c(739),ERROR" ID="0x8dda171a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ble general : ble general connection event & cap: 0x%02x, 0x%02x @ble_general.c(746),INFO" ID="0x8dda1755" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : gap general smp succeed cb para is NULL @ble_general.c(782),ERROR" ID="0x8dda1872" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : memcpy smp key store value fail: %d @ble_general.c(791),ERROR" ID="0x8dda18ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : authentication failure cb para is NULL @ble_general.c(801),ERROR" ID="0x8dda190a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ble general : BLE GENERAL SMP REQUEST FAIL, cap = 0x%02x status: %x @ble_general.c(808),ERROR" ID="0x8dda1942" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy addr fail when authentication @ble_general.c(815),ERROR" ID="0x8dda197a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : other branch @ble_general.c(831),INFO" ID="0x8dda19fd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : gap cb event: 0x%02x @ble_general.c(870),ERROR" ID="0x8dda1b32" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : batery service cb arg_cpy is NULL @ble_general.c(904),ERROR" ID="0x8dda1c42" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg battery service is NULL @ble_general.c(937),ERROR" ID="0x8dda1d4a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg battery service character is NULL @ble_general.c(952),ERROR" ID="0x8dda1dc2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="unknown product type:%x @ble_general.c(979),INFO" ID="0x8dda1e9d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="product type:%x @ble_general.c(987),INFO" ID="0x8dda1edd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : App_RecoverSMPKeys data_len err, %d @ble_general.c(1050),ERROR" ID="0x8dda20d2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : NEW key_list fail, %d @ble_general.c(1056),ERROR" ID="0x8dda2102" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : List NEW key fail, %d @ble_general.c(1071),ERROR" ID="0x8dda217a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : List NEW key fail, %d @ble_general.c(1079),ERROR" ID="0x8dda21ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general ble init cBacks is NULL @ble_general.c(1102),ERROR" ID="0x8dda2272" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy cBacks fail when ble general ble init @ble_general.c(1109),ERROR" ID="0x8dda22aa" />
<MSG STRUCTURE="diag_log_msg1" NAME="[WARNING]diag config :0x8182838C, get diag value is 0x%x @hibt_ram.c(110),WARNING" ID="0x88860373" />
<MSG STRUCTURE="diag_log_msg1" NAME="[WARNING]diag config :0x8d8e8f90, get diag value is 0x%x @hibt_ram.c(112),WARNING" ID="0x88860383" />
<MSG STRUCTURE="diag_log_msg1" NAME="[WARNING]diag config :0x919ba0a7, get diag value is 0x%x @hibt_ram.c(114),WARNING" ID="0x88860393" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNINIG][diag_isr]diag is going... @hibt_ram.c(388),WARNING" ID="0x88860c23" />
<MSG STRUCTURE="diag_log_msg1" NAME="[SPP][DLC_ESTAB_CFM] INIT_CREDITIN=%u @g_spp.c(209),INFO" ID="0x8b5e068d" />
<MSG STRUCTURE="diag_log_msg2" NAME="[SPP][CREITIN_IND] OLD_CREDITIN=%u, NEW_CREDITIN=%u @g_spp.c(414),DBG" ID="0x8b5e0cf6" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="mcu_int1_handler. @ipc_irq.c(74),ERROR" ID="0xa0600252" />
<MSG STRUCTURE="diag_log_msg3" NAME="[HCI]pts_mode=%d, is_le_ext_adving = %d, updated = %d @hci_le.c(147),INFO" ID="0x8b92049d" />
<MSG STRUCTURE="diag_log_msg1" NAME="[HCI]privacy=%d @hci_le.c(189),INFO" ID="0x8b9205ed" />
<MSG STRUCTURE="diag_log_msg1" NAME="[HCI]local->leisa_cur = %02x @hci_le.c(1272),INFO" ID="0x8b9227c5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[AE]ext adv elt not exist @lld_ae.c(3359),INFO" ID="0x89e068fd" />
<MSG STRUCTURE="diag_log_msg0" NAME="[AE]sync adv elt not exist @lld_ae.c(3372),INFO" ID="0x89e06965" />
<MSG STRUCTURE="diag_log_msg0" NAME="[AE]sync adv elt already in prog list @lld_ae.c(3384),INFO" ID="0x89e069c5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]lld_bis_report_rxnode:No rx_report buff! @patch_lld_bis_pdu.c(27),WARNING" ID="0x8a6600db" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[INFO][BIS]bis recombine:length=%d, recomb_flag=%d, pldcntr=%d, llid=%d @patch_lld_bis_pdu.c(58),WARNING" ID="0x8a6601d3" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BIS]lld_bis_pdu_framed_rx_check:invalid middle pkt @patch_lld_bis_pdu.c(120),INFO" ID="0x8a6603c5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BIS]lld_bis_pdu_framed_rx_check:invalid last pkt @patch_lld_bis_pdu.c(134),INFO" ID="0x8a660435" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]lld_bis_report_rxnode:No rx_report buff! @patch_lld_bis_pdu.c(27),WARNING" ID="0x8a6a00db" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[INFO][BIS]bis recombine:length=%d, recomb_flag=%d, pldcntr=%d, llid=%d @patch_lld_bis_pdu.c(58),WARNING" ID="0x8a6a01d3" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BIS]lld_bis_pdu_framed_rx_check:invalid middle pkt @patch_lld_bis_pdu.c(120),INFO" ID="0x8a6a03c5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BIS]lld_bis_pdu_framed_rx_check:invalid last pkt @patch_lld_bis_pdu.c(134),INFO" ID="0x8a6a0435" />
<MSG STRUCTURE="diag_log_msg1" NAME="[setup data path]coding=%d @llc_iso_hci.c(121),INFO" ID="0x883603cd" />
<MSG STRUCTURE="diag_log_msg1" NAME="[ISO]ISO conhdl don,t exist,conhdl=%d @llc_iso_hci.c(134),WARNING" ID="0x88360433" />
<MSG STRUCTURE="diag_log_msg2" NAME="[setup data path] set up out data path:%d, in data path:%d @llc_iso_hci.c(137),INFO" ID="0x8836044d" />
<MSG STRUCTURE="diag_log_msg3" NAME="[pscan stop]tx_time_total:%d, rx_time_total:%d, bt_statis_clock:%d @ld_pscan.c(923),WARNING" ID="0x88ba1cdb" />
<MSG STRUCTURE="diag_log_msg4" NAME="[WARNING]ts = 0x%x, asap_setting = %d, asap_limit = 0x%x, prio = %d @ld_pscan.c(1047),WARNING" ID="0x88ba20bb" />
<MSG STRUCTURE="diag_log_msg4" NAME="[WARNING]link_id = %d, step = %d, new_end_ts = 0x%x, rem_slots = %d @ld_pscan.c(1049),WARNING" ID="0x88ba20cb" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[BLE ACL] conhdl=%d, status:0x%04x, length:%d, rxflush|rxdone|cie:%08x @patch_lld_pdu.c(44),INFO" ID="0x8a540165" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BLE ACL] ccm 0x%x @patch_lld_pdu.c(45),INFO" ID="0x8a54016d" />
<MSG STRUCTURE="diag_log_msg2" NAME="audio_debug ipc_send dsp begin,sequence_number = 0x%x,length = 0x%x. @a2dp_hlp_ram.c(93),INFO" ID="0x8ba002ed" />
<MSG STRUCTURE="diag_log_msg1" NAME="audio_debug ready to go =======ipc_send dsp end===ret = %d. @a2dp_hlp_ram.c(100),INFO" ID="0x8ba00325" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ERROR]audio_debug ipc2dsp_msg_str fail @a2dp_hlp_ram.c(102),WARNING" ID="0x8ba00333" />
<MSG STRUCTURE="diag_log_msg4" NAME="[AUTORATE] llcp_ico_phy_update_req_handler: stream_id=%d, channel_id=%d, m2s_phy=0x%x, s2m_phy=0x%x @llc_ico_llcp.c(435),INFO" ID="0x883c0d9d" />
<MSG STRUCTURE="diag_log_msg3" NAME="[AUTORATE] llcp_ico_phy_update_req_handler: nse=%d, instant=%d, ico_evt_counter=%d @llc_ico_llcp.c(437),INFO" ID="0x883c0dad" />
<MSG STRUCTURE="diag_log_msg0" NAME="[AUTORATE] llcp_ico_phy_update_req_handler:instant passed @llc_ico_llcp.c(445),WARNING" ID="0x883c0deb" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]create big prepare fail @llc_bis_hci_ram.c(79),WARNING" ID="0x8a60027b" />
- <MSG STRUCTURE="diag_log_msg4" NAME="ea_prog_time_set current_time(0x%x)finetarget_time(0x%x),finecnt(%d),finetgtintmsk(%d) @patch_ea.c(68),WARNING" ID="0x8a540223" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]create big prepare fail @llc_bis_hci_ram.c(79),WARNING" ID="0x8a64027b" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="ea_prog_time_set current_time(0x%x)finetarget_time(0x%x),finecnt(%d),finetgtintmsk(%d) @patch_ea.c(68),WARNING" ID="0x8a580223" />
<MSG STRUCTURE="diag_log_msg0" NAME="sdk pan get local addr error @sdk_pan.c(30),ERROR" ID="0x8e7e00f2" />
<MSG STRUCTURE="diag_log_msg0" NAME="sdk pan get local addr invalid. @sdk_pan.c(34),ERROR" ID="0x8e7e0112" />
<MSG STRUCTURE="diag_log_msg0" NAME="sdk pan clean fail conn_hdl. @sdk_pan.c(61),INFO" ID="0x8e7e01ed" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]big param is NULL @llc_bis_hci.c(491),WARNING" ID="0x89560f5b" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]current role is master @llc_bis_hci.c(497),WARNING" ID="0x89560f8b" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]big trigger is false @llc_bis_hci.c(503),WARNING" ID="0x89560fbb" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BTOS][MEM_INTEGRITY_CHECK]Not support! @osdep.c(678),INFO" ID="0x8b981535" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BTOS][MEM_NEW]ALLOC_SIZE=%u, alloc fail! @osdep.c(709),WARNING" ID="0x8b98162b" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[MEM_FREE][%d][0x%p], caller:0x%x @osdep.c(746),INFO" ID="0x8b981755" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[BTOS][MEM_FREE]ERROR_CODE=%u, addr:0x%p, caller:0x%x free fail! @osdep.c(754),WARNING" ID="0x8b981793" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BTOS][MEM_NEW]ALLOC_SIZE=%u, alloc fail! @osdep.c(767),WARNING" ID="0x8b9817fb" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[BTOS][MEM_FREE]ERROR_CODE=%u, addr:0x%p, caller:0x%x, free fail! @osdep.c(782),WARNING" ID="0x8b981873" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BTOS][MEM_NEW_S]AVAILABLE_MEMORY=%u, alloc fail because under secure threshold size! @osdep.c(813),WARNING" ID="0x8b98196b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BTOS][MEM_INTEGRITY_CHECK]Not support! @osdep.c(680),INFO" ID="0x8b981545" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BTOS][MEM_NEW]ALLOC_SIZE=%u alloc fail! @osdep.c(712),ERROR" ID="0x8b981642" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[BTOS][MEM_NEW]fsm_count=%u fsm_limit=%u fsm_limit_max=%u hci_slice_rx=%u! @osdep.c(716),ERROR" ID="0x8b981662" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[MEM_FREE][%d][0x%p], caller:0x%x @osdep.c(753),INFO" ID="0x8b98178d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[BTOS][MEM_FREE]ERROR_CODE=%u, addr:0x%p, caller:0x%x free fail! @osdep.c(761),WARNING" ID="0x8b9817cb" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BTOS][MEM_NEW]ALLOC_SIZE=%u, alloc fail! @osdep.c(774),WARNING" ID="0x8b981833" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[BTOS][MEM_FREE]ERROR_CODE=%u, addr:0x%p, caller:0x%x, free fail! @osdep.c(789),WARNING" ID="0x8b9818ab" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BTOS][MEM_NEW_S]AVAILABLE_MEMORY=%u, alloc fail because under secure threshold size! @osdep.c(820),WARNING" ID="0x8b9819a3" />
<MSG STRUCTURE="diag_log_msg1" NAME="[FRONTEND]bt_tx_power_get param level is %d, OUT OF RANGE @bt_mdmrfabb_config.c(97),ERROR" ID="0x88f8030a" />
<MSG STRUCTURE="diag_log_msg0" NAME="memory alloc failed @sdk_spp.c(176),ERROR" ID="0x8b6c0582" />
<MSG STRUCTURE="diag_log_msg1" NAME="[sdk][spp]read_stream failed ret=0x%x @sdk_spp.c(181),INFO" ID="0x8b6c05ad" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ERROR][CTE]llcp_cte_rsp_handler: LLCP_SUPP_RSP Received! But current version software DO NOT support this feature. @llc_llcp_ram.c(700),ERROR" ID="0x896615e2" />
<MSG STRUCTURE="diag_log_msg0" NAME="[GAP][to_expire] wait_handle2 to_expire @hdlmgnt.c(428),INFO" ID="0x8ac80d65" />
<MSG STRUCTURE="diag_log_msg1" NAME="[HCI]CURRENT_LINK_MODE=0x%x, ACL Data Will be pend! @hci_link_br.c(217),INFO" ID="0x8bdc06cd" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][CONN_COMPLETE] LINK_STATUS=0x%x, EVENT_STATUS=0x%x, CONN_HDL=0x%x @hci_link_br.c(489),INFO" ID="0x8bdc0f4d" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][CONN_REQUEST] LINK_TYPE=0x%x, REMOTE_ADDR=%02x:%02x:**:**:**:%02x @hci_link_br.c(561),INFO" ID="0x8bdc118d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[HCI][REMOVE_LINK] REF_COUNT=%u, STATUS=%u @hci_link_br.c(646),INFO" ID="0x8bdc1435" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[HCI] create connection addr:%02x******%02x%02x @hci_link_br.c(257),ERROR" ID="0x8bdc080a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][CONN_COMPLETE] LINK_STATUS=0x%x, EVENT_STATUS=0x%x, CONN_HDL=0x%x @hci_link_br.c(494),ERROR" ID="0x8bdc0f72" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][CONN_REQUEST] LINK_TYPE=0x%x, REMOTE_ADDR=%02x:%02x:**:**:**:%02x @hci_link_br.c(569),ERROR" ID="0x8bdc11ca" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[HCI][REMOVE_LINK] REF_COUNT=%u, STATUS=%u @hci_link_br.c(653),ERROR" ID="0x8bdc146a" />
<MSG STRUCTURE="diag_log_msg3" NAME="[ERROR][CFG]rf ctl reg wr type err 0x%x, us_reg=0x%x, usval=0x%x @reg_access.c(58),ERROR" ID="0x893001d2" />
<MSG STRUCTURE="diag_log_msg3" NAME="[ERROR][CFG]rf ctl reg wr type err 0x%x, us_reg=0x%x, usval=0x%x @reg_access.c(100),ERROR" ID="0x89300322" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ble_general_gatt] find upper cbk fail @ble_general_gatt.c(91),ERROR" ID="0x8de002da" />
<MSG STRUCTURE="diag_log_msg1" NAME="ble gatt client characteristic value callback memcpy fail: %d @ble_general_gatt.c(665),ERROR" ID="0x8de014ca" />
<MSG STRUCTURE="diag_log_msg1" NAME="ble gatt client characteristic value callback memcpy fail: %d @ble_general_gatt.c(673),ERROR" ID="0x8de0150a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[BCore] gatt client write result can't find upper cbk. @ble_general_gatt.c(708),ERROR" ID="0x8de01622" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BCore] gatt client write result addr memcpy fail @ble_general_gatt.c(720),ERROR" ID="0x8de01682" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble gatt client call back func type=%d @ble_general_gatt.c(773),INFO" ID="0x8de0182d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery service not found:0x%x. @ble_general_gatt.c(804),WARNING" ID="0x8de01923" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery include service not found:0x%x. @ble_general_gatt.c(827),WARNING" ID="0x8de019db" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic new fail. @ble_general_gatt.c(843),ERROR" ID="0x8de01a5a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic memset fail. @ble_general_gatt.c(848),ERROR" ID="0x8de01a82" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery characteristic not found:0x%x. @ble_general_gatt.c(865),WARNING" ID="0x8de01b0b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic by uuid new fail. @ble_general_gatt.c(883),ERROR" ID="0x8de01b9a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic by uuid memset fail. @ble_general_gatt.c(889),ERROR" ID="0x8de01bca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic by uuid memcpy fail. @ble_general_gatt.c(903),ERROR" ID="0x8de01c3a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery characteristic by uuid not found:0x%x. @ble_general_gatt.c(914),WARNING" ID="0x8de01c93" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor by handle new fail. @ble_general_gatt.c(930),ERROR" ID="0x8de01d12" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery descriptor by handle not found:0x%x. @ble_general_gatt.c(944),WARNING" ID="0x8de01d83" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor new fail. @ble_general_gatt.c(964),ERROR" ID="0x8de01e22" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor memset fail. @ble_general_gatt.c(969),ERROR" ID="0x8de01e4a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor memcpy fail. @ble_general_gatt.c(975),ERROR" ID="0x8de01e7a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery descriptor not found:0x%x. @ble_general_gatt.c(986),WARNING" ID="0x8de01ed3" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble gatt read characteristic value respon new fail. @ble_general_gatt.c(1007),ERROR" ID="0x8de01f7a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read characteristic value respon memcpy fail: %d @ble_general_gatt.c(1014),ERROR" ID="0x8de01fb2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read characteristic value respon memcpy fail: %d @ble_general_gatt.c(1024),ERROR" ID="0x8de02002" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic value new fail. @ble_general_gatt.c(1047),ERROR" ID="0x8de020ba" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read descriptor value error:0x%x. @ble_general_gatt.c(1061),ERROR" ID="0x8de0212a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic by uuid new fail. @ble_general_gatt.c(1079),ERROR" ID="0x8de021ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic by uuid memcpy fail. @ble_general_gatt.c(1092),ERROR" ID="0x8de02222" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic by uuid memcpy fail. @ble_general_gatt.c(1099),ERROR" ID="0x8de0225a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read characteristic by uuid error:0x%x. @ble_general_gatt.c(1106),WARNING" ID="0x8de02293" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read multiple characteristic new fail. @ble_general_gatt.c(1124),ERROR" ID="0x8de02322" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read multiple characteristic memset fail. @ble_general_gatt.c(1131),ERROR" ID="0x8de0235a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read multiple characteristic error:0x%x. @ble_general_gatt.c(1147),WARNING" ID="0x8de023db" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read multiple characteristic error:0x%x. @ble_general_gatt.c(1177),WARNING" ID="0x8de024cb" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic value memcpy failed @ble_general_gatt.c(1229),ERROR" ID="0x8de0266a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic value param is NULL @ble_general_gatt.c(1252),ERROR" ID="0x8de02722" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt write characteristic value malloc fail, size:0x%x. @ble_general_gatt.c(1265),ERROR" ID="0x8de0278a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble general gatt write characteristic value memcpy fail: %d @ble_general_gatt.c(1275),ERROR" ID="0x8de027da" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt write characteristic value fail:0x%x. @ble_general_gatt.c(1289),WARNING" ID="0x8de0284b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt reliable write characteristic value param is NULL @ble_general_gatt.c(1308),ERROR" ID="0x8de028e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt reliable write characteristic value malloc fail @ble_general_gatt.c(1315),ERROR" ID="0x8de0291a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BCore] ble general gatt reliable write characteristic value memcpy fail @ble_general_gatt.c(1324),ERROR" ID="0x8de02962" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt reliable write characteristic value fail:0x%x. @ble_general_gatt.c(1343),WARNING" ID="0x8de029fb" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt write descriptor value malloc faile, size:0x%x. @ble_general_gatt.c(1360),ERROR" ID="0x8de02a82" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble general gatt write descriptor value memcpy fail: %d @ble_general_gatt.c(1369),ERROR" ID="0x8de02aca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery descriptor error:0x%x. @ble_general_gatt.c(1379),ERROR" ID="0x8de02b1a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read descriptor value response memcpy fail: %d @ble_general_gatt.c(1401),ERROR" ID="0x8de02bca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read descriptor value response memcpy fail: %d @ble_general_gatt.c(1409),ERROR" ID="0x8de02c0a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read descriptor value error:0x%x. @ble_general_gatt.c(1438),ERROR" ID="0x8de02cf2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt mtu config error:0x%x. @ble_general_gatt.c(1453),ERROR" ID="0x8de02d6a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt set gap ui attributes error:0x%x. @ble_general_gatt.c(1466),ERROR" ID="0x8de02dd2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt get gap ui attributes error:0x%x. @ble_general_gatt.c(1485),ERROR" ID="0x8de02e6a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="bt mpc adapter gatt get hid report callback new fail @ble_general_gatt.c(1515),ERROR" ID="0x8de02f5a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt get hid report callback error_code = %x @ble_general_gatt.c(1526),INFO" ID="0x8de02fb5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble gatt client call back func type=%d @ble_general_gatt.c(771),INFO" ID="0x8de0181d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery service not found:0x%x. @ble_general_gatt.c(802),WARNING" ID="0x8de01913" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery include service not found:0x%x. @ble_general_gatt.c(825),WARNING" ID="0x8de019cb" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic new fail. @ble_general_gatt.c(841),ERROR" ID="0x8de01a4a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic memset fail. @ble_general_gatt.c(846),ERROR" ID="0x8de01a72" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery characteristic not found:0x%x. @ble_general_gatt.c(863),WARNING" ID="0x8de01afb" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic by uuid new fail. @ble_general_gatt.c(881),ERROR" ID="0x8de01b8a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic by uuid memset fail. @ble_general_gatt.c(887),ERROR" ID="0x8de01bba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic by uuid memcpy fail. @ble_general_gatt.c(901),ERROR" ID="0x8de01c2a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery characteristic by uuid not found:0x%x. @ble_general_gatt.c(912),WARNING" ID="0x8de01c83" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor by handle new fail. @ble_general_gatt.c(928),ERROR" ID="0x8de01d02" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery descriptor by handle not found:0x%x. @ble_general_gatt.c(942),WARNING" ID="0x8de01d73" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor new fail. @ble_general_gatt.c(962),ERROR" ID="0x8de01e12" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor memset fail. @ble_general_gatt.c(967),ERROR" ID="0x8de01e3a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor memcpy fail. @ble_general_gatt.c(973),ERROR" ID="0x8de01e6a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery descriptor not found:0x%x. @ble_general_gatt.c(984),WARNING" ID="0x8de01ec3" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gatt read characteristic value respon new fail. @ble_general_gatt.c(1005),ERROR" ID="0x8de01f6a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read characteristic value respon memcpy fail: %d @ble_general_gatt.c(1012),ERROR" ID="0x8de01fa2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read characteristic value respon memcpy fail: %d @ble_general_gatt.c(1022),ERROR" ID="0x8de01ff2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic value new fail. @ble_general_gatt.c(1045),ERROR" ID="0x8de020aa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read descriptor value error:0x%x. @ble_general_gatt.c(1059),ERROR" ID="0x8de0211a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic by uuid new fail. @ble_general_gatt.c(1077),ERROR" ID="0x8de021aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic by uuid memcpy fail. @ble_general_gatt.c(1090),ERROR" ID="0x8de02212" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic by uuid memcpy fail. @ble_general_gatt.c(1097),ERROR" ID="0x8de0224a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read characteristic by uuid error:0x%x. @ble_general_gatt.c(1104),WARNING" ID="0x8de02283" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read multiple characteristic new fail. @ble_general_gatt.c(1122),ERROR" ID="0x8de02312" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read multiple characteristic memset fail. @ble_general_gatt.c(1129),ERROR" ID="0x8de0234a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read multiple characteristic error:0x%x. @ble_general_gatt.c(1145),WARNING" ID="0x8de023cb" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read multiple characteristic error:0x%x. @ble_general_gatt.c(1175),WARNING" ID="0x8de024bb" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic value memcpy failed @ble_general_gatt.c(1227),ERROR" ID="0x8de0265a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic value param is NULL @ble_general_gatt.c(1250),ERROR" ID="0x8de02712" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt write characteristic value malloc fail, size:0x%x. @ble_general_gatt.c(1263),ERROR" ID="0x8de0277a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble general gatt write characteristic value memcpy fail: %d @ble_general_gatt.c(1273),ERROR" ID="0x8de027ca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt write characteristic value fail:0x%x. @ble_general_gatt.c(1287),WARNING" ID="0x8de0283b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt reliable write characteristic value param is NULL @ble_general_gatt.c(1306),ERROR" ID="0x8de028d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt reliable write characteristic value malloc fail @ble_general_gatt.c(1313),ERROR" ID="0x8de0290a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BCore] ble general gatt reliable write characteristic value memcpy fail @ble_general_gatt.c(1322),ERROR" ID="0x8de02952" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt reliable write characteristic value fail:0x%x. @ble_general_gatt.c(1341),WARNING" ID="0x8de029eb" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt write descriptor value malloc faile, size:0x%x. @ble_general_gatt.c(1358),ERROR" ID="0x8de02a72" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble general gatt write descriptor value memcpy fail: %d @ble_general_gatt.c(1367),ERROR" ID="0x8de02aba" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery descriptor error:0x%x. @ble_general_gatt.c(1377),ERROR" ID="0x8de02b0a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read descriptor value response memcpy fail: %d @ble_general_gatt.c(1399),ERROR" ID="0x8de02bba" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read descriptor value response memcpy fail: %d @ble_general_gatt.c(1407),ERROR" ID="0x8de02bfa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read descriptor value error:0x%x. @ble_general_gatt.c(1436),ERROR" ID="0x8de02ce2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt mtu config error:0x%x. @ble_general_gatt.c(1451),ERROR" ID="0x8de02d5a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt set gap ui attributes error:0x%x. @ble_general_gatt.c(1464),ERROR" ID="0x8de02dc2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt get gap ui attributes error:0x%x. @ble_general_gatt.c(1483),ERROR" ID="0x8de02e5a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="bt mpc adapter gatt get hid report callback new fail @ble_general_gatt.c(1513),ERROR" ID="0x8de02f4a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt get hid report callback error_code = %x @ble_general_gatt.c(1524),INFO" ID="0x8de02fa5" />
<MSG STRUCTURE="diag_log_msg0" NAME="llc_test_set_cis_param : alloc fail! @llc_cis_ram.c(30),INFO" ID="0x8a2a00f5" />
<MSG STRUCTURE="diag_log_msg4" NAME="llc_test_set_cis_param :cig_id=%d, cis_id=%d, cis_conhdl=%d, struct_size=%d @llc_cis_ram.c(60),INFO" ID="0x8a2a01e5" />
<MSG STRUCTURE="diag_log_msg4" NAME="llc_test_set_cis_param :cig_id=%d, cis_id=%d, sdu_intv_m2s=%d, sdu_intv_s2m=%d @llc_cis_ram.c(62),INFO" ID="0x8a2a01f5" />
<MSG STRUCTURE="diag_log_msg1" NAME="[DEBUG]g_msg_ptr_read%d, @btdfx_fn.c(2093),INFO" ID="0x88e4416d" />
<MSG STRUCTURE="diag_log_msg2" NAME="[PMU][ERROR]Wakeup isr come more than once, sleep_int_id:%d, wakeup_int_id:%d @bt_sleep.c(139),WARNING" ID="0x88f0045b" />
<MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]wakeup pmu state change fail @bt_sleep.c(147),ERROR" ID="0x88f0049a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="g_clock_32k_100x = %d @bt_sleep.c(177),INFO" ID="0x88f0058d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][SLEEP]bt_program_sleep clk(%d)dur(%d)glbcnt(0x%x) @bt_sleep.c(222),INFO" ID="0x88f006f5" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[ERROR][SLEEP]wakeup_end clk(%d) sleep_time(%d) sleep_dur(%d) @bt_sleep.c(265),ERROR" ID="0x88f0084a" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][SLEEP]wakeup_end clk(%d) fincnt(%d)glbcnt(0x%x) @bt_sleep.c(269),INFO" ID="0x88f0086d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]btc sleep pmu state change fail @bt_sleep.c(311),ERROR" ID="0x88f009ba" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[PMU][WARNING]Set osc_en down more than once, sleep_int_id:%d, wakeup_int_id:%d @bt_sleep.c(320),WARNING" ID="0x88f00a03" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]sleep time is too short! @bt_sleep.c(370),WARNING" ID="0x88f00b93" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][SLEEP]osc_en wakeup isr error! @bt_sleep.c(374),ERROR" ID="0x88f00bb2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]extern wakeup pmu state change fail @bt_sleep.c(390),ERROR" ID="0x88f00c32" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][SLEEP]extern wakeup btc clk(%d)slp_dur_slot(%d)glbcnt(%d) @bt_sleep.c(396),INFO" ID="0x88f00c65" />
- <MSG STRUCTURE="diag_log_msg1" NAME="g_dfx_time:%d @bt_sleep.c(416),INFO" ID="0x88f00d05" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][LLD]lld_periodic_adv_start:sync_dur=%d, intv_min=%d, intv_max=%d @lld_per_ram.c(53),INFO" ID="0x8a5e01ad" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="g_clock_32k_100x = %d @bt_sleep.c(178),INFO" ID="0x88f00595" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][SLEEP]bt_program_sleep clk(%d)dur(%d)glbcnt(0x%x) @bt_sleep.c(224),INFO" ID="0x88f00705" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ERROR][SLEEP]wakeup_end clk(%d) sleep_time(%d) sleep_dur(%d) @bt_sleep.c(267),ERROR" ID="0x88f0085a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][SLEEP]wakeup_end clk(%d) fincnt(%d)glbcnt(0x%x) @bt_sleep.c(271),INFO" ID="0x88f0087d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]btc sleep pmu state change fail @bt_sleep.c(313),ERROR" ID="0x88f009ca" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[PMU][WARNING]Set osc_en down more than once, sleep_int_id:%d, wakeup_int_id:%d @bt_sleep.c(322),WARNING" ID="0x88f00a13" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]sleep time is too short! @bt_sleep.c(372),WARNING" ID="0x88f00ba3" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][SLEEP]osc_en wakeup isr error! @bt_sleep.c(376),ERROR" ID="0x88f00bc2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]extern wakeup pmu state change fail @bt_sleep.c(392),ERROR" ID="0x88f00c42" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][SLEEP]extern wakeup btc clk(%d)slp_dur_slot(%d)glbcnt(%d) @bt_sleep.c(398),INFO" ID="0x88f00c75" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="g_dfx_time:%d @bt_sleep.c(418),INFO" ID="0x88f00d15" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][LLD]lld_periodic_adv_start:sync_dur=%d, intv_min=%d, intv_max=%d @lld_per_ram.c(53),INFO" ID="0x8a6201ad" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[SMP][LongTermKeyRequest]key->fea = 0x%x @smp_ui.c(426),INFO" ID="0x8dac0d55" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP][LongTermKeyRequest]key == NULL @smp_ui.c(430),INFO" ID="0x8dac0d75" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[SMP][LongTermKeyRequest]link->hcihdl = %u, link->remote = 0x%x, key = 0x%x @smp_ui.c(457),INFO" ID="0x8dac0e4d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP][LongTermKeyRequest][No LESC LTK SEND] @smp_ui.c(470),INFO" ID="0x8dac0eb5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP][LongTermKeyRequest][DIV mismatch, Unpaired] @smp_ui.c(494),INFO" ID="0x8dac0f75" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP][LongTermKeyRequest][ECDH LTK unavailable, pair!=NULL] @smp_ui.c(507),INFO" ID="0x8dac0fdd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP][LongTermKeyRequest][LTK unavailable, pair=NULL] @smp_ui.c(520),INFO" ID="0x8dac1045" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[SMP][LongTermKeyRequest]LKT:0x%02x%02x%02x%02x @smp_ui.c(527),ERROR" ID="0x8dac107a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP][LongTermKeyRequest][Send Negative Reply!] @smp_ui.c(542),INFO" ID="0x8dac10f5" />
<MSG STRUCTURE="diag_log_msg4" NAME="[INFO][high power] enable on linkid:%d, last_rx_err_pkt:%d, rssi_delta:%d, time:0x%x @lc_task_ram.c(1392),INFO" ID="0x8a482b85" />
<MSG STRUCTURE="diag_log_msg4" NAME="[INFO][high power] disable on linkid:%d, last_rx_err_pkt:%d, rssi_delta:%d, time:0x%x @lc_task_ram.c(1402),INFO" ID="0x8a482bd5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[INFO][LC]lmp_encaps_payl_handler:sp fail in LC_WAIT_PUB_KEY_PAYLOAD_RSP_PEER @lc_task_ram.c(1703),INFO" ID="0x8a48353d" />
<MSG STRUCTURE="diag_log_msg0" NAME="pce_update_status null returned @sdk_pbap.c(168),WARNING" ID="0x8b740543" />
<MSG STRUCTURE="diag_log_msg1" NAME="pbap_pull_phone_book conn_hdl=0x%x @sdk_pbap.c(669),INFO" ID="0x8b7414ed" />
<MSG STRUCTURE="diag_log_msg1" NAME="pbap_pull_phone_book err ret=0x%x @sdk_pbap.c(682),WARNING" ID="0x8b741553" />
- <MSG STRUCTURE="diag_log_msg0" NAME="lld_evt_defered_elt_handler, test end @patch_lld_evt.c(141),WARNING" ID="0x8a5c046b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][LLD]lld_evt_flush_common:elt is null @patch_lld_evt.c(212),INFO" ID="0x8a5c06a5" />
- <MSG STRUCTURE="diag_log_msg4" NAME="c_evt->mode=%d, next_elt->mode=%d, cur->conhdl=%d, n_evt->conhdl=%d @patch_lld_evt.c(269),INFO" ID="0x8a5c086d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="current_elt->current_prio=%d, next_elt->current_prio=%d, llm_le_env.sync_state =%d @patch_lld_evt.c(271),INFO" ID="0x8a5c087d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="lld_evt_defered_elt_handler, test end @patch_lld_evt.c(141),WARNING" ID="0x8a60046b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][LLD]lld_evt_flush_common:elt is null @patch_lld_evt.c(212),INFO" ID="0x8a6006a5" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="c_evt->mode=%d, next_elt->mode=%d, cur->conhdl=%d, n_evt->conhdl=%d @patch_lld_evt.c(269),INFO" ID="0x8a60086d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="current_elt->current_prio=%d, next_elt->current_prio=%d, llm_le_env.sync_state =%d @patch_lld_evt.c(271),INFO" ID="0x8a60087d" />
<MSG STRUCTURE="diag_log_msg3" NAME="[osMonitor]No.%d task was blocked tick %ld, count %ld @runtime_monitor.c(128),ERROR" ID="0xa00e0402" />
<MSG STRUCTURE="diag_log_msg1" NAME="[osMonitor]No.%d task was blocked up to limited times! @runtime_monitor.c(137),ERROR" ID="0xa00e044a" />
<MSG STRUCTURE="diag_log_msg3" NAME="[osMonitor]No.%d task work overtime! threshold tick %d, work time %d @runtime_monitor.c(184),WARNING" ID="0xa00e05c3" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][LD]ld_bt_test_mode_rx_start:evt is null @dbg_bt_test_tx_rx.c(570),WARNING" ID="0x899c11d3" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][LD]ld_bt_test_mode_rx_start ea insert fail! @dbg_bt_test_tx_rx.c(592),WARNING" ID="0x899c1283" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][LD]ld_evt_start_rx_cbk:evt is null @dbg_bt_test_tx_rx.c(601),WARNING" ID="0x899c12cb" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk]gatt_get_descriptor_value memcpy failed @sdk_gatt.c(386),ERROR" ID="0x8b800c12" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_get_descriptor_value memcpy_s error @sdk_gatt.c(570),ERROR" ID="0x8b8011d2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic mem_new failed @sdk_gatt.c(792),ERROR" ID="0x8b8018c2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic memcpy failed @sdk_gatt.c(797),ERROR" ID="0x8b8018ea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic memcpy failed @sdk_gatt.c(806),ERROR" ID="0x8b801932" />
- <MSG STRUCTURE="diag_log_msg3" NAME="btsdk gatt get characteristics by uuid start_handle:0x%x end_handle:0x%x, uuid:0x%x @sdk_gatt.c(829),INFO" ID="0x8b8019ed" />
- <MSG STRUCTURE="diag_log_msg2" NAME="btsdk gatt get characteristic value by uuid start_handle:0x%x end_handle:0x%x @sdk_gatt.c(877),INFO" ID="0x8b801b6d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[sdk]gatt_get_descriptor_by_handle start_handle:0x%x end_handle:0x%x @sdk_gatt.c(900),INFO" ID="0x8b801c25" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[sdk]gatt_get_multiple_characteristics_by_handle handle_count:0x%x @sdk_gatt.c(921),INFO" ID="0x8b801ccd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_set_gap_ui_attributes memcpy_s error @sdk_gatt.c(1199),ERROR" ID="0x8b80257a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_set_gap_ui_attributes memcpy_s error @sdk_gatt.c(1212),ERROR" ID="0x8b8025e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_get_gap_ui_attributes memcpy_s error @sdk_gatt.c(1284),ERROR" ID="0x8b802822" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_send_response memcpy_s error @sdk_gatt.c(1882),ERROR" ID="0x8b803ad2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_change_descriptor_value memcpy_s error @sdk_gatt.c(1963),ERROR" ID="0x8b803d5a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_notify_characteristic_changed memcpy_s error @sdk_gatt.c(2008),ERROR" ID="0x8b803ec2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_notify_characteristic_changed memcpy_s error @sdk_gatt.c(2015),ERROR" ID="0x8b803efa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]can't find hdl by uuid @sdk_gatt.c(2206),ERROR" ID="0x8b8044f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk]gatt_get_descriptor_value memcpy failed @sdk_gatt.c(387),ERROR" ID="0x8b800c1a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_get_descriptor_value memcpy_s error @sdk_gatt.c(571),ERROR" ID="0x8b8011da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic mem_new failed @sdk_gatt.c(793),ERROR" ID="0x8b8018ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic memcpy failed @sdk_gatt.c(798),ERROR" ID="0x8b8018f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic memcpy failed @sdk_gatt.c(807),ERROR" ID="0x8b80193a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="btsdk gatt get characteristics by uuid start_handle:0x%x end_handle:0x%x, uuid:0x%x @sdk_gatt.c(830),INFO" ID="0x8b8019f5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="btsdk gatt get characteristic value by uuid start_handle:0x%x end_handle:0x%x @sdk_gatt.c(878),INFO" ID="0x8b801b75" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[sdk]gatt_get_descriptor_by_handle start_handle:0x%x end_handle:0x%x @sdk_gatt.c(901),INFO" ID="0x8b801c2d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[sdk]gatt_get_multiple_characteristics_by_handle handle_count:0x%x @sdk_gatt.c(922),INFO" ID="0x8b801cd5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_set_gap_ui_attributes memcpy_s error @sdk_gatt.c(1200),ERROR" ID="0x8b802582" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_set_gap_ui_attributes memcpy_s error @sdk_gatt.c(1213),ERROR" ID="0x8b8025ea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_get_gap_ui_attributes memcpy_s error @sdk_gatt.c(1285),ERROR" ID="0x8b80282a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_send_response memcpy_s error @sdk_gatt.c(1883),ERROR" ID="0x8b803ada" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_change_descriptor_value memcpy_s error @sdk_gatt.c(1964),ERROR" ID="0x8b803d62" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_notify_characteristic_changed memcpy_s error @sdk_gatt.c(2009),ERROR" ID="0x8b803eca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_notify_characteristic_changed memcpy_s error @sdk_gatt.c(2016),ERROR" ID="0x8b803f02" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]can't find hdl by uuid @sdk_gatt.c(2207),ERROR" ID="0x8b8044fa" />
<MSG STRUCTURE="diag_log_msg2" NAME="[bt_debug]BT rfpll addr:0x%x = %04x @bt_dbg.c(72),INFO" ID="0x89320245" />
<MSG STRUCTURE="diag_log_msg2" NAME="[bt_debug]BT rf addr:0x%x = %04x @bt_dbg.c(78),INFO" ID="0x89320275" />
<MSG STRUCTURE="diag_log_msg2" NAME="[bt_debug]BT mdm addr:0x%x = %04x @bt_dbg.c(92),INFO" ID="0x893202e5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][CTE]llm_util_per_sync_check_cte_type: HIT - Do not sync to packets without a CTE @llm_ram.c(125),WARNING" ID="0x8a1803eb" />
<MSG STRUCTURE="diag_log_msg1" NAME="[WARNING][CTE] type check: HIT - Do not sync to packets with an %d type CTE @llm_ram.c(134),WARNING" ID="0x8a180433" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(75),ERROR" ID="0x8c4c025a" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[ATT]UUID[0x%04x] start hdl[0x%x], end hdl[0x%x] @att_gatt.c(956),INFO" ID="0x8c4c1de5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(1057),ERROR" ID="0x8c4c210a" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[ATT]UUID[0x%04x] hdl[0x%x], value hdl[0x%x], len[0x%x] @att_gatt.c(1069),INFO" ID="0x8c4c216d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="properties[0x%x] @att_gatt.c(1070),INFO" ID="0x8c4c2175" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(1128),ERROR" ID="0x8c4c2342" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[ATT]UUID[0x%04x], hdl[0x%x], len[0x%x] @att_gatt.c(1137),INFO" ID="0x8c4c238d" />
- <MSG STRUCTURE="diag_log_msg5" NAME="GATT_Server_Create_UpdateCCC_Item, add item[hdl:%d] ccc onaddr:0x%02x:%02x:xx:xx:%02x:%02x @att_gatt.c(1351),INFO" ID="0x8c4c2a3d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(1475),ERROR" ID="0x8c4c2e1a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2327),ERROR" ID="0x8c4c48ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2573),ERROR" ID="0x8c4c506a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2601),ERROR" ID="0x8c4c514a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2606),ERROR" ID="0x8c4c5172" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[ATT_GATT] gatt tl done reason:%d occured:%d @att_gatt.c(320),ERROR" ID="0x8c4c0a02" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[ATT_GATT] gatt tl create require:%d addr:%02x******%02x%02x @att_gatt.c(414),ERROR" ID="0x8c4c0cf2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ATT_GATT]tl timeout evt:%d @att_gatt.c(667),ERROR" ID="0x8c4c14da" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[ATT_GATT] gatt tl disconnect require:%d addr:%02x******%02x%02x @att_gatt.c(844),ERROR" ID="0x8c4c1a62" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[ATT_GATT] gatt event cbk:%p evt:%d @att_gatt.c(871),ERROR" ID="0x8c4c1b3a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT_GATT] gatt error cfm task:%d errcode:%d mask:%d @att_gatt.c(887),ERROR" ID="0x8c4c1bba" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT]UUID[0x%04x] start hdl[0x%x], end hdl[0x%x] @att_gatt.c(973),INFO" ID="0x8c4c1e6d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(1074),ERROR" ID="0x8c4c2192" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[ATT]UUID[0x%04x] hdl[0x%x], value hdl[0x%x], len[0x%x] @att_gatt.c(1086),INFO" ID="0x8c4c21f5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="properties[0x%x] @att_gatt.c(1087),INFO" ID="0x8c4c21fd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(1145),ERROR" ID="0x8c4c23ca" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT]UUID[0x%04x], hdl[0x%x], len[0x%x] @att_gatt.c(1154),INFO" ID="0x8c4c2415" />
+ <MSG STRUCTURE="diag_log_msg5" NAME="GATT_Server_Create_UpdateCCC_Item, add item[hdl:%d] ccc onaddr:0x%02x:%02x:xx:xx:%02x:%02x @att_gatt.c(1368),INFO" ID="0x8c4c2ac5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(1492),ERROR" ID="0x8c4c2ea2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ATT_GATT] create le connect mask:%d @att_gatt.c(1810),ERROR" ID="0x8c4c3892" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ATT_GATT] create br connect mask:%d @att_gatt.c(1819),ERROR" ID="0x8c4c38da" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT_GATT] smp cfm mask:%d task_index:%d result:%d @att_gatt.c(1938),ERROR" ID="0x8c4c3c92" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT_GATT] smp request mask:%d task_index:%d sec_mode:%d @att_gatt.c(1973),ERROR" ID="0x8c4c3daa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2356),ERROR" ID="0x8c4c49a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2602),ERROR" ID="0x8c4c5152" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2630),ERROR" ID="0x8c4c5232" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2635),ERROR" ID="0x8c4c525a" />
<MSG STRUCTURE="diag_log_msg0" NAME="memory alloc failed @bt_ahi_hfp.c(279),WARNING" ID="0x8c9e08bb" />
<MSG STRUCTURE="diag_log_msg0" NAME="memory set failed. @bt_ahi_hfp.c(284),WARNING" ID="0x8c9e08e3" />
<MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed. @bt_ahi_hfp.c(293),WARNING" ID="0x8c9e092b" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][LLC][PHY]hci_le_set_phy_cmd_handler:llc is in disconnected state @llc_hci.c(1500),WARNING" ID="0x88322ee3" />
<MSG STRUCTURE="diag_log_msg4" NAME="[INFO][LLC][PHY]hci_le_set_phy_cmd_handler:current_txphy=%d, current_rxphy=%d, txphyoption=%d, rxphyoption=%d @llc_hci.c(1545),INFO" ID="0x8832304d" />
<MSG STRUCTURE="diag_log_msg2" NAME="[CHR]handle %d action %d @llc_hci.c(2463),INFO" ID="0x88324cfd" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap set discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(75),INFO" ID="0x8c9e025d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap get discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(89),INFO" ID="0x8c9e02cd" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap stop discovery result = 0x%x, mode = 0x%x @bt_ahi_gap.c(99),INFO" ID="0x8c9e031d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl result = 0x%x, dev_hdl = 0x%x, link type = %d @bt_ahi_gap.c(113),INFO" ID="0x8c9e038d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(126),ERROR" ID="0x8c9e03f2" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl cfm cbk result = 0x%x, acl_hdl = 0x%x, link type = %d @bt_ahi_gap.c(131),INFO" ID="0x8c9e041d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap create acla result = 0x%x @bt_ahi_gap.c(140),INFO" ID="0x8c9e0465" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap reconnect phone result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(151),INFO" ID="0x8c9e04bd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap get rmt dev handle result = 0x%x @bt_ahi_gap.c(163),INFO" ID="0x8c9e051d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap device is connected result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(175),INFO" ID="0x8c9e057d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="btsdk disconnect acl by handle result = 0x%x @bt_ahi_gap.c(186),INFO" ID="0x8c9e05d5" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap pair device result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(198),INFO" ID="0x8c9e0635" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap add rmt device rsp.result = %x @bt_ahi_gap.c(215),INFO" ID="0x8c9e06bd" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap update rmt device name result = 0x%x, name = %s @bt_ahi_gap.c(235),INFO" ID="0x8c9e075d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(249),ERROR" ID="0x8c9e07ca" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap update rmt device name cfm cbk result = 0x%x, opindex = 0x%x, size = %d @bt_ahi_gap.c(257),INFO" ID="0x8c9e080d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap update rmt device name async result = 0x%x @bt_ahi_gap.c(267),INFO" ID="0x8c9e085d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap get local name result = 0x%x, length = %d, name = %s @bt_ahi_gap.c(303),INFO" ID="0x8c9e097d" />
- <MSG STRUCTURE="diag_log_msg4" NAME="stack gap get rmt dev addr result = 0x%x, addr[%02x:**:**:**:%02x:%02x] @bt_ahi_gap.c(328),INFO" ID="0x8c9e0a45" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap browse rmt service overflow, max_count = %d, svc_count = %d @bt_ahi_gap.c(350),ERROR" ID="0x8c9e0af2" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap browse rmt service result = 0x%x, svc_count = %d, svc_hdl[0] = 0x%x @bt_ahi_gap.c(356),INFO" ID="0x8c9e0b25" />
- <MSG STRUCTURE="diag_log_msg3" NAME="hfp enable sco:scohdl=0x%x inid=0x%x outid=0x%x @bt_ahi_gap.c(377),INFO" ID="0x8c9e0bcd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="hfp disable sco:scohdl=0x%x @bt_ahi_gap.c(381),INFO" ID="0x8c9e0bed" />
- <MSG STRUCTURE="diag_log_msg3" NAME="result = 0x%x, handle = 0x%x, service_class = %02x @bt_ahi_gap.c(414),INFO" ID="0x8c9e0cf5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap init, res = 0x%x @bt_ahi_gap.c(425),INFO" ID="0x8c9e0d4d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="set bt tx power, hdl=0x%x, power=%d, ret=0x%x @bt_ahi_gap.c(438),INFO" ID="0x8c9e0db5" />
- <MSG STRUCTURE="diag_log_msg3" NAME="br gap read rssi, hdl=0x%x, rssi=%d, ret=0x%x @bt_ahi_gap.c(446),INFO" ID="0x8c9e0df5" />
- <MSG STRUCTURE="diag_log_msg4" NAME="set active scene scene = %d, bitrate = %d, delay = %d, ret=0x%x @bt_ahi_gap.c(462),INFO" ID="0x8c9e0e75" />
- <MSG STRUCTURE="diag_log_msg2" NAME="set inquiry scan param interval = %d, window = %d @bt_ahi_gap.c(470),INFO" ID="0x8c9e0eb5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(481),ERROR" ID="0x8c9e0f0a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap restore rmt device rsp.result = %x @bt_ahi_gap.c(485),INFO" ID="0x8c9e0f2d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="br gap get link mode, hdl=0x%x, mode=%d, ret=0x%x @bt_ahi_gap.c(494),INFO" ID="0x8c9e0f75" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap set discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(82),INFO" ID="0x8c9e0295" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap get discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(96),INFO" ID="0x8c9e0305" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap stop discovery result = 0x%x, mode = 0x%x @bt_ahi_gap.c(106),INFO" ID="0x8c9e0355" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl result = 0x%x, dev_hdl = 0x%x, link type = %d @bt_ahi_gap.c(120),INFO" ID="0x8c9e03c5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(133),ERROR" ID="0x8c9e042a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl cfm cbk result = 0x%x, acl_hdl = 0x%x, link type = %d @bt_ahi_gap.c(138),INFO" ID="0x8c9e0455" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap create acla result = 0x%x @bt_ahi_gap.c(147),INFO" ID="0x8c9e049d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap reconnect phone result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(158),INFO" ID="0x8c9e04f5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap get rmt dev handle result = 0x%x @bt_ahi_gap.c(170),INFO" ID="0x8c9e0555" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap device is connected result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(182),INFO" ID="0x8c9e05b5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="btsdk disconnect acl by handle result = 0x%x @bt_ahi_gap.c(193),INFO" ID="0x8c9e060d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap pair device result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(205),INFO" ID="0x8c9e066d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap add rmt device rsp.result = %x @bt_ahi_gap.c(222),INFO" ID="0x8c9e06f5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap update rmt device name result = 0x%x, name = %s @bt_ahi_gap.c(242),INFO" ID="0x8c9e0795" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(256),ERROR" ID="0x8c9e0802" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap update rmt device name cfm cbk result = 0x%x, opindex = 0x%x, size = %d @bt_ahi_gap.c(264),INFO" ID="0x8c9e0845" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap update rmt device name async result = 0x%x @bt_ahi_gap.c(274),INFO" ID="0x8c9e0895" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap get local name result = 0x%x, length = %d, name = %s @bt_ahi_gap.c(310),INFO" ID="0x8c9e09b5" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="stack gap get rmt dev addr result = 0x%x, addr[%02x:**:**:**:%02x:%02x] @bt_ahi_gap.c(335),INFO" ID="0x8c9e0a7d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap browse rmt service overflow, max_count = %d, svc_count = %d @bt_ahi_gap.c(357),ERROR" ID="0x8c9e0b2a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap browse rmt service result = 0x%x, svc_count = %d, svc_hdl[0] = 0x%x @bt_ahi_gap.c(363),INFO" ID="0x8c9e0b5d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="hfp enable sco:scohdl=0x%x inid=0x%x outid=0x%x @bt_ahi_gap.c(384),INFO" ID="0x8c9e0c05" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="hfp disable sco:scohdl=0x%x @bt_ahi_gap.c(388),INFO" ID="0x8c9e0c25" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="result = 0x%x, handle = 0x%x, service_class = %02x @bt_ahi_gap.c(421),INFO" ID="0x8c9e0d2d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap init, res = 0x%x @bt_ahi_gap.c(432),INFO" ID="0x8c9e0d85" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="set bt tx power, hdl=0x%x, power=%d, ret=0x%x @bt_ahi_gap.c(445),INFO" ID="0x8c9e0ded" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="br gap read rssi, hdl=0x%x, rssi=%d, ret=0x%x @bt_ahi_gap.c(453),INFO" ID="0x8c9e0e2d" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="set active scene scene = %d, bitrate = %d, delay = %d, ret=0x%x @bt_ahi_gap.c(469),INFO" ID="0x8c9e0ead" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="set inquiry scan param interval = %d, window = %d @bt_ahi_gap.c(477),INFO" ID="0x8c9e0eed" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(488),ERROR" ID="0x8c9e0f42" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap restore rmt device rsp.result = %x @bt_ahi_gap.c(492),INFO" ID="0x8c9e0f65" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="br gap get link mode, hdl=0x%x, mode=%d, ret=0x%x @bt_ahi_gap.c(501),INFO" ID="0x8c9e0fad" />
<MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memset failed @gap_ui.c(1251),ERROR" ID="0x8b5c271a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_ui.c(1255),ERROR" ID="0x8b5c273a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_ui.c(1259),ERROR" ID="0x8b5c275a" />
<MSG STRUCTURE="diag_log_msg1" NAME="%02x @bt_dft_bdi.c(957),WARNING" ID="0x8d0c1deb" />
<MSG STRUCTURE="diag_log_msg0" NAME="bt dft get bdi @bt_dft_bdi.c(964),INFO" ID="0x8d0c1e25" />
<MSG STRUCTURE="diag_log_msg0" NAME="bt dft get bdi err @bt_dft_bdi.c(966),INFO" ID="0x8d0c1e35" />
- <MSG STRUCTURE="diag_log_msg1" NAME="hlp_link_key_req_cbk no source addr:0x%x @sdk_hlp.c(900),INFO" ID="0x8b7a1c25" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hlp_connection_ev_cbk_dis_conn hdl:0x%x status:%d @sdk_hlp.c(2055),INFO" ID="0x8b7a403d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="hlp_link_key_req_cbk no source addr:0x%x @sdk_hlp.c(898),INFO" ID="0x8b7a1c15" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hlp_connection_ev_cbk_dis_conn hdl:0x%x status:%d @sdk_hlp.c(2053),INFO" ID="0x8b7a402d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[SDK] connect event cbk connected: %d, reason: %d link_type:%d! @sdk_hlp.c(2074),ERROR" ID="0x8b7a40d2" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[SDK] connect event cbk cap:%d addr:%02x******%02x%02x @sdk_hlp.c(2089),ERROR" ID="0x8b7a414a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[SDK] connect event cbk status:%d dev_hdl:0x%x @sdk_hlp.c(2092),ERROR" ID="0x8b7a4162" />
<MSG STRUCTURE="diag_log_msg0" NAME="gdk message post, failed retry later. @gdk_msg.c(46),ERROR" ID="0x8cb40172" />
<MSG STRUCTURE="diag_log_msg0" NAME="gdk message timer cback @gdk_msg.c(74),DBG" ID="0x8cb40256" />
<MSG STRUCTURE="diag_log_msg2" NAME="gdk message add itor_msgid:0x%x, itor_ts:0x%lld @gdk_msg.c(107),DBG" ID="0x8cb4035e" />
<MSG STRUCTURE="diag_log_msg1" NAME="gdk message loop message_ts = 0x%x @gdk_msg.c(391),DBG" ID="0x8cb40c3e" />
<MSG STRUCTURE="diag_log_msg1" NAME="gdk message loop timeout_ms = 0x%x @gdk_msg.c(405),DBG" ID="0x8cb40cae" />
<MSG STRUCTURE="diag_log_msg3" NAME="[ERR][CHR_UPDATE]error_handler:no handle: err_id = 0x%x, err_id_high = 0x%x,err_id_low = 0x%x @bt_chr.c(37),ERROR" ID="0x88de012a" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[PF][DUMP INFO] stack point: 0x%x, stack address: 0x%x, stack size: 0x%x @log_oml_exception.c(410),ERROR" ID="0xa0080cd2" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[PF][DUMP INFO] stack point: 0x%x, stack address: 0x%x, stack size: 0x%x @log_oml_exception.c(411),ERROR" ID="0xa0080cda" />
<MSG STRUCTURE="diag_log_msg4" NAME="[LPF_CALI]code = %x, abs_diff_val = %d, pwr_1m = %d, 2 * pwr_2_5m = %d @bt_cali_func.c(564),INFO" ID="0x894211a5" />
<MSG STRUCTURE="diag_log_msg1" NAME="[rxiq]trim version = %d @bt_cali_func.c(1281),INFO" ID="0x8942280d" />
<MSG STRUCTURE="diag_log_msg0" NAME="START CALCU PREF @bt_cali_func.c(1447),INFO" ID="0x89422d3d" />
<MSG STRUCTURE="diag_log_msg3" NAME="[DADP][get_active_device_handle] REMOTE_ADDR=%02x:%02x:**:**:**:%02x @packet_dl.c(381),INFO" ID="0x8c280bed" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ERROR][param]ke_msg_alloc:msg = NULL @ke_msg.c(73),ERROR" ID="0x891a024a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ERROR]the MSG is not in heap @ke_msg.c(183),ERROR" ID="0x891a05ba" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[TIMRE_ADD][STACK_TIMER] TIMER=0x%x, TIME=%u @fsm.c(669),INFO" ID="0x8b5814ed" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[TIMER_EXPIR]timeout timer err! @fsm.c(767),ERROR" ID="0x8b5817fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[TIMER_EXPIR]timeout but no right timer! @fsm.c(797),WARNING" ID="0x8b5818eb" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[timer_expire_in_sch_lite]timer has been free; not need free! @fsm.c(813),WARNING" ID="0x8b58196b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[TIMER_DEL][STACK_TIMER] in_ft is NULL! @fsm.c(938),INFO" ID="0x8b581d55" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[FSM][QOS]producer %u @fsm.c(83),ERROR" ID="0x8b58029a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[FSM][QOS]consumer %u @fsm.c(97),ERROR" ID="0x8b58030a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[TIMRE_ADD][STACK_TIMER] TIMER=0x%x, TIME=%u @fsm.c(725),INFO" ID="0x8b5816ad" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[TIMER_EXPIR]timeout timer err! @fsm.c(823),ERROR" ID="0x8b5819ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[TIMER_EXPIR]timeout but no right timer! @fsm.c(853),WARNING" ID="0x8b581aab" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[timer_expire_in_sch_lite]timer has been free; not need free! @fsm.c(869),WARNING" ID="0x8b581b2b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[TIMER_DEL][STACK_TIMER] in_ft is NULL! @fsm.c(994),INFO" ID="0x8b581f15" />
<MSG STRUCTURE="diag_log_msg0" NAME="llc_ico_update_finished unknown ico_conhdl @llc_ico.c(203),WARNING" ID="0x883e065b" />
<MSG STRUCTURE="diag_log_msg2" NAME="[ICO]conhdl unknown conhdl role, conhdl = %d, role = %d @llc_ico.c(216),ERROR" ID="0x883e06c2" />
<MSG STRUCTURE="diag_log_msg0" NAME="llc_cis_update_finished unknown cis_conhdl @llc_ico.c(235),WARNING" ID="0x883e075b" />
<MSG STRUCTURE="diag_log_msg3" NAME="[INFO][LLD]lld_ext_con_start_by_phy_opt:elt_scan=0x%x, elt_connect=0x%x, aux_init_elt=0x%x @lld_con.c(1323),INFO" ID="0x8970295d" />
<MSG STRUCTURE="diag_log_msg1" NAME="btsdk get remote device address failed! dev_hdl = 0x%x @bt_ahi_common.c(97),ERROR" ID="0x8c9e030a" />
<MSG STRUCTURE="diag_log_msg1" NAME="btsrv passkey req ind callback dev_hdl = 0x%x @bt_ahi_common.c(162),INFO" ID="0x8c9e0515" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[INFO][LLD]lld_bis_elt_ready:elt=0x%x,elt_ts=0x%x,intv=%d,duration_min=%d @patch_lld_bis.c(46),INFO" ID="0x8a560175" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[INFO][LLD]lld_bis_elt_ready:elt=0x%x,elt_ts=0x%x,intv=%d,duration_min=%d @patch_lld_bis.c(46),INFO" ID="0x8a5a0175" />
<MSG STRUCTURE="diag_log_msg2" NAME="[INFO]hci_dbg_meta_evt_pkupk:in=%d,*in=%d @hci_msg.c(1958),INFO" ID="0x88d03d35" />
<MSG STRUCTURE="diag_log_msg3" NAME="[LOW_POWER]des is error ,des:0x%x,%s,%d @hal_cpu_hifi.c(69),INFO" ID="0xa028022d" />
<MSG STRUCTURE="diag_log_msg3" NAME="[LOW_POWER]des is error ,des:0x%x,%s,%d @hal_cpu_hifi.c(85),INFO" ID="0xa02802ad" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_table.c(1011),ERROR" ID="0x8d661f9a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_table.c(1184),ERROR" ID="0x8d662502" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_table.c(1273),ERROR" ID="0x8d6627ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ERROR]p_data is null @bt_tran_task.c(56),ERROR" ID="0x8c9401c2" />
- <MSG STRUCTURE="diag_log_msg3" NAME="BT_TRAN:route data:TID&SOF&SID&CID, LEN = 0x%04X%04X, %d @bt_tran_task.c(86),WARNING" ID="0x8c9402b3" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Error route_id! @bt_tran_task.c(98),ERROR" ID="0x8c940312" />
- <MSG STRUCTURE="diag_log_msg3" NAME="BT_TRAN:route data:TID&SOF&SID&CID, LEN = 0x%04X%04X, %d @bt_tran_task.c(118),WARNING" ID="0x8c9403b3" />
- <MSG STRUCTURE="diag_log_msg3" NAME="BT_TRAN:data:TID&SOF&SID&CID:0x%04X%04X,LEN:%d @bt_tran_task.c(121),WARNING" ID="0x8c9403cb" />
- <MSG STRUCTURE="diag_log_msg0" NAME="INVALID DATA! @bt_tran_task.c(157),ERROR" ID="0x8c9404ea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="BT_TRAN: TXMCU:ipc send data = %d @bt_tran_task.c(185),ERROR" ID="0x8c9405ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="UNKNOW CORE! @bt_tran_task.c(195),ERROR" ID="0x8c94061a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt tran task framek free property allow_free= %d @bt_tran_task.c(235),INFO" ID="0x8c94075d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="pst_property->en_id = 0x%x @bt_tran_task.c(253),INFO" ID="0x8c9407ed" />
- <MSG STRUCTURE="diag_log_msg1" NAME="BT_TRAN: data ERROR data_len:%d @bt_tran_task.c(311),WARNING" ID="0x8c9409bb" />
- <MSG STRUCTURE="diag_log_msg2" NAME="BT_TRAN: data ERROR data:0x%08x, 0x%08x @bt_tran_task.c(315),WARNING" ID="0x8c9409db" />
- <MSG STRUCTURE="diag_log_msg4" NAME="rec mcu error data,tid:0x%x,sof:0x%x,len:0x%04x,opcode:0x%04x @bt_tran_task.c(324),ERROR" ID="0x8c940a22" />
- <MSG STRUCTURE="diag_log_msg0" NAME="hci qos buf overflow. @bt_tran_task.c(349),ERROR" ID="0x8c940aea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble fsm buf overflow. @bt_tran_task.c(354),ERROR" ID="0x8c940b12" />
- <MSG STRUCTURE="diag_log_msg2" NAME="rec data malloc fail opcode:0x%04x,length:(0x%04x) @bt_tran_task.c(363),ERROR" ID="0x8c940b5a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="rec data memcpy fail opcode:0x%04x,length:(0x%04x) @bt_tran_task.c(369),ERROR" ID="0x8c940b8a" />
- <MSG STRUCTURE="diag_log_msg4" NAME="rec mcu write property fail,tid:0x%x,sof:0x%x,len:0x%04x,opcode:0x%04x @bt_tran_task.c(379),ERROR" ID="0x8c940bda" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ipc data data len err = %d @bt_tran_task.c(409),ERROR" ID="0x8c940cca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ipc data data len err = %d @bt_tran_task.c(419),ERROR" ID="0x8c940d1a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ipc data from M7 error = %d @bt_tran_task.c(423),ERROR" ID="0x8c940d3a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ipc data from unknow core @bt_tran_task.c(435),ERROR" ID="0x8c940d9a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt tran task handler osMessageQueueGet fail ret:(%x) @bt_tran_task.c(461),ERROR" ID="0x8c940e6a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt tran task framek write property en_id = 0x%x @bt_tran_task.c(485),INFO" ID="0x8c940f2d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="write Property fail id:0x%x, ret:0x%x @bt_tran_task.c(493),ERROR" ID="0x8c940f6a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="bt tran task framek write property fail en_id:%d,ret:%x @bt_tran_task.c(502),ERROR" ID="0x8c940fb2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ERROR]p_data is null @bt_tran_task.c(85),ERROR" ID="0x8c9402aa" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="BT_TRAN:route data:TID&SOF&SID&CID, LEN = 0x%04X%04X, %d @bt_tran_task.c(115),ERROR" ID="0x8c94039a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Error route_id! @bt_tran_task.c(127),ERROR" ID="0x8c9403fa" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="BT_TRAN:route data:TID&SOF&SID&CID, LEN = 0x%04X%04X, %d @bt_tran_task.c(147),ERROR" ID="0x8c94049a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="BT_TRAN:data:TID&SOF&SID&CID:0x%04X%04X,LEN:%d @bt_tran_task.c(150),ERROR" ID="0x8c9404b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="INVALID DATA! @bt_tran_task.c(186),ERROR" ID="0x8c9405d2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="BT_TRAN: TXMCU:ipc send data = %d @bt_tran_task.c(214),ERROR" ID="0x8c9406b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="UNKNOW CORE! @bt_tran_task.c(224),ERROR" ID="0x8c940702" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt tran task framek free property allow_free= %d @bt_tran_task.c(264),INFO" ID="0x8c940845" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="pst_property->en_id = 0x%x @bt_tran_task.c(282),INFO" ID="0x8c9408d5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ipc buf release number:%u %u. @bt_tran_task.c(330),ERROR" ID="0x8c940a52" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="hci qos buf overflow. @bt_tran_task.c(356),ERROR" ID="0x8c940b22" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble fsm buf overflow. @bt_tran_task.c(362),ERROR" ID="0x8c940b52" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ipc buf warning number:%u %u. @bt_tran_task.c(370),ERROR" ID="0x8c940b92" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="BT_TRAN: data ERROR data_len:%d @bt_tran_task.c(389),WARNING" ID="0x8c940c2b" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="BT_TRAN: data ERROR data:0x%08x, 0x%08x @bt_tran_task.c(393),WARNING" ID="0x8c940c4b" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="rec mcu error data,tid:0x%x,sof:0x%x,len:0x%04x,opcode:0x%04x @bt_tran_task.c(402),ERROR" ID="0x8c940c92" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="rec data malloc fail opcode:0x%04x,length:(0x%04x) @bt_tran_task.c(420),ERROR" ID="0x8c940d22" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="rec data memcpy fail opcode:0x%04x,length:(0x%04x) @bt_tran_task.c(426),ERROR" ID="0x8c940d52" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="rec mcu write property fail,tid:0x%x,sof:0x%x,len:0x%04x,opcode:0x%04x @bt_tran_task.c(436),ERROR" ID="0x8c940da2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ipc data data len err = %d @bt_tran_task.c(473),ERROR" ID="0x8c940eca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ipc data data len err = %d @bt_tran_task.c(483),ERROR" ID="0x8c940f1a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ipc data from M7 error = %d @bt_tran_task.c(487),ERROR" ID="0x8c940f3a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ipc data from unknow core @bt_tran_task.c(499),ERROR" ID="0x8c940f9a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt tran task handler osMessageQueueGet fail ret:(%x) @bt_tran_task.c(525),ERROR" ID="0x8c94106a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt tran task framek write property en_id = 0x%x @bt_tran_task.c(549),INFO" ID="0x8c94112d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="write Property fail id:0x%x, ret:0x%x @bt_tran_task.c(557),ERROR" ID="0x8c94116a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="bt tran task framek write property fail en_id:%d,ret:%x @bt_tran_task.c(566),ERROR" ID="0x8c9411b2" />
<MSG STRUCTURE="diag_log_msg3" NAME="[lc_sc_lmp_msg_conflict_check] policy=%d, state=%d, current_state=%d @lc_sc.c(763),INFO" ID="0x887c17dd" />
<MSG STRUCTURE="diag_log_msg1" NAME="lc_sc_hci_command_reject no found opcode in tab, opcode=%d @lc_sc.c(1226),ERROR" ID="0x887c2652" />
<MSG STRUCTURE="diag_log_msg1" NAME="[INFO][LC_SC]:in role switch or enc state, to save message id=%d @lc_sc.c(1374),INFO" ID="0x887c2af5" />
<MSG STRUCTURE="diag_log_msg0" NAME="[ERROR][LLC][SUPP]llc_conn_cte_req_ind_handler:discard the message @llc_task_ram.c(323),ERROR" ID="0x8a140a1a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[SDK]convert uuid to sdk memcpy_s error @sdk_gatt_hlp.c(113),ERROR" ID="0x8da6038a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[SDK]convert uuid to stack memcpy_s error @sdk_gatt_hlp.c(125),ERROR" ID="0x8da603ea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att exchange mtu addr memcpy fail @sdk_gatt_hlp.c(574),ERROR" ID="0x8da611f2" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[gatth_get_multiple_characteristics_value] rmt:0x%x mtu:0x%x @sdk_gatt_hlp.c(880),INFO" ID="0x8da61b85" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[gatth_get_characteristics_by_uuid] start_handle:0x%x end_handle:0x%x @sdk_gatt_hlp.c(1013),INFO" ID="0x8da61fad" />
- <MSG STRUCTURE="diag_log_msg2" NAME="btsdk gatth get descriptor by handle arg->start_handle:0x%x arg->end_handle:0x%x @sdk_gatt_hlp.c(1056),INFO" ID="0x8da62105" />
- <MSG STRUCTURE="diag_log_msg0" NAME="gatth_set_reliable_characteristic_value in @sdk_gatt_hlp.c(1101),INFO" ID="0x8da6226d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[gatth_set_characteristic_value] memcpy failed @sdk_gatt_hlp.c(1138),ERROR" ID="0x8da62392" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic rmt is NULL @sdk_gatt_hlp.c(1170),ERROR" ID="0x8da62492" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic memcpy failed @sdk_gatt_hlp.c(1177),ERROR" ID="0x8da624ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic tl is NULL @sdk_gatt_hlp.c(1191),ERROR" ID="0x8da6253a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[gatth_check_and_save_value] memcpy failed @sdk_gatt_hlp.c(1651),ERROR" ID="0x8da6339a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_server_execute_write_complete memcpy_s error @sdk_gatt_hlp.c(1748),ERROR" ID="0x8da636a2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_server_write_ind memcpy_s error @sdk_gatt_hlp.c(1892),ERROR" ID="0x8da63b22" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_server_write_ind memcpy_s error @sdk_gatt_hlp.c(1914),ERROR" ID="0x8da63bd2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_send_response memcpy_s error @sdk_gatt_hlp.c(2267),ERROR" ID="0x8da646da" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_notify_multiple_characteristic_changed memcpy_s error @sdk_gatt_hlp.c(2500),ERROR" ID="0x8da64e22" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info mem new fail @sdk_gatt_hlp.c(2552),ERROR" ID="0x8da64fc2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info service uuid memcpy fail @sdk_gatt_hlp.c(2562),ERROR" ID="0x8da65012" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info attribute uuid memcpy fail @sdk_gatt_hlp.c(2567),ERROR" ID="0x8da6503a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info addr memcpy fail @sdk_gatt_hlp.c(2572),ERROR" ID="0x8da65062" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info val memcpy fail @sdk_gatt_hlp.c(2577),ERROR" ID="0x8da6508a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind can't find service by service hdl @sdk_gatt_hlp.c(2623),ERROR" ID="0x8da651fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write pkt null @sdk_gatt_hlp.c(2629),ERROR" ID="0x8da6522a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind can't find server cbk by server hdl @sdk_gatt_hlp.c(2636),ERROR" ID="0x8da65262" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info mem new fail @sdk_gatt_hlp.c(2668),ERROR" ID="0x8da65362" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info service uuid memcpy fail @sdk_gatt_hlp.c(2679),ERROR" ID="0x8da653ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info attribute uuid memcpy fail @sdk_gatt_hlp.c(2684),ERROR" ID="0x8da653e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info addr memcpy fail @sdk_gatt_hlp.c(2689),ERROR" ID="0x8da6540a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info val memcpy fail @sdk_gatt_hlp.c(2695),ERROR" ID="0x8da6543a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind can't find service by service hdl @sdk_gatt_hlp.c(2715),ERROR" ID="0x8da654da" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read pkt null @sdk_gatt_hlp.c(2721),ERROR" ID="0x8da6550a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind can't find server cbk by server hdl @sdk_gatt_hlp.c(2728),ERROR" ID="0x8da65542" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]write element @sdk_gatt_hlp.c(2765),INFO" ID="0x8da6566d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]read element @sdk_gatt_hlp.c(2769),INFO" ID="0x8da6568d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]write element free @sdk_gatt_hlp.c(2775),INFO" ID="0x8da656bd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att exchange mtu addr memcpy fail @sdk_gatt_hlp.c(581),ERROR" ID="0x8da6122a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[gatth_get_multiple_characteristics_value] rmt:0x%x mtu:0x%x @sdk_gatt_hlp.c(887),INFO" ID="0x8da61bbd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[gatth_get_characteristics_by_uuid] start_handle:0x%x end_handle:0x%x @sdk_gatt_hlp.c(1020),INFO" ID="0x8da61fe5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="btsdk gatth get descriptor by handle arg->start_handle:0x%x arg->end_handle:0x%x @sdk_gatt_hlp.c(1063),INFO" ID="0x8da6213d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="gatth_set_reliable_characteristic_value in @sdk_gatt_hlp.c(1108),INFO" ID="0x8da622a5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[gatth_set_characteristic_value] memcpy failed @sdk_gatt_hlp.c(1145),ERROR" ID="0x8da623ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic rmt is NULL @sdk_gatt_hlp.c(1178),ERROR" ID="0x8da624d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic memcpy failed @sdk_gatt_hlp.c(1186),ERROR" ID="0x8da62512" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic tl is NULL @sdk_gatt_hlp.c(1201),ERROR" ID="0x8da6258a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[SDK_GATT_HLP] HCI QOS state:%u @sdk_gatt_hlp.c(1550),ERROR" ID="0x8da63072" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[gatth_check_and_save_value] memcpy failed @sdk_gatt_hlp.c(1667),ERROR" ID="0x8da6341a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_server_execute_write_complete memcpy_s error @sdk_gatt_hlp.c(1764),ERROR" ID="0x8da63722" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_server_write_ind memcpy_s error @sdk_gatt_hlp.c(1908),ERROR" ID="0x8da63ba2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_server_write_ind memcpy_s error @sdk_gatt_hlp.c(1930),ERROR" ID="0x8da63c52" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_send_response memcpy_s error @sdk_gatt_hlp.c(2283),ERROR" ID="0x8da6475a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_notify_multiple_characteristic_changed memcpy_s error @sdk_gatt_hlp.c(2516),ERROR" ID="0x8da64ea2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info mem new fail @sdk_gatt_hlp.c(2568),ERROR" ID="0x8da65042" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info service uuid memcpy fail @sdk_gatt_hlp.c(2578),ERROR" ID="0x8da65092" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info attribute uuid memcpy fail @sdk_gatt_hlp.c(2583),ERROR" ID="0x8da650ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info addr memcpy fail @sdk_gatt_hlp.c(2588),ERROR" ID="0x8da650e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info val memcpy fail @sdk_gatt_hlp.c(2593),ERROR" ID="0x8da6510a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind can't find service by service hdl @sdk_gatt_hlp.c(2639),ERROR" ID="0x8da6527a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write pkt null @sdk_gatt_hlp.c(2645),ERROR" ID="0x8da652aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind can't find server cbk by server hdl @sdk_gatt_hlp.c(2652),ERROR" ID="0x8da652e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info mem new fail @sdk_gatt_hlp.c(2684),ERROR" ID="0x8da653e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info service uuid memcpy fail @sdk_gatt_hlp.c(2695),ERROR" ID="0x8da6543a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info attribute uuid memcpy fail @sdk_gatt_hlp.c(2700),ERROR" ID="0x8da65462" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info addr memcpy fail @sdk_gatt_hlp.c(2705),ERROR" ID="0x8da6548a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info val memcpy fail @sdk_gatt_hlp.c(2711),ERROR" ID="0x8da654ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind can't find service by service hdl @sdk_gatt_hlp.c(2731),ERROR" ID="0x8da6555a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read pkt null @sdk_gatt_hlp.c(2737),ERROR" ID="0x8da6558a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind can't find server cbk by server hdl @sdk_gatt_hlp.c(2744),ERROR" ID="0x8da655c2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]write element @sdk_gatt_hlp.c(2781),INFO" ID="0x8da656ed" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]read element @sdk_gatt_hlp.c(2785),INFO" ID="0x8da6570d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]write element free @sdk_gatt_hlp.c(2791),INFO" ID="0x8da6573d" />
<MSG STRUCTURE="diag_log_msg1" NAME="[AVDTP][EVENT_CALLBACK] EVENT=%u @a2dp_ui_ram.c(199),INFO" ID="0x8ba2063d" />
<MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][CIS]cig_param is null @llc_cis.c(115),WARNING" ID="0x89d0039b" />
<MSG STRUCTURE="diag_log_msg2" NAME="[CIS]calc tx_latency result, tx_latency_m2s:%d, tx_latency_s2m:%d @llc_cis.c(179),INFO" ID="0x89d0059d" />
<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(75),ERROR" ID="0x8c4c025a" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[ATT]UUID[0x%04x] start hdl[0x%x], end hdl[0x%x] @att_gatt.c(956),INFO" ID="0x8c4c1de5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(1057),ERROR" ID="0x8c4c210a" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[ATT]UUID[0x%04x] hdl[0x%x], value hdl[0x%x], len[0x%x] @att_gatt.c(1069),INFO" ID="0x8c4c216d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="properties[0x%x] @att_gatt.c(1070),INFO" ID="0x8c4c2175" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(1128),ERROR" ID="0x8c4c2342" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[ATT]UUID[0x%04x], hdl[0x%x], len[0x%x] @att_gatt.c(1137),INFO" ID="0x8c4c238d" />
- <MSG STRUCTURE="diag_log_msg5" NAME="GATT_Server_Create_UpdateCCC_Item, add item[hdl:%d] ccc onaddr:0x%02x:%02x:xx:xx:%02x:%02x @att_gatt.c(1351),INFO" ID="0x8c4c2a3d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(1475),ERROR" ID="0x8c4c2e1a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2327),ERROR" ID="0x8c4c48ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2573),ERROR" ID="0x8c4c506a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2601),ERROR" ID="0x8c4c514a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2606),ERROR" ID="0x8c4c5172" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[ATT_GATT] gatt tl done reason:%d occured:%d @att_gatt.c(320),ERROR" ID="0x8c4c0a02" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[ATT_GATT] gatt tl create require:%d addr:%02x******%02x%02x @att_gatt.c(414),ERROR" ID="0x8c4c0cf2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ATT_GATT]tl timeout evt:%d @att_gatt.c(667),ERROR" ID="0x8c4c14da" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[ATT_GATT] gatt tl disconnect require:%d addr:%02x******%02x%02x @att_gatt.c(844),ERROR" ID="0x8c4c1a62" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[ATT_GATT] gatt event cbk:%p evt:%d @att_gatt.c(871),ERROR" ID="0x8c4c1b3a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT_GATT] gatt error cfm task:%d errcode:%d mask:%d @att_gatt.c(887),ERROR" ID="0x8c4c1bba" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT]UUID[0x%04x] start hdl[0x%x], end hdl[0x%x] @att_gatt.c(973),INFO" ID="0x8c4c1e6d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(1074),ERROR" ID="0x8c4c2192" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[ATT]UUID[0x%04x] hdl[0x%x], value hdl[0x%x], len[0x%x] @att_gatt.c(1086),INFO" ID="0x8c4c21f5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="properties[0x%x] @att_gatt.c(1087),INFO" ID="0x8c4c21fd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(1145),ERROR" ID="0x8c4c23ca" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT]UUID[0x%04x], hdl[0x%x], len[0x%x] @att_gatt.c(1154),INFO" ID="0x8c4c2415" />
+ <MSG STRUCTURE="diag_log_msg5" NAME="GATT_Server_Create_UpdateCCC_Item, add item[hdl:%d] ccc onaddr:0x%02x:%02x:xx:xx:%02x:%02x @att_gatt.c(1368),INFO" ID="0x8c4c2ac5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(1492),ERROR" ID="0x8c4c2ea2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ATT_GATT] create le connect mask:%d @att_gatt.c(1810),ERROR" ID="0x8c4c3892" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ATT_GATT] create br connect mask:%d @att_gatt.c(1819),ERROR" ID="0x8c4c38da" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT_GATT] smp cfm mask:%d task_index:%d result:%d @att_gatt.c(1938),ERROR" ID="0x8c4c3c92" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT_GATT] smp request mask:%d task_index:%d sec_mode:%d @att_gatt.c(1973),ERROR" ID="0x8c4c3daa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2356),ERROR" ID="0x8c4c49a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2602),ERROR" ID="0x8c4c5152" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2630),ERROR" ID="0x8c4c5232" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ATT]memcpy_s error @att_gatt.c(2635),ERROR" ID="0x8c4c525a" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble disconnect error, the link does not exist. handle = %x @ble_core.c(950),ERROR" ID="0x8cc01db2" />
<MSG STRUCTURE="diag_log_msg0" NAME="ble core: The number of links has reached the maximum. @ble_core.c(1002),INFO" ID="0x8cc01f55" />
<MSG STRUCTURE="diag_log_msg0" NAME="ble core: ble state ind handle message is NULL @ble_core.c(1026),ERROR" ID="0x8cc02012" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble core: The number of links has reached the maximum. @ble_core.c(1035),INFO" ID="0x8cc0205d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble core: The number of links has reached the maximum. @ble_core.c(1035),ERROR" ID="0x8cc0205a" />
<MSG STRUCTURE="diag_log_msg0" NAME="ble core: ble state ind rmt is NULL @ble_core.c(1081),ERROR" ID="0x8cc021ca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble state ind memcpy rmt fail: %d @ble_core.c(1090),ERROR" ID="0x8cc02212" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble state ind malloc fail: %d @ble_core.c(1100),ERROR" ID="0x8cc02262" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble core: app ble smp key handle message is NULL @ble_core.c(1109),ERROR" ID="0x8cc022aa" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble state ind memcpy rmt fail: %d @ble_core.c(1154),ERROR" ID="0x8cc02412" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble log: AppBleConnResult msg_data is NULL @ble_core.c(1181),ERROR" ID="0x8cc024ea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble log: AppBleConnResult link does not exist on handle:%x @ble_core.c(1188),ERROR" ID="0x8cc02522" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: conn update result fail = %d @ble_core.c(1208),WARNING" ID="0x8cc025c3" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble core: Had Active Disconn,not to retry @ble_core.c(1333),INFO" ID="0x8cc029ad" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[ANCS]500ms comes! @ble_core.c(1365),INFO" ID="0x8cc02aad" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: unsupported msg_id: 0x%x @ble_core.c(1385),INFO" ID="0x8cc02b4d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: app ble init fail ret:%x @ble_core.c(1481),ERROR" ID="0x8cc02e4a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble core: ble core connect proc cmds param NULL @ble_core.c(1515),ERROR" ID="0x8cc02f5a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble core: ble core connect proc cmds pkt_ptr NULL @ble_core.c(1520),ERROR" ID="0x8cc02f82" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble state ind memcpy rmt fail: %d @ble_core.c(1088),ERROR" ID="0x8cc02202" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble core: app ble smp key handle message is NULL @ble_core.c(1102),ERROR" ID="0x8cc02272" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble state ind memcpy rmt fail: %d @ble_core.c(1147),ERROR" ID="0x8cc023da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble log: AppBleConnResult msg_data is NULL @ble_core.c(1174),ERROR" ID="0x8cc024b2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble log: AppBleConnResult link does not exist on handle:%x @ble_core.c(1181),ERROR" ID="0x8cc024ea" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: conn update result fail = %d @ble_core.c(1209),WARNING" ID="0x8cc025cb" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble core: Had Active Disconn,not to retry @ble_core.c(1334),INFO" ID="0x8cc029b5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[ANCS]500ms comes! @ble_core.c(1366),INFO" ID="0x8cc02ab5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: unsupported msg_id: 0x%x @ble_core.c(1386),INFO" ID="0x8cc02b55" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: app ble init fail ret:%x @ble_core.c(1482),ERROR" ID="0x8cc02e52" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble core: ble core connect proc cmds param NULL @ble_core.c(1516),ERROR" ID="0x8cc02f62" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble core: ble core connect proc cmds pkt_ptr NULL @ble_core.c(1521),ERROR" ID="0x8cc02f8a" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="ble general : HciEvConnUpdate, ev NULL @ble_general.c(114),ERROR" ID="0x8dda0392" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : conn result status = 0x%02x @ble_general.c(122),INFO" ID="0x8dda03d5" />
- <MSG STRUCTURE="diag_log_msg4" NAME="ble general : handle&interval&latency&timeout, 0x%04x & 0x%04x & 0x%04x & 0x%04x @ble_general.c(125),INFO" ID="0x8dda03ed" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : memcpy conn para result fail: %d @ble_general.c(134),ERROR" ID="0x8dda0432" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : conn para result malloc fail: %d @ble_general.c(143),ERROR" ID="0x8dda047a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : HciEvEncryptionChange, ev NULL @ble_general.c(153),ERROR" ID="0x8dda04ca" />
- <MSG STRUCTURE="diag_log_msg3" NAME="ble general : ENCRYPTION, status&handle&result = 0x%02x & 0x%04x & 0x%02x @ble_general.c(164),INFO" ID="0x8dda0525" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : HciEncryptionNegativeReply, ev NULL @ble_general.c(185),ERROR" ID="0x8dda05ca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : BLE GENERAL KEY MISS, handle = 0x%02x @ble_general.c(189),ERROR" ID="0x8dda05ea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general pair cfm callback, result = 0x%04x @ble_general.c(202),INFO" ID="0x8dda0655" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy addr fail when pair cbk @ble_general.c(209),ERROR" ID="0x8dda068a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general start pair ble addr null @ble_general.c(226),ERROR" ID="0x8dda0712" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy addr fail when start pair @ble_general.c(232),ERROR" ID="0x8dda0742" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : set bondle fail = %d @ble_general.c(240),ERROR" ID="0x8dda0782" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general start ble pair addr type = %d @ble_general.c(246),INFO" ID="0x8dda07b5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update param is NULL @ble_general.c(262),ERROR" ID="0x8dda0832" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update in is NULL @ble_general.c(269),ERROR" ID="0x8dda086a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update, ble remote addr NULL @ble_general.c(275),ERROR" ID="0x8dda089a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update, memcpy fail @ble_general.c(282),ERROR" ID="0x8dda08d2" />
- <MSG STRUCTURE="diag_log_msg2" NAME="ble general : ConnUpdate cap&atype = 0x%02x & 0x%02x @ble_general.c(295),INFO" ID="0x8dda093d" />
- <MSG STRUCTURE="diag_log_msg4" NAME="ble general : min&max&latency&timeout, 0x%04x & 0x%04x & 0x%04x & 0x%04x @ble_general.c(298),INFO" ID="0x8dda0955" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general conn update fail: %d @ble_general.c(304),ERROR" ID="0x8dda0982" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general disconnect, bleRemoteAddr_cpy NULL @ble_general.c(322),ERROR" ID="0x8dda0a12" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general disconnect, memcpy fail @ble_general.c(328),ERROR" ID="0x8dda0a42" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general connect memcpy fail @ble_general.c(349),ERROR" ID="0x8dda0aea" />
- <MSG STRUCTURE="diag_log_msg2" NAME="ble general set sec params bondable & io_capability 0x%02x%02x @ble_general.c(389),INFO" ID="0x8dda0c2d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general set sec params set bondable failed @ble_general.c(394),INFO" ID="0x8dda0c55" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general set sec params set io capability failed @ble_general.c(401),INFO" ID="0x8dda0c8d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general set sec params failed @ble_general.c(414),INFO" ID="0x8dda0cf5" />
- <MSG STRUCTURE="diag_log_msg2" NAME="ble general set sec params ok! g_config_smp_lesc = %u, g_config_smp_mode = %u @ble_general.c(419),INFO" ID="0x8dda0d1d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general remove smp key addr NULL @ble_general.c(431),ERROR" ID="0x8dda0d7a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general remove smp key mamcpy fail @ble_general.c(444),ERROR" ID="0x8dda0de2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general remove smp key new fail %d @ble_general.c(450),ERROR" ID="0x8dda0e12" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general ble notification param is NULL @ble_general.c(472),ERROR" ID="0x8dda0ec2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : notify len_cpy error: %d @ble_general.c(478),ERROR" ID="0x8dda0ef2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general ble start pair new in is NULL @ble_general.c(487),ERROR" ID="0x8dda0f3a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy ble_value fail when notify @ble_general.c(494),ERROR" ID="0x8dda0f72" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memset addr error when notify @ble_general.c(505),ERROR" ID="0x8dda0fca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : sais service cb arg is NULL @ble_general.c(520),ERROR" ID="0x8dda1042" />
- <MSG STRUCTURE="diag_log_msg2" NAME="ble general : GattsSaisServiceCbk, event len = %d, %d @ble_general.c(527),INFO" ID="0x8dda107d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg sais service service is NULL @ble_general.c(569),ERROR" ID="0x8dda11ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg sais service character is NULL @ble_general.c(580),ERROR" ID="0x8dda1222" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : alipay service cb arg is NULL @ble_general.c(603),ERROR" ID="0x8dda12da" />
- <MSG STRUCTURE="diag_log_msg3" NAME="ble general : GattsAlipayServiceCbk, uuid = 0x%x, event = %d, len = %d @ble_general.c(611),INFO" ID="0x8dda131d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : GattsAlipayServiceCbk, pend uuid = 0x%04x @ble_general.c(632),DBG" ID="0x8dda13c6" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg alipay service service is NULL @ble_general.c(661),ERROR" ID="0x8dda14aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg alipay service character is NULL @ble_general.c(672),ERROR" ID="0x8dda1502" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : BleGeneralGattCallback_arg NULL @ble_general.c(688),ERROR" ID="0x8dda1582" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[ANCS]Get Notification data, len=%d @ble_general.c(709),INFO" ID="0x8dda162d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : gap general conn cb para is NULL @ble_general.c(770),ERROR" ID="0x8dda1812" />
- <MSG STRUCTURE="diag_log_msg2" NAME="ble general : ble general connection event & cap: 0x%02x, 0x%02x @ble_general.c(777),INFO" ID="0x8dda184d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : gap general smp succeed cb para is NULL @ble_general.c(813),ERROR" ID="0x8dda196a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : authentication failure cb para is NULL @ble_general.c(834),ERROR" ID="0x8dda1a12" />
- <MSG STRUCTURE="diag_log_msg2" NAME="ble general : BLE GENERAL SMP REQUEST FAIL, cap = 0x%02x status: %x @ble_general.c(841),ERROR" ID="0x8dda1a4a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy addr fail when authentication @ble_general.c(849),ERROR" ID="0x8dda1a8a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : other branch @ble_general.c(867),INFO" ID="0x8dda1b1d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : gap cb event: 0x%02x @ble_general.c(902),INFO" ID="0x8dda1c35" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : batery service cb arg_cpy is NULL @ble_general.c(934),ERROR" ID="0x8dda1d32" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg battery service is NULL @ble_general.c(967),ERROR" ID="0x8dda1e3a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg battery service character is NULL @ble_general.c(982),ERROR" ID="0x8dda1eb2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="unknown product type:%x @ble_general.c(1009),INFO" ID="0x8dda1f8d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="product type:%x @ble_general.c(1017),INFO" ID="0x8dda1fcd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : App_RecoverSMPKeys data_len err, %d @ble_general.c(1080),ERROR" ID="0x8dda21c2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : NEW key_list fail, %d @ble_general.c(1086),ERROR" ID="0x8dda21f2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : List NEW key fail, %d @ble_general.c(1101),ERROR" ID="0x8dda226a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general : List NEW key fail, %d @ble_general.c(1109),ERROR" ID="0x8dda22aa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general ble init cBacks is NULL @ble_general.c(1132),ERROR" ID="0x8dda2362" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy cBacks fail when ble general ble init @ble_general.c(1139),ERROR" ID="0x8dda239a" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="ble general : HciEvConnUpdate, ev NULL @ble_general.c(111),ERROR" ID="0x8dda037a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : conn result status = 0x%02x @ble_general.c(119),INFO" ID="0x8dda03bd" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="ble general : handle&interval&latency&timeout, 0x%04x & 0x%04x & 0x%04x & 0x%04x @ble_general.c(122),INFO" ID="0x8dda03d5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : HciEvEncryptionChange, ev NULL @ble_general.c(139),ERROR" ID="0x8dda045a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="ble general : ENCRYPTION, status&handle&result = 0x%02x & 0x%04x & 0x%02x @ble_general.c(150),INFO" ID="0x8dda04b5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : HciEncryptionNegativeReply, ev NULL @ble_general.c(168),ERROR" ID="0x8dda0542" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : BLE GENERAL KEY MISS, handle = 0x%02x @ble_general.c(172),ERROR" ID="0x8dda0562" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general pair cfm callback, result = 0x%04x @ble_general.c(181),INFO" ID="0x8dda05ad" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general start pair ble addr null @ble_general.c(195),ERROR" ID="0x8dda061a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy addr fail when start pair @ble_general.c(201),ERROR" ID="0x8dda064a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : set bondle fail = %d @ble_general.c(209),ERROR" ID="0x8dda068a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general start ble pair addr type = %d @ble_general.c(215),INFO" ID="0x8dda06bd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update param is NULL @ble_general.c(231),ERROR" ID="0x8dda073a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update in is NULL @ble_general.c(238),ERROR" ID="0x8dda0772" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update, ble remote addr NULL @ble_general.c(244),ERROR" ID="0x8dda07a2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general conn update, memcpy fail @ble_general.c(251),ERROR" ID="0x8dda07da" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ble general : ConnUpdate cap&atype = 0x%02x & 0x%02x @ble_general.c(264),INFO" ID="0x8dda0845" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="ble general : min&max&latency&timeout, 0x%04x & 0x%04x & 0x%04x & 0x%04x @ble_general.c(267),INFO" ID="0x8dda085d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general conn update fail: %d @ble_general.c(273),ERROR" ID="0x8dda088a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general disconnect, bleRemoteAddr_cpy NULL @ble_general.c(291),ERROR" ID="0x8dda091a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general disconnect, memcpy fail @ble_general.c(297),ERROR" ID="0x8dda094a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general connect memcpy fail @ble_general.c(318),ERROR" ID="0x8dda09f2" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ble general set sec params bondable & io_capability 0x%02x%02x @ble_general.c(358),INFO" ID="0x8dda0b35" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general set sec params set bondable failed @ble_general.c(363),INFO" ID="0x8dda0b5d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general set sec params set io capability failed @ble_general.c(370),INFO" ID="0x8dda0b95" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general set sec params failed @ble_general.c(383),INFO" ID="0x8dda0bfd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ble general set sec params ok! g_config_smp_lesc = %u, g_config_smp_mode = %u @ble_general.c(388),INFO" ID="0x8dda0c25" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general remove smp key addr NULL @ble_general.c(400),ERROR" ID="0x8dda0c82" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general remove smp key mamcpy fail @ble_general.c(413),ERROR" ID="0x8dda0cea" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : ble general remove smp key new fail %d @ble_general.c(419),ERROR" ID="0x8dda0d1a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general ble notification param is NULL @ble_general.c(441),ERROR" ID="0x8dda0dca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : notify len_cpy error: %d @ble_general.c(447),ERROR" ID="0x8dda0dfa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general ble start pair new in is NULL @ble_general.c(456),ERROR" ID="0x8dda0e42" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy ble_value fail when notify @ble_general.c(463),ERROR" ID="0x8dda0e7a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memset addr error when notify @ble_general.c(474),ERROR" ID="0x8dda0ed2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : sais service cb arg is NULL @ble_general.c(489),ERROR" ID="0x8dda0f4a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ble general : GattsSaisServiceCbk, event len = %d, %d @ble_general.c(496),INFO" ID="0x8dda0f85" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg sais service service is NULL @ble_general.c(538),ERROR" ID="0x8dda10d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg sais service character is NULL @ble_general.c(549),ERROR" ID="0x8dda112a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : alipay service cb arg is NULL @ble_general.c(572),ERROR" ID="0x8dda11e2" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="ble general : GattsAlipayServiceCbk, uuid = 0x%x, event = %d, len = %d @ble_general.c(580),INFO" ID="0x8dda1225" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : GattsAlipayServiceCbk, pend uuid = 0x%04x @ble_general.c(601),DBG" ID="0x8dda12ce" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg alipay service service is NULL @ble_general.c(630),ERROR" ID="0x8dda13b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg alipay service character is NULL @ble_general.c(641),ERROR" ID="0x8dda140a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : BleGeneralGattCallback_arg NULL @ble_general.c(657),ERROR" ID="0x8dda148a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[ANCS]Get Notification data, len=%d @ble_general.c(678),INFO" ID="0x8dda1535" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : gap general conn cb para is NULL @ble_general.c(739),ERROR" ID="0x8dda171a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ble general : ble general connection event & cap: 0x%02x, 0x%02x @ble_general.c(746),INFO" ID="0x8dda1755" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : gap general smp succeed cb para is NULL @ble_general.c(782),ERROR" ID="0x8dda1872" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : memcpy smp key store value fail: %d @ble_general.c(791),ERROR" ID="0x8dda18ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : authentication failure cb para is NULL @ble_general.c(801),ERROR" ID="0x8dda190a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ble general : BLE GENERAL SMP REQUEST FAIL, cap = 0x%02x status: %x @ble_general.c(808),ERROR" ID="0x8dda1942" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy addr fail when authentication @ble_general.c(815),ERROR" ID="0x8dda197a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : other branch @ble_general.c(831),INFO" ID="0x8dda19fd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : gap cb event: 0x%02x @ble_general.c(870),ERROR" ID="0x8dda1b32" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : batery service cb arg_cpy is NULL @ble_general.c(904),ERROR" ID="0x8dda1c42" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg battery service is NULL @ble_general.c(937),ERROR" ID="0x8dda1d4a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : reg battery service character is NULL @ble_general.c(952),ERROR" ID="0x8dda1dc2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="unknown product type:%x @ble_general.c(979),INFO" ID="0x8dda1e9d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="product type:%x @ble_general.c(987),INFO" ID="0x8dda1edd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : App_RecoverSMPKeys data_len err, %d @ble_general.c(1050),ERROR" ID="0x8dda20d2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : NEW key_list fail, %d @ble_general.c(1056),ERROR" ID="0x8dda2102" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : List NEW key fail, %d @ble_general.c(1071),ERROR" ID="0x8dda217a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general : List NEW key fail, %d @ble_general.c(1079),ERROR" ID="0x8dda21ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : ble general ble init cBacks is NULL @ble_general.c(1102),ERROR" ID="0x8dda2272" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general : memcpy cBacks fail when ble general ble init @ble_general.c(1109),ERROR" ID="0x8dda22aa" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg1" NAME="ble gatt client characteristic value callback memcpy fail: %d @ble_general_gatt.c(665),ERROR" ID="0x8de014ca" />
<MSG STRUCTURE="diag_log_msg1" NAME="ble gatt client characteristic value callback memcpy fail: %d @ble_general_gatt.c(673),ERROR" ID="0x8de0150a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[BCore] gatt client write result can't find upper cbk. @ble_general_gatt.c(708),ERROR" ID="0x8de01622" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BCore] gatt client write result addr memcpy fail @ble_general_gatt.c(720),ERROR" ID="0x8de01682" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble gatt client call back func type=%d @ble_general_gatt.c(773),INFO" ID="0x8de0182d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery service not found:0x%x. @ble_general_gatt.c(804),WARNING" ID="0x8de01923" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery include service not found:0x%x. @ble_general_gatt.c(827),WARNING" ID="0x8de019db" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic new fail. @ble_general_gatt.c(843),ERROR" ID="0x8de01a5a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic memset fail. @ble_general_gatt.c(848),ERROR" ID="0x8de01a82" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery characteristic not found:0x%x. @ble_general_gatt.c(865),WARNING" ID="0x8de01b0b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic by uuid new fail. @ble_general_gatt.c(883),ERROR" ID="0x8de01b9a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic by uuid memset fail. @ble_general_gatt.c(889),ERROR" ID="0x8de01bca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic by uuid memcpy fail. @ble_general_gatt.c(903),ERROR" ID="0x8de01c3a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery characteristic by uuid not found:0x%x. @ble_general_gatt.c(914),WARNING" ID="0x8de01c93" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor by handle new fail. @ble_general_gatt.c(930),ERROR" ID="0x8de01d12" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery descriptor by handle not found:0x%x. @ble_general_gatt.c(944),WARNING" ID="0x8de01d83" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor new fail. @ble_general_gatt.c(964),ERROR" ID="0x8de01e22" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor memset fail. @ble_general_gatt.c(969),ERROR" ID="0x8de01e4a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor memcpy fail. @ble_general_gatt.c(975),ERROR" ID="0x8de01e7a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery descriptor not found:0x%x. @ble_general_gatt.c(986),WARNING" ID="0x8de01ed3" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble gatt read characteristic value respon new fail. @ble_general_gatt.c(1007),ERROR" ID="0x8de01f7a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read characteristic value respon memcpy fail: %d @ble_general_gatt.c(1014),ERROR" ID="0x8de01fb2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read characteristic value respon memcpy fail: %d @ble_general_gatt.c(1024),ERROR" ID="0x8de02002" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic value new fail. @ble_general_gatt.c(1047),ERROR" ID="0x8de020ba" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read descriptor value error:0x%x. @ble_general_gatt.c(1061),ERROR" ID="0x8de0212a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic by uuid new fail. @ble_general_gatt.c(1079),ERROR" ID="0x8de021ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic by uuid memcpy fail. @ble_general_gatt.c(1092),ERROR" ID="0x8de02222" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic by uuid memcpy fail. @ble_general_gatt.c(1099),ERROR" ID="0x8de0225a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read characteristic by uuid error:0x%x. @ble_general_gatt.c(1106),WARNING" ID="0x8de02293" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read multiple characteristic new fail. @ble_general_gatt.c(1124),ERROR" ID="0x8de02322" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read multiple characteristic memset fail. @ble_general_gatt.c(1131),ERROR" ID="0x8de0235a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read multiple characteristic error:0x%x. @ble_general_gatt.c(1147),WARNING" ID="0x8de023db" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read multiple characteristic error:0x%x. @ble_general_gatt.c(1177),WARNING" ID="0x8de024cb" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic value memcpy failed @ble_general_gatt.c(1229),ERROR" ID="0x8de0266a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic value param is NULL @ble_general_gatt.c(1252),ERROR" ID="0x8de02722" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt write characteristic value malloc fail, size:0x%x. @ble_general_gatt.c(1265),ERROR" ID="0x8de0278a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble general gatt write characteristic value memcpy fail: %d @ble_general_gatt.c(1275),ERROR" ID="0x8de027da" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt write characteristic value fail:0x%x. @ble_general_gatt.c(1289),WARNING" ID="0x8de0284b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt reliable write characteristic value param is NULL @ble_general_gatt.c(1308),ERROR" ID="0x8de028e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt reliable write characteristic value malloc fail @ble_general_gatt.c(1315),ERROR" ID="0x8de0291a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BCore] ble general gatt reliable write characteristic value memcpy fail @ble_general_gatt.c(1324),ERROR" ID="0x8de02962" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt reliable write characteristic value fail:0x%x. @ble_general_gatt.c(1343),WARNING" ID="0x8de029fb" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt write descriptor value malloc faile, size:0x%x. @ble_general_gatt.c(1360),ERROR" ID="0x8de02a82" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble general gatt write descriptor value memcpy fail: %d @ble_general_gatt.c(1369),ERROR" ID="0x8de02aca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery descriptor error:0x%x. @ble_general_gatt.c(1379),ERROR" ID="0x8de02b1a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read descriptor value response memcpy fail: %d @ble_general_gatt.c(1401),ERROR" ID="0x8de02bca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read descriptor value response memcpy fail: %d @ble_general_gatt.c(1409),ERROR" ID="0x8de02c0a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read descriptor value error:0x%x. @ble_general_gatt.c(1438),ERROR" ID="0x8de02cf2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt mtu config error:0x%x. @ble_general_gatt.c(1453),ERROR" ID="0x8de02d6a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt set gap ui attributes error:0x%x. @ble_general_gatt.c(1466),ERROR" ID="0x8de02dd2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt get gap ui attributes error:0x%x. @ble_general_gatt.c(1485),ERROR" ID="0x8de02e6a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="bt mpc adapter gatt get hid report callback new fail @ble_general_gatt.c(1515),ERROR" ID="0x8de02f5a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt get hid report callback error_code = %x @ble_general_gatt.c(1526),INFO" ID="0x8de02fb5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble gatt client call back func type=%d @ble_general_gatt.c(771),INFO" ID="0x8de0181d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery service not found:0x%x. @ble_general_gatt.c(802),WARNING" ID="0x8de01913" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery include service not found:0x%x. @ble_general_gatt.c(825),WARNING" ID="0x8de019cb" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic new fail. @ble_general_gatt.c(841),ERROR" ID="0x8de01a4a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic memset fail. @ble_general_gatt.c(846),ERROR" ID="0x8de01a72" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery characteristic not found:0x%x. @ble_general_gatt.c(863),WARNING" ID="0x8de01afb" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic by uuid new fail. @ble_general_gatt.c(881),ERROR" ID="0x8de01b8a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic by uuid memset fail. @ble_general_gatt.c(887),ERROR" ID="0x8de01bba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery characteristic by uuid memcpy fail. @ble_general_gatt.c(901),ERROR" ID="0x8de01c2a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery characteristic by uuid not found:0x%x. @ble_general_gatt.c(912),WARNING" ID="0x8de01c83" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor by handle new fail. @ble_general_gatt.c(928),ERROR" ID="0x8de01d02" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery descriptor by handle not found:0x%x. @ble_general_gatt.c(942),WARNING" ID="0x8de01d73" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor new fail. @ble_general_gatt.c(962),ERROR" ID="0x8de01e12" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor memset fail. @ble_general_gatt.c(967),ERROR" ID="0x8de01e3a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt discovery descriptor memcpy fail. @ble_general_gatt.c(973),ERROR" ID="0x8de01e6a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery descriptor not found:0x%x. @ble_general_gatt.c(984),WARNING" ID="0x8de01ec3" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble gatt read characteristic value respon new fail. @ble_general_gatt.c(1005),ERROR" ID="0x8de01f6a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read characteristic value respon memcpy fail: %d @ble_general_gatt.c(1012),ERROR" ID="0x8de01fa2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read characteristic value respon memcpy fail: %d @ble_general_gatt.c(1022),ERROR" ID="0x8de01ff2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic value new fail. @ble_general_gatt.c(1045),ERROR" ID="0x8de020aa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read descriptor value error:0x%x. @ble_general_gatt.c(1059),ERROR" ID="0x8de0211a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic by uuid new fail. @ble_general_gatt.c(1077),ERROR" ID="0x8de021aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic by uuid memcpy fail. @ble_general_gatt.c(1090),ERROR" ID="0x8de02212" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read characteristic by uuid memcpy fail. @ble_general_gatt.c(1097),ERROR" ID="0x8de0224a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read characteristic by uuid error:0x%x. @ble_general_gatt.c(1104),WARNING" ID="0x8de02283" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read multiple characteristic new fail. @ble_general_gatt.c(1122),ERROR" ID="0x8de02312" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt read multiple characteristic memset fail. @ble_general_gatt.c(1129),ERROR" ID="0x8de0234a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read multiple characteristic error:0x%x. @ble_general_gatt.c(1145),WARNING" ID="0x8de023cb" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read multiple characteristic error:0x%x. @ble_general_gatt.c(1175),WARNING" ID="0x8de024bb" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic value memcpy failed @ble_general_gatt.c(1227),ERROR" ID="0x8de0265a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic value param is NULL @ble_general_gatt.c(1250),ERROR" ID="0x8de02712" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt write characteristic value malloc fail, size:0x%x. @ble_general_gatt.c(1263),ERROR" ID="0x8de0277a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble general gatt write characteristic value memcpy fail: %d @ble_general_gatt.c(1273),ERROR" ID="0x8de027ca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt write characteristic value fail:0x%x. @ble_general_gatt.c(1287),WARNING" ID="0x8de0283b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt reliable write characteristic value param is NULL @ble_general_gatt.c(1306),ERROR" ID="0x8de028d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt reliable write characteristic value malloc fail @ble_general_gatt.c(1313),ERROR" ID="0x8de0290a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BCore] ble general gatt reliable write characteristic value memcpy fail @ble_general_gatt.c(1322),ERROR" ID="0x8de02952" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt reliable write characteristic value fail:0x%x. @ble_general_gatt.c(1341),WARNING" ID="0x8de029eb" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt write descriptor value malloc faile, size:0x%x. @ble_general_gatt.c(1358),ERROR" ID="0x8de02a72" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble general gatt write descriptor value memcpy fail: %d @ble_general_gatt.c(1367),ERROR" ID="0x8de02aba" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt discovery descriptor error:0x%x. @ble_general_gatt.c(1377),ERROR" ID="0x8de02b0a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read descriptor value response memcpy fail: %d @ble_general_gatt.c(1399),ERROR" ID="0x8de02bba" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BCore] ble gatt read descriptor value response memcpy fail: %d @ble_general_gatt.c(1407),ERROR" ID="0x8de02bfa" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt read descriptor value error:0x%x. @ble_general_gatt.c(1436),ERROR" ID="0x8de02ce2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt mtu config error:0x%x. @ble_general_gatt.c(1451),ERROR" ID="0x8de02d5a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt set gap ui attributes error:0x%x. @ble_general_gatt.c(1464),ERROR" ID="0x8de02dc2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble general gatt get gap ui attributes error:0x%x. @ble_general_gatt.c(1483),ERROR" ID="0x8de02e5a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="bt mpc adapter gatt get hid report callback new fail @ble_general_gatt.c(1513),ERROR" ID="0x8de02f4a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt get hid report callback error_code = %x @ble_general_gatt.c(1524),INFO" ID="0x8de02fa5" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="stack gap set discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(75),INFO" ID="0x8c9e025d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap get discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(89),INFO" ID="0x8c9e02cd" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap stop discovery result = 0x%x, mode = 0x%x @bt_ahi_gap.c(99),INFO" ID="0x8c9e031d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl result = 0x%x, dev_hdl = 0x%x, link type = %d @bt_ahi_gap.c(113),INFO" ID="0x8c9e038d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(126),ERROR" ID="0x8c9e03f2" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl cfm cbk result = 0x%x, acl_hdl = 0x%x, link type = %d @bt_ahi_gap.c(131),INFO" ID="0x8c9e041d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap create acla result = 0x%x @bt_ahi_gap.c(140),INFO" ID="0x8c9e0465" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap reconnect phone result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(151),INFO" ID="0x8c9e04bd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap get rmt dev handle result = 0x%x @bt_ahi_gap.c(163),INFO" ID="0x8c9e051d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap device is connected result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(175),INFO" ID="0x8c9e057d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="btsdk disconnect acl by handle result = 0x%x @bt_ahi_gap.c(186),INFO" ID="0x8c9e05d5" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap pair device result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(198),INFO" ID="0x8c9e0635" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap add rmt device rsp.result = %x @bt_ahi_gap.c(215),INFO" ID="0x8c9e06bd" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap update rmt device name result = 0x%x, name = %s @bt_ahi_gap.c(235),INFO" ID="0x8c9e075d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(249),ERROR" ID="0x8c9e07ca" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap update rmt device name cfm cbk result = 0x%x, opindex = 0x%x, size = %d @bt_ahi_gap.c(257),INFO" ID="0x8c9e080d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap update rmt device name async result = 0x%x @bt_ahi_gap.c(267),INFO" ID="0x8c9e085d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap get local name result = 0x%x, length = %d, name = %s @bt_ahi_gap.c(303),INFO" ID="0x8c9e097d" />
- <MSG STRUCTURE="diag_log_msg4" NAME="stack gap get rmt dev addr result = 0x%x, addr[%02x:**:**:**:%02x:%02x] @bt_ahi_gap.c(328),INFO" ID="0x8c9e0a45" />
- <MSG STRUCTURE="diag_log_msg2" NAME="stack gap browse rmt service overflow, max_count = %d, svc_count = %d @bt_ahi_gap.c(350),ERROR" ID="0x8c9e0af2" />
- <MSG STRUCTURE="diag_log_msg3" NAME="stack gap browse rmt service result = 0x%x, svc_count = %d, svc_hdl[0] = 0x%x @bt_ahi_gap.c(356),INFO" ID="0x8c9e0b25" />
- <MSG STRUCTURE="diag_log_msg3" NAME="hfp enable sco:scohdl=0x%x inid=0x%x outid=0x%x @bt_ahi_gap.c(377),INFO" ID="0x8c9e0bcd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="hfp disable sco:scohdl=0x%x @bt_ahi_gap.c(381),INFO" ID="0x8c9e0bed" />
- <MSG STRUCTURE="diag_log_msg3" NAME="result = 0x%x, handle = 0x%x, service_class = %02x @bt_ahi_gap.c(414),INFO" ID="0x8c9e0cf5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap init, res = 0x%x @bt_ahi_gap.c(425),INFO" ID="0x8c9e0d4d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="set bt tx power, hdl=0x%x, power=%d, ret=0x%x @bt_ahi_gap.c(438),INFO" ID="0x8c9e0db5" />
- <MSG STRUCTURE="diag_log_msg3" NAME="br gap read rssi, hdl=0x%x, rssi=%d, ret=0x%x @bt_ahi_gap.c(446),INFO" ID="0x8c9e0df5" />
- <MSG STRUCTURE="diag_log_msg4" NAME="set active scene scene = %d, bitrate = %d, delay = %d, ret=0x%x @bt_ahi_gap.c(462),INFO" ID="0x8c9e0e75" />
- <MSG STRUCTURE="diag_log_msg2" NAME="set inquiry scan param interval = %d, window = %d @bt_ahi_gap.c(470),INFO" ID="0x8c9e0eb5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(481),ERROR" ID="0x8c9e0f0a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="stack gap restore rmt device rsp.result = %x @bt_ahi_gap.c(485),INFO" ID="0x8c9e0f2d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="br gap get link mode, hdl=0x%x, mode=%d, ret=0x%x @bt_ahi_gap.c(494),INFO" ID="0x8c9e0f75" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="stack gap set discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(82),INFO" ID="0x8c9e0295" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap get discovery mode result = 0x%x, mode = 0x%x @bt_ahi_gap.c(96),INFO" ID="0x8c9e0305" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap stop discovery result = 0x%x, mode = 0x%x @bt_ahi_gap.c(106),INFO" ID="0x8c9e0355" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl result = 0x%x, dev_hdl = 0x%x, link type = %d @bt_ahi_gap.c(120),INFO" ID="0x8c9e03c5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(133),ERROR" ID="0x8c9e042a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap create acl cfm cbk result = 0x%x, acl_hdl = 0x%x, link type = %d @bt_ahi_gap.c(138),INFO" ID="0x8c9e0455" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap create acla result = 0x%x @bt_ahi_gap.c(147),INFO" ID="0x8c9e049d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap reconnect phone result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(158),INFO" ID="0x8c9e04f5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap get rmt dev handle result = 0x%x @bt_ahi_gap.c(170),INFO" ID="0x8c9e0555" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap device is connected result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(182),INFO" ID="0x8c9e05b5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="btsdk disconnect acl by handle result = 0x%x @bt_ahi_gap.c(193),INFO" ID="0x8c9e060d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap pair device result = 0x%x, dev_hdl = 0x%x @bt_ahi_gap.c(205),INFO" ID="0x8c9e066d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap add rmt device rsp.result = %x @bt_ahi_gap.c(222),INFO" ID="0x8c9e06f5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap update rmt device name result = 0x%x, name = %s @bt_ahi_gap.c(242),INFO" ID="0x8c9e0795" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(256),ERROR" ID="0x8c9e0802" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap update rmt device name cfm cbk result = 0x%x, opindex = 0x%x, size = %d @bt_ahi_gap.c(264),INFO" ID="0x8c9e0845" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap update rmt device name async result = 0x%x @bt_ahi_gap.c(274),INFO" ID="0x8c9e0895" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap get local name result = 0x%x, length = %d, name = %s @bt_ahi_gap.c(310),INFO" ID="0x8c9e09b5" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="stack gap get rmt dev addr result = 0x%x, addr[%02x:**:**:**:%02x:%02x] @bt_ahi_gap.c(335),INFO" ID="0x8c9e0a7d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="stack gap browse rmt service overflow, max_count = %d, svc_count = %d @bt_ahi_gap.c(357),ERROR" ID="0x8c9e0b2a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="stack gap browse rmt service result = 0x%x, svc_count = %d, svc_hdl[0] = 0x%x @bt_ahi_gap.c(363),INFO" ID="0x8c9e0b5d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="hfp enable sco:scohdl=0x%x inid=0x%x outid=0x%x @bt_ahi_gap.c(384),INFO" ID="0x8c9e0c05" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="hfp disable sco:scohdl=0x%x @bt_ahi_gap.c(388),INFO" ID="0x8c9e0c25" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="result = 0x%x, handle = 0x%x, service_class = %02x @bt_ahi_gap.c(421),INFO" ID="0x8c9e0d2d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap init, res = 0x%x @bt_ahi_gap.c(432),INFO" ID="0x8c9e0d85" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="set bt tx power, hdl=0x%x, power=%d, ret=0x%x @bt_ahi_gap.c(445),INFO" ID="0x8c9e0ded" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="br gap read rssi, hdl=0x%x, rssi=%d, ret=0x%x @bt_ahi_gap.c(453),INFO" ID="0x8c9e0e2d" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="set active scene scene = %d, bitrate = %d, delay = %d, ret=0x%x @bt_ahi_gap.c(469),INFO" ID="0x8c9e0ead" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="set inquiry scan param interval = %d, window = %d @bt_ahi_gap.c(477),INFO" ID="0x8c9e0eed" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="memory copy failed @bt_ahi_gap.c(488),ERROR" ID="0x8c9e0f42" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="stack gap restore rmt device rsp.result = %x @bt_ahi_gap.c(492),INFO" ID="0x8c9e0f65" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="br gap get link mode, hdl=0x%x, mode=%d, ret=0x%x @bt_ahi_gap.c(501),INFO" ID="0x8c9e0fad" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="bt_init start... em start addr is 0x%x,em_size is 0x%x @bt_main.c(445),INFO" ID="0x89220ded" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]bt init pmu state change fail @bt_main.c(449),ERROR" ID="0x89220e0a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]bt_hal_phy_init started... @bt_main.c(469),INFO" ID="0x89220ead" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]init_sleep started... @bt_main.c(474),INFO" ID="0x89220ed5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]intc_init started... @bt_main.c(477),INFO" ID="0x89220eed" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]bt param config started... @bt_main.c(480),INFO" ID="0x89220f05" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]bt init end pmu state change fail @bt_main.c(501),ERROR" ID="0x89220faa" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="bt_init start... em start addr is 0x%x,em_size is 0x%x @bt_main.c(446),INFO" ID="0x89220df5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]bt init pmu state change fail @bt_main.c(450),ERROR" ID="0x89220e12" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]bt_hal_phy_init started... @bt_main.c(470),INFO" ID="0x89220eb5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]init_sleep started... @bt_main.c(475),INFO" ID="0x89220edd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]intc_init started... @bt_main.c(478),INFO" ID="0x89220ef5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][BT]bt param config started... @bt_main.c(481),INFO" ID="0x89220f0d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]bt init end pmu state change fail @bt_main.c(502),ERROR" ID="0x89220fb2" />
</MSG_LOG>
\ No newline at end of file
<MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt reliable write characteristic value req interface fail, ret%d @bt_mpc_adpt_gatt.c(576),WARNING" ID="0x8dd61203" />
<MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt write descriptor req param len error, len = %u @bt_mpc_adpt_gatt.c(587),ERROR" ID="0x8dd6125a" />
<MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt write descriptor req interface fail, ret%d @bt_mpc_adpt_gatt.c(594),WARNING" ID="0x8dd61293" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble notify att read data memcpy error! error_code = %x @bt_mpc_adpt_gatt.c(625),INFO" ID="0x8dd6138d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble notify att read addr memcpy error! error_code = %x @bt_mpc_adpt_gatt.c(632),INFO" ID="0x8dd613c5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu config req param len error, len = %u @bt_mpc_adpt_gatt.c(653),ERROR" ID="0x8dd6146a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu config req interface fail, ret%d @bt_mpc_adpt_gatt.c(660),WARNING" ID="0x8dd614a3" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt get hid report map req param len error, len = %u @bt_mpc_adpt_gatt.c(672),ERROR" ID="0x8dd61502" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt get hid report map req interface fail, ret%d @bt_mpc_adpt_gatt.c(679),WARNING" ID="0x8dd6153b" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt read descriptor req param len error, len = %u @bt_mpc_adpt_gatt.c(732),WARNING" ID="0x8dd616e3" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt read descriptor req param fail, ret%d @bt_mpc_adpt_gatt.c(738),WARNING" ID="0x8dd61713" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu set req param len error, len = %u @bt_mpc_adpt_gatt.c(750),ERROR" ID="0x8dd61772" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu set req interface fail, ret%d @bt_mpc_adpt_gatt.c(757),WARNING" ID="0x8dd617ab" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble notify att read addr memcpy error! error_code = %x @bt_mpc_adpt_gatt.c(617),ERROR" ID="0x8dd6134a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble notify att read data memcpy error! error_code = %x @bt_mpc_adpt_gatt.c(642),INFO" ID="0x8dd61415" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ble core: ble notify att read addr memcpy error! error_code = %x @bt_mpc_adpt_gatt.c(649),INFO" ID="0x8dd6144d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu config req param len error, len = %u @bt_mpc_adpt_gatt.c(670),ERROR" ID="0x8dd614f2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu config req interface fail, ret%d @bt_mpc_adpt_gatt.c(677),WARNING" ID="0x8dd6152b" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt get hid report map req param len error, len = %u @bt_mpc_adpt_gatt.c(689),ERROR" ID="0x8dd6158a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt get hid report map req interface fail, ret%d @bt_mpc_adpt_gatt.c(696),WARNING" ID="0x8dd615c3" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt read descriptor req param len error, len = %u @bt_mpc_adpt_gatt.c(753),WARNING" ID="0x8dd6178b" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt read descriptor req param fail, ret%d @bt_mpc_adpt_gatt.c(759),WARNING" ID="0x8dd617bb" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu set req param len error, len = %u @bt_mpc_adpt_gatt.c(771),ERROR" ID="0x8dd6181a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt mpc adapter gatt mtu set req interface fail, ret%d @bt_mpc_adpt_gatt.c(778),WARNING" ID="0x8dd61853" />
</MSG_LOG>
\ No newline at end of file
<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="[PMU][ERROR]Wakeup isr come more than once, sleep_int_id:%d, wakeup_int_id:%d @bt_sleep.c(139),WARNING" ID="0x88f0045b" />
<MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]wakeup pmu state change fail @bt_sleep.c(147),ERROR" ID="0x88f0049a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="g_clock_32k_100x = %d @bt_sleep.c(177),INFO" ID="0x88f0058d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][SLEEP]bt_program_sleep clk(%d)dur(%d)glbcnt(0x%x) @bt_sleep.c(222),INFO" ID="0x88f006f5" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[ERROR][SLEEP]wakeup_end clk(%d) sleep_time(%d) sleep_dur(%d) @bt_sleep.c(265),ERROR" ID="0x88f0084a" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][SLEEP]wakeup_end clk(%d) fincnt(%d)glbcnt(0x%x) @bt_sleep.c(269),INFO" ID="0x88f0086d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]btc sleep pmu state change fail @bt_sleep.c(311),ERROR" ID="0x88f009ba" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[PMU][WARNING]Set osc_en down more than once, sleep_int_id:%d, wakeup_int_id:%d @bt_sleep.c(320),WARNING" ID="0x88f00a03" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]sleep time is too short! @bt_sleep.c(370),WARNING" ID="0x88f00b93" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][SLEEP]osc_en wakeup isr error! @bt_sleep.c(374),ERROR" ID="0x88f00bb2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]extern wakeup pmu state change fail @bt_sleep.c(390),ERROR" ID="0x88f00c32" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][SLEEP]extern wakeup btc clk(%d)slp_dur_slot(%d)glbcnt(%d) @bt_sleep.c(396),INFO" ID="0x88f00c65" />
- <MSG STRUCTURE="diag_log_msg1" NAME="g_dfx_time:%d @bt_sleep.c(416),INFO" ID="0x88f00d05" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="g_clock_32k_100x = %d @bt_sleep.c(178),INFO" ID="0x88f00595" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][SLEEP]bt_program_sleep clk(%d)dur(%d)glbcnt(0x%x) @bt_sleep.c(224),INFO" ID="0x88f00705" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ERROR][SLEEP]wakeup_end clk(%d) sleep_time(%d) sleep_dur(%d) @bt_sleep.c(267),ERROR" ID="0x88f0085a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][SLEEP]wakeup_end clk(%d) fincnt(%d)glbcnt(0x%x) @bt_sleep.c(271),INFO" ID="0x88f0087d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]btc sleep pmu state change fail @bt_sleep.c(313),ERROR" ID="0x88f009ca" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[PMU][WARNING]Set osc_en down more than once, sleep_int_id:%d, wakeup_int_id:%d @bt_sleep.c(322),WARNING" ID="0x88f00a13" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]sleep time is too short! @bt_sleep.c(372),WARNING" ID="0x88f00ba3" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][SLEEP]osc_en wakeup isr error! @bt_sleep.c(376),ERROR" ID="0x88f00bc2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[PMU][ERROR]extern wakeup pmu state change fail @bt_sleep.c(392),ERROR" ID="0x88f00c42" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][SLEEP]extern wakeup btc clk(%d)slp_dur_slot(%d)glbcnt(%d) @bt_sleep.c(398),INFO" ID="0x88f00c75" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="g_dfx_time:%d @bt_sleep.c(418),INFO" ID="0x88f00d15" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[ERROR]p_data is null @bt_tran_task.c(56),ERROR" ID="0x8c9401c2" />
- <MSG STRUCTURE="diag_log_msg3" NAME="BT_TRAN:route data:TID&SOF&SID&CID, LEN = 0x%04X%04X, %d @bt_tran_task.c(86),WARNING" ID="0x8c9402b3" />
- <MSG STRUCTURE="diag_log_msg0" NAME="Error route_id! @bt_tran_task.c(98),ERROR" ID="0x8c940312" />
- <MSG STRUCTURE="diag_log_msg3" NAME="BT_TRAN:route data:TID&SOF&SID&CID, LEN = 0x%04X%04X, %d @bt_tran_task.c(118),WARNING" ID="0x8c9403b3" />
- <MSG STRUCTURE="diag_log_msg3" NAME="BT_TRAN:data:TID&SOF&SID&CID:0x%04X%04X,LEN:%d @bt_tran_task.c(121),WARNING" ID="0x8c9403cb" />
- <MSG STRUCTURE="diag_log_msg0" NAME="INVALID DATA! @bt_tran_task.c(157),ERROR" ID="0x8c9404ea" />
- <MSG STRUCTURE="diag_log_msg1" NAME="BT_TRAN: TXMCU:ipc send data = %d @bt_tran_task.c(185),ERROR" ID="0x8c9405ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="UNKNOW CORE! @bt_tran_task.c(195),ERROR" ID="0x8c94061a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt tran task framek free property allow_free= %d @bt_tran_task.c(235),INFO" ID="0x8c94075d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="pst_property->en_id = 0x%x @bt_tran_task.c(253),INFO" ID="0x8c9407ed" />
- <MSG STRUCTURE="diag_log_msg1" NAME="BT_TRAN: data ERROR data_len:%d @bt_tran_task.c(311),WARNING" ID="0x8c9409bb" />
- <MSG STRUCTURE="diag_log_msg2" NAME="BT_TRAN: data ERROR data:0x%08x, 0x%08x @bt_tran_task.c(315),WARNING" ID="0x8c9409db" />
- <MSG STRUCTURE="diag_log_msg4" NAME="rec mcu error data,tid:0x%x,sof:0x%x,len:0x%04x,opcode:0x%04x @bt_tran_task.c(324),ERROR" ID="0x8c940a22" />
- <MSG STRUCTURE="diag_log_msg0" NAME="hci qos buf overflow. @bt_tran_task.c(349),ERROR" ID="0x8c940aea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble fsm buf overflow. @bt_tran_task.c(354),ERROR" ID="0x8c940b12" />
- <MSG STRUCTURE="diag_log_msg2" NAME="rec data malloc fail opcode:0x%04x,length:(0x%04x) @bt_tran_task.c(363),ERROR" ID="0x8c940b5a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="rec data memcpy fail opcode:0x%04x,length:(0x%04x) @bt_tran_task.c(369),ERROR" ID="0x8c940b8a" />
- <MSG STRUCTURE="diag_log_msg4" NAME="rec mcu write property fail,tid:0x%x,sof:0x%x,len:0x%04x,opcode:0x%04x @bt_tran_task.c(379),ERROR" ID="0x8c940bda" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ipc data data len err = %d @bt_tran_task.c(409),ERROR" ID="0x8c940cca" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ipc data data len err = %d @bt_tran_task.c(419),ERROR" ID="0x8c940d1a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="ipc data from M7 error = %d @bt_tran_task.c(423),ERROR" ID="0x8c940d3a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ipc data from unknow core @bt_tran_task.c(435),ERROR" ID="0x8c940d9a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt tran task handler osMessageQueueGet fail ret:(%x) @bt_tran_task.c(461),ERROR" ID="0x8c940e6a" />
- <MSG STRUCTURE="diag_log_msg1" NAME="bt tran task framek write property en_id = 0x%x @bt_tran_task.c(485),INFO" ID="0x8c940f2d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="write Property fail id:0x%x, ret:0x%x @bt_tran_task.c(493),ERROR" ID="0x8c940f6a" />
- <MSG STRUCTURE="diag_log_msg2" NAME="bt tran task framek write property fail en_id:%d,ret:%x @bt_tran_task.c(502),ERROR" ID="0x8c940fb2" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[ERROR]p_data is null @bt_tran_task.c(85),ERROR" ID="0x8c9402aa" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="BT_TRAN:route data:TID&SOF&SID&CID, LEN = 0x%04X%04X, %d @bt_tran_task.c(115),ERROR" ID="0x8c94039a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="Error route_id! @bt_tran_task.c(127),ERROR" ID="0x8c9403fa" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="BT_TRAN:route data:TID&SOF&SID&CID, LEN = 0x%04X%04X, %d @bt_tran_task.c(147),ERROR" ID="0x8c94049a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="BT_TRAN:data:TID&SOF&SID&CID:0x%04X%04X,LEN:%d @bt_tran_task.c(150),ERROR" ID="0x8c9404b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="INVALID DATA! @bt_tran_task.c(186),ERROR" ID="0x8c9405d2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="BT_TRAN: TXMCU:ipc send data = %d @bt_tran_task.c(214),ERROR" ID="0x8c9406b2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="UNKNOW CORE! @bt_tran_task.c(224),ERROR" ID="0x8c940702" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt tran task framek free property allow_free= %d @bt_tran_task.c(264),INFO" ID="0x8c940845" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="pst_property->en_id = 0x%x @bt_tran_task.c(282),INFO" ID="0x8c9408d5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ipc buf release number:%u %u. @bt_tran_task.c(330),ERROR" ID="0x8c940a52" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="hci qos buf overflow. @bt_tran_task.c(356),ERROR" ID="0x8c940b22" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble fsm buf overflow. @bt_tran_task.c(362),ERROR" ID="0x8c940b52" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="ipc buf warning number:%u %u. @bt_tran_task.c(370),ERROR" ID="0x8c940b92" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="BT_TRAN: data ERROR data_len:%d @bt_tran_task.c(389),WARNING" ID="0x8c940c2b" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="BT_TRAN: data ERROR data:0x%08x, 0x%08x @bt_tran_task.c(393),WARNING" ID="0x8c940c4b" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="rec mcu error data,tid:0x%x,sof:0x%x,len:0x%04x,opcode:0x%04x @bt_tran_task.c(402),ERROR" ID="0x8c940c92" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="rec data malloc fail opcode:0x%04x,length:(0x%04x) @bt_tran_task.c(420),ERROR" ID="0x8c940d22" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="rec data memcpy fail opcode:0x%04x,length:(0x%04x) @bt_tran_task.c(426),ERROR" ID="0x8c940d52" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="rec mcu write property fail,tid:0x%x,sof:0x%x,len:0x%04x,opcode:0x%04x @bt_tran_task.c(436),ERROR" ID="0x8c940da2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ipc data data len err = %d @bt_tran_task.c(473),ERROR" ID="0x8c940eca" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ipc data data len err = %d @bt_tran_task.c(483),ERROR" ID="0x8c940f1a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="ipc data from M7 error = %d @bt_tran_task.c(487),ERROR" ID="0x8c940f3a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ipc data from unknow core @bt_tran_task.c(499),ERROR" ID="0x8c940f9a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt tran task handler osMessageQueueGet fail ret:(%x) @bt_tran_task.c(525),ERROR" ID="0x8c94106a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="bt tran task framek write property en_id = 0x%x @bt_tran_task.c(549),INFO" ID="0x8c94112d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="write Property fail id:0x%x, ret:0x%x @bt_tran_task.c(557),ERROR" ID="0x8c94116a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="bt tran task framek write property fail en_id:%d,ret:%x @bt_tran_task.c(566),ERROR" ID="0x8c9411b2" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="[TIMRE_ADD][STACK_TIMER] TIMER=0x%x, TIME=%u @fsm.c(669),INFO" ID="0x8b5814ed" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[TIMER_EXPIR]timeout timer err! @fsm.c(767),ERROR" ID="0x8b5817fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[TIMER_EXPIR]timeout but no right timer! @fsm.c(797),WARNING" ID="0x8b5818eb" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[timer_expire_in_sch_lite]timer has been free; not need free! @fsm.c(813),WARNING" ID="0x8b58196b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[TIMER_DEL][STACK_TIMER] in_ft is NULL! @fsm.c(938),INFO" ID="0x8b581d55" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="[FSM][QOS]producer %u @fsm.c(83),ERROR" ID="0x8b58029a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[FSM][QOS]consumer %u @fsm.c(97),ERROR" ID="0x8b58030a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[TIMRE_ADD][STACK_TIMER] TIMER=0x%x, TIME=%u @fsm.c(725),INFO" ID="0x8b5816ad" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[TIMER_EXPIR]timeout timer err! @fsm.c(823),ERROR" ID="0x8b5819ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[TIMER_EXPIR]timeout but no right timer! @fsm.c(853),WARNING" ID="0x8b581aab" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[timer_expire_in_sch_lite]timer has been free; not need free! @fsm.c(869),WARNING" ID="0x8b581b2b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[TIMER_DEL][STACK_TIMER] in_ft is NULL! @fsm.c(994),INFO" ID="0x8b581f15" />
</MSG_LOG>
\ No newline at end of file
<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[GAP][create_handle] memcpy failed @gap_hlp_comm.c(260),ERROR" ID="0x8b8e0822" />
- <MSG STRUCTURE="diag_log_msg6" NAME="[GAP][ACL_EVENT_CALLBACK] JOB=%u, LINK_TYPE=%u, ACL_LINK_HANDLE=0x%x, REMOTE_ADDR=%02x:%02x:**:**:**:%02x @gap_hlp_comm.c(477),INFO" ID="0x8b8e0eed" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_comm.c(887),ERROR" ID="0x8b8e1bba" />
- <MSG STRUCTURE="diag_log_msg2" NAME="gaph_hci_command_cbk, operation=%x, code:%x @gap_hlp_comm.c(981),INFO" ID="0x8b8e1ead" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][MEMCPY_FAILED]CreateContext memcpy fail,ret=%d @gap_hlp_comm.c(1048),INFO" ID="0x8b8e20c5" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LINK_ALREADY_EXISTS] REMOTE_ADDR=%02x:%02x:**:**:**:%02x @gap_hlp_comm.c(1086),INFO" ID="0x8b8e21f5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_comm.c(1842),ERROR" ID="0x8b8e3992" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_comm.c(1862),ERROR" ID="0x8b8e3a32" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LOCAL_DISC_REQ] REMOTE_ADDR=%02x:%02x:**:**:**:%02x, can't find acl link @gap_hlp_comm.c(2011),INFO" ID="0x8b8e3edd" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LOCAL_DISC_REQ] REMOTE_ADDR=%02x:%02x:**:**:**:%02x, can't find acl link @gap_hlp_comm.c(2041),INFO" ID="0x8b8e3fcd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[GAP] acl_link cbk link_type:%d job:%d @gap_hlp_comm.c(444),ERROR" ID="0x8b8e0de2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][acl]job:%d link is NULL @gap_hlp_comm.c(464),ERROR" ID="0x8b8e0e82" />
+ <MSG STRUCTURE="diag_log_msg6" NAME="[GAP][ACL_EVENT_CALLBACK] JOB=%u, LINK_TYPE=%u, ACL_LINK_HANDLE=0x%x, REMOTE_ADDR=%02x:%02x:**:**:**:%02x @gap_hlp_comm.c(482),INFO" ID="0x8b8e0f15" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_comm.c(892),ERROR" ID="0x8b8e1be2" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="gaph_hci_command_cbk, operation=%x, code:%x @gap_hlp_comm.c(986),INFO" ID="0x8b8e1ed5" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][MEMCPY_FAILED]CreateContext memcpy fail,ret=%d @gap_hlp_comm.c(1053),INFO" ID="0x8b8e20ed" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LINK_ALREADY_EXISTS] REMOTE_ADDR=%02x:%02x:**:**:**:%02x @gap_hlp_comm.c(1091),INFO" ID="0x8b8e221d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_comm.c(1847),ERROR" ID="0x8b8e39ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_comm.c(1867),ERROR" ID="0x8b8e3a5a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LOCAL_DISC_REQ] REMOTE_ADDR=%02x:%02x:**:**:**:%02x, can't find acl link @gap_hlp_comm.c(2016),INFO" ID="0x8b8e3f05" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LOCAL_DISC_REQ] REMOTE_ADDR=%02x:%02x:**:**:**:%02x, can't find acl link @gap_hlp_comm.c(2046),INFO" ID="0x8b8e3ff5" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[GAP][RandAddrCfm][ERROR] gap_fsminst is NULL @gap_hlp_le.c(1227),INFO" ID="0x8b8c265d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTI_ADV_PARAM, RESULT=0x%x @gap_hlp_le.c(2059),INFO" ID="0x8b8c405d" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTI_DATA, RESULT=0x%x @gap_hlp_le.c(2124),INFO" ID="0x8b8c4265" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTI_RANDOM_ADDR, RESULT=0x%x @gap_hlp_le.c(2166),INFO" ID="0x8b8c43b5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP][LE_MULTI_ADV][ERROR] gap_fsminst is NULL @gap_hlp_le.c(2169),INFO" ID="0x8b8c43cd" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTIADV_ENABLE, RESULT=0x%x @gap_hlp_le.c(2235),INFO" ID="0x8b8c45dd" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_ADV_PARAM, SUB_CODE=%d, HANDLE=0x%x @gap_hlp_le.c(2313),INFO" ID="0x8b8c484d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_ADV_DATA, SUB_CODE=%d, HANDLE=0x%x @gap_hlp_le.c(2345),INFO" ID="0x8b8c494d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_RANDOM_ADDR, SUB_CODE=%d, HANDLE=0x%x @gap_hlp_le.c(2369),INFO" ID="0x8b8c4a0d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_ADV_ENABLE, SUB_CODE=%d, HANDLE=0x%x, ENABLE=%d @gap_hlp_le.c(2400),INFO" ID="0x8b8c4b05" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[GAP] own_address_type = %x adv_event_flag = %x @gap_hlp_le.c(2553),INFO" ID="0x8b8c4fcd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]set ext adv - BT init not complete!!! @gap_hlp_le.c(3073),WARNING" ID="0x8b8c600b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3525),ERROR" ID="0x8b8c6e2a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3531),ERROR" ID="0x8b8c6e5a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3539),ERROR" ID="0x8b8c6e9a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3545),ERROR" ID="0x8b8c6eca" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="[GAP] smp cbk event:%d @gap_hlp_le.c(507),ERROR" ID="0x8b8c0fda" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP][RandAddrCfm][ERROR] gap_fsminst is NULL @gap_hlp_le.c(1229),INFO" ID="0x8b8c266d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTI_ADV_PARAM, RESULT=0x%x @gap_hlp_le.c(2061),INFO" ID="0x8b8c406d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTI_DATA, RESULT=0x%x @gap_hlp_le.c(2126),INFO" ID="0x8b8c4275" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTI_RANDOM_ADDR, RESULT=0x%x @gap_hlp_le.c(2168),INFO" ID="0x8b8c43c5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP][LE_MULTI_ADV][ERROR] gap_fsminst is NULL @gap_hlp_le.c(2171),INFO" ID="0x8b8c43dd" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[GAP][LE_MULTI_ADV] ACTION=UPDATE_MULTIADV_ENABLE, RESULT=0x%x @gap_hlp_le.c(2237),INFO" ID="0x8b8c45ed" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_ADV_PARAM, SUB_CODE=%d, HANDLE=0x%x @gap_hlp_le.c(2315),INFO" ID="0x8b8c485d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_ADV_DATA, SUB_CODE=%d, HANDLE=0x%x @gap_hlp_le.c(2347),INFO" ID="0x8b8c495d" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_RANDOM_ADDR, SUB_CODE=%d, HANDLE=0x%x @gap_hlp_le.c(2371),INFO" ID="0x8b8c4a1d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[GAP][LE_MULTI_ADV] ACTION=SET_MULTI_ADV_ENABLE, SUB_CODE=%d, HANDLE=0x%x, ENABLE=%d @gap_hlp_le.c(2402),INFO" ID="0x8b8c4b15" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[GAP] own_address_type = %x adv_event_flag = %x @gap_hlp_le.c(2555),INFO" ID="0x8b8c4fdd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]set ext adv - BT init not complete!!! @gap_hlp_le.c(3075),WARNING" ID="0x8b8c601b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3527),ERROR" ID="0x8b8c6e3a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3533),ERROR" ID="0x8b8c6e6a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3541),ERROR" ID="0x8b8c6eaa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[GAP]memcpy failed @gap_hlp_le.c(3547),ERROR" ID="0x8b8c6eda" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[GAP][HCI]memcpy failed @hci_core_ram.c(158),ERROR" ID="0x8ba604f2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[hci][len] %02x @hci_core_ram.c(888),INFO" ID="0x8ba61bc5" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][H-->C] %02x @hci_core_ram.c(891),INFO" ID="0x8ba61bdd" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[T%x][TIMEOUT] OPCODE=0x%x, TIMER=0x%x @hci_core_ram.c(1239),WARNING" ID="0x8ba626bb" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[TIMEOUT] OPCODE=0x%x, TIMER=0x%x @hci_core_ram.c(1243),WARNING" ID="0x8ba626db" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[MEMCPY_FAILED]RecvDataBuff Memcpy fail @hci_core_ram.c(1466),DBG" ID="0x8ba62dd6" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[MEMCPY_FAILED]RecvDataBuff Memcpy fail @hci_core_ram.c(1484),DBG" ID="0x8ba62e66" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[NO GLE]Gle %d! @hci_core_ram.c(1515),INFO" ID="0x8ba62f5d" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[GAP][HCI]memcpy failed @hci_core_ram.c(165),ERROR" ID="0x8ba6052a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI] cmd_opcode 0x%x @hci_core_ram.c(894),ERROR" ID="0x8ba61bf2" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[hci][len] %02x @hci_core_ram.c(897),INFO" ID="0x8ba61c0d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][H-->C] %02x @hci_core_ram.c(900),INFO" ID="0x8ba61c25" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[T%x][TIMEOUT] OPCODE=0x%x, TIMER=0x%x @hci_core_ram.c(1248),WARNING" ID="0x8ba62703" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[HCI][TIMEOUT] OPCODE=0x%x, TIMER=0x%x @hci_core_ram.c(1252),ERROR" ID="0x8ba62722" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[MEMCPY_FAILED]RecvDataBuff Memcpy fail @hci_core_ram.c(1481),DBG" ID="0x8ba62e4e" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[MEMCPY_FAILED]RecvDataBuff Memcpy fail @hci_core_ram.c(1499),DBG" ID="0x8ba62ede" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][RX] external fsm buff overflow! fsm_limit=%lu @hci_core_ram.c(1536),ERROR" ID="0x8ba63002" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][RX]external fsm buff overflow! free buff opcode=0x%x @hci_core_ram.c(1541),ERROR" ID="0x8ba6302a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[NO GLE]Gle %d! @hci_core_ram.c(1573),INFO" ID="0x8ba6312d" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg4" NAME="[HCI][SEND_ACL_DATA] SLOT=%u, LEN=%u, Remaining Packet NUM=%u, HANDLE=0x%x @hci_data_proc.c(114),INFO" ID="0x8bda0395" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[HCI]memcpy error @hci_data_proc.c(372),ERROR" ID="0x8bda0ba2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[HCI]memcpy error @hci_data_proc.c(378),ERROR" ID="0x8bda0bd2" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][RECV_ACL_DATA] CONN_HANDLE=0x%x, link not found @hci_data_proc.c(465),INFO" ID="0x8bda0e8d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][H-->C] OPCODE=0x%x, HANDLE=0x%x, LEN=%u @hci_data_proc.c(669),INFO" ID="0x8bda14ed" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] OPCODE=0x%x, OGF=0x%x, disc_reason=0x%x, LEN=%u @hci_data_proc.c(679),INFO" ID="0x8bda153d" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] OPCODE=0x%x, OGF=0x%x, OCF=0x%x, LEN=%u @hci_data_proc.c(685),WARNING" ID="0x8bda156b" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][H-->C] OPCODE=0x%x, HANDLE=0x%x, LEN=%u @hci_data_proc.c(706),DBG" ID="0x8bda1616" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] OPCODE=0x%x, OGF=0x%x, OCF=0x%x, LEN=%u @hci_data_proc.c(711),DBG" ID="0x8bda163e" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][H-->C] LEN=%u @hci_data_proc.c(726),DBG" ID="0x8bda16b6" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] %02x %02x %02x %02x @hci_data_proc.c(732),DBG" ID="0x8bda16e6" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][H-->C] %02x %02x %02x @hci_data_proc.c(737),DBG" ID="0x8bda170e" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[HCI][H-->C] %02x %02x @hci_data_proc.c(740),DBG" ID="0x8bda1726" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][H-->C] %02x @hci_data_proc.c(742),DBG" ID="0x8bda1736" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[A2DP][HCI] a2dp_audio:first frame to btc, only for a2dp service. @hci_data_proc.c(761),INFO" ID="0x8bda17cd" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg4" NAME="[HCI][SEND_ACL_DATA] SLOT=%u, LEN=%u, Remaining Packet NUM=%u, HANDLE=0x%x @hci_data_proc.c(134),INFO" ID="0x8bda0435" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[HCI]memcpy error @hci_data_proc.c(394),ERROR" ID="0x8bda0c52" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[HCI]memcpy error @hci_data_proc.c(400),ERROR" ID="0x8bda0c82" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][RECV_ACL_DATA] CONN_HANDLE=0x%x, link not found @hci_data_proc.c(489),INFO" ID="0x8bda0f4d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][H-->C] OPCODE=0x%x, HANDLE=0x%x, LEN=%u @hci_data_proc.c(697),INFO" ID="0x8bda15cd" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] OPCODE=0x%x, OGF=0x%x, disc_reason=0x%x, LEN=%u @hci_data_proc.c(707),INFO" ID="0x8bda161d" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] OPCODE=0x%x, OGF=0x%x, OCF=0x%x, LEN=%u @hci_data_proc.c(713),WARNING" ID="0x8bda164b" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][H-->C] OPCODE=0x%x, HANDLE=0x%x, LEN=%u @hci_data_proc.c(734),DBG" ID="0x8bda16f6" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] OPCODE=0x%x, OGF=0x%x, OCF=0x%x, LEN=%u @hci_data_proc.c(739),DBG" ID="0x8bda171e" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][H-->C] LEN=%u @hci_data_proc.c(754),DBG" ID="0x8bda1796" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][H-->C] %02x %02x %02x %02x @hci_data_proc.c(760),DBG" ID="0x8bda17c6" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][H-->C] %02x %02x %02x @hci_data_proc.c(765),DBG" ID="0x8bda17ee" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[HCI][H-->C] %02x %02x @hci_data_proc.c(768),DBG" ID="0x8bda1806" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[HCI][H-->C] %02x @hci_data_proc.c(770),DBG" ID="0x8bda1816" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[A2DP][HCI] a2dp_audio:first frame to btc, only for a2dp service. @hci_data_proc.c(789),INFO" ID="0x8bda18ad" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="[HCI][LE_CONN_COMPLETE] STATUS=0x%x @hci_ev_le.c(408),INFO" ID="0x8ad00cc5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[HCI][LE_META_ISO_EV] it is iso event @hci_ev_le.c(527),INFO" ID="0x8ad0107d" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg3" NAME="[HCI][LE_CONN_COMPLETE] STATUS=0x%x role:%d conn_handle:%d @hci_ev_le.c(410),ERROR" ID="0x8ad00cd2" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][LE_CONN_COMPLETE] addr=%02x******%02x%02x addr_type:%d @hci_ev_le.c(417),ERROR" ID="0x8ad00d0a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[HCI][LE_META_ISO_EV] it is iso event @hci_ev_le.c(536),INFO" ID="0x8ad010c5" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg4" NAME="[HCI] remove remote exceed upper limit %d addr:%02x:%02x:xx:xx:xx:%02x! @hci_hlp_ram.c(522),WARNING" ID="0x8ba81053" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg4" NAME="[HCI] remove remote exceed upper limit %d addr:%02x:%02x:xx:xx:xx:%02x! @hci_hlp_ram.c(522),ERROR" ID="0x8ba81052" />
<MSG STRUCTURE="diag_log_msg0" NAME="[HCI]memcpy_s error @hci_hlp_ram.c(542),ERROR" ID="0x8ba810f2" />
</MSG_LOG>
\ No newline at end of file
<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="[HCI]CURRENT_LINK_MODE=0x%x, ACL Data Will be pend! @hci_link_br.c(217),INFO" ID="0x8bdc06cd" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][CONN_COMPLETE] LINK_STATUS=0x%x, EVENT_STATUS=0x%x, CONN_HDL=0x%x @hci_link_br.c(489),INFO" ID="0x8bdc0f4d" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][CONN_REQUEST] LINK_TYPE=0x%x, REMOTE_ADDR=%02x:%02x:**:**:**:%02x @hci_link_br.c(561),INFO" ID="0x8bdc118d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[HCI][REMOVE_LINK] REF_COUNT=%u, STATUS=%u @hci_link_br.c(646),INFO" ID="0x8bdc1435" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[HCI] create connection addr:%02x******%02x%02x @hci_link_br.c(257),ERROR" ID="0x8bdc080a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[HCI][CONN_COMPLETE] LINK_STATUS=0x%x, EVENT_STATUS=0x%x, CONN_HDL=0x%x @hci_link_br.c(494),ERROR" ID="0x8bdc0f72" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[HCI][CONN_REQUEST] LINK_TYPE=0x%x, REMOTE_ADDR=%02x:%02x:**:**:**:%02x @hci_link_br.c(569),ERROR" ID="0x8bdc11ca" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[HCI][REMOVE_LINK] REF_COUNT=%u, STATUS=%u @hci_link_br.c(653),ERROR" ID="0x8bdc146a" />
</MSG_LOG>
\ No newline at end of file
--- /dev/null
+<MSG_LOG><MSG STRUCTURE="diag_log_msg3" NAME="[HCI] create le connection addr:%02x******%02x%02x @hci_link_le.c(116),ERROR" ID="0x8ad603a2" />
+ </MSG_LOG>
\ No newline at end of file
--- /dev/null
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="mcu_int1_handler. @ipc_irq.c(74),ERROR" ID="0xa0600252" />
+ </MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]create big prepare fail @llc_bis_hci_ram.c(79),WARNING" ID="0x8a60027b" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]create big prepare fail @llc_bis_hci_ram.c(79),WARNING" ID="0x8a64027b" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg3" NAME="[INFO][LLD]lld_periodic_adv_start:sync_dur=%d, intv_min=%d, intv_max=%d @lld_per_ram.c(53),INFO" ID="0x8a5e01ad" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg3" NAME="[INFO][LLD]lld_periodic_adv_start:sync_dur=%d, intv_min=%d, intv_max=%d @lld_per_ram.c(53),INFO" ID="0x8a6201ad" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg3" NAME="[PF][DUMP INFO] stack point: 0x%x, stack address: 0x%x, stack size: 0x%x @log_oml_exception.c(410),ERROR" ID="0xa0080cd2" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg3" NAME="[PF][DUMP INFO] stack point: 0x%x, stack address: 0x%x, stack size: 0x%x @log_oml_exception.c(411),ERROR" ID="0xa0080cda" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[BTOS][MEM_INTEGRITY_CHECK]Not support! @osdep.c(678),INFO" ID="0x8b981535" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BTOS][MEM_NEW]ALLOC_SIZE=%u, alloc fail! @osdep.c(709),WARNING" ID="0x8b98162b" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[MEM_FREE][%d][0x%p], caller:0x%x @osdep.c(746),INFO" ID="0x8b981755" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[BTOS][MEM_FREE]ERROR_CODE=%u, addr:0x%p, caller:0x%x free fail! @osdep.c(754),WARNING" ID="0x8b981793" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BTOS][MEM_NEW]ALLOC_SIZE=%u, alloc fail! @osdep.c(767),WARNING" ID="0x8b9817fb" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[BTOS][MEM_FREE]ERROR_CODE=%u, addr:0x%p, caller:0x%x, free fail! @osdep.c(782),WARNING" ID="0x8b981873" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[BTOS][MEM_NEW_S]AVAILABLE_MEMORY=%u, alloc fail because under secure threshold size! @osdep.c(813),WARNING" ID="0x8b98196b" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[BTOS][MEM_INTEGRITY_CHECK]Not support! @osdep.c(680),INFO" ID="0x8b981545" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BTOS][MEM_NEW]ALLOC_SIZE=%u alloc fail! @osdep.c(712),ERROR" ID="0x8b981642" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[BTOS][MEM_NEW]fsm_count=%u fsm_limit=%u fsm_limit_max=%u hci_slice_rx=%u! @osdep.c(716),ERROR" ID="0x8b981662" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[MEM_FREE][%d][0x%p], caller:0x%x @osdep.c(753),INFO" ID="0x8b98178d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[BTOS][MEM_FREE]ERROR_CODE=%u, addr:0x%p, caller:0x%x free fail! @osdep.c(761),WARNING" ID="0x8b9817cb" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BTOS][MEM_NEW]ALLOC_SIZE=%u, alloc fail! @osdep.c(774),WARNING" ID="0x8b981833" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[BTOS][MEM_FREE]ERROR_CODE=%u, addr:0x%p, caller:0x%x, free fail! @osdep.c(789),WARNING" ID="0x8b9818ab" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BTOS][MEM_NEW_S]AVAILABLE_MEMORY=%u, alloc fail because under secure threshold size! @osdep.c(820),WARNING" ID="0x8b9819a3" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[INFO][DFX]dfx_bt_parse_debug_cmd:too many Parameter, quit parsing @patch_btdfx.c(50),INFO" ID="0x8a520195" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[INFO][DFX]dfx_bt_parse_debug_cmd:too many Parameter, quit parsing @patch_btdfx.c(50),INFO" ID="0x8a560195" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="smp_pair_new_patch @patch_bth.c(42),INFO" ID="0x8d540155" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[AVDTP][GET_SEP_FAIL] Can not get sep info @patch_bth.c(146),WARNING" ID="0x8d540493" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[STACK][RECV_RING_STOP] @patch_bth.c(234),INFO" ID="0x8d540755" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="smp_pair_new_patch @patch_bth.c(43),INFO" ID="0x8d54015d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[AVDTP][GET_SEP_FAIL] Can not get sep info @patch_bth.c(147),WARNING" ID="0x8d54049b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[STACK][RECV_RING_STOP] @patch_bth.c(235),INFO" ID="0x8d54075d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[ATT_GATT] att error rsp opcode:0x%x handle:%d error:0x%x @patch_bth.c(315),ERROR" ID="0x8d5409da" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg4" NAME="ea_prog_time_set current_time(0x%x)finetarget_time(0x%x),finecnt(%d),finetgtintmsk(%d) @patch_ea.c(68),WARNING" ID="0x8a540223" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg4" NAME="ea_prog_time_set current_time(0x%x)finetarget_time(0x%x),finecnt(%d),finetgtintmsk(%d) @patch_ea.c(68),WARNING" ID="0x8a580223" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="[LD]ld_acl_sched_update_ts ts=0x%x @patch_ld_acl.c(37),INFO" ID="0x8a64012d" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="[LD]ld_acl_sched_update_ts ts=0x%x @patch_ld_acl.c(37),INFO" ID="0x8a68012d" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="rx_phy is %d @patch_llc.c(19),INFO" ID="0x8a5a009d" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="rx_phy is %d @patch_llc.c(19),INFO" ID="0x8a5e009d" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]lld_big_acad_ind_handle, biginfo unpack fail @patch_llc_bis_util.c(93),WARNING" ID="0x8a6202eb" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]lld_big_acad_ind_handle, biginfo unpack fail @patch_llc_bis_util.c(93),WARNING" ID="0x8a6602eb" />
</MSG_LOG>
\ No newline at end of file
--- /dev/null
+<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="[WARNING] llcp_channel_map_req_handler , INSTANT_REJECT, state=%d, mode=%d @patch_llc_llcp.c(42),WARNING" ID="0x8a520153" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[WARNING] llcp_channel_map_req_handler, INSTANT_COLLISION, map_instant_action %d instant_action %d @patch_llc_llcp.c(49),WARNING" ID="0x8a52018b" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="llcp_channel_map_req_handler, instant=%d, counter=%d, remote_device_id=%d @patch_llc_llcp.c(59),WARNING" ID="0x8a5201db" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[WARNING] llcp_channel_map_req_handler, INSTANT_PASSED, instant=%d, counter=%d @patch_llc_llcp.c(67),WARNING" ID="0x8a52021b" />
+ </MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg4" NAME="[INFO][LLD]lld_bis_elt_ready:elt=0x%x,elt_ts=0x%x,intv=%d,duration_min=%d @patch_lld_bis.c(46),INFO" ID="0x8a560175" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg4" NAME="[INFO][LLD]lld_bis_elt_ready:elt=0x%x,elt_ts=0x%x,intv=%d,duration_min=%d @patch_lld_bis.c(46),INFO" ID="0x8a5a0175" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg3" NAME="[BIS]Invalid parameters finetimecnt:%d, iso_intv:%d, iso_subevtnum:%d @patch_lld_bis_evt.c(53),WARNING" ID="0x8a6c01ab" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg3" NAME="[BIS]Invalid parameters finetimecnt:%d, iso_intv:%d, iso_subevtnum:%d @patch_lld_bis_evt.c(53),WARNING" ID="0x8a7001ab" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]lld_bis_report_rxnode:No rx_report buff! @patch_lld_bis_pdu.c(27),WARNING" ID="0x8a6600db" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[INFO][BIS]bis recombine:length=%d, recomb_flag=%d, pldcntr=%d, llid=%d @patch_lld_bis_pdu.c(58),WARNING" ID="0x8a6601d3" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BIS]lld_bis_pdu_framed_rx_check:invalid middle pkt @patch_lld_bis_pdu.c(120),INFO" ID="0x8a6603c5" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[BIS]lld_bis_pdu_framed_rx_check:invalid last pkt @patch_lld_bis_pdu.c(134),INFO" ID="0x8a660435" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[WARNING][BIS]lld_bis_report_rxnode:No rx_report buff! @patch_lld_bis_pdu.c(27),WARNING" ID="0x8a6a00db" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[INFO][BIS]bis recombine:length=%d, recomb_flag=%d, pldcntr=%d, llid=%d @patch_lld_bis_pdu.c(58),WARNING" ID="0x8a6a01d3" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BIS]lld_bis_pdu_framed_rx_check:invalid middle pkt @patch_lld_bis_pdu.c(120),INFO" ID="0x8a6a03c5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[BIS]lld_bis_pdu_framed_rx_check:invalid last pkt @patch_lld_bis_pdu.c(134),INFO" ID="0x8a6a0435" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="lld_evt_defered_elt_handler, test end @patch_lld_evt.c(141),WARNING" ID="0x8a5c046b" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][LLD]lld_evt_flush_common:elt is null @patch_lld_evt.c(212),INFO" ID="0x8a5c06a5" />
- <MSG STRUCTURE="diag_log_msg4" NAME="c_evt->mode=%d, next_elt->mode=%d, cur->conhdl=%d, n_evt->conhdl=%d @patch_lld_evt.c(269),INFO" ID="0x8a5c086d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="current_elt->current_prio=%d, next_elt->current_prio=%d, llm_le_env.sync_state =%d @patch_lld_evt.c(271),INFO" ID="0x8a5c087d" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="lld_evt_defered_elt_handler, test end @patch_lld_evt.c(141),WARNING" ID="0x8a60046b" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[INFO][LLD]lld_evt_flush_common:elt is null @patch_lld_evt.c(212),INFO" ID="0x8a6006a5" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="c_evt->mode=%d, next_elt->mode=%d, cur->conhdl=%d, n_evt->conhdl=%d @patch_lld_evt.c(269),INFO" ID="0x8a60086d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="current_elt->current_prio=%d, next_elt->current_prio=%d, llm_le_env.sync_state =%d @patch_lld_evt.c(271),INFO" ID="0x8a60087d" />
</MSG_LOG>
\ No newline at end of file
--- /dev/null
+<MSG_LOG><MSG STRUCTURE="diag_log_msg4" NAME="[BLE ACL] conhdl=%d, status:0x%04x, length:%d, rxflush|rxdone|cie:%08x @patch_lld_pdu.c(44),INFO" ID="0x8a540165" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[BLE ACL] ccm 0x%x @patch_lld_pdu.c(45),INFO" ID="0x8a54016d" />
+ </MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[INFO][LLM]llm_ral_dev_add:ral is full @patch_llm_util.c(107),INFO" ID="0x8a6a035d" />
- <MSG STRUCTURE="diag_log_msg4" NAME="[INFO][LLM]llm_ral_dev_add:in_wl=%d, l_irk_valid=%d, p_irk_valid=%d, peer_id_addr_type=%d @patch_llm_util.c(133),INFO" ID="0x8a6a042d" />
- <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][LLM]llm_ral_dev_add:peer_id_addr=0x%8x%4x, nbral=%d @patch_llm_util.c(139),INFO" ID="0x8a6a045d" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[INFO][LLM]llm_ral_dev_add:ral is full @patch_llm_util.c(107),INFO" ID="0x8a6e035d" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[INFO][LLM]llm_ral_dev_add:in_wl=%d, l_irk_valid=%d, p_irk_valid=%d, peer_id_addr_type=%d @patch_llm_util.c(133),INFO" ID="0x8a6e042d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[INFO][LLM]llm_ral_dev_add:peer_id_addr=0x%8x%4x, nbral=%d @patch_llm_util.c(139),INFO" ID="0x8a6e045d" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="btsdk_is_device_connected hdl:0x%x status:%d @sdk_gap_conn_management.c(601),INFO" ID="0x8b8212cd" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg2" NAME="btsdk_is_device_connected hdl:0x%x status:%d @sdk_gap_conn_management.c(608),INFO" ID="0x8b821305" />
</MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[sdk]gatt_get_descriptor_value memcpy failed @sdk_gatt.c(386),ERROR" ID="0x8b800c12" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_get_descriptor_value memcpy_s error @sdk_gatt.c(570),ERROR" ID="0x8b8011d2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic mem_new failed @sdk_gatt.c(792),ERROR" ID="0x8b8018c2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic memcpy failed @sdk_gatt.c(797),ERROR" ID="0x8b8018ea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic memcpy failed @sdk_gatt.c(806),ERROR" ID="0x8b801932" />
- <MSG STRUCTURE="diag_log_msg3" NAME="btsdk gatt get characteristics by uuid start_handle:0x%x end_handle:0x%x, uuid:0x%x @sdk_gatt.c(829),INFO" ID="0x8b8019ed" />
- <MSG STRUCTURE="diag_log_msg2" NAME="btsdk gatt get characteristic value by uuid start_handle:0x%x end_handle:0x%x @sdk_gatt.c(877),INFO" ID="0x8b801b6d" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[sdk]gatt_get_descriptor_by_handle start_handle:0x%x end_handle:0x%x @sdk_gatt.c(900),INFO" ID="0x8b801c25" />
- <MSG STRUCTURE="diag_log_msg1" NAME="[sdk]gatt_get_multiple_characteristics_by_handle handle_count:0x%x @sdk_gatt.c(921),INFO" ID="0x8b801ccd" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_set_gap_ui_attributes memcpy_s error @sdk_gatt.c(1199),ERROR" ID="0x8b80257a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_set_gap_ui_attributes memcpy_s error @sdk_gatt.c(1212),ERROR" ID="0x8b8025e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_get_gap_ui_attributes memcpy_s error @sdk_gatt.c(1284),ERROR" ID="0x8b802822" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_send_response memcpy_s error @sdk_gatt.c(1882),ERROR" ID="0x8b803ad2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_change_descriptor_value memcpy_s error @sdk_gatt.c(1963),ERROR" ID="0x8b803d5a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_notify_characteristic_changed memcpy_s error @sdk_gatt.c(2008),ERROR" ID="0x8b803ec2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_notify_characteristic_changed memcpy_s error @sdk_gatt.c(2015),ERROR" ID="0x8b803efa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]can't find hdl by uuid @sdk_gatt.c(2206),ERROR" ID="0x8b8044f2" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[sdk]gatt_get_descriptor_value memcpy failed @sdk_gatt.c(387),ERROR" ID="0x8b800c1a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_get_descriptor_value memcpy_s error @sdk_gatt.c(571),ERROR" ID="0x8b8011da" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic mem_new failed @sdk_gatt.c(793),ERROR" ID="0x8b8018ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic memcpy failed @sdk_gatt.c(798),ERROR" ID="0x8b8018f2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic memcpy failed @sdk_gatt.c(807),ERROR" ID="0x8b80193a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="btsdk gatt get characteristics by uuid start_handle:0x%x end_handle:0x%x, uuid:0x%x @sdk_gatt.c(830),INFO" ID="0x8b8019f5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="btsdk gatt get characteristic value by uuid start_handle:0x%x end_handle:0x%x @sdk_gatt.c(878),INFO" ID="0x8b801b75" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[sdk]gatt_get_descriptor_by_handle start_handle:0x%x end_handle:0x%x @sdk_gatt.c(901),INFO" ID="0x8b801c2d" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[sdk]gatt_get_multiple_characteristics_by_handle handle_count:0x%x @sdk_gatt.c(922),INFO" ID="0x8b801cd5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_set_gap_ui_attributes memcpy_s error @sdk_gatt.c(1200),ERROR" ID="0x8b802582" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_set_gap_ui_attributes memcpy_s error @sdk_gatt.c(1213),ERROR" ID="0x8b8025ea" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_get_gap_ui_attributes memcpy_s error @sdk_gatt.c(1285),ERROR" ID="0x8b80282a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_send_response memcpy_s error @sdk_gatt.c(1883),ERROR" ID="0x8b803ada" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_change_descriptor_value memcpy_s error @sdk_gatt.c(1964),ERROR" ID="0x8b803d62" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_notify_characteristic_changed memcpy_s error @sdk_gatt.c(2009),ERROR" ID="0x8b803eca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatt_notify_characteristic_changed memcpy_s error @sdk_gatt.c(2016),ERROR" ID="0x8b803f02" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]can't find hdl by uuid @sdk_gatt.c(2207),ERROR" ID="0x8b8044fa" />
</MSG_LOG>
\ No newline at end of file
<MSG_LOG><MSG STRUCTURE="diag_log_msg0" NAME="[SDK]convert uuid to sdk memcpy_s error @sdk_gatt_hlp.c(113),ERROR" ID="0x8da6038a" />
<MSG STRUCTURE="diag_log_msg0" NAME="[SDK]convert uuid to stack memcpy_s error @sdk_gatt_hlp.c(125),ERROR" ID="0x8da603ea" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att exchange mtu addr memcpy fail @sdk_gatt_hlp.c(574),ERROR" ID="0x8da611f2" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[gatth_get_multiple_characteristics_value] rmt:0x%x mtu:0x%x @sdk_gatt_hlp.c(880),INFO" ID="0x8da61b85" />
- <MSG STRUCTURE="diag_log_msg2" NAME="[gatth_get_characteristics_by_uuid] start_handle:0x%x end_handle:0x%x @sdk_gatt_hlp.c(1013),INFO" ID="0x8da61fad" />
- <MSG STRUCTURE="diag_log_msg2" NAME="btsdk gatth get descriptor by handle arg->start_handle:0x%x arg->end_handle:0x%x @sdk_gatt_hlp.c(1056),INFO" ID="0x8da62105" />
- <MSG STRUCTURE="diag_log_msg0" NAME="gatth_set_reliable_characteristic_value in @sdk_gatt_hlp.c(1101),INFO" ID="0x8da6226d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[gatth_set_characteristic_value] memcpy failed @sdk_gatt_hlp.c(1138),ERROR" ID="0x8da62392" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic rmt is NULL @sdk_gatt_hlp.c(1170),ERROR" ID="0x8da62492" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic memcpy failed @sdk_gatt_hlp.c(1177),ERROR" ID="0x8da624ca" />
- <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic tl is NULL @sdk_gatt_hlp.c(1191),ERROR" ID="0x8da6253a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[gatth_check_and_save_value] memcpy failed @sdk_gatt_hlp.c(1651),ERROR" ID="0x8da6339a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_server_execute_write_complete memcpy_s error @sdk_gatt_hlp.c(1748),ERROR" ID="0x8da636a2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_server_write_ind memcpy_s error @sdk_gatt_hlp.c(1892),ERROR" ID="0x8da63b22" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_server_write_ind memcpy_s error @sdk_gatt_hlp.c(1914),ERROR" ID="0x8da63bd2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_send_response memcpy_s error @sdk_gatt_hlp.c(2267),ERROR" ID="0x8da646da" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_notify_multiple_characteristic_changed memcpy_s error @sdk_gatt_hlp.c(2500),ERROR" ID="0x8da64e22" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info mem new fail @sdk_gatt_hlp.c(2552),ERROR" ID="0x8da64fc2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info service uuid memcpy fail @sdk_gatt_hlp.c(2562),ERROR" ID="0x8da65012" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info attribute uuid memcpy fail @sdk_gatt_hlp.c(2567),ERROR" ID="0x8da6503a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info addr memcpy fail @sdk_gatt_hlp.c(2572),ERROR" ID="0x8da65062" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info val memcpy fail @sdk_gatt_hlp.c(2577),ERROR" ID="0x8da6508a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind can't find service by service hdl @sdk_gatt_hlp.c(2623),ERROR" ID="0x8da651fa" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write pkt null @sdk_gatt_hlp.c(2629),ERROR" ID="0x8da6522a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind can't find server cbk by server hdl @sdk_gatt_hlp.c(2636),ERROR" ID="0x8da65262" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info mem new fail @sdk_gatt_hlp.c(2668),ERROR" ID="0x8da65362" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info service uuid memcpy fail @sdk_gatt_hlp.c(2679),ERROR" ID="0x8da653ba" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info attribute uuid memcpy fail @sdk_gatt_hlp.c(2684),ERROR" ID="0x8da653e2" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info addr memcpy fail @sdk_gatt_hlp.c(2689),ERROR" ID="0x8da6540a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info val memcpy fail @sdk_gatt_hlp.c(2695),ERROR" ID="0x8da6543a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind can't find service by service hdl @sdk_gatt_hlp.c(2715),ERROR" ID="0x8da654da" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read pkt null @sdk_gatt_hlp.c(2721),ERROR" ID="0x8da6550a" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind can't find server cbk by server hdl @sdk_gatt_hlp.c(2728),ERROR" ID="0x8da65542" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]write element @sdk_gatt_hlp.c(2765),INFO" ID="0x8da6566d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]read element @sdk_gatt_hlp.c(2769),INFO" ID="0x8da6568d" />
- <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]write element free @sdk_gatt_hlp.c(2775),INFO" ID="0x8da656bd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att exchange mtu addr memcpy fail @sdk_gatt_hlp.c(581),ERROR" ID="0x8da6122a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[gatth_get_multiple_characteristics_value] rmt:0x%x mtu:0x%x @sdk_gatt_hlp.c(887),INFO" ID="0x8da61bbd" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[gatth_get_characteristics_by_uuid] start_handle:0x%x end_handle:0x%x @sdk_gatt_hlp.c(1020),INFO" ID="0x8da61fe5" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="btsdk gatth get descriptor by handle arg->start_handle:0x%x arg->end_handle:0x%x @sdk_gatt_hlp.c(1063),INFO" ID="0x8da6213d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="gatth_set_reliable_characteristic_value in @sdk_gatt_hlp.c(1108),INFO" ID="0x8da622a5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[gatth_set_characteristic_value] memcpy failed @sdk_gatt_hlp.c(1145),ERROR" ID="0x8da623ca" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic rmt is NULL @sdk_gatt_hlp.c(1178),ERROR" ID="0x8da624d2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic memcpy failed @sdk_gatt_hlp.c(1186),ERROR" ID="0x8da62512" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="ble general gatt write characteristic tl is NULL @sdk_gatt_hlp.c(1201),ERROR" ID="0x8da6258a" />
+ <MSG STRUCTURE="diag_log_msg1" NAME="[SDK_GATT_HLP] HCI QOS state:%u @sdk_gatt_hlp.c(1550),ERROR" ID="0x8da63072" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[gatth_check_and_save_value] memcpy failed @sdk_gatt_hlp.c(1667),ERROR" ID="0x8da6341a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_server_execute_write_complete memcpy_s error @sdk_gatt_hlp.c(1764),ERROR" ID="0x8da63722" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_server_write_ind memcpy_s error @sdk_gatt_hlp.c(1908),ERROR" ID="0x8da63ba2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_server_write_ind memcpy_s error @sdk_gatt_hlp.c(1930),ERROR" ID="0x8da63c52" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_send_response memcpy_s error @sdk_gatt_hlp.c(2283),ERROR" ID="0x8da6475a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SDK]gatth_notify_multiple_characteristic_changed memcpy_s error @sdk_gatt_hlp.c(2516),ERROR" ID="0x8da64ea2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info mem new fail @sdk_gatt_hlp.c(2568),ERROR" ID="0x8da65042" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info service uuid memcpy fail @sdk_gatt_hlp.c(2578),ERROR" ID="0x8da65092" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info attribute uuid memcpy fail @sdk_gatt_hlp.c(2583),ERROR" ID="0x8da650ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info addr memcpy fail @sdk_gatt_hlp.c(2588),ERROR" ID="0x8da650e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind data info val memcpy fail @sdk_gatt_hlp.c(2593),ERROR" ID="0x8da6510a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind can't find service by service hdl @sdk_gatt_hlp.c(2639),ERROR" ID="0x8da6527a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write pkt null @sdk_gatt_hlp.c(2645),ERROR" ID="0x8da652aa" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att write ind can't find server cbk by server hdl @sdk_gatt_hlp.c(2652),ERROR" ID="0x8da652e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info mem new fail @sdk_gatt_hlp.c(2684),ERROR" ID="0x8da653e2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info service uuid memcpy fail @sdk_gatt_hlp.c(2695),ERROR" ID="0x8da6543a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info attribute uuid memcpy fail @sdk_gatt_hlp.c(2700),ERROR" ID="0x8da65462" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info addr memcpy fail @sdk_gatt_hlp.c(2705),ERROR" ID="0x8da6548a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind data info val memcpy fail @sdk_gatt_hlp.c(2711),ERROR" ID="0x8da654ba" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind can't find service by service hdl @sdk_gatt_hlp.c(2731),ERROR" ID="0x8da6555a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read pkt null @sdk_gatt_hlp.c(2737),ERROR" ID="0x8da6558a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]att read ind can't find server cbk by server hdl @sdk_gatt_hlp.c(2744),ERROR" ID="0x8da655c2" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]write element @sdk_gatt_hlp.c(2781),INFO" ID="0x8da656ed" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]read element @sdk_gatt_hlp.c(2785),INFO" ID="0x8da6570d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[sdk_gatt_hlp]write element free @sdk_gatt_hlp.c(2791),INFO" ID="0x8da6573d" />
</MSG_LOG>
\ No newline at end of file
<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="hfp_handle_ev_disconnect_complete hdl=0x%x @sdk_hfp.c(202),INFO" ID="0x8b7e0655" />
- <MSG STRUCTURE="diag_log_msg3" NAME="hfp set active mem id: sco_hdl=0x%x in_mem=0x%x out_mem=0x%x @sdk_hfp.c(229),WARNING" ID="0x8b7e072b" />
- <MSG STRUCTURE="diag_log_msg3" NAME="hfp map mem id: sco_hdl=0x%x in_mem=0x%x out_mem=0x%x @sdk_hfp.c(236),INFO" ID="0x8b7e0765" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="hfp set active mem id: sco_hdl=0x%x in_mem=0x%x out_mem=0x%x @sdk_hfp.c(229),ERROR" ID="0x8b7e072a" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="hfp map mem id: sco_hdl=0x%x in_mem=0x%x out_mem=0x%x @sdk_hfp.c(236),ERROR" ID="0x8b7e0762" />
<MSG STRUCTURE="diag_log_msg1" NAME="memory copy failed ret=0x%x @sdk_hfp.c(250),WARNING" ID="0x8b7e07d3" />
- <MSG STRUCTURE="diag_log_msg3" NAME="hfp map mem id: sco_hdl=0x%x in_mem=0x%x out_mem=0x%x @sdk_hfp.c(291),WARNING" ID="0x8b7e091b" />
- <MSG STRUCTURE="diag_log_msg2" NAME="SDK_HFP: send msg to mcu ev= 0x%x, role=0x%x @sdk_hfp.c(296),WARNING" ID="0x8b7e0943" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="hfp map mem id: sco_hdl=0x%x in_mem=0x%x out_mem=0x%x @sdk_hfp.c(291),ERROR" ID="0x8b7e091a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="SDK_HFP: send msg to mcu ev= 0x%x, role=0x%x @sdk_hfp.c(296),ERROR" ID="0x8b7e0942" />
<MSG STRUCTURE="diag_log_msg2" NAME="SDK_HFP: ev disconnect, conn_cfm->role = %x, conn_cfm->result=%d @sdk_hfp.c(360),INFO" ID="0x8b7e0b45" />
<MSG STRUCTURE="diag_log_msg2" NAME="SDK_HFP: slc event = %d, slc_info->role = %x @sdk_hfp.c(388),INFO" ID="0x8b7e0c25" />
<MSG STRUCTURE="diag_log_msg2" NAME="[HFP][SDK]SLC RELEASED role=%d handle=0x%x @sdk_hfp.c(452),INFO" ID="0x8b7e0e25" />
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="hlp_link_key_req_cbk no source addr:0x%x @sdk_hlp.c(900),INFO" ID="0x8b7a1c25" />
- <MSG STRUCTURE="diag_log_msg2" NAME="hlp_connection_ev_cbk_dis_conn hdl:0x%x status:%d @sdk_hlp.c(2055),INFO" ID="0x8b7a403d" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="hlp_link_key_req_cbk no source addr:0x%x @sdk_hlp.c(898),INFO" ID="0x8b7a1c15" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="hlp_connection_ev_cbk_dis_conn hdl:0x%x status:%d @sdk_hlp.c(2053),INFO" ID="0x8b7a402d" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[SDK] connect event cbk connected: %d, reason: %d link_type:%d! @sdk_hlp.c(2074),ERROR" ID="0x8b7a40d2" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[SDK] connect event cbk cap:%d addr:%02x******%02x%02x @sdk_hlp.c(2089),ERROR" ID="0x8b7a414a" />
+ <MSG STRUCTURE="diag_log_msg2" NAME="[SDK] connect event cbk status:%d dev_hdl:0x%x @sdk_hlp.c(2092),ERROR" ID="0x8b7a4162" />
</MSG_LOG>
\ No newline at end of file
--- /dev/null
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="[SMP][LongTermKeyRequest]key->fea = 0x%x @smp_ui.c(426),INFO" ID="0x8dac0d55" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP][LongTermKeyRequest]key == NULL @smp_ui.c(430),INFO" ID="0x8dac0d75" />
+ <MSG STRUCTURE="diag_log_msg3" NAME="[SMP][LongTermKeyRequest]link->hcihdl = %u, link->remote = 0x%x, key = 0x%x @smp_ui.c(457),INFO" ID="0x8dac0e4d" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP][LongTermKeyRequest][No LESC LTK SEND] @smp_ui.c(470),INFO" ID="0x8dac0eb5" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP][LongTermKeyRequest][DIV mismatch, Unpaired] @smp_ui.c(494),INFO" ID="0x8dac0f75" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP][LongTermKeyRequest][ECDH LTK unavailable, pair!=NULL] @smp_ui.c(507),INFO" ID="0x8dac0fdd" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP][LongTermKeyRequest][LTK unavailable, pair=NULL] @smp_ui.c(520),INFO" ID="0x8dac1045" />
+ <MSG STRUCTURE="diag_log_msg4" NAME="[SMP][LongTermKeyRequest]LKT:0x%02x%02x%02x%02x @smp_ui.c(527),ERROR" ID="0x8dac107a" />
+ <MSG STRUCTURE="diag_log_msg0" NAME="[SMP][LongTermKeyRequest][Send Negative Reply!] @smp_ui.c(542),INFO" ID="0x8dac10f5" />
+ </MSG_LOG>
\ No newline at end of file
-<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="sco disconnect complete sco_hdl=0x%x @tladapter.c(159),INFO" ID="0x8b9c04fd" />
+<MSG_LOG><MSG STRUCTURE="diag_log_msg1" NAME="sco disconnect complete sco_hdl=0x%x @tladapter.c(159),ERROR" ID="0x8b9c04fa" />
</MSG_LOG>
\ No newline at end of file
${CMAKE_CURRENT_SOURCE_DIR}/last_dump_adapt.c
${CMAKE_CURRENT_SOURCE_DIR}/sample_data_adapt.c
${CMAKE_CURRENT_SOURCE_DIR}/zdiag_adapt_sdt.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/mon_log_output.c
)
set(PUBLIC_HEADER
)
set(PRIVATE_HEADER
+ ${ROOT_DIR}/middleware/utils/dfx/diag_dfx_cmd/diag_system_cmd/include
+ ${ROOT_DIR}/middleware/utils/dfx/diag_dfx_cmd/diag_system_cmd/dfx_include
+ ${ROOT_DIR}/middleware/utils/dfx/diag_dfx_cmd/diag_mocked_shell/include
+ ${ROOT_DIR}/middleware/utils/dfx/diag_dfx_cmd/last_dump/dfx_include
+ ${ROOT_DIR}/middleware/utils/dfx/diag_dfx_cmd/last_dump/include
+ ${ROOT_DIR}/middleware/utils/dfx/diag_dfx_cmd/sample_data/dfx_include
+ ${ROOT_DIR}/middleware/utils/dfx/diag_dfx_cmd/sample_data/include
${ROOT_DIR}/include/middleware/services/bts
${ROOT_DIR}/include/middleware/services/bts/ble
${ROOT_DIR}/include/middleware/services/bts/br
${ROOT_DIR}/include/middleware/services/bts/common
)
-set(PRIVATE_DEFINES
-)
+if("${TARGET_COMMAND}" MATCHES "-user$")
+ set(PRIVATE_DEFINES
+ USER_VERSION
+ )
+else()
+ set(PRIVATE_DEFINES
+ )
+endif()
set(PUBLIC_DEFINES
)
#include "key_id.h"
#endif
+#include "mon_log_output.h"
+
#define DFX_MSG_TASK_PRIO 5
const diag_cmd_reg_obj_t g_diag_default_cmd_tbl[] = {
{ DIAG_CMD_ID_DBG_STAT_QUERY, DIAG_CMD_ID_DBG_STAT_QUERY, diag_cmd_stat_query },
};
-static unsigned long g_dfx_osal_queue_id;
-static unsigned long g_dfx_transmit_queue_id;
+static unsigned long g_dfx_osal_queue_id = DFX_INVALID_QUEUE_ID;
+static unsigned long g_dfx_transmit_queue_id = DFX_INVALID_QUEUE_ID;
static errcode_t register_default_diag_cmd(void)
{
if (ret != ERRCODE_SUCC) {
return ret;
}
+#ifdef USER_VERSION
+ diag_highest_level_proc(DIAG_LOG_LEVEL_WARN);
+ mon_log_output_ctrl_init();
+ mon_log_output_enable(true);
+#endif
return ERRCODE_SUCC;
}
#include "debug_print.h"\r
\r
#define DFX_CHIP_WS_TV_SEC 1663739960\r
+#define DFX_INVALID_QUEUE_ID 0xFFFFFFFF\r
\r
typedef enum {\r
FLASH_OP_TYPE_OTA,\r
/* Msg 接口 */\r
static inline errcode_t dfx_msg_write(uint32_t msg_id, uint8_t *msg, uint16_t msg_len, bool wait)\r
{\r
+ unsigned long queue_id = dfx_get_osal_queue_id();\r
+ if (queue_id == DFX_INVALID_QUEUE_ID) {\r
+ return ERRCODE_FAIL;\r
+ }\r
+\r
unsigned int timeout = (wait) ? OSAL_MSGQ_WAIT_FOREVER : 0;\r
uint8_t msg_data[DFX_MSG_MAX_SIZE + DFX_MSG_ID_LEN];\r
\r
return ERRCODE_FAIL;\r
}\r
\r
- return (errcode_t)osal_msg_queue_write_copy(dfx_get_osal_queue_id(),\r
+ return (errcode_t)osal_msg_queue_write_copy(queue_id,\r
msg_data, DFX_MSG_MAX_SIZE + DFX_MSG_ID_LEN, timeout);\r
}\r
\r
#if (defined(MEMORY_MINI))\r
return dfx_msg_write(msg_id, msg, msg_len, wait);\r
#else\r
+ unsigned long queue_id = dfx_get_transmit_queue_id();\r
+ if (queue_id == DFX_INVALID_QUEUE_ID) {\r
+ return ERRCODE_FAIL;\r
+ }\r
unsigned int timeout = (wait) ? OSAL_MSGQ_WAIT_FOREVER : 0;\r
uint8_t msg_data[DFX_MSG_MAX_SIZE + DFX_MSG_ID_LEN];\r
\r
return ERRCODE_FAIL;\r
}\r
\r
- return (errcode_t)osal_msg_queue_write_copy(dfx_get_transmit_queue_id(),\r
+ return (errcode_t)osal_msg_queue_write_copy(queue_id,\r
msg_data, DFX_MSG_MAX_SIZE + DFX_MSG_ID_LEN, timeout);\r
#endif\r
}\r
SETDESKTOPMODEL_CPP,
SETDESKTOPVIEW_CPP,
SETDESKTOPPRESENTER_CPP,
+ DISPLAY_STATE_MACHINE_C,
+ POWER_DISPLAY_SERVICE_C,
+ GUI_EVENT_FILTER_C,
+ SLICE_EVENT_FILTER_C,
+ TIMER_EVENT_FILTER_C,
+ DISPLAY_ACTION_C,
+ TIMER_ACTION_C,
+ TOUCH_ACTION_C,
+ ALIPAY_FEATURE_C,
+ ALIPAY_BLUETOOTH_C,
APP_FILE_ID_MAX = 1024,
} log_file_list_enum_app_t;
STACK_PAN_IF_C,
STACK_PBAP_IF_C,
STACK_SPP_IF_C,
+ SAMPLE_BLE_ANCS_C,
+ BLE_ANCS_CLIENT_C,
+ SAMPLE_BLE_AMS_C,
+ BLE_AMS_CLIENT_C,
BTH_FILE_ID_MAX = 1024,
} log_file_list_enum_bth_t;
#endif
UI_KALEIDOSCOPE_VIEW_CPP,
KALEIDOSCOPE_UTILS_CPP,
UI_COVERFLOW_VIEW_CPP,
+ UI_ROLLER_VIEW_CPP,
+ UI_ICOSAHEDRON_VIEW_CPP,
UI_MAP_VIEW_CPP,
MAP_SVG_PARSER_CPP,
SLICETRANSITION_CPP,
TRANSITIONMANAGER_CPP,
+ UI_PINYIN_CANDIDATE_CPP,
+ HEXAGONSTRANSITION_CPP,
+ BACKTOHEXAGONSTRANSITION_CPP,
FILE_ID_MAX = 1024,
} log_file_list_enum_gui_t;
#endif
DFX_CHANNEL_C,
SAMPLE_DATA_ADAPT_C,
ZDIAG_ADAPT_SDT_C,
+ MON_LOG_OUTPUT_C,
DIAG_CMD_DST_C,
DIAG_DEBUG_C,
DIAG_FILTER_C,
#ifndef ZDIAG_CONFIG_H\r
#define ZDIAG_CONFIG_H\r
\r
-#define DFX_OFFLINE_LOG_MUTI_FILE_NUM 20 /* 离线日志最大文件个数 */\r
+#define DFX_OFFLINE_LOG_MUTI_FILE_NUM 5 /* 离线日志最大文件个数 */\r
#define DFX_OFFLINE_LOG_FILE_SIZE (1024 * 1024) /* 离线日志每个文件最大字节数 */\r
#define DFX_OFFLINE_LOG_PATH "/user/log/" /* 离线日志存放路径 */\r
#define DFX_OFFLINE_LOG_NAME "log_file_diag.bin" /* 离线日志文件名 */\r
--- /dev/null
+/*
+ * Copyright (c) @CompanyNameMagicTag 2023-2023. All rights reserved. \n
+ * Description: log output monitor.
+ */
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <log_module_id.h>
+#include <diag_log.h>
+#include <diag_msg.h>
+#include <osal_timer.h>
+#include "common_def.h"
+#include "mon_log_output.h"
+
+#ifdef __cplusplus
+#if __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+#endif /* __cplusplus */
+#define MODULEID_COUNT (MODULEID_BUTT + 2)
+STATIC uint32_t g_mon_logcnt_max[MODULEID_COUNT] = { 0,
+ MAX_LOGCNT_BT,
+ 0,
+ MAX_LOGCNT_DSP,
+ MAX_LOGCNT_PF,
+ MAX_LOGCNT_MEDIA,
+ 0,
+ MAX_LOGCNT_APP,
+ MAX_LOGCNT_GPU,
+ MAX_LOGCNT_GUI,
+ 0,
+ MAX_LOGCNT_BTH,
+ MAX_LOGCNT_OHOS,
+ 0,
+ MAX_LOGCNT_BT_STATUS,
+ MAX_LOGCNT_BT_OTA };
+STATIC uint32_t g_mon_logcnt_ctrl[MODULEID_COUNT] = { 0 };
+STATIC osal_timer g_logcnt_timer = { 0 };
+STATIC bool g_logcnt_en = false;
+
+STATIC void mon_logcnt_enable(void)
+{
+ for (uint32_t i = 0; i < MODULEID_COUNT; i++) {
+ g_mon_logcnt_ctrl[i] = 0;
+ }
+
+ osal_timer_start(&g_logcnt_timer);
+}
+
+STATIC void mon_log_output_timer_alert(unsigned long data)
+{
+ unused(data);
+ mon_logcnt_enable();
+}
+
+STATIC bool mon_logcnt_process(uint8_t mid, uint8_t level)
+{
+ unused(level);
+ if (mid >= MODULEID_COUNT) {
+ return false;
+ }
+
+ if ((g_logcnt_en == true) && (g_mon_logcnt_max[mid] < g_mon_logcnt_ctrl[mid])) {
+ return false;
+ }
+
+ g_mon_logcnt_ctrl[mid]++;
+ return true;
+}
+
+void mon_log_output_ctrl_init(void)
+{
+ g_logcnt_timer.handler = mon_log_output_timer_alert;
+ g_logcnt_timer.data = 0;
+ g_logcnt_timer.interval = MON_LOG_CNT_CLEAR_TIMEOUT;
+
+ if (osal_timer_init(&g_logcnt_timer) < 0) {
+ uapi_diag_error_log(0, "Create logcnt timer failed!");
+ return;
+ }
+
+ /* register log file hook */
+ uapi_diag_register_msg_flow_control_hook(mon_logcnt_process);
+
+ osal_timer_start(&g_logcnt_timer);
+}
+
+uint32_t *mon_log_output_get_counter(void)
+{
+ return &g_mon_logcnt_ctrl;
+}
+
+void mon_log_output_enable(bool enable)
+{
+ if (g_logcnt_en == enable) {
+ return; /* Same settings, do nothing */
+ }
+
+ g_logcnt_en = enable;
+
+ if (enable == true) {
+ mon_logcnt_enable(); /* start over counting */
+ } else {
+ osal_timer_stop(&g_logcnt_timer); /* continue counting, but do not clear */
+ }
+}
+
+#ifdef __cplusplus
+#if __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* __cplusplus */
+
--- /dev/null
+/*
+ * Copyright (c) @CompanyNameMagicTag 2023-2023. All rights reserved. \n
+ * Description: log output monitor.
+ */
+
+#ifndef MON_LOG_OUTPUT_H
+#define MON_LOG_OUTPUT_H
+
+#include "stdint.h"
+#include "stdbool.h"
+
+#ifdef __cplusplus
+#if __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+#endif /* __cplusplus */
+
+#define MON_LOG_CNT_CLEAR_TIMEOUT (1000 * 60 * 15) /* 15 min */
+#define MAX_LOGCNT_BT 9000
+#define MAX_LOGCNT_DSP 1000
+#define MAX_LOGCNT_PF 2000
+#define MAX_LOGCNT_MEDIA 1000
+#define MAX_LOGCNT_APP 5000
+#define MAX_LOGCNT_GPU 2000
+#define MAX_LOGCNT_GUI 1000
+#define MAX_LOGCNT_BTH 3000
+#define MAX_LOGCNT_OHOS 1000
+#define MAX_LOGCNT_BT_STATUS 3000
+#define MAX_LOGCNT_BT_OTA 3000
+
+void mon_log_output_ctrl_init(void);
+uint32_t *mon_log_output_get_counter(void);
+void mon_log_output_enable(bool enable);
+
+#ifdef __cplusplus
+#if __cplusplus
+}
+#endif /* __cplusplus */
+#endif /* __cplusplus */
+
+#endif
void diag_auto_log_report_enable(void)\r
{\r
uint32_t level[] = {\r
+#ifndef USER_VERSION\r
DIAG_LOG_LEVEL_DBG,\r
+#endif\r
DIAG_LOG_LEVEL_INFO,\r
DIAG_LOG_LEVEL_WARN,\r
DIAG_LOG_LEVEL_ERROR,\r
LOG_OTA_MODULE,\r
LOG_OHOSMODULE,\r
LOG_BTHMODULE,\r
+ LOG_GPUMODULE,\r
};\r
\r
#ifndef FT_SINGLE_UART\r
# Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved.
#===============================================================================
set(COMPONENT_NAME "dfx_exception")
-
if(${ARCH_FAMILY} STREQUAL "arm")
set(SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/exception_arm.s
set(SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/exception_riscv.s
${CMAKE_CURRENT_SOURCE_DIR}/exception_riscv.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/chip_system_time.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/chip_exception_utils.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/exception_dump.c
)
endif()
+
set(PUBLIC_HEADER
${CMAKE_CURRENT_SOURCE_DIR}
)
--- /dev/null
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: utils
+ * Author:
+ * Create:
+ */
+#include "chip_exception_utils.h"
+#include <stdbool.h>
+#include "hal_reboot.h"
+#include "chip_io.h"
+
+#define STATUS_ADDRESS 0x5702C1E8
+#define VBUS_INSERT_POS 4
+#define PWREN_PRESS_POS 3
+
+bool is_first_power_on(void)
+{
+ return hal_reboot_get_first_power_on_flag();
+}
+
+bool is_vbus_insert(void)
+{
+ if (reg32_getbit(STATUS_ADDRESS, VBUS_INSERT_POS)) {
+ return true;
+ }
+ return false;
+}
+
+bool is_pwren_press(void)
+{
+ if (reg32_getbit(STATUS_ADDRESS, PWREN_PRESS_POS)) {
+ return true;
+ }
+ return false;
+}
\ No newline at end of file
--- /dev/null
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: utils
+ * Author:
+ * Create:
+ */
+#ifndef CHIP_EXCEPTION_UTILS_H
+#define CHIP_EXCEPTION_UTILS_H
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdbool.h>
+
+/**
+ * @brief Check if this is the first power-on since the device was battery-powered.
+ * @return true if this is the first power-on, false otherwise.
+ */
+bool is_first_power_on(void);
+
+/**
+ * @brief Check if the VBUS (power supply) is inserted.
+ * @return true if VBUS is inserted, false otherwise.
+ */
+bool is_vbus_insert(void);
+
+/**
+ * @brief Check if the power button (PWREN) is being pressed.
+ * @return true if PWREN is pressed, false otherwise.
+ */
+bool is_pwren_press(void);
+#endif
--- /dev/null
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: get time
+ * Author:
+ * Create:
+ */
+#ifndef BUILD_APPLICATION_SSB
+
+#include "chip_system_time.h"
+
+#define SECONDS_PER_MINUTE 60 /* second per minute */
+#define MINUTES_PER_HOUR 60 /* second per minute */
+#define MSEC_PER_SEC 1000
+#define USEC_PER_MSEC 1000
+#define TZ_ADDRESS 0x5702C014
+#define MAX_TIMEZONE_HOURS 24
+#define TIME_MAX 64
+
+void print_time(calendar_t *date)
+{
+ printf("CALLENDAR:year = %d, month = %d, day = %d, hour = %d, minute = %d, second = %d \r\n",
+ date->year,
+ date->mon,
+ date->day,
+ date->hour,
+ date->min,
+ date->sec);
+}
+
+void print_time_2(struct tm *date)
+{
+ printf("TM:year = %d, month = %d, day = %d, hour = %d, minute = %d, second = %d \r\n",
+ date->tm_year + 1900,
+ date->tm_mon,
+ date->tm_mday,
+ date->tm_hour,
+ date->tm_min,
+ date->tm_sec);
+}
+
+static uint16_t get_timezone(void)
+{
+ return readw(TZ_ADDRESS) & 0x00FF;
+}
+
+static void set_timezone(uint16_t timezone)
+{
+ uint16_t tz_zone = readw(TZ_ADDRESS) & 0xFF00;
+ tz_zone = tz_zone | timezone;
+ writew(TZ_ADDRESS, tz_zone);
+}
+
+void save_time(void)
+{
+ uint64_t time_sec = get_local_timestamp();
+ time_sec = time_sec * MSEC_PER_SEC;
+ uapi_calendar_set_timestamp(time_sec);
+}
+
+uint32_t get_current_timestamp(void)
+{
+ uint32_t timestamp = 0;
+ struct timeval current_time = {0};
+ if (gettimeofday(¤t_time, NULL)) {
+ return 0;
+ }
+ struct tm tm;
+ localtime_r(¤t_time.tv_sec, &tm);
+ timestamp = (uint32_t)current_time.tv_sec;
+ return timestamp;
+}
+
+uint32_t get_local_timestamp(void)
+{
+ uint32_t timestamp = get_current_timestamp() + get_timezone() * MINUTES_PER_HOUR * SECONDS_PER_MINUTE;
+ return timestamp;
+}
+
+void get_current_time(struct timeval *tv, struct tm *tm)
+{
+ char timebuf[TIME_MAX] = {0};
+ if (gettimeofday(tv, NULL)) {
+ return;
+ }
+ localtime_r(&tv->tv_sec, tm);
+ tm->tm_mon = tm->tm_mon + 1;
+ printf("get_current_time tv_tv_sec = %d \r\n", tv->tv_sec);
+ print_time_2(tm);
+}
+
+void restore_time(void)
+{
+ uapi_ulp_systick_soc_calibration();
+ calendar_t date;
+ uapi_calendar_get_datetime(&date);
+ print_time(&date);
+ uint64_t sec;
+ uapi_calendar_get_timestamp(&sec);
+ printf("callendar timestamp = %lld \r\n", sec);
+ sec = sec / MSEC_PER_SEC;
+ sync_time(sec, get_timezone());
+}
+
+uint32_t sync_time(uint32_t timestamp, uint32_t timezone)
+{
+ printf("sync time timestamp %d, timezone %d \r\n", timestamp, timezone);
+ uint32_t seconds;
+ if (timezone > MAX_TIMEZONE_HOURS) {
+ return ERRCODE_FAIL;
+ }
+ if (timestamp == 0) {
+ return ERRCODE_FAIL;
+ } else if (timestamp <= (timezone * MINUTES_PER_HOUR * SECONDS_PER_MINUTE)) {
+ seconds = 0;
+ } else {
+ seconds = timestamp - (timezone * MINUTES_PER_HOUR * SECONDS_PER_MINUTE);
+ }
+ set_timezone(timezone);
+ struct timeval tv = {0};
+ struct timezone tzone = {0};
+ tv.tv_sec = seconds;
+ tv.tv_usec = 0;
+ tzone.tz_dsttime = 0;
+ tzone.tz_minuteswest = timezone * MINUTES_PER_HOUR;
+ return settimeofday(&tv, &tzone);
+}
+
+void test_bandy_time(void)
+{
+ struct tm tm;
+ struct timeval tv;
+ uint32_t time = 1716044461; // 2024-5-18 15:1:1
+ printf("--------SYNC TIME----------\r\n");
+ get_current_timestamp();
+ get_current_time(&tv, &tm);
+ sync_time(time, 8);
+ get_current_timestamp();
+ get_current_time(&tv, &tm);
+ printf("--------SAVE TIME----------\r\n");
+ get_current_timestamp();
+ get_current_time(&tv, &tm);
+ save_time();
+ get_current_timestamp();
+ get_current_time(&tv, &tm);
+ printf("--------RESTORE TIME----------\r\n");
+ get_current_timestamp();
+ get_current_time(&tv, &tm);
+ restore_time();
+ get_current_timestamp();
+ get_current_time(&tv, &tm);
+}
+#endif
\ No newline at end of file
--- /dev/null
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: time
+ * Author:
+ * Create:
+ */
+#ifndef CHIP_SYSTEM_TIME_H
+#define CHIP_SYSTEM_TIME_H
+
+#ifndef BUILD_APPLICATION_SSB
+#include <stdio.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include "calendar.h"
+#include "chip_io.h"
+#include "errcode.h"
+#include "time.h"
+#include "sys/time.h"
+/**
+ * @brief Print the time represented by the given calendar date
+ * @return void.
+ */
+void print_time(calendar_t *date);
+
+/**
+ * @brief Save the current system time to non-volatile memory
+ * @return void.
+ */
+void save_time(void);
+
+/**
+ * @brief Get the current system time as a Unix timestamp
+ * @return void.
+ */
+uint32_t get_current_timestamp(void);
+
+/**
+ * @brief Get the current system time as a timeval struct and a tm
+ * @return void.
+ */
+void get_current_time(struct timeval *tv, struct tm *tm);
+
+/**
+ * @brief Restore the system time from the saved non-volatile
+ * @return void.
+ */
+void restore_time(void);
+
+/**
+ * @brief Synchronize the system time with the given timestamp and timezone
+ * @return void.
+ */
+uint32_t sync_time(uint32_t timestamp, uint32_t timezone);
+
+/**
+ * @brief use for test
+ * @return void.
+ */
+void test_time(void);
+
+/**
+ * @brief Get the current system time as a local timestamp with timezone offset
+ * @return void.
+ */
+uint32_t get_local_timestamp(void);
+#endif
+#endif
\ No newline at end of file
--- /dev/null
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: dump
+ * Author:
+ * Create:
+ */
+#include "exception_dump.h"
+#include <stdio.h>
+#include <string.h>
+#include "exception.h"
+#include "memory_config.h"
+#include "time.h"
+#include "sys/time.h"
+#include "chip_io.h"
+#ifdef CFG_DRIVERS_NANDFLASH
+#include "nandflash_config.h"
+
+#define PSRAM_DUMP_TO_FILE_LENGTH 0x40000 // 256KB
+
+void exception_dump_memory_to_file(char *file_name, uint32_t dump_time, uintptr_t startAddr, uint32_t length)
+{
+ char *str = (char *)malloc(200);
+ memset_s(str, 200, 0, 200);
+ sprintf(str, file_name, dump_time);
+ exc_info_write(str, 0, (const uint8_t *)startAddr, length);
+}
+
+typedef struct {
+ char *name;
+ uintptr_t start_addr;
+ uint32_t len;
+} mem_dump_to_file_t;
+
+static const mem_dump_to_file_t g_mem_dump_to_file_info[] = {
+ {"/user/exc/APP_DTCM_ORIGIN_%d.bin", APP_DTCM_ORIGIN, APP_DTCM_LENGTH},
+ {"/user/exc/MCPU_TRACE_MEM_REGION_%d.bin", MCPU_TRACE_MEM_REGION_START, CPU_TRACE_MEM_REGION_LENGTH},
+ {"/user/exc/PSRAM_ORIGIN_%d.bin", PSRAM_APP_DATA_ADDR, PSRAM_DUMP_TO_FILE_LENGTH},
+};
+
+void dump_mem_to_file(uint32_t time_sec)
+{
+ uint16_t count = (uint16_t)(sizeof(g_mem_dump_to_file_info) / sizeof(mem_dump_to_file_t));
+ for (uint8_t i = 0; i < count; i++) {
+ exception_dump_memory_to_file(g_mem_dump_to_file_info[i].name,
+ time_sec,
+ g_mem_dump_to_file_info[i].start_addr,
+ g_mem_dump_to_file_info[i].len);
+ }
+}
+#endif
+
+#ifdef CFG_DUMP_REG_SUPPORT
+char *g_regist_str = "[PMU1_B_SOC_PWR_EN_REG %x, %x]\r\n
+ [PMU1_BT_CBB_PWR_EN_REG %x, %x]\r\n
+ [PMU1_BMEM_PWR_EN_REG %x, %x]\r\n
+ [PMU1_BT_EM_PWR_EN_REG %x, %x]\r\n
+ [PMU1_MCU_HS_PWR_EN_REG %x, %x]\r\n
+ [PMU1_DSUB_PWR_EN_REG %x, %x]\r\n
+ [PMU1_ASUB_PWR_EN_REG %x, %x]\r\n
+ [PMU1_S_EGPIO_PWR_EN_REG %x, %x]\r\n
+ [PMU1_BT_RF_PWR_EN_REG %x, %x]\r\n
+ [PMU1_MCU_PWR_EN_REG %x, %x]\r\n
+ [PMU1_MEM_PWR_EN_REG %x, %x]\r\n
+ [PMU1_COM_PWR_EN_REG %x, %x]";
+static const char *g_reg_path = "/user/exc/reg_path%d.txt";
+
+void dump_reg_to_file(uint32_t time_sec)
+{
+ char *file_name = (char *)malloc(100);
+ sprintf(file_name, g_reg_path, time_sec);
+ char *str = (char *)malloc(500);
+ uint32_t ctrl_base = 0x57004000;
+ sprintf(str, g_regist_str,
+ ctrl_base + 0x20, readl(ctrl_base + 0x20),
+ ctrl_base + 0x24, readl(ctrl_base + 0x24),
+ ctrl_base + 0x28, readl(ctrl_base + 0x28),
+ ctrl_base + 0x2c, readl(ctrl_base + 0x2c),
+ ctrl_base + 0x30, readl(ctrl_base + 0x30),
+ ctrl_base + 0x34, readl(ctrl_base + 0x34),
+ ctrl_base + 0x38, readl(ctrl_base + 0x38),
+ ctrl_base + 0x5c, readl(ctrl_base + 0x5c),
+ ctrl_base + 0x60, readl(ctrl_base + 0x60),
+ ctrl_base + 0x64, readl(ctrl_base + 0x64),
+ ctrl_base + 0x68, readl(ctrl_base + 0x68),
+ ctrl_base + 0x78, readl(ctrl_base + 0x78));
+ exc_info_write(file_name, 0, (uint8_t *)str, strlen(str));
+}
+#endif
+
+void dump_all_to_file(void)
+{
+ uint32_t timestamp = get_local_timestamp();
+#ifdef CFG_DRIVERS_NANDFLASH
+ dump_mem_to_file(timestamp);
+#endif
+#ifdef CFG_DUMP_REG_SUPPORT
+ dump_reg_to_file(timestamp);
+#endif
+}
\ No newline at end of file
--- /dev/null
+/**
+ * Copyright (c) CompanyNameMagicTag 2023-2023. All rights reserved.
+ * Description: dump
+ * Author:
+ * Create:
+ */
+#ifndef EXCEPTION_DUMP_H
+#define EXCEPTION_DUMP_H
+
+/**
+ * @brief support nandflash storage dump sysmem to file.
+ * @return void.
+ */
+void dump_all_to_file(void);
+
+#endif
\ No newline at end of file
#include "non_os_reboot.h"\r
#include "watchdog_porting.h"\r
#include "flash.h"\r
+#include "exception_dump.h"\r
+\r
#if defined(BUILD_APPLICATION_STANDARD) && !defined(BUILD_RECOVERY_IMAGE)\r
#include "nv.h"\r
#endif\r
static volatile uint32_t g_bt_nmi_reboot = 0;\r
static volatile uint32_t g_bt_nmi_mask = 0;\r
#endif\r
-#if MASTER_BY_BRANDY_ONLY\r
-#define PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG 0x57000014\r
-#define PM_SLEEP_SOFT_RESET_FORCE_WKUP_VAL 0xb66\r
-#define PM_MCU_SEND_IPC_WKUP_BT_REG 0x52000034\r
-#define PM_MCU_SEND_IPC_WKUP_BT_BIT 0x1\r
-#endif\r
+\r
\r
bool get_exception_status(void)\r
{\r
nand_driver_init(SPEED_SLOW);\r
set_trans_type(TRANS_BY_CPU_SINGLE_LINE);\r
ret = exc_info_write(g_exc_info_path, 0, (const uint8_t *)exc_info_save, exc_size);\r
+ dump_all_to_file();\r
#endif\r
#ifdef CFG_DRIVERS_MMC\r
char *exc_info_buffer = (char *)osal_kmalloc_align(ONE_SECTOR_SIZE, 0, MMC_BUFFER_ALIGN);\r
uapi_flash_switch_to_xip_mode(CHIP_FLASH_ID);\r
#if (CORE == MASTER_BY_ALL) && (CORE != WIFI)\r
if (g_is_repeat_exc == true) {\r
- cpu_utils_reset_chip_with_log((cores_t)MASTER_BY_ALL, REBOOT_CAUSE_APPLICATION_HARDFAULT);\r
+ cpu_utils_reset_chip_with_log((cores_t)MASTER_BY_ALL, REBOOT_CAUSE_APPLICATION_SECOND_FAULT);\r
}\r
/* If the process is restarted at the end of an abnormal process, the value of this variable is false. */\r
/* Do not need to manually set false at the end. */\r
static void deal_with_exception(exc_context_t *exc_buf_addr, uint32_t exc_type, reboot_cause_t reset_cause)\r
{\r
UNUSED(reset_cause);\r
-#if MASTER_BY_BRANDY_ONLY\r
- // when bt at sleep, need wkup bt before soft reset\r
- writew(PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG, PM_SLEEP_SOFT_RESET_FORCE_WKUP_VAL);\r
- reg16_setbit(PM_MCU_SEND_IPC_WKUP_BT_REG, PM_MCU_SEND_IPC_WKUP_BT_BIT);\r
-#endif\r
#if defined(BUILD_APPLICATION_STANDARD) && (CORE == MASTER_BY_ALL)\r
set_exception_time_stamp();\r
// Record the reason before wait, so apps can get the reason.\r
--- /dev/null
+{
+ "common":{
+ "module_id": "0x0",
+ "secure_conn":{
+ "key_id": "0x2001",
+ "key_status": "alive",
+ "structure_type": "ext_nv_secure_conn_t",
+ "attributions": 1,
+ "value": [[
+ 243, 241, 252, 189, 233, 154, 35, 34, 155, 96, 183, 133, 229, 196, 190, 222, 180, 146, 211, 63,
+ 59, 38, 229, 100, 24, 165, 216, 53, 120, 133, 104, 166, 31, 6, 220, 125, 87, 47, 131, 42, 74,
+ 240, 107, 111, 146, 239, 251, 229, 146, 99, 46, 4, 38, 183, 99, 2, 47, 215, 88, 151, 178, 198,
+ 148, 222, 135, 2, 156, 203, 192, 138, 178, 118, 6, 110, 40, 38, 235, 31, 220, 118, 53, 75, 152,
+ 32, 246, 4, 225, 131, 242, 96, 176, 20, 131, 184, 39, 88, 96, 7, 205, 231, 158, 10, 136, 178,
+ 32, 19, 156, 88, 133, 93, 18, 251, 35, 146, 58, 83, 25, 188, 84, 151, 99, 38, 102, 48, 240, 214,
+ 157, 197, 88, 160, 224, 71, 174, 4, 216, 234, 117, 87, 53, 132, 204, 99, 62, 201, 61, 116, 186,
+ 29, 201, 172, 140, 176, 226, 123, 55, 95, 18, 197, 30, 244, 19, 143, 112, 12, 29, 162, 188, 208,
+ 48, 242, 108, 76, 170, 139, 140, 198, 177, 233, 251, 57, 91, 10, 70, 117, 231, 226, 67, 26, 55,
+ 249, 144, 165, 75, 125, 215, 220, 190, 199, 116, 40, 221, 0, 17, 90, 25, 11, 47, 177, 255, 218,
+ 153, 254, 127, 237, 211, 170, 174, 104, 76, 47, 136, 193, 0, 147, 157, 74, 213, 180, 143, 240,
+ 173, 98, 90, 27, 30, 213, 217, 247, 50, 147, 202, 224, 54, 147, 34, 19, 177, 128, 27, 123, 101,
+ 242, 36, 68, 71, 184, 62, 166, 134, 86, 98, 216, 120, 123, 191, 49, 135, 105, 187, 38, 241, 125,
+ 26, 80, 141, 151, 222, 240, 253, 115, 102, 86, 118, 153, 214, 4, 209, 186, 110, 50, 105, 194,
+ 100, 125, 242, 51, 117, 118, 107, 164, 133, 229, 157, 221, 114, 121, 152, 204, 57, 119, 176,
+ 167, 75, 208, 156, 243, 138, 176, 50, 102, 121, 69, 22, 21, 225, 41, 216, 247, 133, 47, 129, 74,
+ 20, 79, 236, 42, 38, 134, 68, 224, 200, 42, 223, 23, 191, 88, 221, 31, 133, 145, 171, 46, 98, 4,
+ 202, 160, 0, 89, 222, 92, 67, 160, 163, 185, 52, 70, 129, 62, 112, 1, 223, 187, 218, 241, 25,
+ 215, 129, 196, 249, 32, 201, 96, 249, 165
+ ],
+ [15,238,119,231,29,44,120,58,55,14,80,125,220,227,124,8,39,0,104,162],20]
+ },
+ "offline_enable_flag":{
+ "key_id": "0x2002",
+ "key_status": "alive",
+ "structure_type": "uint8_t",
+ "attributions": 1,
+ "value": 0
+ },
+ "btsrv_local_device_info":{
+ "key_id": "0x2101",
+ "key_status": "alive",
+ "structure_type": "btsrv_local_device_info_t",
+ "attributions": 1,
+ "value": [[40,17,6,133,105, 89],0,0,["W","a","t","c","h","D","e","m","o",0]]
+ },
+ "btsrv_paired_device_info":{
+ "key_id": "0x2102",
+ "key_status": "alive",
+ "structure_type": "btsrv_paired_device_info_t",
+ "attributions": 1,
+ "value": [0]
+ },
+ "btsrv_tx_power_info":{
+ "key_id": "0x2103",
+ "key_status": "",
+ "structure_type": "btsrv_calibration_config_t",
+ "attributions": 1,
+ "value": [8,[75,75,75,75,55,55,95,95],[2,15,27,31,41,51,66,77],[-28,1818,-6745],0,14,14,14,12,0,0,0,0]
+ },
+ "bth_host_config": {
+ "key_id": "0x2104",
+ "key_status": "alive",
+ "structure_type": "bth_product_data_config_t",
+ "attributions": 1,
+ "value": [0]
+ },
+ "audio_vqe_param":{
+ "key_id": "0x320C",
+ "key_status": "alive",
+ "structure_type": "audio_vqe_param_t",
+ "attributions": 1,
+ "value": [48, [0, 0, 0, 0, 16843009, 33620225, 16000, 16000,
+ 1024, 100, 0, 0, 16842753, 257, 257, 256,
+ 16778116, 16844032, 4, 0, 458824, 11796580, 327946, 1310720005,
+ 65576964, 1000, 21499085, 67108874, 327680, 655367, 2126009683, 654734439,
+ 1, 0, 0, 0, 0, 0, 5308380, 655336,
+ 4286447619, 64536, 500, 16384, 3277, 0, 66049, 0]]
+ },
+ "audio_vqe_kws_param":{
+ "key_id": "0x320D",
+ "key_status": "alive",
+ "structure_type": "audio_vqe_param_t",
+ "attributions": 1,
+ "value": [48, [0, 0, 0, 0, 16843009, 33554689, 16000, 16000,
+ 1024, 100, 1985229328, 1985229328, 16843009, 257, 257, 256,
+ 16778116, 1280, 4, 0, 458824, 11796580, 327690, 13107205,
+ 65576964, 1000, 679102459, 67108874, 327680, 655367, 2126009683,
+ 654734439, 1, 0, 0, 0, 0, 0, 10551272, 655336, 4286447619, 64536,
+ 500, 16384, 3277, 0, 66049, 0]]
+ }
+ }
+}
--- /dev/null
+{
+ "common":{
+ "module_id": "0x0",
+ "secure_conn":{
+ "key_id": "0x2001",
+ "key_status": "alive",
+ "structure_type": "ext_nv_secure_conn_t",
+ "attributions": 1,
+ "value": [[
+ 243, 241, 252, 189, 233, 154, 35, 34, 155, 96, 183, 133, 229, 196, 190, 222, 180, 146, 211, 63,
+ 59, 38, 229, 100, 24, 165, 216, 53, 120, 133, 104, 166, 31, 6, 220, 125, 87, 47, 131, 42, 74,
+ 240, 107, 111, 146, 239, 251, 229, 146, 99, 46, 4, 38, 183, 99, 2, 47, 215, 88, 151, 178, 198,
+ 148, 222, 135, 2, 156, 203, 192, 138, 178, 118, 6, 110, 40, 38, 235, 31, 220, 118, 53, 75, 152,
+ 32, 246, 4, 225, 131, 242, 96, 176, 20, 131, 184, 39, 88, 96, 7, 205, 231, 158, 10, 136, 178,
+ 32, 19, 156, 88, 133, 93, 18, 251, 35, 146, 58, 83, 25, 188, 84, 151, 99, 38, 102, 48, 240, 214,
+ 157, 197, 88, 160, 224, 71, 174, 4, 216, 234, 117, 87, 53, 132, 204, 99, 62, 201, 61, 116, 186,
+ 29, 201, 172, 140, 176, 226, 123, 55, 95, 18, 197, 30, 244, 19, 143, 112, 12, 29, 162, 188, 208,
+ 48, 242, 108, 76, 170, 139, 140, 198, 177, 233, 251, 57, 91, 10, 70, 117, 231, 226, 67, 26, 55,
+ 249, 144, 165, 75, 125, 215, 220, 190, 199, 116, 40, 221, 0, 17, 90, 25, 11, 47, 177, 255, 218,
+ 153, 254, 127, 237, 211, 170, 174, 104, 76, 47, 136, 193, 0, 147, 157, 74, 213, 180, 143, 240,
+ 173, 98, 90, 27, 30, 213, 217, 247, 50, 147, 202, 224, 54, 147, 34, 19, 177, 128, 27, 123, 101,
+ 242, 36, 68, 71, 184, 62, 166, 134, 86, 98, 216, 120, 123, 191, 49, 135, 105, 187, 38, 241, 125,
+ 26, 80, 141, 151, 222, 240, 253, 115, 102, 86, 118, 153, 214, 4, 209, 186, 110, 50, 105, 194,
+ 100, 125, 242, 51, 117, 118, 107, 164, 133, 229, 157, 221, 114, 121, 152, 204, 57, 119, 176,
+ 167, 75, 208, 156, 243, 138, 176, 50, 102, 121, 69, 22, 21, 225, 41, 216, 247, 133, 47, 129, 74,
+ 20, 79, 236, 42, 38, 134, 68, 224, 200, 42, 223, 23, 191, 88, 221, 31, 133, 145, 171, 46, 98, 4,
+ 202, 160, 0, 89, 222, 92, 67, 160, 163, 185, 52, 70, 129, 62, 112, 1, 223, 187, 218, 241, 25,
+ 215, 129, 196, 249, 32, 201, 96, 249, 165
+ ],
+ [15,238,119,231,29,44,120,58,55,14,80,125,220,227,124,8,39,0,104,162],20]
+ },
+ "offline_enable_flag":{
+ "key_id": "0x2002",
+ "key_status": "alive",
+ "structure_type": "uint8_t",
+ "attributions": 1,
+ "value": 1
+ },
+ "btsrv_local_device_info":{
+ "key_id": "0x2101",
+ "key_status": "alive",
+ "structure_type": "btsrv_local_device_info_t",
+ "attributions": 1,
+ "value": [[40,17,6,133,105, 89],0,0,["W","a","t","c","h","D","e","m","o",0]]
+ },
+ "btsrv_paired_device_info":{
+ "key_id": "0x2102",
+ "key_status": "alive",
+ "structure_type": "btsrv_paired_device_info_t",
+ "attributions": 1,
+ "value": [0]
+ },
+ "btsrv_tx_power_info":{
+ "key_id": "0x2103",
+ "key_status": "",
+ "structure_type": "btsrv_calibration_config_t",
+ "attributions": 1,
+ "value": [8,[75,75,75,75,55,55,95,95],[2,15,27,31,41,51,66,77],[-28,1818,-6745],0,14,14,14,12,0,0,0,0]
+ },
+ "bth_host_config": {
+ "key_id": "0x2104",
+ "key_status": "alive",
+ "structure_type": "bth_product_data_config_t",
+ "attributions": 1,
+ "value": [0]
+ },
+ "audio_vqe_param":{
+ "key_id": "0x320C",
+ "key_status": "alive",
+ "structure_type": "audio_vqe_param_t",
+ "attributions": 1,
+ "value": [48, [0, 0, 0, 0, 16843009, 33620225, 16000, 16000,
+ 1024, 100, 0, 0, 16842753, 257, 257, 256,
+ 16778116, 16844032, 4, 0, 458824, 11796580, 327946, 1310720005,
+ 65576964, 1000, 21499085, 67108874, 327680, 655367, 2126009683, 654734439,
+ 1, 0, 0, 0, 0, 0, 5308380, 655336,
+ 4286447619, 64536, 500, 16384, 3277, 0, 66049, 0]]
+ },
+ "audio_vqe_kws_param":{
+ "key_id": "0x320D",
+ "key_status": "alive",
+ "structure_type": "audio_vqe_param_t",
+ "attributions": 1,
+ "value": [48, [0, 0, 0, 0, 16843009, 33554689, 16000, 16000,
+ 1024, 100, 1985229328, 1985229328, 16843009, 257, 257, 256,
+ 16778116, 1280, 4, 0, 458824, 11796580, 327690, 13107205,
+ 65576964, 1000, 679102459, 67108874, 327680, 655367, 2126009683,
+ 654734439, 1, 0, 0, 0, 0, 0, 10551272, 655336, 4286447619, 64536,
+ 500, 16384, 3277, 0, 66049, 0]]
+ }
+ }
+}
PM_ID_TOUCH,
PM_ID_JPEG,
PM_ID_JS,
+ PM_ID_MSGCENTER,
PM_ID_MAX,
} pm_id_t;
clocks_system_resume_clock();
uapi_dma_init();
uapi_dma_open();
+ cpu_trace_enable_mcpu_repeat();
storage_device_resume();
-
reg16_setbit(0x520003e4, 0x0); // set mcpu_clken_slp in MSUB_SLP_CFG
reg16_setbit(0x520003e4, 0x1); // set mcpu_hclken_slp in MSUB_SLP_CFG
clocks_auto_cg_config();
#define PM_SLEEP_SEL_EVENT 0x777
#define PM_SLEEP_TRACE_DEF_VAL 0x5a5a
#define PM_OS_US_TO_MS 1000
-#define PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG 0x57000014
-#define PM_SLEEP_SOFT_RESET_FORCE_WKUP_VAL 0xb66
-#define PM_MCU_SEND_IPC_WKUP_BT_REG 0x52000034
-#define PM_MCU_SEND_IPC_WKUP_BT_VAL 0x2
-#define BT_RESET_DELAY 10
enum {
PM_SLEEP_STATE_IDLE,
void pm_wkup_event_by_ulp_callback(void)
{
- writew(PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG, PM_SLEEP_SOFT_RESET_FORCE_WKUP_VAL);
- writew(PM_MCU_SEND_IPC_WKUP_BT_REG, PM_MCU_SEND_IPC_WKUP_BT_VAL);
- uapi_tcxo_delay_ms(BT_RESET_DELAY);
set_cpu_utils_reset_cause(REBOOT_CAUSE_APPLICATION_SYSRESETREQ);
hal_reboot_chip();
}
#define MS_ID_ADDR 0xF8
#define CHIP_ID_ADDR OTP_CHIP_ID_START
-#define TCXO_REBOOT_DELAY 500ULL
-#define PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG 0x57000014
-#define PM_SLEEP_SOFT_RESET_FORCE_WKUP_VAL 0xb66
-#define PM_MCU_SEND_IPC_WKUP_BT_REG 0x52000034
-#define PM_MCU_SEND_IPC_WKUP_BT_VAL 0x2
#define SUB_RSA4096_PUBKEY_N_OFFSET 24
#define uapi_array_size(_array) (sizeof(_array) / sizeof((_array)[0]))
*/
void upg_reboot(void)
{
- // when bt at sleep, need wkup bt before soft reset
- writew(PM_SLEEP_SOFT_RESET_FORCE_WKUP_REG, PM_SLEEP_SOFT_RESET_FORCE_WKUP_VAL);
- writew(PM_MCU_SEND_IPC_WKUP_BT_REG, PM_MCU_SEND_IPC_WKUP_BT_VAL);
- /* 重启前睡眠500ms */
- uapi_tcxo_delay_ms((uint64_t)TCXO_REBOOT_DELAY);
cpu_utils_set_system_status_by_cause(REBOOT_CAUSE_UPG_COMPLETION);
hal_reboot_chip();
}
{\r
if (g_dpu_reg != TD_NULL) {\r
osal_iounmap((void *)g_dpu_reg, sizeof(dpu_regs_type));\r
- g_dpu_reg = TD_NULL;\r
}\r
return;\r
}\r
return EXT_SUCCESS;\r
}\r
\r
+static td_void drv_dpu_set_suspend_flag(td_bool flag)\r
+{\r
+ unsigned long flags = 0;\r
+ dpu_disp_info *disp_info = dpu_disp_get_info();\r
+\r
+ osal_spin_lock_irqsave(&disp_info->disp_lock, &flags);\r
+ g_dpu_suspend_flag = flag;\r
+ osal_spin_unlock_irqrestore(&disp_info->disp_lock, &flags);\r
+}\r
+\r
td_s32 drv_dpu_suspend(td_void *private_data)\r
{\r
uapi_unused(private_data);\r
return EXT_SUCCESS;\r
}\r
\r
+ td_s32 ret = dpu_wait_all_finish();\r
+\r
dpu_dfx_info *dfx_info = dpu_dfx_get_info();\r
dfx_info->suspend_cnt++;\r
\r
dpu_dbg("dpu suspend start");\r
dpu_hal_deinit();\r
dpu_layer_suspend();\r
- g_dpu_suspend_flag = TD_TRUE;\r
+ drv_dpu_set_suspend_flag(TD_TRUE);\r
dpu_dbg("dpu suspend ok");\r
\r
- return EXT_SUCCESS;\r
+ return ret;\r
}\r
\r
td_s32 drv_dpu_resume(td_void *private_data)\r
dpu_hal_init();\r
dpu_layer_resume();\r
dpu_disp_chl_cfg();\r
- g_dpu_suspend_flag = TD_FALSE;\r
+ drv_dpu_set_suspend_flag(TD_FALSE);\r
dpu_dbg("dpu resume ok");\r
\r
return EXT_SUCCESS;\r
td_void dpu_isr_wait_finish(void)\r
{\r
td_s32 ret;\r
+ dpu_dfx_info *dfx_info = dpu_dfx_get_info();\r
\r
ret = osal_wait_timeout_interruptible(&g_dpu_isr_info.finish_event,\r
isr_get_finish_done, TD_NULL, 500); /* 500 ms */\r
if (ret <= 0) {\r
+ dfx_info->refresh_total = 0;\r
+ dfx_info->frm_done_total = 0;\r
dpu_err("osal_wait_timeout!!!!");\r
return;\r
}\r
{\r
g_dpu_isr_info.finish_done = 0;\r
}\r
+\r
+td_s32 dpu_wait_all_finish(td_void)\r
+{\r
+ unsigned long flag = 0;\r
+ dpu_dfx_info *dfx_info = dpu_dfx_get_info();\r
+ const td_u32 wait_time = 200;\r
+ td_u32 cnt = 0;\r
+\r
+ while (cnt++ < wait_time) {\r
+ osal_spin_lock_irqsave(&g_dpu_isr_info.isr_lock, &flag);\r
+ if (dfx_info->refresh_total == dfx_info->frm_done_total) {\r
+ osal_spin_unlock_irqrestore(&g_dpu_isr_info.isr_lock, &flag);\r
+ break;\r
+ }\r
+ osal_spin_unlock_irqrestore(&g_dpu_isr_info.isr_lock, &flag);\r
+ osal_udelay(100); // 100us\r
+ }\r
+ if (cnt >= wait_time) {\r
+ dpu_err("dpu_wait_all_finish timeout!!!!");\r
+ return EXT_FAILURE;\r
+ }\r
+ return EXT_SUCCESS;\r
+}\r
td_void dpu_isr_wait_finish(void);\r
td_void dpu_isr_wait_te_signal(void);\r
td_void dpu_isr_clear_finish_flag(void);\r
+td_s32 dpu_wait_all_finish(td_void);\r
\r
#ifdef __cplusplus\r
#if __cplusplus\r
td_float start_cost;
td_float get_status_cost;
td_float init_cost;
+ td_u32 create_cnt;
+ td_u32 destroy_cnt;
} drv_jpeg_dfx_info;
return EXT_SUCCESS;
}
+static td_void drv_jpeg_set_suspend_flag(td_bool flag)
+{
+ unsigned long flags = 0;
+ drv_jpeg_context *jpeg_context = jpeg_context_get();
+
+ osal_spin_lock_irqsave(&jpeg_context->lock, &flags);
+ g_jpeg_suspend_flag = flag;
+ osal_spin_unlock_irqrestore(&jpeg_context->lock, &flags);
+}
+
td_s32 drv_jpeg_suspend(td_void *private_data)
{
uapi_unused(private_data);
-
+
+ td_s32 ret = jpeg_wait_all_finish();
jpeg_suspend();
- g_jpeg_suspend_flag = TD_TRUE;
- return EXT_SUCCESS;
+ drv_jpeg_set_suspend_flag(TD_TRUE);
+ return ret;
}
td_s32 drv_jpeg_resume(td_void *private_data)
uapi_unused(private_data);
jpeg_resume();
- g_jpeg_suspend_flag = TD_FALSE;
+ drv_jpeg_set_suspend_flag(TD_FALSE);
return EXT_SUCCESS;
}
uapi_unused(file);
uapi_unused(arg);
+ drv_jpeg_dfx_info *jpeg_dfx_info = jpeg_dfx_get_info();
+ jpeg_dfx_info->create_cnt++;
uapi_pm_add_sleep_veto(PM_ID_JPEG);
return EXT_SUCCESS;
}
uapi_unused(file);
uapi_unused(arg);
+ drv_jpeg_dfx_info *jpeg_dfx_info = jpeg_dfx_get_info();
+ jpeg_dfx_info->destroy_cnt++;
uapi_pm_remove_sleep_veto(PM_ID_JPEG);
return EXT_SUCCESS;
}
return EXT_SUCCESS;
}
+
+td_s32 jpeg_wait_all_finish(td_void)
+{
+ unsigned long flag = 0;
+ drv_jpeg_dfx_info *dfx_info = jpeg_dfx_get_info();
+ const td_u32 wait_time = 200;
+ td_u32 cnt = 0;
+ drv_jpeg_context *jpeg_context = jpeg_context_get();
+
+ while (cnt++ < wait_time) {
+ osal_spin_lock_irqsave(&jpeg_context->lock, &flag);
+ if (dfx_info->create_cnt == dfx_info->destroy_cnt) {
+ osal_spin_unlock_irqrestore(&jpeg_context->lock, &flag);
+ break;
+ }
+ osal_spin_unlock_irqrestore(&jpeg_context->lock, &flag);
+ osal_udelay(100); // 100us
+ }
+ if (cnt >= wait_time) {
+ jpeg_err("jpeg_wait_all_finish timeout");
+ return EXT_FAILURE;
+ }
+ return EXT_SUCCESS;
+}
#endif
td_s32 jpeg_isr_init(td_void);
+td_s32 jpeg_wait_all_finish(td_void);
#ifdef __cplusplus
#if __cplusplus
\r
static td_s32 vau_dfx_help(int argc, const char *argv[]);\r
static inline td_void vau_dfx_print_func_info(void);\r
-static inline td_void vau_dfx_print_func_time_info(void);\r
+static td_void vau_dfx_print_func_time_info(void);\r
static td_void vau_dfx_print_func_cnt_info(void);\r
\r
/*-------------------------------- par define ---------------------------------------------*/\r
vau_print("end func info: ------------------------------------\n");\r
}\r
\r
-static inline td_void vau_dfx_print_func_time_info(td_void)\r
+static td_void vau_dfx_print_func_time_info(td_void)\r
{\r
+ uapi_reg_read(HAL_VAU_LIST_PFCNT, g_vau_dfx_info.func_info.time_info.list_pfcnt);\r
+\r
vau_print("-----------time info-----------\n");\r
vau_print("create_cost(us) :%u\n", (td_u32)(g_vau_dfx_info.func_info.time_info.create_cost));\r
vau_print("destroy_cost(us) :%u\n", (td_u32)(g_vau_dfx_info.func_info.time_info.destroy_cost));\r
u_vau_draw_cvrg_weight1 weight1;\r
\r
quad.bits.threshold_quad = 0.125; /* 0.125 : default threshold for quad split */\r
- cubic.bits.threshold_cubic = 0.125; /* 0.125 : default threshold for cubic split */\r
+ cubic.bits.threshold_cubic = 1.0f; /* 0.125 : default threshold for cubic split */\r
\r
weight0.bits.weight0 = 32; /* 32 default weithg for 8x */\r
weight0.bits.weight1 = 32; /* 32 default weithg for 8x */\r
#include "vau_hal.h"\r
#include "vau_dfx.h"\r
#include "vau_pre_process.h"\r
+#include "vau_handle.h"\r
\r
#define DRV_VAU_IOCTL_CMD_NUM 20\r
\r
return EXT_SUCCESS;\r
}\r
\r
+static td_void drv_vau_set_suspend_flag(td_bool flag)\r
+{\r
+ unsigned long flags = 0;\r
+ vau_handle_mgr *vau_handle_list = vau_handle_list_get();\r
+\r
+ osal_spin_lock_irqsave(&vau_handle_list->lock, &flags);\r
+ g_vau_suspend_flag = flag;\r
+ osal_spin_unlock_irqrestore(&vau_handle_list->lock, &flags);\r
+}\r
+\r
td_s32 drv_vau_suspend(td_void *private_data)\r
{\r
uapi_unused(private_data);\r
\r
+ td_s32 ret = drv_vau_wait_all_done();\r
vau_dfx_info *dfx_info = vau_dfx_get_info();\r
dfx_info->suspend_cnt++;\r
\r
vau_dbg("vau suspend start");\r
vau_hal_suspend();\r
- g_vau_suspend_flag = TD_TRUE;\r
+ drv_vau_set_suspend_flag(TD_TRUE);\r
vau_dbg("vau suspend ok");\r
\r
- return EXT_SUCCESS;\r
+ return ret;\r
}\r
\r
td_s32 drv_vau_resume(td_void *private_data)\r
#ifdef CONFIG_CLDO1PD_SUPPORT\r
vau_mem_draw_pool_init();\r
#endif\r
- g_vau_suspend_flag = TD_FALSE;\r
+ drv_vau_set_suspend_flag(TD_FALSE);\r
vau_dbg("vau resume ok");\r
\r
return EXT_SUCCESS;\r
td_size_t lockflags = 0;
td_bool asynflag = 0;
td_u32 tmp_time_out = time_out;
- vau_dfx_info *vau_info = vau_dfx_get_info();
if ((tmp_time_out == 0) || (tmp_time_out > 2000)) { /* 2000ms */
tmp_time_out = 2000; /* max 2000ms */
wait_ret = osal_wait_timeout_interruptible(&g_vau_block_job_wq, vau_osal_wait_check,
(td_void *)&job->notify_type, tmp_time_out);
osal_spin_lock_irqsave(&g_vau_sw_job_list->lock, &lockflags);
- uapi_reg_read(HAL_VAU_LIST_PFCNT, vau_info->func_info.time_info.list_pfcnt);
job->wait_for_done_count--;
ret = vau_list_wake_up_job(job, asynflag, &wait_ret);
osal_spin_unlock_irqrestore(&g_vau_sw_job_list->lock, &lockflags);
-Wno-unused-function
-Wno-incompatible-pointer-types
-Wno-incompatible-pointer-types-discards-qualifiers
+ -Werror=return-type
)
set(WHOLE_LINK
#===============================================================================
set(COMPONENT_NAME "display_gralloc")
-set(SOURCES_GRALLOC
+set(SOURCES_GRALLOC
${CMAKE_CURRENT_SOURCE_DIR}/src/display_gralloc.c
${CMAKE_CURRENT_SOURCE_DIR}/mempool/src/mem_pool_los.c
)
set(COMPONENT_CCFLAGS
${CFLAG}
-Wno-sign-compare
+ -Werror=return-type
)
set(WHOLE_LINK
${CFLAG}
-Wno-unused-parameter
-Wno-unused-function
+ -Werror=return-type
)
set(WHOLE_LINK
${CFLAG}
-Wno-incompatible-function-pointer-types
-Wno-implicit-function-declaration
+ -Werror=return-type
)
set(WHOLE_LINK
-Wno-tautological-pointer-compare\r
-Wno-unused-private-field\r
-Wno-unused-function\r
+ -Werror=return-type\r
)\r
\r
# build graphic utils\r
-Wno-tautological-pointer-compare\r
-Wno-unused-private-field\r
-Wno-unused-function\r
+ -Werror=return-type\r
)\r
\r
set(WHOLE_LINK\r
${PROP_UI_SRC}/components_ext/ui_cross_view.cpp\r
${PROP_UI_SRC}/components_ext/kaleidoscope_utils.cpp\r
${PROP_UI_SRC}/components_ext/ui_kaleidoscope_view.cpp\r
+ ${PROP_UI_SRC}/components_ext/ui_roller_view.cpp\r
${PROP_UI_SRC}/components_ext/ui_map_view.cpp\r
${PROP_UI_SRC}/components_ext/map_svg_parser.cpp\r
${PROP_UI_SRC}/components_ext/ui_coverflow_view.cpp\r
+ ${PROP_UI_SRC}/components_ext/ui_icosahedron_view.cpp\r
)\r
\r
set(SOURCES\r
-Wno-tautological-pointer-compare\r
-Wno-unused-private-field\r
-Wno-unused-function\r
+ -Werror=return-type\r
)\r
\r
set(WHOLE_LINK\r
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2023. All rights reserved.
+ */
+
+#ifndef DEFER_UTILS_H
+#define DEFER_UTILS_H
+
+#include <cstdint>
+#include "gfx_utils/image_info.h"
+#include "gfx_utils/graphic_math.h"
+
+namespace OHOS {
+#ifndef defer
+struct defer_dummy {};
+template <class F> struct deferrer { F f; ~deferrer() { f(); } };
+template <class F> deferrer<F> operator*(defer_dummy, F f) { return {f}; }
+#define DEFER_(LINE) zz_defer##LINE
+#define DEFER(LINE) DEFER_(LINE)
+#define defer auto DEFER(__LINE__) = defer_dummy{} *[&]()
+#endif // defer
+} // OHOS
+#endif // DEFER_UTILS_H
\ No newline at end of file
void* FreeAndGetBuf(const AllocInfo& info, GrallocBuffer& buffer);
+ /**
+ * @brief Dump image information.
+ */
+ void Dump();
+
private:
struct ImageNode;
struct MultiImageInfo {
*/
ImageInfoExt* GetKaleidoscopeInfo();
+ /**
+ * @brief Get pointer to source ImageInfo struct.
+ * @return Return pointer to source ImageInfo struct.
+ */
+ const ImageInfo* GetSrcImgInfo();
+
private:
ImageInfo* imgInfo_ = nullptr;
ImageInfoExt* kaleidoscopeInfo_ = nullptr;
uint8_t GetDirection() const = delete;\r
protected:\r
bool DragXInner(int16_t distance) override;\r
+ void RefreshCurrentView(int16_t distance, uint8_t dragDirection);\r
\r
private:\r
void UpdatePerspectiveMatrix();\r
void ReMeasure(void) override;\r
void TransformImage(UIImageView* view);\r
void DeleteGroup(UIViewGroup* group);\r
+ bool CalCurViewInfo();\r
\r
using UISwipeView::Add;\r
using UISwipeView::Remove;\r
uint8_t mirrorOpa_;\r
bool isShowMirrorImg_;\r
UIView* lastView_;\r
+ uint16_t swipeMid_;\r
};\r
} // namespace OHOS\r
#endif // UI_COVERFLOW_VIEW_H\r
*/
Vector2<int16_t> GetCurrentPosition(uint8_t index);
+ UIViewType GetViewType() const override
+ {
+ return UI_HEXAGONS_LIST;
+ }
+
+ void ReMeasure() override;
+
protected:
bool DragXInner(int16_t distance) override;
bool DragYInner(int16_t distance) override;
- void ReMeasure() override;
/**
* @brief Get center position of the special(index) image when scale and center image index in screen is specified
*
uint16_t maxLap_ = 0;
uint16_t maxAngleInMaxLap_ = 0;
Graphic::Vector<uint8_t> polygonPoints_{10};
- uint16_t imgDistance_{0};
+ float imgDistance_{0};
uint16_t oriImgDistance_{0};
float oriScaleFactor_{0.23f};
int16_t imgSizeInCenter_{0};
--- /dev/null
+/*\r
+ * Copyright (c) 2024 CompanyNameMagicTag.\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+#ifndef UI_ICOSAHEDRON_VIEW_H\r
+#define UI_ICOSAHEDRON_VIEW_H\r
+#include "components/ui_abstract_scroll.h"\r
+#include "gfx_utils/graphic_math.h"\r
+#include "components_ext/triangular_plane.h"\r
+\r
+namespace OHOS {\r
+class UIIcosahedronView : public UIAbstractScroll {\r
+public:\r
+ UIIcosahedronView();\r
+ virtual ~UIIcosahedronView();\r
+\r
+ /**\r
+ * @brief Set the edge length of the icosahedron.\r
+ *\r
+ * @param sideLen edge length of body shape.\r
+ */\r
+ void SetSideLength(uint16_t sideLen);\r
+\r
+ /**\r
+ * @brief Add a one-sided view to the icosahedron.\r
+ *\r
+ * @param view Single-sided corresponding view.Only supported ui image view.\r
+ */\r
+ void Add(UIView* view) override;\r
+\r
+ /**\r
+ * @brief Refresh icosahedral position.physique position will be reset after refreshing\r
+ */\r
+ void RefreshIcosahedron();\r
+\r
+ /**\r
+ * @brief Rotates the icosahedral in 3d.\r
+ *\r
+ * @param angle Indicates the rotation angle.\r
+ * @param pivotStart Indicates the coordinates of the rotation start pivot.\r
+ * @param pivotEnd Indicates the coordinates of the rotation end pivot.\r
+ */\r
+ bool RotatePlanes(int16_t angle, const Vector3<float>& pivotStart, const Vector3<float>& pivotEnd);\r
+\r
+ UIViewType GetViewType() const override\r
+ {\r
+ return UI_ICOSAHEDRON_VIEW;\r
+ }\r
+\r
+protected:\r
+ bool OnDragStartEvent(const DragEvent& event);\r
+ bool OnDragEvent(const DragEvent& event);\r
+ bool OnDragEndEvent(const DragEvent& event);\r
+ bool DragXInner(int16_t distance) override\r
+ {\r
+ return true;\r
+ }\r
+\r
+ bool DragYInner(int16_t distance) override\r
+ {\r
+ return true;\r
+ }\r
+\r
+private:\r
+ class inertiaAnimatorCallback : public AnimatorCallback {\r
+ public:\r
+ inertiaAnimatorCallback() : rotateTimes_(0), curtTime_(0), angle_(0)\r
+ {\r
+ }\r
+\r
+ virtual ~inertiaAnimatorCallback() {}\r
+\r
+ void SetRotateTimes(uint16_t times)\r
+ {\r
+ curtTime_ = 0;\r
+ rotateTimes_ = times;\r
+ }\r
+\r
+ void SetRotateAngle(int16_t angle)\r
+ {\r
+ angle_ = angle;\r
+ }\r
+\r
+ void SetRotateAxis(const Vector3<float>& rotateStart, const Vector3<float>& rotateEnd)\r
+ {\r
+ rotateStart_ = rotateStart;\r
+ rotateEnd_ = rotateEnd;\r
+ }\r
+\r
+ virtual void Callback(UIView* view) override;\r
+\r
+ private:\r
+ uint16_t rotateTimes_;\r
+ uint16_t curtTime_;\r
+ int16_t angle_;\r
+ Vector3<float> rotateStart_;\r
+ Vector3<float> rotateEnd_;\r
+ };\r
+ Matrix4<float> CalculateRotateMatrix(TriangularPlane dst);\r
+ Point startPoint_;\r
+ uint16_t sideLen_;\r
+\r
+ TriangularPlane plane_[20]; // 20: plane number\r
+ Matrix4<float> imgMatrix_;\r
+ Matrix4<float> sphereMatrix_;\r
+ Matrix4<float> lastSphereMatrix_;\r
+ bool isUpdateSideLen_ = true;\r
+\r
+ Animator inertiaAnimator_;\r
+ inertiaAnimatorCallback inertiaCallback_;\r
+ float lastAngle_;\r
+};\r
+} // namespace OHOS\r
+#endif // UI_ICOSAHEDRON_H
\ No newline at end of file
void StopRotateAnimator();
void OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override;
+
+ void DumpImgInfo() override;
+
private:
class RotateCallback : public AnimatorCallback {
public:
* @since 1.0\r
* @version 1.0\r
*/\r
- UIListExt(uint8_t direction)\r
+ explicit UIListExt(uint8_t direction)\r
{\r
SetDirection(direction);\r
}\r
return UI_LITE_SURFACE_VIEW;
}
- /**
- * @brief Check if first video frame came.
- * @since 1.0
- * @version 1.0
- */
- bool IsFirstFrameCame()
- {
- return isFirstFrameCome_;
- }
-
/**
* @brief Set preview image info.
* @since 1.0
*/
void SetPreview(ImageInfo* info);
+ void DumpImgInfo() override;
+
private:
UILiteSurfaceView(const UILiteSurfaceView&) = delete;
UILiteSurfaceView &operator=(const UILiteSurfaceView&) = delete;
void InitLayer();
- bool isStopped_ = false;
- bool isFirstFrameCome_ = false;
+ bool isStopped_ = true;
bool isLayerInit_ : 1;
uint8_t flushCount_;
LiteSurface* surface_ = nullptr;
bool needUpdate_ = false;
ImageInfo cacheInfo_ = {{0}};
MapSVGParser parser_;
- uint8_t* data_ = nullptr;
char* filePath_ = nullptr;
PathDetail* pathArray_ = nullptr;
uint8_t pathCount_ = 0;
uint8_t fontSize_ = 0;
uint32_t poiMask_ = 0;
float scale_ = 1.0f;
+ bool isSetSVG_ = false;
+ void InitMapInfo();
void DrawPath(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea);
void DrawText(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea, TextDetail& info, Point offset = {0, 0},
bool isPOIText = false);
*/\r
class UIMenuItem : public UIButton {\r
public:\r
+ UIMenuItem(const UIMenuItem &) = delete;\r
+ UIMenuItem &operator=(const UIMenuItem &) = delete;\r
+\r
/**\r
* @brief Scale align mode.\r
*/\r
* @since 1.0\r
* @version 1.0\r
*/\r
- void SetImageSrc(const char* ImgSrc);\r
+ void SetImageSrc(const char* imgSrc);\r
\r
/**\r
* @brief Sets the image info for menu image.\r
* @since 1.0\r
* @version 1.0\r
*/\r
- void SetImageSrc(const ImageInfo* ImgSrc);\r
+ void SetImageSrc(const ImageInfo* imgSrc);\r
\r
/**\r
* @brief Sets the text for this item.\r
void ReMeasure() override;\r
void OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override;\r
\r
+ void DumpImgInfo() override;\r
+\r
private:\r
UIImageView* image_ = nullptr;\r
Style textStyle_;\r
--- /dev/null
+/*
+ * Copyright (c) 2024 CompanyNameMagicTag.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef UI_ROLLER_VIEW_H
+#define UI_ROLLER_VIEW_H
+#include <string>
+#include "components/ui_abstract_scroll.h"
+
+namespace OHOS {
+
+enum RollerViewMode {
+ DISPLAY, // Display all items in roller form.
+ COVER, // Display current item at full size.
+ TRANSITION, // used internally.
+};
+
+class UIRollerView : public UIAbstractScroll {
+public:
+ UIRollerView();
+ virtual ~UIRollerView() override;
+
+ /**
+ * @brief Set item size, which is the size of image in DisplayMode.
+ */
+ void SetItemSize(uint16_t width, uint16_t height);
+
+ /**
+ * @brief Set item padding.
+ */
+ void SetItemPadding(uint16_t padding);
+
+ /**
+ * @brief Set mirror img opacity.
+ */
+ void SetMirrorOpacity(uint8_t opa);
+
+ /**
+ * @brief Set sensitivity factor.
+ * Drag distance will be converted to angle, and will multiply by this factor.
+ */
+ void SetSensitivityFactor(float sensitivity);
+
+ /**
+ * @brief Get sensitivity factor. Default value is 1.0.
+ */
+ float GetSensitivityFactor();
+
+ /**
+ * @brief Add an item.
+ */
+ void AddItem(std::string name, const ImageInfo* src);
+
+ /**
+ * @brief Remove an item.
+ */
+ void RemoveItem(std::string name);
+
+ /**
+ * @brief Clear all items.
+ */
+ void ClearAll();
+
+ /**
+ * @brief Get current item name.
+ */
+ std::string GetCurrentItemName();
+
+ /**
+ * @brief Get current item, which contains 2 imgs.
+ */
+ UIViewGroup* GetCurrentItem();
+
+ /**
+ * @brief Set current item.
+ */
+ void SetCurrentItem(std::string name, bool enableAnimator = false);
+
+ /**
+ * @brief Set current mode, choose from [DISPLAY, COVER].
+ */
+ void SetMode(RollerViewMode mode, bool enableAnimator = false);
+
+ /**
+ * @brief Mode change listener.
+ */
+ class OnModeChangeListener : public HeapBase {
+ public:
+ /**
+ * @brief Called when RollerViewMode is changed.
+ */
+ virtual void OnModeChange(UIRollerView* view, RollerViewMode targetMode) = 0;
+ virtual ~OnModeChangeListener() {}
+ };
+
+ /**
+ * @brief Get OnModeChangeListener.
+ */
+ OnModeChangeListener*& GetOnModeChangeListener()
+ {
+ return onModeChangeListener_;
+ }
+
+ /**
+ * @brief Set OnModeChangeListener.
+ */
+ void SetOnModeChangeListener(OnModeChangeListener* onModeChangeListener)
+ {
+ onModeChangeListener_ = onModeChangeListener;
+ }
+
+ /**
+ * @brief Get current mode.
+ */
+ RollerViewMode GetMode();
+
+ /**
+ * @brief Set camera distance. If not set, default distance is 1000.
+ */
+ void SetCamDistance(int16_t distance);
+
+ /**
+ * @brief Set absolute y coordinate of camera.
+ Default value is GetY() - GetHeight() / 3.
+ */
+ void SetCamY(int16_t y);
+
+ UIViewType GetViewType() const override
+ {
+ return UI_ROLLER_VIEW;
+ }
+
+ bool OnDragStartEvent(const DragEvent& event) override;
+ bool OnDragEvent(const DragEvent& event) override;
+ bool OnDragEndEvent(const DragEvent& event) override;
+
+ void SetDirection(uint8_t direction) = delete;
+ uint8_t GetDirection() const = delete;
+ void SetLoopState(bool loop) = delete;
+
+protected:
+ bool DragXInner(int16_t distance);
+ bool DragYInner(int16_t distance)
+ {
+ return true;
+ }
+
+private:
+ class AlignAnimatorCallback : public AnimatorCallback {
+ public:
+ AlignAnimatorCallback()
+ : curTime_(0),
+ animTime_(0),
+ angle_(0),
+ previousAngle_(0)
+ {
+ }
+
+ virtual ~AlignAnimatorCallback() {}
+
+ void SetAnimTimes(uint16_t times)
+ {
+ animTime_ = times;
+ }
+
+ void SetAngle(float angle)
+ {
+ angle_ = angle;
+ }
+
+ void ResetCallback()
+ {
+ angle_ = 0;
+ previousAngle_ = 0;
+ animTime_ = 0;
+ curTime_ = 0;
+ }
+
+ virtual void Callback(UIView* view) override;
+
+ uint16_t curTime_;
+ uint16_t animTime_;
+ float previousAngle_;
+ float angle_;
+ };
+
+ class TransitionAnimatorCallback : public AnimatorCallback {
+ public:
+ TransitionAnimatorCallback() : curTime_(0), animTime_(0),
+ startScaleX_(0), startScaleY_(0), endScaleX_(0), endScaleY_(0),
+ camPos_({0, 0}), targetCamPos_({0, 0})
+ {
+ }
+
+ virtual ~TransitionAnimatorCallback() {}
+
+ void SetAnimTimes(uint16_t times)
+ {
+ animTime_ = times;
+ }
+
+ void SetScaleFactor(float startScaleX, float startScaleY, float endScaleX, float endScaleY)
+ {
+ startScaleX_ = startScaleX;
+ startScaleY_ = startScaleY;
+ endScaleX_ = endScaleX;
+ endScaleY_ = endScaleY;
+ }
+
+ void SetCamPosition(Point previousCamPos, Point targetCamPos)
+ {
+ camPos_ = previousCamPos;
+ targetCamPos_ = targetCamPos;
+ }
+
+ void ResetCallback()
+ {
+ curTime_ = 0;
+ animTime_ = 0;
+ startScaleX_ = 0;
+ startScaleY_ = 0;
+ endScaleX_ = 0;
+ endScaleY_ = 0;
+ camPos_ = {0, 0};
+ targetCamPos_ = {0, 0};
+ }
+
+ virtual void Callback(UIView* view) override;
+
+ uint16_t curTime_;
+ uint16_t animTime_;
+ float startScaleX_;
+ float startScaleY_;
+ float endScaleX_;
+ float endScaleY_;
+ Point camPos_;
+ Point targetCamPos_;
+ };
+
+ /* calculate swipe anim period: angle offset / ANGLE_COEFFICIENT. Minimum swipe anim period is MIN_DRAG_TIMES. */
+ static constexpr uint8_t ANGLE_COEFFICIENT = 5;
+ /* the minimum period of mode transition animator. */
+ static constexpr uint8_t MIN_TRANSITION_TIMES = 5;
+ /* calculate mode transition animator period: scale offset / TRANSITION_COEFFICIENT. */
+ static constexpr float TRANSITION_COEFFICIENT = 0.2;
+ OnModeChangeListener* onModeChangeListener_;
+ float ConvertDistanceToAngle(int16_t distance);
+ bool IsInCurrentItemRange(float angle);
+ void InitImg(UIView* img);
+ void DoCalculation();
+ void PrepAlign(float angle);
+ void SetCamPosInner(Point position);
+ void StartTransitionAnim();
+ void StopTransitionAnim();
+ void ReflectImg(UIView* img, UIView* mirror);
+ void ReMeasure(void) override;
+ void LayoutItem();
+ void TransformByAngle(float angle);
+ void TransformItemGroup(UIView* view, float angle);
+ void DelItemGroup(UIViewGroup* group);
+ void ResetState();
+ void StartAlignAnim();
+ void StopAlignAnim();
+ void MoveHeadOrTail();
+ void HandleMode();
+ void HandleAlign();
+ void UpdateCam();
+
+ Animator alignAnim_;
+ AlignAnimatorCallback alignCallback_;
+
+ Animator transitionAnim_;
+ TransitionAnimatorCallback transitionCallback_;
+
+ int16_t camY_ = 0;
+ bool isCamYSet_ = false;
+ RollerViewMode mode_ = DISPLAY;
+ RollerViewMode targetMode_ = DISPLAY;
+ bool switchModeWithAnim_ = false;
+ bool alignWithAnim_ = false;
+ UIView* coverPreviousItem_ = nullptr;
+ uint16_t itemWidth_ = 0;
+ uint16_t itemHeight_ = 0;
+ uint8_t mirrorOpa_ = 100;
+ float radius_ = 0.0f;
+ float perimeter_ = 0.0f;
+ float sensitivityFactor_ = 1.0f;
+ float anglePerItem_ = 0.0f;
+ Point camPosition_ = {0, 0};
+ Point displayCamPosition_ = {0, 0};
+ uint16_t cameraDistance_ = 1000;
+ uint16_t itemPadding_ = 0;
+ bool needLayout_ = false;
+ UIViewGroup* currentItem_ = nullptr;
+ UIViewGroup* alignItem_ = nullptr;
+ float alignAngle_ = 0.0f;
+};
+} // namespace OHOS
+#endif // UI_ROLLER_VIEW_H
*/\r
void SetWorkMode(WorkMode newMode) override;\r
\r
+ void DumpImgInfo() override;\r
+\r
private:\r
Hand hourHand_;\r
Hand minuteHand_;\r
*/\r
bool InitGraphicService();\r
\r
+ /**\r
+ * @brief GPU Reset start.\r
+ */\r
+ void GpuResetStart(void);\r
+\r
+ /**\r
+ * @brief GPU Reset end.\r
+ */\r
+ void GpuResetEnd(void);\r
+\r
#ifdef ENABLE_CMSIS\r
static void NativeMainThread(void* args);\r
static void RtcEventThread(void* args);\r
static OHOS::GraphicMutex rtcEventMutex_;\r
static OHOS::GraphicCond rtcEventCond_;\r
static bool fullRefreshFlag_;\r
+ bool isGpuReseting = false;\r
void DecreaseTriggerCount();\r
void SetUpRootView();\r
GraphicService();\r
*/
void HideGraphicLogo(void);
+/**
+ * @brief GPU Reset start.
+ */
+void GpuResetStart(void);
+
+/**
+ * @brief GPU Reset end.
+ */
+void GpuResetEnd(void);
+
#ifdef __cplusplus
};
#endif
GRAPHIC_LOGE("actualLength is 0 or actualLength > width");
return false;
}
- uint32_t step = width / actualLength;
- imageInfo_.header.width = actualLength * step;
+ uint32_t step = static_cast<uint32_t>(width / actualLength);
+ imageInfo_.header.width = static_cast<uint32_t>(actualLength) * step;
imageInfo_.header.height = height;
imageInfo_.header.colorMode = RGB565;
stride_ = DisplayDev::GetInstance()->CalcStride(imageInfo_.header.width, PIXEL_FMT_RGB_565);
{
uint8_t* data = const_cast<uint8_t *>(imageInfo.data);
- for (uint32_t i = 0; i < actualLength; i++) {
+ for (uint32_t i = 0; i < static_cast<uint32_t>(actualLength); i++) {
if ((*(destData + i)) == 0) {
continue;
}
- int16_t codeOffset = i * offset * 2; // 2: rgb565 has 2 byte per pixel
+ int16_t codeOffset = static_cast<int16_t>(i * offset * 2); // 2: rgb565 has 2 byte per pixel
for (uint32_t k = 0; k < offset; k++) {
*(data + codeOffset + k * 2) = 0; // 2: rgb565 has 2 byte per pixel
*(data + codeOffset + k * 2 + 1) = 0; // 2: rgb565 has 2 byte per pixel
* limitations under the License.
*/
-#include "input_method/ui_input_method.h"
+#include <securec.h>
#include "common/screen.h"
#include "components/root_view.h"
-#include "font/ui_font.h"
#include "input_method/ui_soft_keyboard.h"
+#include "input_method/ui_input_method.h"
#if ENABLE_SOFT_KEYBOARD
namespace OHOS {
SYS_IME_CAP,
SYS_IME_NUMBER,
SYS_IME_SYMBOL,
+ SYS_IME_PINYIN,
SYS_IME_ALL,
};
UIInputMethod::UIInputMethod()
customSoftKeyboard_.PushBack(UICapitalSoftKeyboard::GetInstance());
customSoftKeyboard_.PushBack(UINumberSoftKeyboard::GetInstance());
customSoftKeyboard_.PushBack(UISymbolSoftKeyboard::GetInstance());
+ customSoftKeyboard_.PushBack(UIPinyinSoftKeyboard::GetInstance());
curSoftKeyboard_ = customSoftKeyboard_[static_cast<int>(SYS_IMT_TYPE::SYS_IME_EN)];
}
previeBox_ = nullptr;
}
+ if (pinyinPreview_ != nullptr) {
+ delete pinyinPreview_;
+ pinyinPreview_ = nullptr;
+ }
+
+ ClearPinyinTable();
+
+ ClearHanziCandidate();
+
curSoftKeyboard_ = nullptr;
isInit_ = false;
}
GRAPHIC_LOGD("UI system soft keyboard has been shown\n");
return;
}
+ SetupPinyinTable();
InitInputMethod();
// update edit text
edit_ = static_cast<UIEditText *>(param.view);
if (previeBox_ != nullptr) {
previeBox_->SetInputType(param.inputType);
+ previeBox_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, UITextPreviewBox::DEFAULT_EDIT_FONT_SIZE);
previeBox_->SetText(param.text.c_str());
previeBox_->Focus();
- previeBox_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, UITextPreviewBox::DEFAULT_EDIT_FONT_SIZE);
if (edit_ != nullptr) {
previeBox_->SetStyle(STYLE_LINE_HEIGHT, edit_->GetStyle(STYLE_LINE_HEIGHT));
previeBox_->SetMaxLength(edit_->GetMaxLength());
InputMethodManager::GetInstance().OnKeyboardHide();
}
-void UIInputMethod::Input(UI_KEYCODE &key)
+void UIInputMethod::Input(UI_KEYCODE key)
{
if (key >= UI_KEYCODE::UI_KEY_SOFT_KEYBOARD) {
ChangSoftKeyboard(key);
}
}
+void UIInputMethod::InputPinyin(UI_KEYCODE key)
+{
+ // process pinyin logic here
+ if (key >= UI_KEYCODE::UI_KEY_SOFT_KEYBOARD) {
+ if (curKeyboardIndex_ == static_cast<uint8_t>(SYS_IMT_TYPE::SYS_IME_PINYIN)) {
+ HidePinyinPreview();
+ HideHanziPageList();
+ }
+ ChangSoftKeyboard(key);
+ return;
+ }
+ if (curSoftKeyboard_ == nullptr) {
+ return;
+ }
+
+ switch (key) {
+ case UI_KEYCODE::UI_KEY_ENTER:
+ HidePinyinPreview();
+ HideHanziPageList();
+ DealSendKey();
+ break;
+ case UI_KEYCODE::UI_KEY_DEL:
+ if (pinyinPreview_ && pinyinPreview_->IsVisible()) {
+ DealPinyinDelKey();
+ } else {
+ DealDelKey();
+ }
+ break;
+ default:
+ if (key >= UI_KEYCODE::UI_KEY_a && key <= UI_KEYCODE::UI_KEY_z) {
+ InsertPinyin(key);
+ } else {
+ DealNormalKey(key);
+ }
+ break;
+ }
+}
+
+void UIInputMethod::ShowHanziPageList()
+{
+ if (hanziList_ == nullptr || pinyinPreview_ == nullptr) {
+ return;
+ }
+ if (pinyinPreview_->GetText() != nullptr && strlen(pinyinPreview_->GetText()) != 0) {
+ hanziList_->SetVisible(true);
+ }
+}
+
+void UIInputMethod::HideHanziPageList()
+{
+ if (hanziList_ != nullptr) {
+ hanziList_->SetVisible(false);
+ }
+}
+
uint8_t UIInputMethod::HideOptionBox()
{
if ((optionBox_ == nullptr) || !optionBox_->IsVisible()) {
return;
}
+bool UIInputMethod::OnClick(UIView& view, const ClickEvent& event)
+{
+ if (previeBox_ == nullptr) {
+ return false;
+ }
+ UILabelButton *btn = dynamic_cast<UILabelButton*>(&view);
+ if (btn == nullptr) {
+ return false;
+ }
+
+ std::string u8hanzi;
+ const char *hanzi = btn->GetText();
+ if (hanzi != nullptr) {
+ u8hanzi = hanzi;
+ }
+ previeBox_->InsertHanzi(u8hanzi);
+ HideHanziPageList();
+ HidePinyinPreview();
+ return true;
+}
+
void UIInputMethod::DealSendKey()
{
std::string inputText = previeBox_->GetText();
InputMethodManager::GetInstance().InsertText(inputText);
+ ClearPinyinTable();
InputMethodManager::GetInstance().HideInputMethod();
}
}
}
-void UIInputMethod::DealFunctionKey(UI_KEYCODE &keyCode)
+void UIInputMethod::DealPinyinDelKey()
+{
+ if (pinyinPreview_ == nullptr) {
+ return;
+ }
+ const char *str = pinyinPreview_->GetText();
+ std::string pinyin;
+ if (str != nullptr && strlen(str) > 0) {
+ pinyin = str;
+ }
+ if (pinyin.length() > 0) {
+ pinyin = pinyin.substr(0, pinyin.length() - 1);
+ pinyinPreview_->SetText(pinyin.c_str());
+ }
+ const char *text = pinyinPreview_->GetText();
+ if (text == nullptr || strlen(text) == 0) {
+ pinyinPreview_->SetVisible(false);
+ HideHanziPageList();
+ return;
+ }
+
+ // find pinyin hanzi, and display!
+ UpdateHanziOption(text);
+}
+
+void UIInputMethod::HidePinyinPreview()
+{
+ if (pinyinPreview_ != nullptr) {
+ pinyinPreview_->SetText("");
+ pinyinPreview_->SetVisible(false);
+ }
+}
+
+void UIInputMethod::ShowPinyinPreview()
+{
+ if (pinyinPreview_ != nullptr) {
+ pinyinPreview_->SetVisible(true);
+ }
+}
+
+void UIInputMethod::ClearHanziCandidate()
+{
+ if (hanziAdapter_ != nullptr) {
+ delete hanziAdapter_;
+ hanziAdapter_ = nullptr;
+ }
+ if (hanziList_ != nullptr) {
+ delete hanziList_;
+ hanziList_ = nullptr;
+ }
+ memset_s(hanziMatched_, sizeof(hanziMatched_), 0,
+ sizeof(hanziMatched_));
+}
+
+void UIInputMethod::SetupHanziCandidate()
+{
+ if (inputMethod_ == nullptr) {
+ return;
+ }
+ ClearHanziCandidate();
+ int16_t x = 28;
+ int16_t y = 200;
+ int16_t w = 398;
+ int16_t h = 50;
+ int8_t gap = 2;
+ int16_t buttonGap = (w - gap) / DEFAULT_NUMPERPAGE;
+ int16_t btnWidth = buttonGap - gap;
+ int16_t btnHeight = h - gap * 2; // 2: half
+
+ hanziAdapter_ = new HanziAdapter;
+ // set height, set width, set data
+ hanziAdapter_->SetWidthAndHeight(w, h);
+ hanziAdapter_->SetClickListener(this);
+
+ hanziList_ = new UIList(UIList::HORIZONTAL);
+ // set position, font, adapter, listener, and add to inputmethod
+ hanziList_->SetPosition(x, y, w, h);
+ hanziList_->SetStyle(STYLE_BACKGROUND_COLOR, 0xFFE8EAEE);
+ hanziList_->SetIntercept(false);
+ hanziList_->SetAdapter(hanziAdapter_);
+ hanziList_->SetScrollStateListener(this);
+ hanziList_->SetVisible(false);
+ inputMethod_->Add(hanziList_);
+}
+
+void UIInputMethod::DealFunctionKey(UI_KEYCODE keyCode)
{
if (curSoftKeyboard_ != nullptr) {
switch (keyCode) {
}
}
-void UIInputMethod::DealNormalKey(UI_KEYCODE &keyCode)
+void UIInputMethod::DealNormalKey(UI_KEYCODE keyCode)
{
if (previeBox_ != nullptr) {
UITextPreviewBox::TextPreviewBoxMode mode = previeBox_->GetEditMode();
}
}
-void UIInputMethod::ChangSoftKeyboard(UI_KEYCODE &keyCode)
+void UIInputMethod::ChangSoftKeyboard(UI_KEYCODE keyCode)
{
switch (keyCode) {
case UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_EN:
case UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_SYMBOL:
curKeyboardIndex_ = static_cast<uint8_t>(SYS_IMT_TYPE::SYS_IME_SYMBOL);
break;
+ case UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_PINYIN:
+ curKeyboardIndex_ = static_cast<uint8_t>(SYS_IMT_TYPE::SYS_IME_PINYIN);
+ break;
default:
curKeyboardIndex_++;
break;
inputMethod_->Invalidate();
}
-void UIInputMethod::InsertChar(UI_KEYCODE& keyCode)
+void UIInputMethod::InsertChar(UI_KEYCODE keyCode)
{
if (previeBox_ != nullptr) {
previeBox_->InsertChar(keyCode);
return;
}
+void UIInputMethod::InsertPinyin(UI_KEYCODE pinyin)
+{
+ if (pinyinPreview_ == nullptr) {
+ return;
+ }
+ char ch = static_cast<char>(pinyin);
+ std::string originPinyin;
+ const char *str = pinyinPreview_->GetText();
+ if (str != nullptr && strlen(str) > 0) {
+ originPinyin = str;
+ }
+ originPinyin = originPinyin + ch;
+ pinyinPreview_->SetText(originPinyin.c_str());
+ pinyinPreview_->SetVisible(true);
+ const char *text = pinyinPreview_->GetText();
+ if (text == nullptr) {
+ return;
+ }
+
+ // find pinyin hanzi, and display!
+ UpdateHanziOption(text);
+}
+
+void UIInputMethod::UpdateHanziOption(const std::string &pinyin)
+{
+ if (pinyin.empty() || pinyinTable_ == nullptr) {
+ return;
+ }
+
+ PinyinState res = pinyinTable_->FindHanzi(pinyin);
+ if (res != PinyinState::SUCCESS) {
+ GRAPHIC_LOGE("%s", pinyinTable_->DebugInfo(res).c_str());
+ return;
+ }
+
+ uint8_t matchnum = pinyinTable_->GetMatchHanziNum();
+ if (matchnum == 0) {
+ return;
+ }
+
+ memset_s(hanziMatched_, sizeof(hanziMatched_),
+ 0, sizeof(hanziMatched_));
+ res = pinyinTable_->GetAllHanzi(hanziMatched_,
+ sizeof(hanziMatched_) / sizeof(hanziMatched_[0]));
+ if (res != PinyinState::SUCCESS) {
+ GRAPHIC_LOGE("%s", pinyinTable_->DebugInfo(res).c_str());
+ return;
+ }
+ hanziAdapter_->SetData(hanziMatched_, matchnum);
+ hanziList_->ScrollTo(0);
+ hanziList_->SetVisible(true);
+ hanziList_->RefreshList();
+}
+
void UIInputMethod::InitInputMethod()
{
if (isInit_) {
SetupOptionBox();
SetupSoftKeyboard();
SetupTextPreviewBox();
+ SetupHanziCandidate();
+ SetupPinyinPreviewBox();
isInit_ = true;
}
inputMethod_->Add(previeBox_);
}
}
+
+void UIInputMethod::SetupPinyinPreviewBox()
+{
+ if (pinyinPreview_ != nullptr) {
+ return;
+ }
+ pinyinPreview_ = new UILabel;
+ int16_t x = 28;
+ int16_t y = 160;
+ int16_t w = 77;
+ int16_t h = 30;
+ pinyinPreview_->SetPosition(x, y, w, h);
+ pinyinPreview_->SetStyle(STYLE_BACKGROUND_COLOR, 0xFFE8EAEE);
+ pinyinPreview_->SetStyle(STYLE_BORDER_RADIUS, 10); // 10: border radius
+ pinyinPreview_->SetText("");
+ pinyinPreview_->SetTouchable(false);
+ pinyinPreview_->SetTextColor(Color::Black());
+ pinyinPreview_->SetViewId("input_pinyin_text_view_id");
+ pinyinPreview_->SetVisible(false);
+
+ inputMethod_->Add(pinyinPreview_);
+}
+
+void UIInputMethod::SetupPinyinTable()
+{
+ if (pinyinTable_ != nullptr) {
+ return;
+ }
+ pinyinTable_ = new PinyinCandidate();
+ if (pinyinTable_ == nullptr) {
+ return;
+ }
+
+#ifndef WIN32
+ PinyinState state = pinyinTable_->Init("/user/res/pymb.bin");
+#else
+ PinyinState state = pinyinTable_->Init(RES_PATH"/pymb.bin");
+#endif
+ if (state != PinyinState::SUCCESS) {
+ ClearPinyinTable();
+ }
+}
+
+void UIInputMethod::ClearPinyinTable()
+{
+ if (pinyinTable_ != nullptr) {
+ delete pinyinTable_;
+ pinyinTable_ = nullptr;
+ }
+}
+
+UIView* UIInputMethod::HanziAdapter::GetView(UIView* inView, int16_t index)
+{
+ if (data_ == nullptr || size_ == 0) {
+ return nullptr;
+ }
+ if (index < 0 || index >= static_cast<int16_t>(size_)) {
+ return nullptr;
+ }
+
+ UILabelButton* item = dynamic_cast<UILabelButton*>(inView);
+ if (item == nullptr) {
+ int16_t gap = 2;
+ item = new UILabelButton;
+ item->SetPosition(0, 0);
+ item->Resize(GetItemWidthWithMargin(index) - gap, GetItemHeightWithMargin(index));
+ }
+ item->SetOnClickListener(clickListener_);
+ item->SetText(reinterpret_cast<char*>(data_[index]));
+ item->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40: means font size
+ item->SetViewIndex(index);
+ item->SetAlign(TEXT_ALIGNMENT_CENTER);
+ item->SetStyleForState(STYLE_BORDER_RADIUS, 0, UIButton::RELEASED);
+ item->SetStyleForState(STYLE_BORDER_RADIUS, 0, UIButton::PRESSED);
+ item->SetStyleForState(STYLE_BORDER_RADIUS, 0, UIButton::INACTIVE);
+ item->SetStyleForState(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT, UIButton::RELEASED);
+ item->SetStyleForState(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT, UIButton::PRESSED);
+ item->SetStyleForState(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT, UIButton::INACTIVE);
+ item->SetTextColor(Color::Black());
+ return item;
+}
+
+uint16_t UIInputMethod::HanziAdapter::GetCount()
+{
+ return size_;
+}
+
+int16_t UIInputMethod::HanziAdapter::GetItemWidthWithMargin(int16_t index)
+{
+ return width_ * 1.0 / UIInputMethod::DEFAULT_NUMPERPAGE;
+}
+
+int16_t UIInputMethod::HanziAdapter::GetItemHeightWithMargin(int16_t index)
+{
+ return height_;
+}
+
+bool UIInputMethod::HanziAdapter::SetWidthAndHeight(int16_t w, int16_t h)
+{
+ if (w > 0 && h > 0) {
+ width_ = w;
+ height_ = h;
+ return true;
+ }
+ return false;
+}
+
+void UIInputMethod::HanziAdapter::SetData(int8_t hanzi[][PinyinCandidate::IME_HZLENTH], uint8_t len)
+{
+ data_ = hanzi;
+ size_ = len;
+}
} // namespace OHOS
#endif // ENABLE_SOFT_KEYBOARD
#include "input_method/ui_keyboard_button.h"
#include "input_method/ui_input_method.h"
+#include "input_method/ui_soft_keyboard.h"
#if ENABLE_SOFT_KEYBOARD
namespace OHOS {
case UI_KEYCODE::UI_KEY_ENTER:
tmpText += "Send";
break;
+ case UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_PINYIN:
+ tmpText += "中";
+ break;
case UI_KEYCODE::UI_KEY_DEL:
tmpText += "Del";
break;
void UIKeyboardButton::SetButtonText()
{
- if (keyCode_ == nullptr) {
- return;
- }
-
std::string tmpText;
for (uint8_t i = 0; i < keyNum_; i++) {
UI_KEYCODE key = keyCode_[i];
bool UIKeyboardButton::OnClickEvent(const ClickEvent& event)
{
if (keyNum_ == 1) {
+ UIPinyinSoftKeyboard *parent = dynamic_cast<UIPinyinSoftKeyboard*>(GetParent());
+ if (parent != nullptr) {
+ UIInputMethod::GetInstance()->InputPinyin(keyCode_[0]);
+ return true;
+ }
UIInputMethod::GetInstance()->Input(keyCode_[0]);
}
return true;
bool UIKeyboardButton::OnPressEvent(const PressEvent& event)
{
if (keyNum_ > 1) {
+ UIPinyinSoftKeyboard *parent = dynamic_cast<UIPinyinSoftKeyboard*>(GetParent());
+ if (parent != nullptr) {
+ UIInputMethod::GetInstance()->HideHanziPageList();
+ }
UIInputMethod::GetInstance()->ShowOptionBox(this, keyCode_, keyNum_);
}
return true;
bool UIKeyboardButton::OnReleaseEvent(const ReleaseEvent& event)
{
if (keyNum_ > 1) {
+ UIPinyinSoftKeyboard *parent = dynamic_cast<UIPinyinSoftKeyboard*>(GetParent());
uint8_t keyIndex = UIInputMethod::GetInstance()->HideOptionBox();
+ if (parent != nullptr) {
+ UIInputMethod::GetInstance()->ShowHanziPageList();
+ UIInputMethod::GetInstance()->InputPinyin(keyCode_[keyIndex]);
+ return true;
+ }
UIInputMethod::GetInstance()->Input(keyCode_[keyIndex]);
}
return true;
bool UIKeyboardButton::OnDragEndEvent(const DragEvent& event)
{
if (keyNum_ > 1) {
+ UIPinyinSoftKeyboard *parent = dynamic_cast<UIPinyinSoftKeyboard*>(GetParent());
uint8_t keyIndex = UIInputMethod::GetInstance()->HideOptionBox();
+ if (parent != nullptr) {
+ UIInputMethod::GetInstance()->ShowHanziPageList();
+ UIInputMethod::GetInstance()->InputPinyin(keyCode_[keyIndex]);
+ return true;
+ }
UIInputMethod::GetInstance()->Input(keyCode_[keyIndex]);
}
return true;
if (direction_ == VERTICAL) {\r
int offset = (y + view->GetHeight() / 2 - midY);\r
int temp = EasingEquation::SineEaseIn(0, scaleFactor_, abs(offset), scaleFactor_);\r
- float scale = 1.0 - ((float)temp / scaleFactor_);\r
+ float scale = 1.0 - (static_cast<float>(temp) / scaleFactor_);\r
view->Scale(Vector2<float>(scale, scale), view->GetScaleCenter());\r
} else {\r
int offset = (x + view->GetWidth() / 2 - midX);\r
int temp = EasingEquation::SineEaseIn(0, scaleFactor_, abs(offset), scaleFactor_);\r
- float scale = 1.0 - ((float)temp / scaleFactor_);\r
+ float scale = 1.0 - (static_cast<float>(temp) / scaleFactor_);\r
view->Scale(Vector2<float>(scale, scale), view->GetScaleCenter());\r
}\r
view = static_cast<UIMenuItem*>(view->GetNextSibling());\r
#include "common/low_power_manager.h"\r
#include "components/ui_lite_surface_view.h"\r
\r
+\r
+#ifndef UIKIT_SKIP_LINE\r
+#define UIKIT_SKIP_LINE 1\r
+#endif\r
+\r
namespace OHOS {\r
static constexpr int16_t YUV_WIDTH_ALIGNMENT = 128;\r
UILiteSurfaceView::UILiteSurfaceView() : isLayerInit_(false), flushCount_(0)\r
#ifdef VERSION_IOT\r
bool UILiteSurfaceView::GetBitmap(ImageInfo& bitmap)\r
{\r
- if (!isFirstFrameCome_) {\r
+ if (lastFlushedBuffer_ == nullptr) {\r
UIView::GetBitmap(bitmap);\r
} else {\r
- SurfaceBuffer* buff;\r
- if (lastFlushedBuffer_ != nullptr) {\r
- buff = lastFlushedBuffer_;\r
- } else {\r
- buff = surface_->GetBackBuf();\r
- }\r
-\r
- if (buff == nullptr) {\r
- GRAPHIC_LOGE("buff is null!\n");\r
- return false;\r
- }\r
CscYuvBuf yuv = {0};\r
- yuv.yAddr = reinterpret_cast<uint8_t*>(buff->addr);\r
- yuv.uvAddr = static_cast<uint8_t*>(yuv.yAddr) + ALIGN_BYTE(buff->width, YUV_WIDTH_ALIGNMENT) * buff->height;\r
- yuv.width = buff->width;\r
- yuv.height = buff->height;\r
- yuv.yStride = ALIGN_BYTE(buff->width, YUV_WIDTH_ALIGNMENT);\r
- yuv.uvStride = ALIGN_BYTE(buff->width, YUV_WIDTH_ALIGNMENT);\r
+ yuv.yAddr = reinterpret_cast<uint8_t*>(lastFlushedBuffer_->addr);\r
+ yuv.uvAddr = static_cast<uint8_t*>(yuv.yAddr) + ALIGN_BYTE(lastFlushedBuffer_->width, YUV_WIDTH_ALIGNMENT) *\r
+ lastFlushedBuffer_->height;\r
+ yuv.width = lastFlushedBuffer_->width;\r
+ yuv.height = lastFlushedBuffer_->height;\r
+ yuv.yStride = ALIGN_BYTE(lastFlushedBuffer_->width, YUV_WIDTH_ALIGNMENT);\r
+ yuv.uvStride = ALIGN_BYTE(lastFlushedBuffer_->width, YUV_WIDTH_ALIGNMENT);\r
\r
CscRgbBuf rgb = {0};\r
- rgb.width = buff->width;\r
- rgb.height = buff->height;\r
+#if UIKIT_SKIP_LINE\r
+ rgb.width = lastFlushedBuffer_->width / 2; // 2: half\r
+ rgb.height = lastFlushedBuffer_->height / 2; // 2: half\r
+#else\r
+ rgb.width = lastFlushedBuffer_->width;\r
+ rgb.height = lastFlushedBuffer_->height;\r
+#endif\r
rgb.stride = ALIGN_BYTE(rgb.width, BYTE_ALIGNMENT) * 3; // 3: 3 bytes for rgb888\r
\r
bitmap.header.colorMode = RGB888;\r
bitmap.header.reserved = 0;\r
rgb.addr = reinterpret_cast<uint8_t*>(ImageCacheMalloc(bitmap));\r
if (rgb.addr != nullptr) {\r
+#if UIKIT_SKIP_LINE\r
+ CscConvertYuvToRgbWithSkipLP(&rgb, &yuv);\r
+#else\r
CscConvertYuvToRgb(&rgb, &yuv);\r
+#endif\r
} else {\r
GRAPHIC_LOGE("UILiteSurfaceView::GetBitmap img alloc failed! size: 0x%x\n", bitmap.dataSize);\r
}\r
Rect rect = GetRect();\r
rect.Intersect(rect, invalidatedArea);\r
BlendOption blendOption;\r
+#if UIKIT_SKIP_LINE\r
+ blendOption.transMap.Scale(Vector2<float>{2.0, 2.0}, Vector2<float>{0, 0}); // 2.0: scale 2\r
+#endif\r
blendOption.opacity = OPA_OPAQUE;\r
blendOption.mode = BLEND_SRC_OVER;\r
BaseGfxEngine::GetInstance()->Blit(gfxDstBuffer, {0, 0}, src, rect, blendOption);\r
return;\r
}\r
\r
- if (!isFirstFrameCome_ && preView_ != nullptr) {\r
+ if ((isStopped_ || lastFlushedBuffer_ == nullptr) && preView_ != nullptr) {\r
const ImageInfo* info = preView_->GetImageInfo();\r
Rect coords(GetX(), GetY(), GetX() + info->header.width - 1, GetY() + info->header.height - 1);\r
preView_->DrawImage(gfxDstBuffer, coords, invalidatedArea, *style_, opaScale_);\r
}\r
\r
#ifdef VERSION_IOT\r
- if (isFirstFrameCome_ && RootView::GetInstance()->GetSnapshotFlag()) {\r
+ if (lastFlushedBuffer_ != nullptr && RootView::GetInstance()->GetSnapshotFlag()) {\r
ImageInfo bitmap;\r
- GetBitmap(bitmap);\r
- BlitBitmapToFb(gfxDstBuffer, invalidatedArea, bitmap);\r
- ImageCacheFree(bitmap);\r
- return;\r
+ if (GetBitmap(bitmap)) {\r
+ BlitBitmapToFb(gfxDstBuffer, invalidatedArea, bitmap);\r
+ ImageCacheFree(bitmap);\r
+ return;\r
+ }\r
}\r
#endif\r
\r
bool isLastFrame = (back->format == PIXEL_FMT_BUTT);\r
if (isLastFrame) {\r
back->format = PIXEL_FMT_YCBCR_420_SP;\r
- isFirstFrameCome_ = false;\r
flushCount_ = 0;\r
} else {\r
++flushCount_;\r
lock_.Unlock();\r
\r
if (isLastFrame) {\r
+ isStopped_ = true;\r
GraphicService::GetInstance()->PostGraphicEvent(\r
[&] {\r
if (surface_ != nullptr) {\r
- isStopped_ = true;\r
DisplayDev::GetInstance()->SetLayerColorKey(LAYER_0, false, 0);\r
LiteMGfxEngine::GetInstance()->ClearHardwareLayer();\r
LiteMGfxEngine::GetInstance()->EnableAsyncMode(true);\r
lastFlushedBuffer_ = nullptr;\r
}\r
});\r
- } else if (!isFirstFrameCome_) {\r
+ } else if (isStopped_) {\r
+ isStopped_ = false;\r
GraphicService::GetInstance()->PostGraphicEvent(\r
[&] {\r
LiteMGfxEngine::GetInstance()->EnableAsyncMode(false);\r
LiteMGfxEngine::GetInstance()->AddHardwareLayer(this);\r
DisplayDev::GetInstance()->SetLayerColorKey(LAYER_0, true, colorKey_.full);\r
InitLayer();\r
- isStopped_ = false;\r
- isFirstFrameCome_ = true;\r
});\r
}\r
\r
preView_->SetSrc(info);\r
}\r
}\r
+\r
+void UILiteSurfaceView::DumpImgInfo()\r
+{\r
+ if (preView_ != nullptr) {\r
+ printf("view[%p]: viewType = %d\n", this, GetViewType());\r
+ const ImageInfo* info = preView_->GetImageInfo();\r
+ PrintImgInfo(info);\r
+ }\r
+}\r
}\r
\r
void UIMenuItem::SetScaleCenter()\r
{\r
- Rect rect = GetOrigRect();\r
if (transAlignMode_ == ScaleAlignMode::ALIGN_TEXT_LEFT) {\r
- textScaleCenter_ = Vector2<float>{0.0, textRect_.GetHeight() / 2};\r
- imgScaleCenter_ = Vector2<float>{textRect_.GetLeft() - imgRect_.GetLeft(), textRect_.GetHeight() / 2};\r
- itemScaleCenter_ = Vector2<float>{textRect_.GetLeft(), textRect_.GetHeight() / 2};\r
+ textScaleCenter_ = Vector2<float>{0.0, textRect_.GetHeight() / 2.0f};\r
+ imgScaleCenter_ = Vector2<float>{textRect_.GetLeft() - imgRect_.GetLeft(), textRect_.GetHeight() / 2.0f};\r
+ itemScaleCenter_ = Vector2<float>{textRect_.GetLeft(), textRect_.GetHeight() / 2.0f};\r
} else if (transAlignMode_ == ScaleAlignMode::ALIGN_IMAGE_LEFT) {\r
- textScaleCenter_ = Vector2<float>{imgRect_.GetLeft() - textRect_.GetLeft(), imgRect_.GetHeight() / 2};\r
- imgScaleCenter_ = Vector2<float>{0.0, imgRect_.GetHeight() / 2};\r
- itemScaleCenter_ = Vector2<float>{imgRect_.GetLeft(), imgRect_.GetHeight() / 2};\r
+ textScaleCenter_ = Vector2<float>{imgRect_.GetLeft() - textRect_.GetLeft(), imgRect_.GetHeight() / 2.0f};\r
+ imgScaleCenter_ = Vector2<float>{0.0, imgRect_.GetHeight() / 2.0f};\r
+ itemScaleCenter_ = Vector2<float>{imgRect_.GetLeft(), imgRect_.GetHeight() / 2.0f};\r
} else if (transAlignMode_ == ScaleAlignMode::ALIGN_ITEM_CENTER) {\r
Rect rect = GetOrigRect();\r
- itemScaleCenter_ = Vector2<float>{rect.GetX() + rect.GetWidth() / 2, rect.GetHeight() / 2};\r
- textScaleCenter_ = Vector2<float>{itemScaleCenter_.x_ - textRect_.GetLeft(), rect.GetHeight() / 2};\r
- imgScaleCenter_ = Vector2<float>{itemScaleCenter_.x_ - imgRect_.GetLeft(), rect.GetHeight() / 2};\r
+ itemScaleCenter_ = Vector2<float>{rect.GetX() + rect.GetWidth() / 2.0f, rect.GetHeight() / 2.0f};\r
+ textScaleCenter_ = Vector2<float>{itemScaleCenter_.x_ - textRect_.GetLeft(), rect.GetHeight() / 2.0f};\r
+ imgScaleCenter_ = Vector2<float>{itemScaleCenter_.x_ - imgRect_.GetLeft(), rect.GetHeight() / 2.0f};\r
}\r
}\r
\r
UpdateTransformMap();\r
}\r
\r
-void UIMenuItem::SetImageSrc(const char* ImgSrc)\r
+void UIMenuItem::SetImageSrc(const char* imgSrc)\r
{\r
if (image_ == nullptr) {\r
image_ = new UIImageView();\r
image_->SetResizeMode(resizeMode_);\r
image_->SetAutoEnable(false);\r
}\r
- image_->SetSrc(ImgSrc);\r
+ image_->SetSrc(imgSrc);\r
UpdateRect();\r
SetScaleCenter();\r
}\r
\r
-void UIMenuItem::SetImageSrc(const ImageInfo* ImgSrc)\r
+void UIMenuItem::SetImageSrc(const ImageInfo* imgSrc)\r
{\r
if (image_ == nullptr) {\r
image_ = new UIImageView();\r
image_->SetResizeMode(resizeMode_);\r
image_->SetAutoEnable(false);\r
}\r
- image_->SetSrc(ImgSrc);\r
+ image_->SetSrc(imgSrc);\r
UpdateRect();\r
SetScaleCenter();\r
}\r
BaseGfxEngine::GetInstance()->DrawRect(gfxDstBuffer, GetRect(), invalidatedArea, *style_, opaScale_);\r
if (text_ != nullptr) {\r
Rect rect;\r
- rect.Join(invalidatedArea, textRect_);\r
+ rect.Intersect(invalidatedArea, textRect_);\r
if (rect.GetLeft() < 0) {\r
rect.SetLeft(0);\r
}\r
image_->OnDraw(gfxDstBuffer, invalidatedArea);\r
}\r
}\r
+\r
+void UIMenuItem::DumpImgInfo()\r
+{\r
+ if (image_ == nullptr) {\r
+ return;\r
+ }\r
+ printf("view[%p]: viewType = %d\n", this, GetViewType());\r
+ const ImageInfo* info = image_->GetImageInfo();\r
+ PrintImgInfo(info);\r
+}\r
+\r
} // namespace OHOS\r
--- /dev/null
+/*
+ * Copyright (c) 2022 CompanyNameMagicTag.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <cmath>
+#include <securec.h>
+#include "common/graphic_utils.h"
+#include "input_method/ui_pinyin_candidate.h"
+
+#if ENABLE_SOFT_KEYBOARD
+namespace OHOS {
+
+PinyinCandidate::PinyinCandidate()
+{
+ memset_s(m_pyTabBuf, sizeof(m_pyTabBuf), 0, sizeof(m_pyTabBuf));
+ memset_s(m_hzTabBuf, sizeof(m_hzTabBuf), 0, sizeof(m_hzTabBuf));
+}
+
+PinyinCandidate::~PinyinCandidate()
+{
+}
+
+PinyinCandidate::PinyinState PinyinCandidate::InitPinyinTablePath(const std::string &path)
+{
+ size_t len = path.length();
+ char *tablePath = new char[len + 1];
+ defer {
+ delete []tablePath;
+ };
+ if (tablePath == nullptr) {
+ GRAPHIC_LOGE("the length of path is too long.");
+ return PinyinState::MEM_ALLOC_ERROR;
+ }
+ int32_t ret = snprintf_s(tablePath, len + 1, len, "%s", path.c_str());
+ if (ret == -1) {
+ GRAPHIC_LOGE("Secure fuction issue.");
+ return PinyinState::MEM_COPY_ERROR;
+ }
+ char truePath[PATH_MAX + 1] = {0x00};
+#ifndef WIN32
+ if ((path.length() == 0) || (realpath(tablePath, truePath) == nullptr)) {
+ GRAPHIC_LOGE("The path of pin yin table is invalid.");
+ return PinyinState::INVALID_PATH;
+ }
+#else
+ memcpy_s(truePath, sizeof(truePath), tablePath, len + 1);
+#endif
+ m_pinyinTablePath = truePath;
+ return PinyinState::SUCCESS;
+}
+
+int32_t PinyinCandidate::SetLv2NumPerPage(uint8_t num)
+{
+ if ((num < 1) || (num > 10)) { // 10是汉字候选码的个数
+ return -1;
+ } else {
+ m_lv2NumPerPage = num;
+ return 0;
+ }
+}
+
+PinyinCandidate::PinyinState PinyinCandidate::Init(const std::string &path)
+{
+ PinyinState pathState = InitPinyinTablePath(path);
+ if (pathState != PinyinState::SUCCESS) {
+ return pathState;
+ }
+ InitEx();
+ return PinyinState::SUCCESS;
+}
+
+void PinyinCandidate::InitEx(void)
+{
+ int32_t ret;
+ size_t len = m_pinyinTablePath.length();
+ char *table = new char[len + 1];
+ defer {
+ delete []table;
+ };
+ if (table == nullptr) {
+ GRAPHIC_LOGE("Malloc mem fails.");
+ return;
+ }
+
+ ret = snprintf_s(table, len + 1, len, "%s", m_pinyinTablePath.c_str());
+ if (ret == -1) {
+ GRAPHIC_LOGE("Secure fuction issue.");
+ return;
+ }
+
+ ret = LoadCodeTable((const int8_t *)table);
+ if (ret != 0) {
+ GRAPHIC_LOGE("LoadCodeTable failed!");
+ }
+}
+
+std::string PinyinCandidate::DebugInfo(PinyinCandidate::PinyinState state) const
+{
+ static const struct {
+ PinyinState state;
+ std::string info;
+ } infoTable[] = {
+ {PinyinState::SUCCESS, "SUCCESS"},
+ {PinyinState::INVALID_PINYIN, "INVALID_PINYIN"},
+ {PinyinState::INVALID_PATH, "INVALID_PATH"},
+ {PinyinState::MEM_NOT_ENOUGH, "MEM_NOT_ENOUGH"},
+ {PinyinState::MEM_SET_ERROR, "MEM_SET_ERROR"},
+ {PinyinState::MEM_COPY_ERROR, "MEM_COPY_ERROR"},
+ {PinyinState::MEM_ALLOC_ERROR, "MEM_ALLOC_ERROR"},
+ {PinyinState::INVALID_PAGE_INDEX, "INVALID_PAGE_INDEX"},
+ };
+ for (size_t i = 0; i < sizeof(infoTable) / sizeof(infoTable[0]); ++i) {
+ if (infoTable[i].state == state) {
+ return infoTable[i].info;
+ }
+ }
+ return "not defined!";
+}
+
+PinyinCandidate::PinyinState PinyinCandidate::FindHanzi(const std::string &sourceStr)
+{
+ if (sourceStr.length() > IME_PYMAXLENTH) {
+ return PinyinState::INVALID_PINYIN;
+ }
+
+ bool candidateFlag = false;
+
+ hanziStatus_.m_currentHzPage = 0;
+ hanziStatus_.m_currentHzIndex = 0;
+ hanziStatus_.m_matchHzNumber = 0;
+ pinyinStatus_.m_currentPyIndex = sourceStr[0] - 'a';
+
+ if (pinyinStatus_.m_currentPyIndex >= MAXCHARNUM) {
+ return PinyinState::INVALID_PINYIN;
+ }
+
+ uint8_t index;
+ for (index = 0; index < MAXSAMEPREFIXPY; index++) {
+ if (strncmp(sourceStr.c_str(),
+ reinterpret_cast<char *>(m_pyTabBuf[pinyinStatus_.m_currentPyIndex][index].pinyin),
+ sourceStr.length()) == 0) {
+ candidateFlag = true;
+ break;
+ }
+ }
+
+ if (candidateFlag == false) {
+ GRAPHIC_LOGE("查找拼音索引出错!!\n");
+ return PinyinState::INVALID_PINYIN;
+ }
+
+ hanziStatus_.m_currentHzIndex = m_pyTabBuf[pinyinStatus_.m_currentPyIndex][index].hzIndex;
+ hanziStatus_.m_matchHzNumber = m_pyTabBuf[pinyinStatus_.m_currentPyIndex][index].hzNum;
+ if (m_lv2NumPerPage != 0) {
+ hanziStatus_.m_matchHZPageNumber =
+ static_cast<uint8_t>(ceil(1.0 * hanziStatus_.m_matchHzNumber / m_lv2NumPerPage));
+ }
+
+ return PinyinState::SUCCESS;
+}
+
+PinyinCandidate::PinyinState PinyinCandidate::GetHanziPage(
+ uint8_t pageNumber, int8_t candidate[][IME_HZLENTH], uint8_t len)
+{
+ if (len < m_lv2NumPerPage) {
+ /* 存放结果的字符串长度小于要求长度 */
+ return PinyinState::MEM_NOT_ENOUGH;
+ }
+
+ if (pageNumber >= GetHanziPagesNum()) {
+ return PinyinState::INVALID_PAGE_INDEX;
+ }
+
+ for (uint8_t i = 0; i < m_lv2NumPerPage; i++) {
+ uint16_t curIndex = hanziStatus_.m_currentHzIndex + (pageNumber * m_lv2NumPerPage) + i;
+ if (curIndex >= (hanziStatus_.m_currentHzIndex + hanziStatus_.m_matchHzNumber)) {
+ break;
+ }
+
+ if (curIndex >= MAXHZNUM) {
+ break;
+ }
+
+ candidate[i][0] =
+ (int8_t)(m_hzTabBuf[curIndex]
+ .hz >>
+ 16); // Shift right by 16 bytes and get the storage bitin the encoding format
+ candidate[i][1] =
+ (int8_t)(m_hzTabBuf[curIndex]
+ .hz >>
+ 8); // Shift right by 8 bytes and get the storage bit in the encoding format
+ candidate[i][2] = // 2 is the index of the Array
+ (int8_t)(m_hzTabBuf[curIndex]
+ .hz);
+ }
+ return PinyinState::SUCCESS;
+}
+
+PinyinCandidate::PinyinState PinyinCandidate::GetFwdHanziPage(int8_t candidate[][IME_HZLENTH], uint8_t len)
+{
+ if (hanziStatus_.m_currentHzPage > 0) {
+ --hanziStatus_.m_currentHzPage;
+ return GetHanziPage(hanziStatus_.m_currentHzPage, candidate, len);
+ }
+ return PinyinState::INVALID_PAGE_INDEX;
+}
+
+PinyinCandidate::PinyinState PinyinCandidate::GetCurHanziPage(int8_t candidate[][IME_HZLENTH], uint8_t len)
+{
+ return GetHanziPage(hanziStatus_.m_currentHzPage, candidate, len);
+}
+
+PinyinCandidate::PinyinState PinyinCandidate::GetNxtHanziPage(int8_t candidate[][IME_HZLENTH], uint8_t len)
+{
+ if (hanziStatus_.m_currentHzPage + 1 < GetHanziPagesNum()) {
+ ++hanziStatus_.m_currentHzPage;
+ return GetHanziPage(hanziStatus_.m_currentHzPage, candidate, len);
+ }
+ return PinyinState::INVALID_PAGE_INDEX;
+}
+
+PinyinCandidate::PinyinState PinyinCandidate::GetAllHanzi(int8_t candidate[][IME_HZLENTH], uint8_t len)
+{
+ if (len < hanziStatus_.m_matchHzNumber) {
+ return PinyinState::MEM_NOT_ENOUGH;
+ }
+
+ for (uint16_t i = hanziStatus_.m_currentHzIndex; i < hanziStatus_.m_currentHzIndex + hanziStatus_.m_matchHzNumber;
+ ++i) {
+ if (i >= MAXHZNUM) {
+ break;
+ }
+ candidate[i - hanziStatus_.m_currentHzIndex][0] =
+ static_cast<int8_t>(m_hzTabBuf[i]
+ .hz >>
+ 16); // Shift right by 16 bytes and get the storage bitin the encoding format
+ candidate[i - hanziStatus_.m_currentHzIndex][1] =
+ static_cast<int8_t>(m_hzTabBuf[i]
+ .hz >>
+ 8); // Shift right by 8 bytes and get the storage bit in the encoding format
+ candidate[i - hanziStatus_.m_currentHzIndex][2] = // 2 is the index of the Array
+ static_cast<int8_t>(m_hzTabBuf[i]
+ .hz);
+ }
+ return PinyinState::SUCCESS;
+}
+
+int32_t PinyinCandidate::LoadCodeTable(const int8_t *filePath)
+{
+ int32_t ret;
+ FILE *tableFile = nullptr;
+ uint32_t bufLen;
+ char resolvedPath[PATH_MAX + 1] = {0};
+
+#ifndef WIN32
+ if (realpath((const char *)filePath, resolvedPath) == nullptr) {
+ return -1;
+ }
+#else
+ memcpy_s(resolvedPath, sizeof(resolvedPath), filePath, strlen(reinterpret_cast<const char*>(filePath)) + 1);
+#endif
+
+ tableFile = fopen((const char *)resolvedPath, "rb");
+ if (tableFile == nullptr) {
+ return -1;
+ }
+
+ ret = memset_s(m_hzTabBuf, sizeof(m_hzTabBuf), 0, sizeof(m_hzTabBuf));
+ if (ret != EOK) {
+ (void)fclose(tableFile);
+ return -1;
+ }
+
+ ret = memset_s(m_pyTabBuf, sizeof(m_pyTabBuf), 0, sizeof(m_pyTabBuf));
+ if (ret != EOK) {
+ (void)fclose(tableFile);
+ return -1;
+ }
+
+ bufLen = fread(m_hzTabBuf, 1, sizeof(m_hzTabBuf), tableFile);
+ if (bufLen != sizeof(m_hzTabBuf)) {
+ (void)fclose(tableFile);
+ return -1;
+ }
+
+ if (fread(m_pyTabBuf, 1, sizeof(m_pyTabBuf), tableFile) != sizeof(m_pyTabBuf)) {
+ (void)fclose(tableFile);
+ return -1;
+ }
+
+ (void)fclose(tableFile);
+
+ return 0;
+}
+
+int32_t PinyinCandidate::RecoverCodeTable(const int8_t *filePath, const int8_t *BackupPath)
+{
+ FILE *tableFile = nullptr;
+ FILE *backupFile = nullptr;
+ uint32_t fileSizeCounter = 0;
+ int32_t temp = 0;
+ char resolvedPath1[PATH_MAX + 1] = {0};
+ char resolvedPath2[PATH_MAX + 1] = {0};
+
+#ifndef WIN32
+ if (realpath((const char *)filePath, resolvedPath1) == nullptr) {
+ return -1;
+ }
+
+ if (realpath((const char *)BackupPath, resolvedPath2) == nullptr) {
+ return -1;
+ }
+#endif
+
+ /* 只写方式打开 */
+ tableFile = fopen(reinterpret_cast<char *>(resolvedPath1), "w");
+ if (tableFile == nullptr) {
+ return -1;
+ }
+
+ /* 只读方式打开 */
+ backupFile = fopen(reinterpret_cast<char *>(resolvedPath2), "r");
+ if (backupFile == nullptr) {
+ (void)fclose(tableFile);
+ return -1;
+ }
+
+ while (1) {
+ temp = fgetc(backupFile);
+ if ((temp == EOF) || (feof(backupFile) != 0)) {
+ break;
+ }
+
+ fputc((int8_t)temp, tableFile);
+ fileSizeCounter++;
+ if (fileSizeCounter > (sizeof(m_hzTabBuf) + sizeof(m_pyTabBuf))) {
+ /* 防止出错造成死循环 */
+ break;
+ }
+ }
+
+ fclose(tableFile);
+ fclose(backupFile);
+ if (fileSizeCounter == (sizeof(m_hzTabBuf) + sizeof(m_pyTabBuf))) {
+ GRAPHIC_LOGD("Code table file recover successed!");
+ return 0;
+ } else {
+ return -1;
+ }
+}
+
+} // namespace OHOS
+#endif // ENABLE_SOFT_KEYBOARD
\ No newline at end of file
{
std::vector<SoftKey> keySet {
{{COL_2_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_CAP,
- UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_NUMBER, UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_SYMBOL}},
+ UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_NUMBER, UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_SYMBOL,
+ UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_PINYIN}},
{{COL_3_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_a, UI_KEYCODE::UI_KEY_b, UI_KEYCODE::UI_KEY_c}},
{{COL_4_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_d, UI_KEYCODE::UI_KEY_e, UI_KEYCODE::UI_KEY_f}},
{{COL_2_X, ROW_2_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_g, UI_KEYCODE::UI_KEY_h, UI_KEYCODE::UI_KEY_i}},
{
std::vector<SoftKey> keySet {
{{COL_2_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_EN,
- UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_NUMBER, UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_SYMBOL}},
+ UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_NUMBER, UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_SYMBOL,
+ UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_PINYIN}},
{{COL_3_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_A, UI_KEYCODE::UI_KEY_B, UI_KEYCODE::UI_KEY_C}},
{{COL_4_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_D, UI_KEYCODE::UI_KEY_E, UI_KEYCODE::UI_KEY_F}},
{{COL_2_X, ROW_2_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_G, UI_KEYCODE::UI_KEY_H, UI_KEYCODE::UI_KEY_I}},
{{COL_3_X, ROW_2_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_0}},
{{COL_4_X, ROW_2_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_ASTERISK, UI_KEYCODE::UI_KEY_SLASH,
UI_KEYCODE::UI_KEY_EQUAL}},
- {{COL_2_X, ROW_3_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_CAP}},
- {{COL_3_X, ROW_3_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_EN}},
+ {{COL_2_X, ROW_3_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_CAP,
+ UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_EN}},
+ {{COL_3_X, ROW_3_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_PINYIN}},
{{COL_4_X, ROW_3_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_SYMBOL}},
// FUNCTION_KEY
{{COL_1_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_DEL}},
{
std::vector<SoftKey> keySet {
{{COL_2_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_CAP,
- UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_EN, UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_NUMBER}},
+ UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_EN, UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_PINYIN,
+ UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_NUMBER}},
{{COL_3_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_EXCLAM, UI_KEYCODE::UI_KEY_DOUBLEQUOTE,
UI_KEYCODE::UI_KEY_NUMBERSIGN}},
{{COL_4_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_DOLLAR, UI_KEYCODE::UI_KEY_PERCENT,
SetupKeyButton(key);
}
}
+
+void UIPinyinSoftKeyboard::CreateKeyButtons()
+{
+ std::vector<SoftKey> keySet {
+ {{COL_2_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_EN,
+ UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_CAP,
+ UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_NUMBER,
+ UI_KEYCODE::UI_KEY_SOFT_KEYBOARD_SYMBOL}},
+ {{COL_3_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_a, UI_KEYCODE::UI_KEY_b, UI_KEYCODE::UI_KEY_c}},
+ {{COL_4_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_d, UI_KEYCODE::UI_KEY_e, UI_KEYCODE::UI_KEY_f}},
+ {{COL_2_X, ROW_2_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_g, UI_KEYCODE::UI_KEY_h, UI_KEYCODE::UI_KEY_i}},
+ {{COL_3_X, ROW_2_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_j, UI_KEYCODE::UI_KEY_k, UI_KEYCODE::UI_KEY_l}},
+ {{COL_4_X, ROW_2_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_m, UI_KEYCODE::UI_KEY_n, UI_KEYCODE::UI_KEY_o}},
+ {{COL_2_X, ROW_3_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_p, UI_KEYCODE::UI_KEY_q, UI_KEYCODE::UI_KEY_r,
+ UI_KEYCODE::UI_KEY_s}},
+ {{COL_3_X, ROW_3_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_t, UI_KEYCODE::UI_KEY_u, UI_KEYCODE::UI_KEY_v}},
+ {{COL_4_X, ROW_3_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_w, UI_KEYCODE::UI_KEY_x, UI_KEYCODE::UI_KEY_y,
+ UI_KEYCODE::UI_KEY_z}},
+ // FUNCTION_KEY
+ {{COL_1_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_DEL}},
+ {{COL_5_X, ROW_1_Y, KEY_WIDTH, KEY_HEIGHT}, {UI_KEYCODE::UI_KEY_ENTER}},
+ };
+ for (auto key : keySet) {
+ SetupKeyButton(key);
+ }
+}
+
+UIPinyinSoftKeyboard* UIPinyinSoftKeyboard::GetInstance()
+{
+ static UIPinyinSoftKeyboard pinyinSoftkeyboard;
+ return &pinyinSoftkeyboard;
+}
} // namespace OHOS
#endif // ENABLE_SOFT_KEYBOARD
CalculateRedrawArea(rect, secondHand_, clockInit);
}
}
+
+void UISweepClock::DumpImgInfo()
+{
+ printf("view[%p]: viewType = %d\n", this, GetViewType());
+ if ((hourHand_.drawtype_ == DrawType::DRAW_IMAGE) && (hourHand_.image_.GetSrcType() == IMG_SRC_VARIABLE)) {
+ const ImageInfo* info = hourHand_.image_.GetImageInfo();
+ PrintImgInfo(info);
+ }
+ if ((minuteHand_.drawtype_ == DrawType::DRAW_IMAGE) && (minuteHand_.image_.GetSrcType() == IMG_SRC_VARIABLE)) {
+ const ImageInfo* info = minuteHand_.image_.GetImageInfo();
+ PrintImgInfo(info);
+ }
+ if ((secondHand_.drawtype_ == DrawType::DRAW_IMAGE) && (secondHand_.image_.GetSrcType() == IMG_SRC_VARIABLE)) {
+ const ImageInfo* info = secondHand_.image_.GetImageInfo();
+ PrintImgInfo(info);
+ }
+
+ if ((hourHandCircle_.circleImg_.GetSrcType() == IMG_SRC_VARIABLE)) {
+ const ImageInfo* info = hourHandCircle_.circleImg_.GetImageInfo();
+ PrintImgInfo(info);
+ }
+
+ if ((minuteHandCircle_.circleImg_.GetSrcType() == IMG_SRC_VARIABLE)) {
+ const ImageInfo* info = minuteHandCircle_.circleImg_.GetImageInfo();
+ PrintImgInfo(info);
+ }
+
+ if ((secondHandCircle_.circleImg_.GetSrcType() == IMG_SRC_VARIABLE)) {
+ const ImageInfo* info = secondHandCircle_.circleImg_.GetImageInfo();
+ PrintImgInfo(info);
+ }
+}
}
#endif
if (text == nullptr) {
return;
}
+ std::string u8str(text);
+ std::wstring u16str;
UIFont::GetInstance()->SetCurrentFontId(inputText_->GetFontId(), inputText_->GetFontSize());
lineInfo.lineHeight = GetStyleConst().GetStyle(STYLE_LINE_HEIGHT);
if (lineInfo.lineHeight == 0) {
uint32_t begin = 0;
while ((begin < textLen) && (text[begin] != '\0') && (lineNum < GetMaxLength())) {
uint32_t count = inputText_->GetTextLine(begin, textLen, GetContentRect().GetWidth(), lineNum, 0);
+ u16str = Utf8ToUtf16(u8str.substr(begin, count));
begin += count;
- lineInfo.charCountPerLine.push_back(count);
+ lineInfo.charCountPerLine.push_back(u16str.length());
lineNum++;
}
}
void UITextPreviewBox::InsertChar(UI_KEYCODE& keyCode)
{
- std::string temp = tempText_;
- temp.insert(cursorIndex_, 1, static_cast<char>(keyCode));
- if (!CheckSpaceLeft(temp.c_str())) {
+ std::wstring temp = tempText_;
+ std::string str;
+ temp.insert(cursorIndex_, 1, static_cast<wchar_t>(keyCode));
+ str = Utf16ToUtf8(temp);
+ if (!CheckSpaceLeft(str.c_str())) {
GRAPHIC_LOGE("Character length exceeded. Fail to input the letter.");
return;
}
- tempText_.insert(cursorIndex_, 1, static_cast<char>(keyCode));
+ tempText_.insert(cursorIndex_, 1, static_cast<wchar_t>(keyCode));
uint16_t width = UIFont::GetInstance()->GetWidth(static_cast<uint32_t>(keyCode), 0);
widthOfChars_.insert(widthOfChars_.begin() + cursorIndex_, width);
- UIEditText::SetText(tempText_.c_str());
+ str = Utf16ToUtf8(tempText_);
+ UIEditText::SetText(str.c_str());
+ GetLineInfo(lineInfo_);
+
+ cursorIndex_++;
+ HandleCursorPosByIndex();
+}
+
+void UITextPreviewBox::InsertHanzi(const std::string &u8hanzi)
+{
+ std::wstring temp = tempText_;
+ std::string str;
+ std::wstring u16hanzi = Utf8ToUtf16(u8hanzi);
+ temp.insert(cursorIndex_, 1, u16hanzi[0]);
+ str = Utf16ToUtf8(temp);
+ if (!CheckSpaceLeft(str.c_str())) {
+ GRAPHIC_LOGE("Character length exceeded. Fail to input the letter.");
+ return;
+ }
+
+ tempText_.insert(cursorIndex_, 1, u16hanzi[0]);
+ uint16_t width = UIFont::GetInstance()->GetWidth(u16hanzi[0], 0);
+ widthOfChars_.insert(widthOfChars_.begin() + cursorIndex_, width);
+
+ str = Utf16ToUtf8(tempText_);
+ UIEditText::SetText(str.c_str());
GetLineInfo(lineInfo_);
cursorIndex_++;
tempText_.erase(cursorIndex_ - 1, 1);
widthOfChars_.erase(widthOfChars_.begin() + cursorIndex_ - 1);
- UIEditText::SetText(tempText_.c_str());
+ std::string temp = Utf16ToUtf8(tempText_);
+ UIEditText::SetText(temp.c_str());
GetLineInfo(lineInfo_);
cursorIndex_--;
widthOfChars_.clear();
tempText_.clear();
- tempText_ = text;
- for (uint16_t i = 0; i < text.length(); i++) {
- uint16_t width = UIFont::GetInstance()->GetWidth(text[i], 0);
+ tempText_ = Utf8ToUtf16(text);
+ UIEditText::SetText(text.c_str());
+ UIFont::GetInstance()->SetCurrentFontId(inputText_->GetFontId(), inputText_->GetFontSize());
+
+ for (uint16_t i = 0; i < tempText_.length(); i++) {
+ uint16_t width = UIFont::GetInstance()->GetWidth(tempText_[i], 0);
widthOfChars_.push_back(width);
}
- UIEditText::SetText(tempText_.c_str());
GetLineInfo(lineInfo_);
cursorIndex_ = widthOfChars_.size();
* @since 1.0
* @version 1.0
*/
- virtual ~HorSwipeView() {}
+ ~HorSwipeView() override {}
bool DragXInner(int16_t distance) override;
bool OnDragEvent(const DragEvent& event) override;
#ifndef GRAPHIC_LITE_MAP_SVG_PARSER_H\r
#define GRAPHIC_LITE_MAP_SVG_PARSER_H\r
#include <cstdint>\r
+#include <string>\r
#include "gfx_utils/color.h"\r
\r
namespace OHOS {\r
MapSVGParser(void);\r
virtual ~MapSVGParser(void);\r
\r
+ bool SetSVG(const std::string& file);\r
bool SetSVG(uint8_t* data, uint32_t length);\r
+ void ClearSVG();\r
+\r
Color24 GetBackGroundColor(void);\r
uint32_t GetImageOffset(void);\r
void GetSize(int16_t& width, int16_t& height);\r
PathStyle* GetPathStyleByIndex(uint8_t index);\r
TextDetail* GetTextByIndex(uint8_t index);\r
ImageDetail* GetImageByIndex(uint8_t index);\r
- void ClearSVG();\r
\r
private:\r
struct MapHeader {\r
};\r
\r
static constexpr uint8_t PARSER_TYPE_NUM = 5;\r
- using MapTypeParserInit = uint32_t (MapSVGParser::*)(\r
- uint8_t *data, uint32_t length, uint32_t offset, uint8_t count);\r
- using MapTypeParserDeinit = void (MapSVGParser::*)(uint8_t count);\r
+ using MapTypeReadByData = uint32_t (MapSVGParser::*)(uint8_t *data, uint32_t length,\r
+ uint32_t offset, uint8_t count);\r
+ using MapTypeReadByPath = uint32_t (MapSVGParser::*)(FILE* fp, uint8_t count);\r
+ using MapTypeRelease = void (MapSVGParser::*)(uint8_t count);\r
\r
uint32_t ReadMapNode(uint8_t* data, uint32_t length, uint32_t offset);\r
uint32_t ReadPathStyle(uint8_t* data, uint32_t length, uint32_t offset);\r
uint32_t ReadMapImg(uint8_t* data, uint32_t length, uint32_t offset, uint8_t count);\r
uint32_t ReadMapRoad(uint8_t* data, uint32_t length, uint32_t offset, uint8_t count);\r
uint32_t ReadMapPOI(uint8_t* data, uint32_t length, uint32_t offset, uint8_t count);\r
- uint32_t ReadImage(uint8_t* data, uint32_t length, uint32_t offset);\r
+\r
+ uint32_t ReadMapNode(FILE* fp);\r
+ uint32_t ReadPathStyle(FILE* fp);\r
+ uint32_t ReadMapPath(FILE* fp, uint8_t count);\r
+ uint32_t ReadMapText(FILE* fp, uint8_t count);\r
+ uint32_t ReadMapImg(FILE* fp, uint8_t count);\r
+ uint32_t ReadMapRoad(FILE* fp, uint8_t count);\r
+ uint32_t ReadMapPOI(FILE* fp, uint8_t count);\r
\r
void ReleaseMapPath(uint8_t count);\r
void ReleaseMapText(uint8_t count);\r
void ReleaseMapImg(uint8_t count);\r
void ReleaseMapRoad(uint8_t count);\r
void ReleaseMapPOI(uint8_t count);\r
+\r
void ReleaseResource(void);\r
bool AllocPath(PathDetail& path, uint32_t cmdNum, uint32_t dataNum);\r
\r
- MapTypeParserInit parserInitFunc[PARSER_TYPE_NUM] = { &MapSVGParser::ReadMapPath, &MapSVGParser::ReadMapText,\r
- &MapSVGParser::ReadMapImg, &MapSVGParser::ReadMapRoad,\r
- &MapSVGParser::ReadMapPOI };\r
- MapTypeParserDeinit parserDeinitFunc[PARSER_TYPE_NUM] = {\r
+ MapTypeReadByData readByDataFunc[PARSER_TYPE_NUM] = {\r
+ &MapSVGParser::ReadMapPath, &MapSVGParser::ReadMapText, &MapSVGParser::ReadMapImg,\r
+ &MapSVGParser::ReadMapRoad, &MapSVGParser::ReadMapPOI };\r
+\r
+ MapTypeReadByPath readByPathFunc[PARSER_TYPE_NUM] = {\r
+ &MapSVGParser::ReadMapPath, &MapSVGParser::ReadMapText, &MapSVGParser::ReadMapImg,\r
+ &MapSVGParser::ReadMapRoad, &MapSVGParser::ReadMapPOI };\r
+\r
+ MapTypeRelease releaseFunc[PARSER_TYPE_NUM] = {\r
&MapSVGParser::ReleaseMapPath, &MapSVGParser::ReleaseMapText, &MapSVGParser::ReleaseMapImg,\r
- &MapSVGParser::ReleaseMapRoad, &MapSVGParser::ReleaseMapPOI\r
- };\r
+ &MapSVGParser::ReleaseMapRoad, &MapSVGParser::ReleaseMapPOI };\r
\r
MapHeader mapHeader_ = {0};\r
MapNode* nodeArray_ = nullptr;\r
POIDetail* poiArray_ = nullptr;\r
uint8_t poiCount_ = 0;\r
uint8_t* data_ = nullptr;\r
+ std::string file_;\r
};\r
}\r
#endif // GRAPHIC_LITE_MAP_SVG_PARSER_H\r
return;
}
- inputView_ = view;
UIViewType viewType = view->GetViewType();
if (viewType == UI_EDIT_TEXT) {
+ inputView_ = view; // 点击光标会导致字符串丢失,此处修改可以避免这个问题
UIEditText* tmpView = reinterpret_cast<UIEditText*>(view);
InputMethodParam param;
param.view = view;
#include "securec.h"
#include "dfx/dfx_record.h"
#include "common/low_power_manager.h"
+#include "common/image_cache_manager.h"
#if ENABLE_DEBUG
#include "common/key_code.h"
{
MemCheck::GetInstance()->DumpMemInfo();
}
+
+void DumpImgCmd(int argc, char *argv[])
+{
+ ImageCacheManager::GetInstance().Dump();
+
+ printf("\n\n");
+ printf("========================DumpImgInfoRecursive========================\n");
+ RootView::GetInstance()->DumpImgInfoRecursive();
+}
+
+void SetMemMonitorCmd(int argc, char *argv[])
+{
+ if (argc != 1) {
+ GRAPHIC_LOGE("param err.\n");
+ return;
+ }
+ if (strcmp(argv[0], "0") == 0) {
+ GrallocEngines::GetInstance()->SetMemMonitor(false);
+ } else if (strcmp(argv[0], "1") == 0) {
+ GrallocEngines::GetInstance()->SetMemMonitor(true);
+ } else {
+ GRAPHIC_LOGE("param err.\n");
+ return;
+ }
+}
#endif
static bool ConvertToInt(const char* input, uint16_t& value)
{"showtime", OHOS::ShowTime},
#if ENABLE_MEMORY_CHECK
{"dumpmem", OHOS::DumpMemoryCmd},
+ {"mem_monitor", OHOS::SetMemMonitorCmd},
+ {"dumpimg", OHOS::DumpImgCmd},
#endif
#if ENABLE_DEBUG
{"inject_rotate", OHOS::InjectRotateEvent},
void DfxRecordShow()
{
if (g_dfxShow == ShowType::DFX_SHOW_ULPS) {
- GRAPHIC_LOGP("g_ulpsExit: %d, g_flush: %d\n", g_ulpsExit, g_flush);
+ GRAPHIC_LOGP("g_ulpsExit: %u, g_flush: %u\n", g_ulpsExit, g_flush);
return;
}
--- /dev/null
+/*
+ * Copyright (c) 2022 CompanyNameMagicTag.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "securec.h"
+#include "common/screen.h"
+#include "cube_effect.h"
+
+namespace OHOS {
+namespace {
+static constexpr int16_t EASE_RANGE = 100;
+static constexpr int16_t CAMERA_DISTANCE = 500;
+static constexpr int16_t ROTATE_RANGE_MAX = 90;
+}
+
+void CubeEffect::OnSwipe(UISwipeView& view)
+{
+ if (preLeftCard != nullptr) {
+ preLeftCard->ResetTransParameter();
+ preLeftCard = nullptr;
+ container_->UIViewGroup::Remove(&leftImg_);
+ leftImg_.ResetTransParameter();
+ }
+
+ if (preRightCard != nullptr) {
+ preRightCard->ResetTransParameter();
+ preRightCard = nullptr;
+ container_->UIViewGroup::Remove(&rightImg_);
+ rightImg_.ResetTransParameter();
+ }
+}
+
+void CubeEffect::TransformCard(UIView* leftCard, UIView* rightCard, int16_t xOffset)
+{
+ int16_t width = Screen::GetInstance().GetWidth();
+
+ float angle = ROTATE_RANGE_MAX * MATH_ABS(xOffset) / (float)width;
+
+ uint16_t leftW = leftCard->GetWidth();
+ Vector3<float> leftRotateStart = {leftW + 1, 0, 0};
+ Vector3<float> leftRotateEnd = {leftW + 1, 1, 0};
+ Vector3<float> rightRotateStart = {-1, 0, 0};
+ Vector3<float> rightRotateEnd = {-1, 1, 0};
+ if (xOffset > 0) {
+ leftCard->Rotate((angle - ROTATE_RANGE_MAX), leftRotateStart, leftRotateEnd);
+ rightCard->Rotate(angle, rightRotateStart, rightRotateEnd);
+ } else if (xOffset < 0) {
+ leftCard->Rotate(-angle, leftRotateStart, leftRotateEnd);
+ rightCard->Rotate((ROTATE_RANGE_MAX - angle), rightRotateStart, rightRotateEnd);
+ } else {
+ leftCard->ResetTransParameter();
+ rightCard->ResetTransParameter();
+ }
+}
+
+void CubeEffect::TransformMirrorCard(UIView& leftCard, UIView& rightCard, int16_t xOffset)
+{
+ int16_t width = Screen::GetInstance().GetWidth();
+ int16_t height = Screen::GetInstance().GetHeight();
+ float angle = ROTATE_RANGE_MAX * MATH_ABS(xOffset) / (float)width;
+
+ Matrix4<float> perspectiveMatrix;
+ perspectiveMatrix[2][2] = 0; // 2 : index
+ perspectiveMatrix[2][3] = -1.0f / CAMERA_DISTANCE; // 2 3 : index 1000:cam distance
+
+ int16_t leftRigth = leftCard.GetOrigRect().GetRight();
+ int16_t leftBottom = leftCard.GetOrigRect().GetBottom();
+ Matrix4<float> leftMatrix = Matrix4<float>::Rotate(180.0f, {0, leftBottom, 0}, {1.0, leftBottom, 0});
+ Vector3<float> leftRotateStart = {leftRigth, 0, 0};
+ Vector3<float> leftRotateEnd = {leftRigth, 1, 0};
+ Matrix4<float> leftTranslateFromCamera = Matrix4<float>::Translate(Vector3<float>(-leftRigth, -(height >> 1), 0));
+ Matrix4<float> leftTranslateToCamera = Matrix4<float>::Translate(Vector3<float>(leftRigth, (height >> 1), 0));
+
+ int16_t rightBottom = rightCard.GetOrigRect().GetBottom();
+ Matrix4<float> rightMatrix = Matrix4<float>::Rotate(180.0f, {0, rightBottom, 0}, {1.0, rightBottom, 0});
+ Vector3<float> rightRotateStart = {0, 0, 0};
+ Vector3<float> rightRotateEnd = {0, 1, 0};
+ Matrix4<float> rightTranslateFromCamera = Matrix4<float>::Translate(Vector3<float>(0, -(height >> 1), 0));
+ Matrix4<float> rightTranslateToCamera = Matrix4<float>::Translate(Vector3<float>(0, (height >> 1), 0));
+ if (xOffset > 0) {
+ leftMatrix = Matrix4<float>::Rotate((angle - ROTATE_RANGE_MAX), leftRotateStart, leftRotateEnd) * leftMatrix;
+ leftMatrix = leftTranslateToCamera * (perspectiveMatrix * leftTranslateFromCamera) * leftMatrix;
+ leftMatrix = Matrix4<float>::Translate({-(width - xOffset), 0, 0}) * leftMatrix;
+
+ rightMatrix = Matrix4<float>::Rotate(angle, rightRotateStart, rightRotateEnd) * rightMatrix;
+ rightMatrix = rightTranslateToCamera * (perspectiveMatrix * rightTranslateFromCamera) * rightMatrix;
+ rightMatrix = Matrix4<float>::Translate({xOffset, 0, 0}) * rightMatrix;
+ } else {
+ leftMatrix = Matrix4<float>::Rotate(-angle, leftRotateStart, leftRotateEnd) * leftMatrix;
+ leftMatrix = leftTranslateToCamera * (perspectiveMatrix * leftTranslateFromCamera) * leftMatrix;
+ leftMatrix = Matrix4<float>::Translate({xOffset, 0, 0}) * leftMatrix;
+
+ rightMatrix =
+ Matrix4<float>::Rotate((ROTATE_RANGE_MAX - angle), rightRotateStart, rightRotateEnd) * rightMatrix;
+ rightMatrix = rightTranslateToCamera * (perspectiveMatrix * rightTranslateFromCamera) * rightMatrix;
+ rightMatrix = Matrix4<float>::Translate({width + xOffset, 0, 0}) * rightMatrix;
+ }
+ TransformMap tempTrans;
+ tempTrans.SetMatrix(leftMatrix);
+ leftCard.SetTransformMap(tempTrans);
+
+ tempTrans.SetMatrix(rightMatrix);
+ rightCard.SetTransformMap(tempTrans);
+}
+
+void CubeEffect::CommonAlg(UIView* leftCard, UIView* rightCard, int16_t xOffset)
+{
+ if (leftCard == nullptr || rightCard == nullptr) {
+ return;
+ }
+
+ if (preLeftCard == nullptr) {
+ leftImg_.SetStyle(STYLE_IMAGE_OPA, 90); // 90: degree
+ rightImg_.SetStyle(STYLE_IMAGE_OPA, 90); // 90: degree
+ container_->UIViewGroup::Add(&leftImg_);
+ container_->UIViewGroup::Add(&rightImg_);
+ }
+
+ int16_t width = Screen::GetInstance().GetWidth();
+ int16_t height = Screen::GetInstance().GetHeight();
+ int16_t middleWidth = width / 2;
+ if (leftCard != preLeftCard && rightCard != preRightCard) {
+ leftImg_.SetPosition(0, 0, width, height);
+ if (leftCard->GetViewType() == UI_IMAGE_VIEW) {
+ leftImg_.SetSrc(static_cast<UIImageView *>(leftCard)->GetImageInfo());
+ }
+ preLeftCard = leftCard;
+ preLeftCard->SetCameraPosition(Vector2<float>(leftCard->GetWidth(), leftCard->GetHeight() / 2)); // 2: half
+ preLeftCard->SetCameraDistance(CAMERA_DISTANCE);
+ rightImg_.SetPosition(0, 0, width, height);
+ if (rightCard->GetViewType() == UI_IMAGE_VIEW) {
+ rightImg_.SetSrc(static_cast<UIImageView *>(rightCard)->GetImageInfo());
+ }
+ preRightCard = rightCard;
+ preRightCard->SetCameraPosition(Vector2<float>(0, rightCard->GetHeight() / 2)); // 2: half
+ preRightCard->SetCameraDistance(CAMERA_DISTANCE);
+ }
+
+ TransformCard(preLeftCard, preRightCard, xOffset);
+ TransformMirrorCard(leftImg_, rightImg_, xOffset);
+}
+
+void CubeEffect::CardSwipeAlg(UIImageView* leftCard, UIImageView* rightCard, int16_t xOffset)
+{
+ CommonAlg(leftCard, rightCard, xOffset);
+}
+
+void CubeEffect::CardSwipeAlg(UICardPage* leftCard, UICardPage* rightCard, int16_t xOffset)
+{
+ CommonAlg(leftCard, rightCard, xOffset);
+}
+}
--- /dev/null
+/*
+ * Copyright (c) 2022 CompanyNameMagicTag.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef UI_CUBE_EFFECT_H
+#define UI_CUBE_EFFECT_H
+#include "components/ui_cross_view.h"
+
+namespace OHOS {
+class CubeEffect : public CardSwipe, public UISwipeView::OnSwipeListener {
+public:
+ CubeEffect(void) {}
+ ~CubeEffect() override {}
+ void CardSwipeAlg(UICardPage* leftCard, UICardPage* rightCard, int16_t xOffset) override;
+ void CardSwipeAlg(UIImageView* leftCard, UIImageView* rightCard, int16_t xOffset) override;
+ void OnSwipe(UISwipeView& view) override;
+
+ void SetContainer(UICrossView* view)
+ {
+ container_ = view;
+ }
+
+private:
+ UIImageView leftImg_;
+ UIImageView rightImg_;
+ UIView* preLeftCard = nullptr;
+ UIView* preRightCard = nullptr;
+ UICrossView* container_ = nullptr;
+
+ void CommonAlg(UIView* leftCard, UIView* rightCard, int16_t xOffset);
+ void TransformCard(UIView* leftCard, UIView* rightCard, int16_t xOffset);
+ void TransformMirrorCard(UIView& leftCard, UIView& rightCard, int16_t xOffset);
+};
+} // OHOS
+#endif // UI_CUBE_EFFECT_H
\ No newline at end of file
#ifndef GRAPHIC_LITE_UI_SOFT_KEYBOARD_H
#define GRAPHIC_LITE_UI_SOFT_KEYBOARD_H
+#include "components/ui_label.h"
+#include "components/ui_label_button.h"
+#include "components/ui_list.h"
#include "common/input_method_manager.h"
#include "components/ui_edit_text.h"
#include "input_method/ui_abstract_soft_keyboard.h"
#include "input_method/ui_option_box.h"
#include "input_method/ui_text_preview_box.h"
+#include "input_method/ui_pinyin_candidate.h"
#include "gfx_utils/vector.h"
#if ENABLE_SOFT_KEYBOARD
/**
* @brief Provides the functions related to UIInputMethod.
*/
-class UIInputMethod : public InputMethodManager::InputMethodListener {
+class UIInputMethod : public InputMethodManager::InputMethodListener,
+ public UIView::OnClickListener, public ListScrollListener {
+ class HanziAdapter : public AbstractAdapter {
+ public:
+ ~HanziAdapter() override {};
+ HanziAdapter() {};
+ HanziAdapter(const HanziAdapter&) = delete;
+ HanziAdapter& operator=(const HanziAdapter&) = delete;
+ UIView* GetView(UIView* inView, int16_t index) override;
+ int16_t GetItemWidthWithMargin(int16_t index) override;
+ int16_t GetItemHeightWithMargin(int16_t index) override;
+ uint16_t GetCount() override;
+ bool SetWidthAndHeight(int16_t w, int16_t h);
+ void SetData(int8_t hanzi[][PinyinCandidate::IME_HZLENTH], uint8_t len);
+ void SetClickListener(UIView::OnClickListener* clickListener)
+ {
+ clickListener_ = clickListener;
+ }
+
+ private:
+ UIView::OnClickListener* clickListener_ = nullptr;
+ int8_t (*data_)[PinyinCandidate::IME_HZLENTH] = nullptr;
+ uint8_t size_ = 0;
+ int16_t width_ = 0;
+ int16_t height_ = 0;
+ };
public:
+ static constexpr uint8_t DEFAULT_NUMPERPAGE = 5;
+ static constexpr uint8_t MAX_HANZIMATCHED = 255;
static UIInputMethod* GetInstance();
/**
* @brief Enter a key value in the input method.
* @param keys key value, see UI_KEYCODE.
*/
- void Input(UI_KEYCODE &key);
+ void Input(UI_KEYCODE key);
+
+ void InputPinyin(UI_KEYCODE key);
+
+ void ShowHanziPageList();
+
+ void HideHanziPageList();
/**
* @brief Hide soft keyboad option box.
*/
void ShowOptionBox(UIView *view, UI_KEYCODE *keys, uint8_t num);
+ bool OnClick(UIView& view, const ClickEvent& event) override;
private:
UIInputMethod();
~UIInputMethod() override;
void SetupOptionBox();
void SetupSoftKeyboard();
void SetupTextPreviewBox();
- void InsertChar(UI_KEYCODE &keyCode);
- void ChangSoftKeyboard(UI_KEYCODE &keyCode);
- void DealFunctionKey(UI_KEYCODE& keyCode);
- void DealNormalKey(UI_KEYCODE &keyCode);
+ void InsertChar(UI_KEYCODE keyCode);
+ void InsertPinyin(UI_KEYCODE pinyin);
+ void UpdateHanziOption(const std::string &pinyin);
+ void ChangSoftKeyboard(UI_KEYCODE keyCode);
+ void DealFunctionKey(UI_KEYCODE keyCode);
+ void DealNormalKey(UI_KEYCODE keyCode);
void DealSendKey();
void DealDelKey();
+ void DealPinyinDelKey();
UIViewGroup* inputMethod_ = nullptr;
UITextPreviewBox* previeBox_ = nullptr; // soft keyboard edit box
UIEditText* edit_ = nullptr; // user creat edit box
UIOptionBox* optionBox_ = nullptr; // Preselection box
+ UILabel* pinyinPreview_ = nullptr; // pinyin preview box
+ void SetupPinyinPreviewBox();
+ void HidePinyinPreview();
+ void ShowPinyinPreview();
+
+ UIList *hanziList_ = nullptr; // hanzi candidates
+ HanziAdapter *hanziAdapter_ = nullptr; // hanzi adapter
+ int8_t hanziMatched_[MAX_HANZIMATCHED][PinyinCandidate::IME_HZLENTH];
+ void ClearHanziCandidate();
+ void SetupHanziCandidate();
+
+ PinyinCandidate* pinyinTable_ = nullptr; // pinyin and hanzi find table
+ void SetupPinyinTable();
+ void ClearPinyinTable();
+ using PinyinState = PinyinCandidate::PinyinState;
+
UIAbstractSoftKeyboard* curSoftKeyboard_ = nullptr;
uint8_t curKeyboardIndex_ = 0;
Graphic::Vector<UIAbstractSoftKeyboard*> customSoftKeyboard_;
UI_KEY_SOFT_KEYBOARD_CAP = 0xF7,
UI_KEY_SOFT_KEYBOARD_NUMBER = 0xF8,
UI_KEY_SOFT_KEYBOARD_SYMBOL = 0xF9,
+ UI_KEY_SOFT_KEYBOARD_PINYIN = 0xFA,
UI_KEY_BUTT = 0XFF,
};
--- /dev/null
+/*
+ * Copyright (c) 2022 CompanyNameMagicTag.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef GRAPHIC_LITE_UI_PINYIN_CANDIDATE_H
+#define GRAPHIC_LITE_UI_PINYIN_CANDIDATE_H
+#include "components/ui_label.h"
+#include "components/ui_view_group.h"
+#include "gfx_utils/vector.h"
+#include "graphic_config.h"
+#include "input_method/ui_keyboard_codetable.h"
+
+#if ENABLE_SOFT_KEYBOARD
+
+namespace OHOS {
+class PinyinCandidate : public HeapBase {
+public:
+ enum class PinyinState : int32_t {
+ SUCCESS = 0,
+ INVALID_PINYIN, // input source str is invalid
+ INVALID_PATH,
+ MEM_NOT_ENOUGH,
+ MEM_SET_ERROR,
+ MEM_COPY_ERROR,
+ MEM_ALLOC_ERROR,
+ INVALID_PAGE_INDEX,
+ };
+ static const uint32_t IME_PYMAXLENTH = 8; // 单个拼音的最大字母个数
+ static const uint32_t IME_HZLENTH = 4; // 单个汉字占内存大小
+ static const uint8_t MAXSAMEPREFIXPY = 45; // 前缀相同的拼音的最大个数
+ static const int32_t MAXHZNUM = 0x2192; // 汉字的总共个数
+ static const uint8_t MAXNUMBEROFCHAR = 5; // 5 is the Maximum number of characters on key
+ static const uint8_t MAXCHARNUM = 26; // 26 characters, a ~ z
+ static const uint32_t MAX_TABLE_LEN = 12; // 12 is the max Length of Table
+ static const uint32_t MAX_TABLE_MEMBER_LEN = 5; // 5 is the max length of Tabel Member
+
+ PinyinCandidate(const PinyinCandidate&) = delete;
+ PinyinCandidate& operator=(const PinyinCandidate&) = delete;
+ ~PinyinCandidate();
+ PinyinCandidate();
+
+ std::string DebugInfo(PinyinState state) const;
+ PinyinState FindHanzi(const std::string &sourceStr);
+ PinyinState GetHanziPage(uint8_t pageNumber, int8_t candidate[][IME_HZLENTH], uint8_t len);
+ PinyinState GetFwdHanziPage(int8_t candidate[][IME_HZLENTH], uint8_t len);
+ PinyinState GetCurHanziPage(int8_t candidate[][IME_HZLENTH], uint8_t len);
+ PinyinState GetNxtHanziPage(int8_t candidate[][IME_HZLENTH], uint8_t len);
+ PinyinState GetAllHanzi(int8_t candidate[][IME_HZLENTH], uint8_t len);
+ uint8_t GetHanziPagesNum() const
+ {
+ return hanziStatus_.m_matchHZPageNumber;
+ }
+ uint8_t GetMatchHanziNum() const
+ {
+ return hanziStatus_.m_matchHzNumber;
+ }
+ uint8_t GetHanziPageIndex() const
+ {
+ return hanziStatus_.m_currentHzPage;
+ }
+
+ PinyinState Init(const std::string &path);
+
+ /* 设定每页显示二级候选码的个数 */
+ int32_t SetLv2NumPerPage(uint8_t num);
+ uint8_t GetLv2NumPerPage()
+ {
+ return m_lv2NumPerPage;
+ }
+
+protected:
+ /* 从外部文件装载候选码 */
+ int32_t LoadCodeTable(const int8_t *filePath);
+ /* 修复损坏的码表文件 */
+ int32_t RecoverCodeTable(const int8_t *filePath, const int8_t *backupPath);
+
+private:
+ /* init pinyin table path */
+ PinyinState InitPinyinTablePath(const std::string &path);
+ void InitEx(void);
+
+ /* 以下两结构组成了拼音码表,并且以只读方式保存,
+ * 今后扩展词频调整,则将词频数据以另外文件单独保存,
+ * FreqTableIndex数据成员用于实现拼音码表中的结构与词频表中的记录相映射
+ */
+ struct PYTab {
+ int8_t pinyin[IME_PYMAXLENTH];
+ uint32_t freqTableIndex; // 指向本结构在频率记录表中的位置
+ uint16_t hzIndex;
+ uint8_t hzNum; // 拼音对应的汉字个数
+ };
+
+ struct HZTab {
+ uint32_t hz;
+ uint16_t freqTableIndex; // 指向本结构在频率记录表中的位置
+ };
+
+ uint8_t m_lv2NumPerPage = 5; // 5 是二级候选码每页显示的个数
+
+ /* 拼音码表的缓存 */
+ PYTab m_pyTabBuf[MAXCHARNUM][MAXSAMEPREFIXPY];
+ HZTab m_hzTabBuf[MAXHZNUM] = {0, 0}; // 汉字码表缓存
+
+ struct {
+ uint8_t m_currentPyPage = 0; // current pinyin page number
+ uint8_t m_matchPyPage = 0; // matched pinyin page num
+ int8_t m_matchPyStartIndex = -1; /* 在码表中与指定拼音匹配的拼音的起始索引 */
+ int8_t m_matchPyEndIndex = -1; /* 在码表中与指定拼音匹配的结束索引 */
+ uint8_t m_matchPyNumber = 0; /* 与指定拼音匹配的候选码数量 */
+ uint8_t m_currentPyIndex = 0;
+ } pinyinStatus_;
+ struct {
+ uint16_t m_currentHzIndex = 0;
+ uint8_t m_matchHzNumber = 0;
+ uint8_t m_matchHZPageNumber = 0;
+ uint8_t m_currentHzPage = 0;
+ } hanziStatus_;
+
+ std::string m_pinyinTablePath = "";
+};
+} // namespace OHOS
+#endif // ENABLE_SOFT_KEYBOARD
+#endif // GRAPHIC_LITE_UI_PINYIN_CANDIDATE_H
\ No newline at end of file
void CreateKeyButtons() override;
static UISymbolSoftKeyboard* GetInstance();
};
+
+class UIPinyinSoftKeyboard : public UIAbstractSoftKeyboard {
+public:
+ UIPinyinSoftKeyboard() {}
+ ~UIPinyinSoftKeyboard() override {}
+ void CreateKeyButtons() override;
+ static UIPinyinSoftKeyboard* GetInstance();
+};
+
} // namespace OHOS
#endif // ENABLE_SOFT_KEYBOARD
#endif // GRAPHIC_LITE_UI_INPUT_METHOD_H
#ifndef GRAPHIC_LITE_UI_EDIT_TEXT_H
#define GRAPHIC_LITE_UI_EDIT_TEXT_H
+#include <string>
+#include <codecvt>
+#include <locale>
#include <vector>
#include "components/ui_edit_text.h"
#include "input_method/ui_keyboard_codetable.h"
void OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override;
bool OnClickEvent(const ClickEvent& event) override;
void InsertChar(UI_KEYCODE& keyCode);
+ void InsertHanzi(const std::string &u8hanzi);
void DeleteChar();
void SetText(std::string text);
void GetLineInfo(LineInfo& lineInfo);
private:
+ std::wstring Utf8ToUtf16(const std::string &text) const
+ {
+ std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>, wchar_t> convert;
+ std::wstring wideText = convert.from_bytes(text);
+ return wideText;
+ }
+
+ std::string Utf16ToUtf8(const std::wstring &wtext) const
+ {
+ std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>, wchar_t> convert;
+ return convert.to_bytes(wtext);
+ }
+
uint32_t cursorIndex_ = 0;
bool isCursorInited_ = false;
CursorCallback cursorCallback_;
Animator *cursorAnimator_ = nullptr;
UIView *cursorView_ = nullptr;
LineInfo lineInfo_ = {{0}};
- std::string tempText_;
+ std::wstring tempText_;
std::vector<uint16_t> widthOfChars_;
TextPreviewBoxMode editMode_ = TEXT_PREVIEW_BOX_MODE_INSERT;
buffer.virAddr = bufferHandle->virAddr;
#if ENABLE_GMMU
buffer.stride = static_cast<uint32_t>(bufferHandle->stride);
+#endif
+#if ENABLE_MEMORY_CHECK
+ if (isMonitorEnabled_) {
+ printf("[Alloc] addr = %p, size = %d, usage = %llu\n", bufferHandle->virAddr, bufferHandle->size, bufferHandle->usage);
+ }
#endif
return true;
}
yuvBufCnt_--;
}
g_buffers.erase(iter);
+#if ENABLE_MEMORY_CHECK
+ if (isMonitorEnabled_) {
+ printf("[Free] addr = %p, size = %d, usage = %llu\n", virAddr, handle->size, handle->usage);
+ }
+#endif
grallocFuncs_->FreeMem(handle);
}
}
printf("total size: font %d (count: %d, max: %d), image %d, path %d, fb %d, mapbuffer:%d, yuv %d\n",
fontCacheSize, fontCount, fontMax, imageCacheSize, pathCacheSize, fbSize, mapBufferSize, yuvCacheSize);
}
+
+void GrallocEngines::SetMemMonitor(bool enable)
+{
+ isMonitorEnabled_ = enable;
+}
+
#endif
} // namespace OHOS
allocInfo.usage = HBM_USE_ASSIGN_SIZE;
GrallocBuffer buffer;
if (!GrallocEngines::GetInstance()->AllocBuffer(allocInfo, buffer)) {
- GRAPHIC_LOGE("AllocBuffer failed.");
+ GRAPHIC_LOGE("ImageCacheMalloc failed! size = %u", info.dataSize);
return nullptr;
}
info.phyAddr = reinterpret_cast<uint8_t*>(buffer.phyAddr);
void FreeBuffer(uint8_t* virAddr);
#if ENABLE_MEMORY_CHECK
void DumpMem();
+ void SetMemMonitor(bool enable);
#endif
private:
GrallocEngines() : grallocFuncs_(nullptr) {}
~GrallocEngines() {}
uint8_t yuvBufCnt_ = 0;
GrallocFuncs* grallocFuncs_;
+ bool isMonitorEnabled_ = false;
};
} // end namespace
#endif // GRAPHIC_LITE_GRALLOC_ENGINES_H
${UIKIT_ROOT_DIR}/proprietary/include/service
${UIKIT_ROOT_DIR}/proprietary/src/utils/innerkits
${UIKIT_ROOT_DIR}/proprietary/src/ui/frameworks
+ ${UIKIT_ROOT_DIR}/proprietary/src/ui/innerkits
${PROJECT_ROOT_DIR}/hal/input/include
${ROOTDIR}/open_source/openharmony/drivers/peripheral/display/interfaces/include
${ROOTDIR}/open_source/openharmony/third_party/bounds_checking_function/include
-Wno-missing-declarations
-Wno-tautological-pointer-compare
-Wno-unused-private-field
+ -Werror=return-type
)
set(WHOLE_LINK
pageStatus[maxPage - 1] = true;
}
listener = new SwipeListener();
- listener->setCallback(calback);
+ listener->SetCallback(calback);
mainSwipeGroup->SetOnSwipeListener(listener);
GRAPHIC_LOGD("UITestClockDial::InitPage over\n");
return true;
} else {
if (!pageStatus[index - 1]) {
if (!recordCard[index - 1]->InitView()) {
- GRAPHIC_LOGE("PreLoad PAGE:%d\n", index - 1);
+ GRAPHIC_LOGE("PreLoad PAGE:%u\n", index - 1);
return;
}
pageStatus[index - 1] = true;
}
if (!pageStatus[index + 1]) {
if (!recordCard[index + 1]->InitView()) {
- GRAPHIC_LOGE("PreLoad PAGE:%d\n", index + 1);
+ GRAPHIC_LOGE("PreLoad PAGE:%u\n", index + 1);
return;
}
pageStatus[index + 1] = true;
~SwipeListener() override {}
void OnSwipe(UISwipeView& view) override;
- void setCallback(ZoomEffect* calback)
+ void SetCallback(ZoomEffect* calback)
{
calback_ = calback;
}
}\r
coverflow_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
coverflow_->SetIntercept(true);\r
+ coverflow_->SetThrowDrag(true);\r
+ coverflow_->SetSwipeACCLevel(150); // 150: set drag compensation distance\r
+ coverflow_->SetDragACCLevel(16); // 16: set drag time duration level\r
for (uint8_t i = 0; i < COVERFLOW_PRELOAD_PAGE_NUM; i++) {\r
ImageInfo* src = ImageCacheManager::GetInstance().LoadSingleRes(std::string(g_faceInfo[i].path));\r
coverflow_->Add(g_faceInfo[i].name, src);\r
#ifndef _WIN32
class VideoPage : public UICardPage {
public:
+ VideoPage(const VideoPage &) = delete;
+ VideoPage &operator=(const VideoPage &) = delete;
VideoPage(void) {}
- ~VideoPage();
+ ~VideoPage() override;
void ScrollBegin(bool isActive) override;
void ScrollEnd(bool isActive) override;
void CoverBegin(bool isCovered) override;
bool OnDragStartEvent(const DragEvent& event) override;
bool OnDragEvent(const DragEvent& event) override;
bool OnDragEndEvent(const DragEvent& event) override;
- void RotatePlanes(int angleDelta, const Vector3<float>& rotateStart, const Vector3<float>& rotateEnd);
+ void RotatePlanes(int angle, const Vector3<float>& rotateStart, const Vector3<float>& rotateEnd);
private:
Graphic::Vector<CubeInfo> cubePlane_;
UIViewGroup* group_ = nullptr;
UICanvasExt* canvas_ = nullptr;
UILabelButton* btn_ = nullptr;
- int16_t index_;
+ int16_t index_ = 0;
};
}
#endif // UI_TEST_SVG_H
\ No newline at end of file
}
path->cmdNum = cmdNum;
path->dataNum = dataNum;
- AllocInfo info;
- info.expectedSize = sizeof(uint8_t) * cmdNum + sizeof(float) * dataNum;
- info.usage = HBM_USE_ASSIGN_SIZE | HBM_USE_MEM_PATH;
+
+ AllocInfo cmdInfo;
GrallocBuffer cmdBuffer;
- if (!GrallocEngines::GetInstance()->AllocBuffer(info, cmdBuffer)) {
- GRAPHIC_LOGE("Alloc buffer for buffer failed.");
+ cmdInfo.expectedSize = sizeof(uint8_t) * cmdNum;
+ cmdInfo.usage = HBM_USE_ASSIGN_SIZE | HBM_USE_MEM_PATH;
+ if (!GrallocEngines::GetInstance()->AllocBuffer(cmdInfo, cmdBuffer)) {
+ GRAPHIC_LOGE("Alloc buffer for cmd buffer failed.");
delete path;
- path = nullptr;
return nullptr;
}
+
+ AllocInfo dataInfo;
+ GrallocBuffer dataBuffer;
+ dataInfo.expectedSize = sizeof(float) * dataNum;
+ dataInfo.usage = HBM_USE_ASSIGN_SIZE | HBM_USE_MEM_PATH;
+ if (!GrallocEngines::GetInstance()->AllocBuffer(dataInfo, dataBuffer)) {
+ GRAPHIC_LOGE("Alloc buffer for data buffer failed.");
+ delete path;
+ GrallocEngines::GetInstance()->FreeBuffer(reinterpret_cast<uint8_t*>(cmdBuffer.virAddr));
+ return nullptr;
+ }
+
path->cmds = (uint8_t *)cmdBuffer.virAddr;
- path->data = reinterpret_cast<float*>(path->cmds + cmdNum);
+ path->data = reinterpret_cast<float*>(dataBuffer.virAddr);
return path;
}
#ifndef VERSION_LITE
#include "gif_lib.h"
#endif
+#include "draw/draw_utils.h"
namespace OHOS {
#ifndef VERSION_LITE
Invalidate();
}
+void UIImageView::DumpImgInfo()
+{
+ if (image_.GetSrcType() == IMG_SRC_VARIABLE) {
+ printf("view[%p]: viewType = %d\n", this, GetViewType());
+ const ImageInfo* info = image_.GetImageInfo();
+ PrintImgInfo(info);
+ }
+}
+
#ifndef VERSION_LITE
void UIImageView::AddAndStartGifAnimator()
{
yOffset = (GetHeight() >> 1) - (dstView->GetY() + (dstView->GetHeightWithMargin() >> 1));
}
- if ((xOffset != 0) || (yOffset != 0)) {
- if (scrollAnimator_.GetState() != Animator::STOP) {
- UIAbstractScroll::StopAnimator();
- }
- if (needAnimator) {
- animatorCallback_.SetDragTimes(tickTime_);
- animatorCallback_.SetDragStartValue(0, 0);
- animatorCallback_.SetDragEndValue(xOffset, yOffset);
- scrollAnimator_.Start();
- } else {
- MoveChildByOffset(xOffset, yOffset);
- }
+ if (scrollAnimator_.GetState() != Animator::STOP) {
+ UIAbstractScroll::StopAnimator();
+ }
+ if (needAnimator) {
+ animatorCallback_.SetDragTimes(tickTime_);
+ animatorCallback_.SetDragStartValue(0, 0);
+ animatorCallback_.SetDragEndValue(xOffset, yOffset);
+ scrollAnimator_.Start();
+ } else {
+ MoveChildByOffset(xOffset, yOffset);
}
}
#include "gfx_utils/mem_api.h"
#include "securec.h"
#include "themes/theme_manager.h"
+#include <cstdio>
namespace OHOS {
UIView::UIView()
}
#endif
if (transMap_ == nullptr) {
- ReMeasure();
transMap_ = new TransformMap();
+ ReMeasure();
}
bool firstTrans = transMap_->IsInvalid();
Rect joinRect = transMap_->GetBoxRect();
}
#endif
if (transMap_ == nullptr) {
- ReMeasure();
transMap_ = new TransformMap();
+ ReMeasure();
}
bool firstTrans = transMap_->IsInvalid();
Rect joinRect = transMap_->GetBoxRect();
}
#endif
if (transMap_ == nullptr) {
- ReMeasure();
transMap_ = new TransformMap();
+ ReMeasure();
}
bool firstTrans = transMap_->IsInvalid();
Rect joinRect = transMap_->GetBoxRect();
}
#endif
if (transMap_ == nullptr) {
- ReMeasure();
transMap_ = new TransformMap();
+ ReMeasure();
}
bool firstTrans = transMap_->IsInvalid();
Rect joinRect = transMap_->GetBoxRect();
void UIView::SetCameraDistance(int16_t distance)
{
if (transMap_ == nullptr) {
- ReMeasure();
transMap_ = new TransformMap();
+ ReMeasure();
}
Rect joinRect = transMap_->GetBoxRect();
transMap_->SetTransMapRect(GetOrigRect());
void UIView::SetCameraPosition(const Vector2<float>& position)
{
if (transMap_ == nullptr) {
- ReMeasure();
transMap_ = new TransformMap();
+ ReMeasure();
}
Rect joinRect = transMap_->GetBoxRect();
transMap_->SetTransMapRect(GetOrigRect());
void UIView::ClearFocus()
{
- FocusManager::GetInstance()->ClearFocus();
+ if (FocusManager::GetInstance()->GetFocusedView() == this) {
+ FocusManager::GetInstance()->ClearFocus();
+ }
}
#endif
RootView::GetInstance()->SaveDrawContext();
RootView::GetInstance()->UpdateBufferInfo(&newBufferInfo);
RootView::GetInstance()->SetSnapshotFlag(true);
- RootView::GetInstance()->Measure();
+ RootView::GetInstance()->MeasureView(this);
RootView::GetInstance()->DrawTop(this, mask);
#if ENABLE_VGU_ENGINE
LiteMGfxEngine::GetInstance()->SyncHwDraw();
}
return false;
}
+
+void UIView::PrintImgInfo(const ImageInfo* info)
+{
+ if (info == nullptr) {
+ printf(" ImgInfo[%p]\n", info);
+ } else {
+ printf(" ImgInfo[%p]: size = [%d, %d], fmt = %d, data = %p, dataSize = %d, cacheNode = %p\n",
+ info, info->header.width, info->header.height, info->header.colorMode, info->data, info->dataSize, info->cacheNode);
+ }
+}
+
+void UIView::DumpImgInfoRecursive()
+{
+ DumpImgInfo();
+
+ if (IsViewGroup()) {
+ UIView* child = static_cast<UIViewGroup*>(this)->GetChildrenHead();
+ while (child != nullptr) {
+ child->DumpImgInfoRecursive();
+ child = child->GetNextSibling();
+ }
+ }
+}
} // namespace OHOS
void SetWidth(int16_t width) override;
void SetHeight(int16_t height) override;
+ void DumpImgInfo() override;
+
protected:
/**
* @brief Represents the width of this image.
virtual void SwitchToPage(int16_t dst, bool needAnimator = true);
void MoveChildByOffset(int16_t xOffset, int16_t yOffset) override;
void MoveHeadOrTailChild();
-
+ virtual void RefreshCurrentView(int16_t distance, uint8_t dragDirection);
/**
* @brief Indicates that the animation duration is 12 ticks.
*
#endif
private:
- void RefreshCurrentView(int16_t distance, uint8_t dragDirection);
void RefreshCurrentViewInner(int16_t distance,
uint8_t dragDirection,
int16_t (UIView::*pfnGetXOrY)() const,
UI_BARCODE,
UI_MAP_VIEW,
UI_KALEIDOSCOPE_VIEW,
+ UI_ROLLER_VIEW,
+ UI_HEXAGONS_LIST,
+ UI_ICOSAHEDRON_VIEW,
UI_NUMBER_MAX
};
*/
bool IsVideoContained();
+ void DumpImgInfoRecursive();
+
+ virtual void DumpImgInfo() {}
+
protected:
bool touchable_ : 1;
bool visible_ : 1;
bool IsInvalid(float percent);
void DrawViewBounds(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea);
void UpdateRectInfo(uint8_t key, const Rect& rect);
+ void PrintImgInfo(const ImageInfo* info);
private:
Rect rect_;
}
int32_t AudioStreamOut::StreamWrite(const uint8_t *buffer, uint64_t userSize, uint64_t &writtenSize,
- AudioRendererConfig &renderConfig) const
+ AudioRendererConfig &renderConfig) const
{
MediaMutexLock(mutex);
int32_t ret = StreamWriteTrack(streamHandle_, buffer, userSize, &writtenSize);
seekToTimeMs_(-1),\r
sourceType_(SOURCE_TYPE_BUT),\r
firstAudioFrameAfterSeek_(false),\r
+ firstPosAfterSeek_(0),\r
fd_(-1),\r
offset_(0),\r
playerSource_(nullptr),\r
int32_t PlayerControl::PauseResume(void)\r
{\r
CHECK_NULL_RETURN(sinkManager_, HI_ERR_PLAYERCONTROL_NULL_PTR, "sinkManager_ nullptr");\r
+ MediaMutexLock(schMutex_);\r
int32_t ret = sinkManager_->Resume();\r
if (ret != HI_SUCCESS) {\r
if (ret != NOT_FOUND_ACTIVE_STREAME) {\r
MEDIA_ERR_LOG("resume failed");\r
hasVideo_ ? NotifyError(PLAYERCONTROL_ERROR_VID_PLAY_FAIL) : NotifyError(PLAYERCONTROL_ERROR_AUD_PLAY_FAIL);\r
}\r
+ MediaMutexUnLock(schMutex_);\r
return ret;\r
}\r
- MediaMutexLock(schMutex_);\r
paused_ = false;\r
// played to the end no need to signal\r
if (!IsPlayEos()) {\r
CHECK_NULL_RETURN_NONE(sinkManager_, "sinkManager_ nullptr");\r
sinkManager_->GetRenderPosition(position);\r
if (position >= 0 && currentPosition_ != position) {\r
- currentPosition_ = position;\r
+ if (lastRendPos_ > 0) {\r
+ currentPosition_ = position - lastRendPos_ + firstPosAfterSeek_;\r
+ } else {\r
+ currentPosition_ = position;\r
+ }\r
EventCallback(PLAYERCONTROL_EVENT_PROGRESS, ¤tPosition_);\r
}\r
}\r
\r
if (formatPacket_.data == nullptr && formatPacket_.len == 0) {\r
strmReadEnd_ = true;\r
+ formatPacket_.timestampUs = -1;\r
gettimeofday(&streamEndTime_, nullptr);\r
+ if (loop_) {\r
+ seekToTimeMs_ = 0;\r
+ return HI_FAILURE;\r
+ }\r
}\r
\r
isAudio_ = (formatPacket_.frameType == FRAME_TYPE_AUDIO) ? true : false;\r
}\r
if (firstAudioFrameAfterSeek_) {\r
firstAudioFrameAfterSeek_ = false;\r
+ sinkManager_->GetRenderPosition(lastRendPos_);\r
+ firstPosAfterSeek_ = formatPacket_.timestampUs;\r
MEDIA_INFO_LOG("push firstAudioFrameAfterSeek_ success, pts:%lld", formatPacket_.timestampUs);\r
}\r
if (formatPacket_.data != nullptr || formatPacket_.len != 0) {\r
if (seekToTimeMs_ == -1) {\r
return HI_SUCCESS;\r
}\r
+ MEDIA_INFO_LOG("seek start");\r
int32_t ret = AyncSeek(seekToTimeMs_);\r
if (ret != HI_SUCCESS) {\r
MEDIA_ERR_LOG(" AyncSeek failed , ret:%d", ret);\r
seekToTimeMs_ = -1;\r
firstAudioFrameAfterSeek_ = true;\r
firstVideoFrameAfterSeek_ = true;\r
- MEDIA_DEBUG_LOG("seek end");\r
+ MEDIA_INFO_LOG("seek end");\r
return HI_SUCCESS;\r
}\r
\r
}\r
}\r
\r
+void PlayerControl::EnableSingleLooping(bool loop)\r
+{\r
+ MediaMutexLock(schMutex_);\r
+ loop_ = loop;\r
+ MediaMutexUnLock(schMutex_);\r
+}\r
+\r
void PlayerControl::NotifyError(PlayerControlError playerError) const\r
{\r
EventCallback(PLAYERCONTROL_EVENT_ERROR, static_cast<void *>(&playerError));\r
\r
int32_t PlayerControl::DecoderAndSinkReset(void)\r
{\r
+ if (strmReadEnd_ && loop_) {\r
+ return HI_SUCCESS;\r
+ }\r
int32_t ret;\r
bool isNeedResume = false;\r
ret = sinkManager_->Pause();\r
MEDIA_INFO_LOG("exec fmt_seek video stream failed, ret:%d", ret);\r
seekTimeInMs = currentPosition_;\r
}\r
- } else if (fmtFileInfo_.s32UsedAudioStreamIndex != HI_DEMUXER_NO_MEDIA_STREAM) {\r
+ }\r
+ if (fmtFileInfo_.s32UsedAudioStreamIndex != HI_DEMUXER_NO_MEDIA_STREAM) {\r
ret = playerSource_->Seek(fmtFileInfo_.s32UsedAudioStreamIndex, seekTimeInMs, FORMAT_SEEK_MODE_BACKWARD_KEY);\r
if (ret != HI_SUCCESS) {\r
MEDIA_INFO_LOG("exec fmt_seek audio stream failed, ret:%d", ret);\r
int32_t GetPlayerFileDumpInfo(PlayerFileDebugInfo &fileDebugInfo);
void PlayerControlCondSignal(void);
+ void EnableSingleLooping(bool loop);
protected:
int32_t DoRegCallback(const PlayerCtrlCallbackParam &observer);
SourceType sourceType_;
bool firstAudioFrameAfterSeek_;
bool firstVideoFrameAfterSeek_;
+ int64_t firstPosAfterSeek_;
int32_t fd_;
uint64_t offset_;
std::string filePath_;
return -1;
}
isSingleLoop_ = loop;
+ if (player_ != nullptr) {
+ player_->EnableSingleLooping(loop);
+ }
MediaMutexUnLock(lock_);
return 0;
}
*/
static JSIValue SrcGetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+ /**
+ * the getter of audio srcInner property
+ *
+ * @param thisVal Indicates function execute context
+ * @param args Indicates the function arguments
+ * @param argsSize Indicates the size of function arguments
+ */
+ static JSIValue SrcInnerGetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+
/**
* the setter of audio src property
*
*/
static JSIValue SrcSetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+ /**
+ * the setter of audio srcInner property
+ *
+ * @param thisVal Indicates function execute context
+ * @param args Indicates the function arguments
+ * @param argsSize Indicates the size of function arguments
+ */
+ static JSIValue SrcInnerSetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+
/**
* the getter of audio currentTime property
*
bool Stop();
- char *GetSrc() const;
+ char *GetSrc(bool innerFlag) const;
double GetCurrentTime() const;
bool IsPlaying() const;
- bool SetSrc(char *src);
+ bool SetSrc(char *src, bool innerFlag);
bool SetCurrentTime(double currentTime) const;
static MediaMutexHandle lock_;
static MediaThreadCondHandle condition_;
static void *UpdateTimeHandler(void *arg);
+ static int GetSrcInnerPrefix(char *src, char *dest);
Media::Player *player_;
std::shared_ptr<AudioPlayerCallback> callback_;
AudioEventListener *onErrorListener_;
AudioEventListener *onTimeUpdateListener_;
char *src_;
+ char *srcInner_;
char *status_;
double volume_;
bool autoPlay_;
bool muted_;
bool isRunning_;
+ bool isSysSrc_;
MediaThreadIdHandle updateTimeProcess_;
};
} // namespace ACELite
AudioPlayer *audioPlayer = AudioPlayer::GetInstance();
JSIValue data = JSI::CreateObject();
JSI::SetStringProperty(data, "status", audioPlayer->GetStatus());
- JSI::SetStringProperty(data, "src", audioPlayer->GetSrc());
+ JSI::SetStringProperty(data, "src", audioPlayer->GetSrc(false));
+ JSI::SetStringProperty(data, "srcInner", audioPlayer->GetSrc(true));
JSI::SetNumberProperty(data, "currentTime", audioPlayer->GetCurrentTime());
JSI::SetBooleanProperty(data, "autoplay", audioPlayer->GetAutoPlay());
JSI::SetBooleanProperty(data, "loop", audioPlayer->IsLooping());
JSIValue AudioModule::SrcGetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize)
{
- char *src = AudioPlayer::GetInstance()->GetSrc();
+ char *src = AudioPlayer::GetInstance()->GetSrc(false);
+ return (src == nullptr) ? JSI::CreateUndefined() : JSI::CreateString(src);
+}
+
+JSIValue AudioModule::SrcInnerGetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize)
+{
+ char *src = AudioPlayer::GetInstance()->GetSrc(true);
return (src == nullptr) ? JSI::CreateUndefined() : JSI::CreateString(src);
}
ActivateAudioInterrupt();
char *src = JSI::ValueToString(args[0]);
bool autoPlay = AudioPlayer::GetInstance()->GetAutoPlay();
- bool ret = AudioPlayer::GetInstance()->SetSrc(src);
+ bool ret = AudioPlayer::GetInstance()->SetSrc(src, false);
+ AudioPlayer::GetInstance()->SetAudioSessionId(interrupt->sessionID);
+ if (autoPlay) {
+ AudioPlayer::GetInstance()->Play();
+ }
+ return JSI::CreateBoolean(ret);
+}
+
+JSIValue AudioModule::SrcInnerSetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize)
+{
+ if (argsSize < 1) {
+ MEDIA_ERR_LOG("1 argument is required.");
+ return JSI::CreateBoolean(false);
+ }
+ ActivateAudioInterrupt();
+ char *src = JSI::ValueToString(args[0]);
+ bool autoPlay = AudioPlayer::GetInstance()->GetAutoPlay();
+ bool ret = AudioPlayer::GetInstance()->SetSrc(src, true);
AudioPlayer::GetInstance()->SetAudioSessionId(interrupt->sessionID);
if (autoPlay) {
AudioPlayer::GetInstance()->Play();
JSI::SetModuleAPI(exports, "getPlayState", AudioModule::GetPlayState);
AudioModule::DefineProperty(exports, "src", AudioModule::SrcGetter, AudioModule::SrcSetter);
+ AudioModule::DefineProperty(exports, "srcInner", AudioModule::SrcInnerGetter, AudioModule::SrcInnerSetter);
AudioModule::DefineProperty(exports, "currentTime", AudioModule::CurrentTimeGetter, AudioModule::CurrentTimeSetter);
AudioModule::DefineProperty(exports, "duration", AudioModule::DurationGetter, AudioModule::DurationSetter);
AudioModule::DefineProperty(exports, "autoplay", AudioModule::AutoPlayGetter, AudioModule::AutoPlaySetter);
#include "js_async_work.h"
#include "media_log.h"
#include "audio_manager.h"
+#include "bundlems_slite_client.h"
+#include "abilityms_slite_client.h"
#define DELETE_NOT_NULL(pointer) \
if (pointer != nullptr) \
constexpr double DEFAULT_VOLUME = 1.0;
constexpr double MILLISECONDS_PER_SECOND = 1000.0;
constexpr uint32_t MICROSECONDS_PER_SECOND = 1000 * 1000;
+constexpr uint32_t MAX_PATH_LEN = 128;
+char absPath[MAX_PATH_LEN] = {0};
static Audio::AudioManager& g_amInstance = Audio::AudioManager::GetInstance();
onErrorListener_(nullptr),
onTimeUpdateListener_(nullptr),
src_(nullptr),
+ srcInner_(nullptr),
status_(const_cast<char *>(STATUS_STOP)),
volume_(DEFAULT_VOLUME),
autoPlay_(false),
muted_(false),
isRunning_(false),
+ isSysSrc_(false),
updateTimeProcess_(nullptr) {}
void AudioPlayer::ForkUpdateTimeThread()
return nullptr;
}
+int AudioPlayer::GetSrcInnerPrefix(char *src, char *dest)
+{
+ int ret;
+ ElementName* topAbility = OHOS::AbilityMsClient::GetInstance().GetTopAbility();
+ if (topAbility != nullptr) {
+ BundleInfo bundleInfo;
+ ret = BundleMsClient::GetInstance().GetBundleInfo(topAbility->bundleName, 0, &bundleInfo);
+ if (ret == 0) {
+ (void)sprintf_s(dest, MAX_PATH_LEN - 1, "%s/assets/entry/%s", bundleInfo.codePath, src);
+ return 0;
+ } else {
+ MEDIA_ERR_LOG("failed to get bundleInfo!");
+ }
+ } else {
+ MEDIA_ERR_LOG("failed to get top ability!");
+ }
+ return -1;
+}
+
void AudioPlayer::StopUpdateTimeThread()
{
MediaMutexLock(lock_);
void AudioPlayer::ReleaseSrc()
{
- if (src_ != nullptr) {
+ if (src_ != nullptr && isSysSrc_ == true) {
ace_free(src_);
src_ = nullptr;
}
+ if (srcInner_ != nullptr && isSysSrc_ == false) {
+ ace_free(srcInner_);
+ srcInner_ = nullptr;
+ }
}
bool AudioPlayer::Play()
return true;
}
-char *AudioPlayer::GetSrc() const
+char *AudioPlayer::GetSrc(bool innerFlag) const
{
- return src_;
+ return innerFlag ? srcInner_ : src_;
}
double AudioPlayer::GetCurrentTime() const
return player_->IsPlaying();
}
-bool AudioPlayer::SetSrc(char *src)
+bool AudioPlayer::SetSrc(char *src, bool innerFlag)
{
if (src_ != nullptr) {
if (!DestoryPlayer()) {
return true;
}
- std::string uri(src);
+ std::string uri;
+ if (innerFlag) {
+ srcInner_ = src;
+ (void)memset_s(absPath, MAX_PATH_LEN, 0, MAX_PATH_LEN);
+ if (GetSrcInnerPrefix(src, absPath) != 0) {
+ MEDIA_ERR_LOG("fail to get absolute path of srcInner.");
+ return false;
+ }
+ uri += absPath;
+ src_ = absPath;
+ isSysSrc_ = false;
+ } else {
+ uri += src;
+ src_ = src;
+ isSysSrc_ = true;
+ }
std::map<std::string, std::string> header;
Media::Source source(uri, header);
if (player_->SetSource(source) != 0) {
MEDIA_ERR_LOG("fail to set audio src property.");
return false;
}
- src_ = src;
if (player_->Prepare() != 0) {
MEDIA_ERR_LOG("fail to prepare.");
return false;
(void)videoPlay->player_->Release();\r
return MEDIA_ERR;\r
}\r
+ videoPlay->player_->EnableSingleLooping(videoPlay->isLoop_);\r
MediaMutexLock(videoPlay->mutex_);\r
videoPlay->isPlayed_ = true;\r
if (videoPlay->button_ != nullptr) {\r
return source;\r
}\r
\r
+static int32_t SetAudioSessionIdAndStreamType(MediaVideoPlay *videoPlay)\r
+{\r
+ int32_t ret = MEDIA_OK;\r
+ if (!videoPlay->isPureVideo_) {\r
+ ret = videoPlay->player_->SetAudioSessionId(videoPlay->sessionId_);\r
+ if (ret != MEDIA_OK) {\r
+ MEDIA_ERR_LOG("set audio sessionId failed\n");\r
+ return ret;\r
+ }\r
+ ret = videoPlay->player_->SetAudioStreamType(AUDIO_STREAM_FITNESS_VIDEO);\r
+ if (ret != MEDIA_OK) {\r
+ MEDIA_ERR_LOG("set audio stream type failed\n");\r
+ return ret;\r
+ }\r
+ }\r
+ return ret;\r
+}\r
+\r
static int32_t RunVideoPlay(MediaVideoPlay *videoPlay)\r
{\r
bool success = InitPlayerResources(videoPlay);\r
return MEDIA_ERR;\r
}\r
int32_t ret = 0;\r
- do {\r
- Source source = GetVideoPlaySource(videoPlay);\r
- ret = videoPlay->player_->SetSource(source);\r
- if (ret != 0) {\r
- MEDIA_ERR_LOG("set source failed\n");\r
- (void)DeinitPlayerResources(videoPlay);\r
- return MEDIA_ERR;\r
- }\r
- ret = videoPlay->player_->Prepare();\r
- if (ret != 0) {\r
- MEDIA_ERR_LOG("prepare failed\n");\r
- return ReleasePlayer(videoPlay);\r
- }\r
- if (!videoPlay->isPureVideo_) {\r
- ret = videoPlay->player_->SetAudioSessionId(videoPlay->sessionId_);\r
- if (ret != 0) {\r
- MEDIA_ERR_LOG("set audio sessionId failed\n");\r
- return ReleasePlayer(videoPlay);\r
- }\r
- ret = videoPlay->player_->SetAudioStreamType(AUDIO_STREAM_FITNESS_VIDEO);\r
- if (ret != 0) {\r
- MEDIA_ERR_LOG("set audio stream type failed\n");\r
- return ReleasePlayer(videoPlay);\r
- }\r
- }\r
- ret = videoPlay->player_->SetVideoSurface(videoPlay->surface_);\r
- if (ret != 0) {\r
- MEDIA_ERR_LOG("set video surface failed\n");\r
- return ReleasePlayer(videoPlay);\r
- }\r
- ret = VideoPlay(videoPlay);\r
- if (ret != 0) {\r
- return ReleasePlayer(videoPlay);\r
- }\r
- VideoStopAndExit(videoPlay);\r
- if (videoPlay->isPlaybackStopped_ ||\r
- videoPlay->playError_ ||\r
- videoPlay->interruptHintStop_) {\r
- break;\r
- }\r
- } while (videoPlay->isLoop_);\r
+ Source source = GetVideoPlaySource(videoPlay);\r
+ ret = videoPlay->player_->SetSource(source);\r
+ if (ret != 0) {\r
+ MEDIA_ERR_LOG("set source failed\n");\r
+ (void)DeinitPlayerResources(videoPlay);\r
+ return MEDIA_ERR;\r
+ }\r
+ ret = videoPlay->player_->Prepare();\r
+ if (ret != 0) {\r
+ MEDIA_ERR_LOG("prepare failed\n");\r
+ return ReleasePlayer(videoPlay);\r
+ }\r
+ ret = SetAudioSessionIdAndStreamType(videoPlay);\r
+ if (ret != 0) {\r
+ return ReleasePlayer(videoPlay);\r
+ }\r
+ ret = videoPlay->player_->SetVideoSurface(videoPlay->surface_);\r
+ if (ret != 0) {\r
+ MEDIA_ERR_LOG("set video surface failed\n");\r
+ return ReleasePlayer(videoPlay);\r
+ }\r
+ ret = VideoPlay(videoPlay);\r
+ if (ret != 0) {\r
+ return ReleasePlayer(videoPlay);\r
+ }\r
+ VideoStopAndExit(videoPlay);\r
SendBackgroundFrame(videoPlay);\r
return 0;\r
}\r
if (ret != 0) {
MEDIA_ERR_LOG("Reset failed");
}
-
- if (g_isNeedLoop) {
- return;
- }
-
ret = player->Release();
if (ret != 0) {
MEDIA_ERR_LOG("Release failed");
MEDIA_ERR_LOG("Play failed");
goto RELEASE_PLAYER;
}
+ context->player->EnableSingleLooping(g_isNeedLoop);
MediaMutexLock(g_videoPlayContextMutex);
#if defined(ENABLE_LVGL)
g_isPlayed = true;
MEDIA_ERR_LOG("init player resources failed");
return -1;
}
- do {
- std::string uri(context->filePath);
- std::map<std::string, std::string> header;
- Source source(uri, header);
- int32_t ret = context->player->SetSource(source);
- if (ret != 0) {
- MEDIA_ERR_LOG("SetSource failed");
- goto DEINIT_PLAYER;
- }
- ret = context->player->Prepare();
- if (ret != 0) {
- MEDIA_ERR_LOG("Prepare failed");
- goto RELEASE_PLAYER;
- }
- ret = context->player->SetAudioSessionId(context->sessionId);
- if (ret != 0) {
- MEDIA_ERR_LOG("SetAudioSessionId failed");
- goto RELEASE_PLAYER;
- }
- ret = context->player->SetAudioStreamType(AUDIO_STREAM_FITNESS_VIDEO);
- if (ret != 0) {
- MEDIA_ERR_LOG("SetAudioStreamType failed");
- goto RELEASE_PLAYER;
- }
+ std::string uri(context->filePath);
+ std::map<std::string, std::string> header;
+ Source source(uri, header);
+ int32_t ret = context->player->SetSource(source);
+ if (ret != 0) {
+ MEDIA_ERR_LOG("SetSource failed");
+ goto DEINIT_PLAYER;
+ }
+ ret = context->player->Prepare();
+ if (ret != 0) {
+ MEDIA_ERR_LOG("Prepare failed");
+ goto RELEASE_PLAYER;
+ }
+ ret = context->player->SetAudioSessionId(context->sessionId);
+ if (ret != 0) {
+ MEDIA_ERR_LOG("SetAudioSessionId failed");
+ goto RELEASE_PLAYER;
+ }
+ ret = context->player->SetAudioStreamType(AUDIO_STREAM_FITNESS_VIDEO);
+ if (ret != 0) {
+ MEDIA_ERR_LOG("SetAudioStreamType failed");
+ goto RELEASE_PLAYER;
+ }
#if defined(ENABLE_UIKIT)
- ret = context->player->SetVideoSurface(context->surface);
+ ret = context->player->SetVideoSurface(context->surface);
#elif defined(ENABLE_LVGL)
- ret = context->player->SetVideoSurface(g_surface);
+ ret = context->player->SetVideoSurface(g_surface);
#endif
- if (ret != 0) {
- MEDIA_ERR_LOG("SetVideoSurface failed");
- goto RELEASE_PLAYER;
- }
- ret = VideoPlay(context);
- if (ret != 0) {
- goto RELEASE_PLAYER;
- }
- VideoStopAndExit(context->player);
+ if (ret != 0) {
+ MEDIA_ERR_LOG("SetVideoSurface failed");
+ goto RELEASE_PLAYER;
+ }
+ ret = VideoPlay(context);
+ if (ret != 0) {
+ goto RELEASE_PLAYER;
+ }
+ VideoStopAndExit(context->player);
#if defined(ENABLE_LVGL)
- context->isPlaybackCompleted = false;
- if (g_isNeedLoop) {
- MediaMutexLock(g_videoPlayContextMutex);
- g_isPlayed = false;
- g_pause = false;
- MediaMutexUnLock(g_videoPlayContextMutex);
- }
+ context->isPlaybackCompleted = false;
+ MediaMutexLock(g_videoPlayContextMutex);
+ g_isPlayed = false;
+ g_pause = false;
+ MediaMutexUnLock(g_videoPlayContextMutex);
#endif
- } while (g_isNeedLoop);
return 0;
RELEASE_PLAYER:
static int32_t RawFormatSeek(__attribute__((unused)) HalHandle fmtHandle, __attribute__((unused))int32_t streamIndex,
__attribute__((unused)) int64_t toMs, __attribute__((unused)) uint32_t flag)
{
- MEDIA_HAL_LOGE(MODULE_NAME, "not support");
- return ERR_DEMUXER_NOT_SUPPORT;
+ RawFormatMember *member = (RawFormatMember *)fmtHandle;
+ CHK_NULL_RETURN(member, ERR_DEMUXER_INVALID_HANDLE, "input param fmtHandle null");
+ CHK_FAILED_RETURN(member->prepared, true, -1, "not prepared");
+ CHK_NULL_RETURN(member->ops, ERR_DEMUXER_NULL_PTR, "ops null");
+ CHK_NULL_RETURN(member->demuxer, ERR_DEMUXER_NULL_PTR, "demuxer null");
+ CHK_NULL_RETURN(member->ops->Seek, ERR_DEMUXER_NULL_PTR, "Seek null");
+ return member->ops->Seek(member->demuxer, toMs, flag);
}
static int32_t RawFormatSeekPos(__attribute__((unused)) HalHandle fmtHandle, int64_t pos, uint32_t whence)
free(demuxer);
}
+static void FillFrameCommonInfo(FormatPacket *fmtFrame, int64_t timestamp)
+{
+ fmtFrame->packetType = PACKET_TYPE_AUDIO;
+ fmtFrame->trackId = 0;
+ fmtFrame->isKeyFrame = true;
+ fmtFrame->timestampUs = timestamp;
+ fmtFrame->durationUs = -1;
+ fmtFrame->frameIndex = 0;
+ fmtFrame->itemCnt = 0;
+ fmtFrame->item = NULL;
+}
+
static int32_t SBCDemuxerReadFrame(HalHandle fmtHandle, FormatPacket *fmtFrame)
{
SBCDemuxer *demuxer = (SBCDemuxer *)fmtHandle;
return MEDIA_HAL_NO_MEM;
}
- size_t readLen = fread(fmtFrame->data, 1, SBC_BLOCK_DATA_SIZE, demuxer->file);
- if (readLen == -1) {
- free(fmtFrame->data);
- fmtFrame->data = NULL;
- fmtFrame->len = 0;
- MEDIA_HAL_LOGE(MODULE_NAME, "fread falied");
- return MEDIA_HAL_ERR;
- }
-
+ uint32_t readLen = fread(fmtFrame->data, 1, SBC_BLOCK_DATA_SIZE, demuxer->file);
if (readLen == 0) {
free(fmtFrame->data);
fmtFrame->data = NULL;
demuxer->eof = true;
return RET_FILE_EOF;
}
-
fmtFrame->packetType = PACKET_TYPE_AUDIO;
fmtFrame->len = readLen;
-
+ FillFrameCommonInfo(fmtFrame, -1);
return MEDIA_HAL_OK;
}
-static int32_t SBCDemuxerFreeFrame(HalHandle fmtHandle, FormatPacket *fmtFrame)
+static int32_t SBCDemuxerFreeFrame(const HalHandle fmtHandle, FormatPacket *fmtFrame)
{
MEDIA_HAL_UNUSED(fmtHandle);
if (fmtFrame->data != NULL) {
static int32_t SBCDemuxerSeek(HalHandle fmtHandle, int64_t toMs, uint32_t flag)
{
- MEDIA_HAL_UNUSED(fmtHandle);
- MEDIA_HAL_UNUSED(toMs);
+ SBCDemuxer *demuxer = (SBCDemuxer *)fmtHandle;
MEDIA_HAL_UNUSED(flag);
-
- MEDIA_HAL_LOGE(MODULE_NAME, "not support");
+ if (toMs == 0) {
+ int32_t ret = fseek(demuxer->file, toMs, SEEK_SET);
+ if (ret != 0) {
+ MEDIA_HAL_LOGE(MODULE_NAME, "failed to seek to the sbc file header.");
+ return MEDIA_HAL_ERR;
+ }
+ demuxer->eof = false;
+ } else {
+ MEDIA_HAL_LOGE(MODULE_NAME, "not support");
+ return MEDIA_HAL_ERR;
+ }
return MEDIA_HAL_OK;
}
int32_t readLen;
int32_t prepared;
FILE *file;
+ int64_t fileSeekStartPosition;
} SilkRawDemuxer;
static HalHandle SilkDemuxerOpen(const char *url)
demuxer->prepared = false;
demuxer->firstFrame = true;
demuxer->position = 0;
+ demuxer->fileSeekStartPosition = 0;
MEDIA_HAL_LOGI(MODULE_NAME, "buffer Demuxer open");
return (HalHandle)demuxer;
FREE:
static int32_t SilkDemuxerSeek(__attribute__((unused)) HalHandle fmtHandle, __attribute__((unused)) int64_t toMs,
__attribute__((unused)) uint32_t flag)
{
- MEDIA_HAL_LOGE(MODULE_NAME, "not support");
- return MEDIA_HAL_ERR;
+ SilkRawDemuxer *demuxer = (SilkRawDemuxer *)fmtHandle;
+ if (toMs == 0) {
+ int32_t ret = fseek(demuxer->file, demuxer->fileSeekStartPosition, SEEK_SET);
+ if (ret != 0) {
+ MEDIA_HAL_LOGE(MODULE_NAME, "failed to seek to the silk file header.");
+ return MEDIA_HAL_ERR;
+ }
+ demuxer->eof = false;
+ demuxer->position = demuxer->fileSeekStartPosition;
+ MEDIA_HAL_LOGI(MODULE_NAME, "SilkRawDemuxer seek success = %d!!", ftell(demuxer->file));
+ } else {
+ MEDIA_HAL_LOGE(MODULE_NAME, "not support");
+ return MEDIA_HAL_ERR;
+ }
+ return MEDIA_HAL_OK;
}
static int32_t GetBlockSampleRateAndLength(SilkRawDemuxer *demuxer, int32_t *sampleRate, int16_t *length)
{
demuxer->probeSuccessed = true;
demuxer->position = offset + SILK_HEAD_SIZE;
+ demuxer->fileSeekStartPosition = offset + SILK_HEAD_SIZE;
if (fseek(demuxer->file, offset + SILK_HEAD_SIZE, SEEK_SET) != 0) {
return MEDIA_HAL_ERR;
}
${CMAKE_CURRENT_SOURCE_DIR}/diag_transmit/
)
endif()
+set(PRIVATE_HEADER
+ ${PRIVATE_HEADER}
+ ${ROOT_DIR}/middleware/utils/dfx/diag_dfx_cmd/diag_system_cmd/include
+ ${ROOT_DIR}/middleware/utils/dfx/diag_dfx_cmd/diag_system_cmd/dfx_include
+)
set(PRIVATE_DEFINES
)
)
set(PRIVATE_HEADER
+ ${ROOT_DIR}/middleware/utils/dfx/diag_dfx_cmd/last_dump/dfx_include
+ ${ROOT_DIR}/middleware/utils/dfx/diag_dfx_cmd/last_dump/include
)
set(PRIVATE_DEFINES
#include "nandflash_config.h"
#endif
+#if !defined(BUILD_RECOVERY_IMAGE) && !defined(BUILD_APPLICATION_SSB)
+#include "cmsis_os2.h"
+#endif
+
#if MCU_ONLY
static cpu_utils_reboot_cb g_reboot_mcu_cb = NULL;
#endif
}
#ifdef SUPPORT_IPC
+
static bool cpu_utils_sys_reboot_req(ipc_action_t message, const volatile ipc_payload *payload_p,
cores_t src, uint32_t id)
{
#endif
set_update_reset_cause_on_boot(false);
#if MCU_ONLY && defined(USE_CMSIS_OS)
- log_oml_memory_dump();
+ log_bt_req_dump();
#endif
#if MCU_ONLY
if (g_reboot_mcu_cb != NULL) { // when registering g_reboot_mcu_cb, need to restart chip by yourself.
set_trans_type(TRANS_BY_CPU_SINGLE_LINE);
#endif
reset_deal_with_fs();
- cpu_utils_reset_chip_with_log(src, (reboot_cause_t)reboot_reason);
+#if defined(BUILD_APPLICATION_STANDARD) && (USE_COMPRESS_LOG_INSTEAD_OF_SDT_LOG == NO)
+ PRINT("Reboot by core:%d with reason of 0x%x", src, reboot_reason);
+#endif
+
+#if (CORE == MASTER_BY_ALL)
+ set_update_reset_cause_on_boot(false);
+#endif
+ cpu_utils_set_system_status_by_cause(reboot_reason);
+#if !defined(BUILD_RECOVERY_IMAGE) && !defined(BUILD_APPLICATION_SSB)
+ /* Give the semaphore to ensure the main logging task will be active */
+ (void)osSemaphoreRelease(get_save_file_semaphore());
+#else
+ hal_reboot_chip();
+#endif
return true;
}
REBOOT_CAUSE_UPG_COMPLETION = 0x2040, // !< Start of custom reset reasons
REBOOT_CAUSE_MON_MEM_ALMOST_EMPTY = 0x2041,
+ REBOOT_CAUSE_APPLICATION_SECOND_FAULT = 0x2042,
REBOOT_CAUSE_APPLICATION_RPC_TIMEOUT = 0x2100, // !< Start of custom reset reasons
#define SUB_MOD_ID_OFFSET 8\r
#define PKT_DATA_CNT_2 2\r
\r
+static diag_msg_flow_control_hook g_flow_control_hook = NULL;\r
+\r
STATIC bool zdiag_msg_permit(uint32_t module_id, uint8_t level)\r
{\r
if ((zdiag_is_enable() == false) && (uapi_zdiag_offline_log_is_enable() != true)) {\r
return ERRCODE_SUCC;\r
}\r
#endif\r
+\r
+void uapi_diag_register_msg_flow_control_hook(diag_msg_flow_control_hook func)\r
+{\r
+ g_flow_control_hook = func;\r
+}\r
+\r
errcode_t uapi_diag_report_packet(uint16_t cmd_id, diag_option_t *option, const uint8_t *packet,\r
uint16_t packet_size, bool sync)\r
{\r
return ERRCODE_FAIL;\r
}\r
\r
+ if (g_flow_control_hook != NULL && g_flow_control_hook((uint8_t)module_id, level) == false) {\r
+ return ERRCODE_FAIL;\r
+ }\r
diag_pkt_handle_init(&pkt, 1); /* data_cnt 为1 */\r
\r
if (uapi_zdiag_offline_log_is_enable()) {\r
#include "diag_common.h"\r
#include "diag_channel.h"\r
\r
+typedef bool (*diag_msg_flow_control_hook)(uint8_t mid, uint8_t level);\r
+\r
errcode_t diag_msg_proc(uint16_t msg_id, uint8_t *msg, uint32_t msg_len);\r
\r
void uapi_zdiag_set_offline_log_enable(bool enable);\r
bool uapi_zdiag_offline_log_is_enable(void);\r
\r
+void uapi_diag_register_msg_flow_control_hook(diag_msg_flow_control_hook func);\r
#endif\r
)
set(PUBLIC_HEADER
+)
+
+set(PRIVATE_HEADER
${CMAKE_CURRENT_SOURCE_DIR}/diag_system_cmd/include
${CMAKE_CURRENT_SOURCE_DIR}/diag_system_cmd/dfx_include
${CMAKE_CURRENT_SOURCE_DIR}/diag_mocked_shell/include
${CMAKE_CURRENT_SOURCE_DIR}/last_dump/include
${CMAKE_CURRENT_SOURCE_DIR}/sample_data/dfx_include
${CMAKE_CURRENT_SOURCE_DIR}/sample_data/include
-)
-
-set(PRIVATE_HEADER
${CMAKE_SOURCE_DIR}/include/middleware/utils
)
set(PRIVATE_DEFINES
)
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}/include
)
set(PRIVATE_HEADER
uapi_adp_attr adp_attr;
osThreadAttr_t task_attr = {0};
thread_callback func_call = NULL;
- char *real_path = NULL;
- real_path = realpath(dump_inst->file_path, NULL);
- dump_inst->h_file = fopen(real_path, "wb");
+ dump_inst->h_file = fopen(dump_inst->file_path, "wb");
if (dump_inst->h_file == NULL) {
diag_dump_log("open %s failed.", dump_inst->file_path);
return ERRCODE_FAIL;
)
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}/include
)
set(PRIVATE_HEADER
)
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}/include
)
set(PRIVATE_HEADER
)
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}/include
)
set(PRIVATE_HEADER
)
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}/include
)
set(PRIVATE_HEADER
)
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}/include
)
set(PRIVATE_HEADER
#include "last_dump_adapt.h"
#endif
#endif
+#include "chip_io.h"
+#include "nandflash_config.h"
#define STACK_SIZE 3
uapi_watchdog_enable(WDT_MODE_INTERRUPT);
}
+void log_bt_req_dump(void)
+{
+#if (USE_COMPRESS_LOG_INSTEAD_OF_SDT_LOG == NO)
+ log_watch_dog_reconfigure();
+#endif
+
+#ifdef HSO_SUPPORT
+ dfx_last_dump();
+#endif
+ return;
+}
+
void log_oml_memory_dump(void)
{
#if (USE_COMPRESS_LOG_INSTEAD_OF_SDT_LOG == NO)
#if CORE == BT
/* BT core has just one block of ram */
uapi_tcxo_delay_ms(DUMP_DELAY);
-#elif CORE == APPS
+#elif CORE == APPS && !defined(BUILD_RECOVERY_IMAGE)
#ifdef HSO_SUPPORT
dfx_last_dump();
+ nand_driver_init(SPEED_SLOW);
+ set_trans_type(TRANS_BY_CPU_SINGLE_LINE);
+#if defined SAVE_EXC_INFO
+ save_preserve_file_to_nand();
+#endif
#else
log_exception_dump_memory(APP_ITCM_ORIGIN, APP_ITCM_LENGTH);
log_exception_dump_memory(APP_DTCM_ORIGIN, APP_DTCM_LENGTH);
#define RESERVED_PC_INDEX 0
#define RESERVED_LR_INDEX 1
#define RESERVED_SP_INDEX 2
+#define BTRACE_ADDR_EXEC 0x5900E000
+#define BTRACE_ADDR_EXEC_LEN 0X1FF8
// all security core preserve data here, if want to add new,should add tail for compatible befor version
#pragma pack(4)
g_preserve_data_lib.reboot_status = REBOOT_SOFT_PANIC_TRIGGER_STATUS;
}
}
+#if defined SAVE_EXC_INFO
+#if !defined(BUILD_RECOVERY_IMAGE)
+void save_preserve_file_to_nand(void)
+{
+ const char *preserve_info_ex_path = "/user/exc/preserve.bin";
+ int32_t ret = exc_info_write(preserve_info_ex_path, 0, (uint8_t *)&g_preserve_data_lib, sizeof(preserve_data_t));
+ printf("save_preserve_file_to_nand ret:%d.\r\n", ret);
+}
+
+void save_btram_file_to_nand(void)
+{
+ const char *btram_info_path = "/user/exc/bt_ram_info.bin";
+ int32_t ret =
+ exc_info_write(btram_info_path, 0, (uint8_t *)BT_RAM_ORIGIN_APP_MAPPING, BT_RAM_ORIGIN_APP_MAPPING_LENGTH);
+ printf("save_btram_file_to_nand ret:%d.\r\n", ret);
+}
+
+void save_btrace_file_to_nand(void)
+{
+ const char *btrace_info_path = "/user/exc/btrace_info.bin";
+ int32_t ret = exc_info_write(btrace_info_path, 0, (uint8_t *)BTRACE_ADDR_EXEC, BTRACE_ADDR_EXEC_LEN);
+ printf("save_btrace_file_to_nand ret:%d.\r\n", ret);
+}
+#endif
+#endif
#ifdef weak
weak void watchdog_porting_pmu_reboot(void)
{
bool is_hardwdg_timeout = false;
if (!hal_reboot_get_ulp_aon_no_poweroff_flag()) {
+ hal_reboot_set_first_power_on_flag();
hal_reboot_set_ulp_aon_no_poweroff_flag();
memset_s((void *)&g_preserve_data_lib, sizeof(g_preserve_data_lib), 0, sizeof(g_preserve_data_lib));
+ } else {
+ hal_reboot_clear_first_power_on_flag();
}
if (g_preserve_data_lib.magic == 0) { // Hard power-off restart
void show_reboot_info(void);
+#if !defined(BUILD_RECOVERY_IMAGE)
+void save_preserve_file_to_nand(void);
+
+void save_btram_file_to_nand(void);
+
+void save_btrace_file_to_nand(void);
+#endif
/**
* @}
*/
set(COMPONENT_NAME "i18n")
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}/frameworks/i18n/include
- ${CMAKE_CURRENT_SOURCE_DIR}/interfaces/kits/i18n/include
)
set(PRIVATE_HEADER
+ ${CMAKE_CURRENT_SOURCE_DIR}/frameworks/i18n/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/interfaces/kits/i18n/include
)
set(SOURCES
set(COMPONENT_NAME "resmgr")
set(PUBLIC_HEADER
- ${CMAKE_CURRENT_SOURCE_DIR}/frameworks/resmgr_lite/include
- ${CMAKE_CURRENT_SOURCE_DIR}/interfaces/innerkits/include
)
set(PRIVATE_HEADER
+ ${CMAKE_CURRENT_SOURCE_DIR}/frameworks/resmgr_lite/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/interfaces/innerkits/include
)
set(SOURCES
set(PRIVATE_HEADER
${ROOT_DIR}/open_source/openharmony/third_party/cJSON
+ ${ROOT_DIR}/open_source/openharmony/base/global/resmgr_lite/frameworks/resmgr_lite/include
+ ${ROOT_DIR}/open_source/openharmony/base/global/resmgr_lite/interfaces/innerkits/include
)
set(SOURCES
#endif // FEATURE_COMPONENT_TABS
KEYWORD(TEXT, text) // tag name, picker-view attr value
KEYWORD(TEXT_ALIGN, textAlign) // text style type
+ KEYWORD(TEXT_ALIGN_VERTICAL, textAlignVertical) //text style vertical type
KEYWORD(TEXT_OVERFLOW, textOverflow) // text style type
KEYWORD(TIME, time) // picker-view attr value
#ifdef FEATURE_COMPONENT_VIDEO
KEYWORD(TIME_UPDATE, timeupdate) // video component timeupdate event tag
#endif // FEATURE_COMPONENT_VIDEO
KEYWORD(TOP, top)
+ KEYWORD(BOTTOM, bottom)
KEYWORD(TOTAL_ANGLE, total-angle) // circle progress style
#ifdef JS_TOUCH_EVENT_SUPPORT
KEYWORD(TOUCHCANCEL, touchcancel) // ontouchcancel event
const char * const BaiduMapComponent::FUNC_STOP_LISTEN_MY_GEO_LOCATION = "stop_listen_my_geo_location";\r
const char * const BaiduMapComponent::FUNC_GET_MY_GEO_STATUS = "get_my_geo_status";\r
const char * const BaiduMapComponent::FUNC_GET_MY_GEO_LOCATION = "get_my_geo_location";\r
+const char * const BaiduMapComponent::FUNC_DRAW_CIRCLE = "draw_circle";\r
+const char * const BaiduMapComponent::FUNC_DRAW_NAVI_MARKER = "draw_navi_marker";\r
+const char * const BaiduMapComponent::FUNC_OVERLAYER_CLEAR_CIRCLE = "overlayer_clear_circle";\r
+const char * const BaiduMapComponent::FUNC_OVERLAYER_CLEAR_MARKER = "overlayer_clear_marker";\r
+const char * const BaiduMapComponent::FUNC_OVERLAYER_CLEAR_NAVI_MARKER = "overlayer_clear_navi_marker";\r
+const char * const BaiduMapComponent::FUNC_DESTROY = "destroy";\r
\r
const FunctionMap BaiduMapComponent::funcMap[] = {\r
{FUNC_SET_ZOOM_EVENT_ENABLED, SetZoomEventEnabled},\r
{FUNC_START_LISTEN_MY_GEO_LOCATION, StartListenMyGeoLocation},\r
{FUNC_STOP_LISTEN_MY_GEO_LOCATION, StopListenMyGeoLocation},\r
{FUNC_GET_MY_GEO_STATUS, GetMyGeoStatus},\r
- {FUNC_GET_MY_GEO_LOCATION, GetMyGeoLocation}\r
+ {FUNC_GET_MY_GEO_LOCATION, GetMyGeoLocation},\r
+ {FUNC_DRAW_CIRCLE, DrawCircle},\r
+ {FUNC_DRAW_NAVI_MARKER, DrawNaviMarker},\r
+ {FUNC_OVERLAYER_CLEAR_CIRCLE, OverlayerClearCircle},\r
+ {FUNC_OVERLAYER_CLEAR_MARKER, OverlayerClearMarker},\r
+ {FUNC_OVERLAYER_CLEAR_NAVI_MARKER, OverlayerClearNaviMarker},\r
+ {FUNC_DESTROY, Destroy}\r
};\r
BaiduMapComponent::BaiduMapComponent(jerry_value_t options, jerry_value_t children, AppStyleManager* styleManager)\r
: Component(options, children, styleManager)\r
return UNDEFINED;\r
}\r
\r
+JSValue BaiduMapComponent::DrawNaviMarker(const jerry_value_t func, const jerry_value_t context,\r
+ const jerry_value_t args[], const jerry_length_t argsSize)\r
+{\r
+ HILOG_INFO(HILOG_MODULE_ACE,"DrawNaviMarker");\r
+ char *json_navi_marker = MallocStringOf(args[0]);\r
+ MapComponentApi::getInstance().draw_navi_marker(json_navi_marker);\r
+ return UNDEFINED;\r
+}\r
+\r
JSValue BaiduMapComponent::DrawPolygon(const jerry_value_t func, const jerry_value_t context,\r
const jerry_value_t args[], const jerry_length_t argsSize)\r
{\r
return UNDEFINED;\r
}\r
\r
+JSValue BaiduMapComponent::DrawCircle(const jerry_value_t func, const jerry_value_t context,\r
+ const jerry_value_t args[], const jerry_length_t argsSize)\r
+{\r
+ HILOG_INFO(HILOG_MODULE_ACE,"DrawCircle");\r
+ char *json_circle = MallocStringOf(args[0]);\r
+ MapComponentApi::getInstance().draw_circle(json_circle);\r
+ return UNDEFINED;\r
+}\r
+\r
JSValue BaiduMapComponent::DrawText(const jerry_value_t func, const jerry_value_t context,\r
const jerry_value_t args[], const jerry_length_t argsSize)\r
{\r
return UNDEFINED;\r
}\r
\r
+JSValue BaiduMapComponent::OverlayerClearCircle(const jerry_value_t func, const jerry_value_t context,\r
+ const jerry_value_t args[], const jerry_length_t argsSize)\r
+{\r
+ HILOG_INFO(HILOG_MODULE_ACE,"OverlayerClearCircle");\r
+ MapComponentApi::getInstance().overlayer_clear_circle();\r
+ return UNDEFINED;\r
+}\r
+\r
+JSValue BaiduMapComponent::OverlayerClearMarker(const jerry_value_t func, const jerry_value_t context,\r
+ const jerry_value_t args[], const jerry_length_t argsSize)\r
+{\r
+ HILOG_INFO(HILOG_MODULE_ACE,"OverlayerClearMarker");\r
+ MapComponentApi::getInstance().overlayer_clear_marker();\r
+ return UNDEFINED;\r
+}\r
+\r
+JSValue BaiduMapComponent::OverlayerClearNaviMarker(const jerry_value_t func, const jerry_value_t context,\r
+ const jerry_value_t args[], const jerry_length_t argsSize)\r
+{\r
+ HILOG_INFO(HILOG_MODULE_ACE,"OverlayerClearNaviMarker");\r
+ MapComponentApi::getInstance().overlayer_clear_navi_marker();\r
+ return UNDEFINED;\r
+}\r
+\r
+JSValue BaiduMapComponent::Destroy(const jerry_value_t func, const jerry_value_t context,\r
+ const jerry_value_t args[], const jerry_length_t argsSize)\r
+{\r
+ HILOG_INFO(HILOG_MODULE_ACE,"Destroy");\r
+ MapComponentApi::getInstance().destroy();\r
+ return UNDEFINED;\r
+}\r
+\r
} // namespace ACELite\r
} // namespace OHOS\r
#endif // FEATURE_COMPONENT_BAIDUMAP
\ No newline at end of file
static JSValue ClearMapOverlayer(const jerry_value_t func, const jerry_value_t context,\r
const jerry_value_t args[], const jerry_length_t argsSize);\r
\r
+ /**\r
+ * OverlayerClearCircle\r
+ */\r
+ static JSValue OverlayerClearCircle(const jerry_value_t func, const jerry_value_t context,\r
+ const jerry_value_t args[], const jerry_length_t argsSize);\r
+\r
+ /**\r
+ * OverlayerClearMarker\r
+ */\r
+ static JSValue OverlayerClearMarker(const jerry_value_t func, const jerry_value_t context,\r
+ const jerry_value_t args[], const jerry_length_t argsSize);\r
+\r
+ /**\r
+ * OverlayerClearNaviMarker\r
+ */\r
+ static JSValue OverlayerClearNaviMarker(const jerry_value_t func, const jerry_value_t context,\r
+ const jerry_value_t args[], const jerry_length_t argsSize);\r
+\r
/**\r
* DrawMarker, Construction point\r
*\r
* @param argsSize Indicates the size of function arguments\r
*/\r
static JSValue DrawMarker(const jerry_value_t func, const jerry_value_t context,\r
- const jerry_value_t args[], const jerry_length_t argsSize);\r
+ const jerry_value_t args[], const jerry_length_t argsSize);\r
+\r
+ /**\r
+ * DrawNaviMarker\r
+ *\r
+ * @param thisVal Indicates function execute context\r
+ * @param args Indicates the function arguments\r
+ * @param argsSize Indicates the size of function arguments\r
+ */\r
+ static JSValue DrawNaviMarker(const jerry_value_t func, const jerry_value_t context,\r
+ const jerry_value_t args[], const jerry_length_t argsSize);\r
\r
/**\r
* DrawPolygon, Constructing Polygons\r
* @param argsSize Indicates the size of function arguments\r
*/\r
static JSValue DrawPath(const jerry_value_t func, const jerry_value_t context,\r
- const jerry_value_t args[], const jerry_length_t argsSize);\r
+ const jerry_value_t args[], const jerry_length_t argsSize);\r
+\r
+ /**\r
+ * DrawCircle\r
+ *\r
+ * @param thisVal Indicates function execute context\r
+ * @param args Indicates the function arguments\r
+ * @param argsSize Indicates the size of function arguments\r
+ */\r
+ static JSValue DrawCircle(const jerry_value_t func, const jerry_value_t context,\r
+ const jerry_value_t args[], const jerry_length_t argsSize);\r
\r
/**\r
* DrawText, Constructed text\r
static JSValue GetMyGeoLocation(const jerry_value_t func, const jerry_value_t context,\r
const jerry_value_t args[], const jerry_length_t argsSize);\r
\r
+ /**\r
+ * Destroy\r
+ *\r
+ * @param thisVal Indicates function execute context\r
+ * @param args Indicates the function arguments\r
+ * @param argsSize Indicates the size of function arguments\r
+ */\r
+ static JSValue Destroy(const jerry_value_t func, const jerry_value_t context,\r
+ const jerry_value_t args[], const jerry_length_t argsSize);\r
+\r
static const char * const FUNC_SET_ZOOM_EVENT_ENABLED;\r
static const char * const FUNC_ZOOM_IN;\r
static const char * const FUNC_ZOOM_OUT;\r
static const char * const FUNC_STOP_LISTEN_MY_GEO_LOCATION;\r
static const char * const FUNC_GET_MY_GEO_STATUS;\r
static const char * const FUNC_GET_MY_GEO_LOCATION;\r
+ static const char * const FUNC_DRAW_CIRCLE;\r
+ static const char * const FUNC_DRAW_NAVI_MARKER;\r
+ static const char * const FUNC_OVERLAYER_CLEAR_CIRCLE;\r
+ static const char * const FUNC_OVERLAYER_CLEAR_MARKER;\r
+ static const char * const FUNC_OVERLAYER_CLEAR_NAVI_MARKER;\r
+ static const char * const FUNC_DESTROY;\r
static const FunctionMap funcMap[];\r
\r
protected:\r
namespace OHOS {
namespace ACELite {
+
+UITextLanguageAlignment align_horizontal = UITextLanguageAlignment::TEXT_ALIGNMENT_LEFT;
+UITextLanguageAlignment align_vertical = UITextLanguageAlignment::TEXT_ALIGNMENT_TOP;
+
TextComponent::TextComponent(jerry_value_t options, jerry_value_t children, AppStyleManager *styleManager)
: Component(options, children, styleManager),
fontSize_(DEFAULT_FONT_SIZE),
case K_LETTER_SPACING:
SetTextLetterSpace(uiLabel_, styleItem);
break;
+ case K_TEXT_ALIGN_VERTICAL:
+ SetTextAlignVertical(uiLabel_, styleItem);
+ break;
case K_TEXT_ALIGN:
SetTextAlign(uiLabel_, styleItem);
break;
}
}
+void TextComponent::SetTextAlignVertical(UILabel &label, const AppStyleItem *styleItem) const
+{
+ if (!IsStyleValueTypeString(styleItem)) {
+ HILOG_ERROR(HILOG_MODULE_ACE, "text text vertical align style value is invalid!");
+ return;
+ }
+
+ const char * const stylePropValue = GetStyleStrValue(styleItem);
+ uint16_t alignId = KeyParser::ParseKeyId(stylePropValue, GetStyleStrValueLen(styleItem));
+ switch (alignId) {
+ case K_CENTER:
+ align_vertical = UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER;
+ break;
+ case K_BOTTOM:
+ align_vertical = UITextLanguageAlignment::TEXT_ALIGNMENT_BOTTOM;
+ break;
+ case K_TOP:
+ align_vertical = UITextLanguageAlignment::TEXT_ALIGNMENT_TOP;
+ break;
+ default:
+ HILOG_WARN(HILOG_MODULE_ACE, "text vertical textAlign style value =%s is invalid, using default instead",
+ stylePropValue);
+ break;
+ }
+ label.SetAlign(align_horizontal, align_vertical);
+}
+
void TextComponent::SetTextAlign(UILabel &label, const AppStyleItem *styleItem) const
{
if (!IsStyleValueTypeString(styleItem)) {
- HILOG_ERROR(HILOG_MODULE_ACE, "text text align style value is invalid!");
+ HILOG_ERROR(HILOG_MODULE_ACE, "text text horizontal align style value is invalid!");
return;
}
- // set ui label text align, ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTER are support.
+
const char * const stylePropValue = GetStyleStrValue(styleItem);
uint16_t alignId = KeyParser::ParseKeyId(stylePropValue, GetStyleStrValueLen(styleItem));
- UITextLanguageAlignment align = UITextLanguageAlignment::TEXT_ALIGNMENT_LEFT;
switch (alignId) {
case K_LEFT:
- align = UITextLanguageAlignment::TEXT_ALIGNMENT_LEFT;
+ align_horizontal = UITextLanguageAlignment::TEXT_ALIGNMENT_LEFT;
break;
case K_RIGHT:
- align = UITextLanguageAlignment::TEXT_ALIGNMENT_RIGHT;
+ align_horizontal = UITextLanguageAlignment::TEXT_ALIGNMENT_RIGHT;
break;
case K_CENTER:
- align = UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER;
+ align_horizontal = UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER;
break;
default:
- HILOG_WARN(HILOG_MODULE_ACE, "text textAlign style value =%s is invalid, using default instead",
+ HILOG_WARN(HILOG_MODULE_ACE, "text horizontal textAlign style value =%s is invalid, using default instead",
stylePropValue);
break;
}
- label.SetAlign(align, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);
+ label.SetAlign(align_horizontal, align_vertical);
}
+
+
} // namespace ACELite
} // namespace OHOS
private:
// parse js text align style to ui_label
void SetTextAlign(UILabel& label, const AppStyleItem* styleItem) const;
+ void SetTextAlignVertical(UILabel& label, const AppStyleItem* styleItem) const;
// parse js text size style to fontSize_
void SetTextSize(const AppStyleItem* styleItem);
// parse js text color style to ui_label
constexpr char LON[] = "lon";
constexpr char LAT[] = "lat";
+//BT_CONNECT
+constexpr char CONNECT[] = "connectcallback";
+constexpr char DISCONNECT[] = "disconnectcallback";
namespace OHOS {
namespace ACELite {
OHOS::ACELite::JSIValue regeocode_search_successCallback = nullptr;
OHOS::ACELite::JSIValue regeocode_search_failCallback = nullptr;
OHOS::ACELite::JSIValue regeocode_search_callbackContext = nullptr;
+//BT_connect
+OHOS::ACELite::JSIValue bt_connect_successCallback = nullptr;
+OHOS::ACELite::JSIValue bt_connect_failCallback = nullptr;
+OHOS::ACELite::JSIValue bt_connect_callbackContext = nullptr;
static bool CheckIsJsValueDefined(OHOS::ACELite::JSIValue jsValue)
{
fail = regeocode_search_failCallback;
context = regeocode_search_callbackContext;
break;
+ case MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED:
+ success = bt_connect_successCallback;
+ context = bt_connect_callbackContext;
+ break;
+ case MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_DISCONNECTED:
+ success = bt_connect_failCallback;
+ context = bt_connect_callbackContext;
+ break;
default:
- HILOG_ERROR(HILOG_MODULE_ACE, "Invalid command type");
- break;
+ HILOG_ERROR(HILOG_MODULE_ACE, "Invalid command type");
+ break;
}
ReleaseJsValue(regeocode_search_failCallback);
ReleaseJsValue(regeocode_search_callbackContext);
break;
+ case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH:
+ ReleaseJsValue(route_riding_successCallback);
+ ReleaseJsValue(route_riding_failCallback);
+ ReleaseJsValue(route_riding_callbackContext);
+ break;
+ case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH:
+ ReleaseJsValue(route_walking_successCallback);
+ ReleaseJsValue(route_walking_failCallback);
+ ReleaseJsValue(route_walking_callbackContext);
+ break;
+ case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH:
+ ReleaseJsValue(route_transit_successCallback);
+ ReleaseJsValue(route_transit_failCallback);
+ ReleaseJsValue(route_transit_callbackContext);
+ break;
+ case MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED:
+ ReleaseJsValue(bt_connect_successCallback);
+ ReleaseJsValue(bt_connect_failCallback);
+ ReleaseJsValue(bt_connect_callbackContext);
+ break;
default:
HILOG_ERROR(HILOG_MODULE_ACE, "ReleaseMsgJsValue Invalid command type");
break;
regeocode_search_failCallback = OHOS::ACELite::JSI::AcquireValue(callback);
}
break;
+ case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH:
+ if (isSuccess) {
+ route_riding_successCallback = OHOS::ACELite::JSI::AcquireValue(callback);
+ } else {
+ route_riding_failCallback = OHOS::ACELite::JSI::AcquireValue(callback);
+ }
+ break;
+ case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH:
+ if (isSuccess) {
+ route_walking_successCallback = OHOS::ACELite::JSI::AcquireValue(callback);
+ } else {
+ route_walking_failCallback = OHOS::ACELite::JSI::AcquireValue(callback);
+ }
+ break;
+ case MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH:
+ if (isSuccess) {
+ route_transit_successCallback = OHOS::ACELite::JSI::AcquireValue(callback);
+ } else {
+ route_transit_failCallback = OHOS::ACELite::JSI::AcquireValue(callback);
+ }
+ break;
+ case MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED:
+ if (isSuccess) {
+ bt_connect_successCallback = OHOS::ACELite::JSI::AcquireValue(callback);
+ } else {
+ bt_connect_failCallback = OHOS::ACELite::JSI::AcquireValue(callback);
+ }
+ break;
default:
HILOG_ERROR(HILOG_MODULE_ACE, "setCallbackFunction Invalid command type");
return false;
char *data = JSI::JsonStringify(args[0]);
HILOG_INFO(HILOG_MODULE_ACE,"route_riding_search : %s \n",data);
//success Callback & failed Callback
- ReleaseJsValue(route_riding_successCallback);
- ReleaseJsValue(route_riding_failCallback);
- ReleaseJsValue(route_riding_callbackContext);
+ ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH);
route_riding_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal);
OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS);
OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL);
-
- if (!OHOS::ACELite::JSI::ValueIsUndefined(successCallback)) {
- if (!OHOS::ACELite::JSI::ValueIsFunction(successCallback)) {
- HILOG_ERROR(HILOG_MODULE_ACE, "route_riding_search Success callback value is not a function");
- } else {
- route_riding_successCallback = OHOS::ACELite::JSI::AcquireValue(successCallback);
- }
- } else {
- HILOG_ERROR(HILOG_MODULE_ACE, "route_riding_search Success callback value is undefined");
- }
-
- if (!OHOS::ACELite::JSI::ValueIsUndefined(failCallback)) {
- if (!OHOS::ACELite::JSI::ValueIsFunction(failCallback)) {
- HILOG_ERROR(HILOG_MODULE_ACE, "route_riding_search Fail callback value is not a function");
- } else {
- route_riding_failCallback = OHOS::ACELite::JSI::AcquireValue(failCallback);
- }
- } else {
- HILOG_ERROR(HILOG_MODULE_ACE, "route_riding_search Fail callback value is undefined");
- }
-
- msg_center_vector_navi_req_dst_by_text(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_DST_BY_TEST,data,strlen(data));
+ setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH,true);
+ setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH,false);
+ msg_center_vector_navi_req_route_riding_search(MSGCENTER_CMD_VECTOR_NAVI, MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_RIDING_SEARCH,data,strlen(data));
return JSI::CreateBoolean(0);
}
char *data = JSI::JsonStringify(args[0]);
HILOG_INFO(HILOG_MODULE_ACE,"route_walking_search : %s \n",data);
//success Callback & failed Callback
- ReleaseJsValue(route_walking_successCallback);
- ReleaseJsValue(route_walking_failCallback);
- ReleaseJsValue(route_walking_callbackContext);
+ ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH);
route_walking_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal);
OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS);
OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL);
-
- if (!OHOS::ACELite::JSI::ValueIsUndefined(successCallback)) {
- if (!OHOS::ACELite::JSI::ValueIsFunction(successCallback)) {
- HILOG_ERROR(HILOG_MODULE_ACE, "route_walking_search Success callback value is not a function");
- } else {
- route_walking_successCallback = OHOS::ACELite::JSI::AcquireValue(successCallback);
- }
- } else {
- HILOG_ERROR(HILOG_MODULE_ACE, "route_walking_search Success callback value is undefined");
- }
-
- if (!OHOS::ACELite::JSI::ValueIsUndefined(failCallback)) {
- if (!OHOS::ACELite::JSI::ValueIsFunction(failCallback)) {
- HILOG_ERROR(HILOG_MODULE_ACE, "route_walking_search Fail callback value is not a function");
- } else {
- route_walking_failCallback = OHOS::ACELite::JSI::AcquireValue(failCallback);
- }
- } else {
- HILOG_ERROR(HILOG_MODULE_ACE, "route_walking_search Fail callback value is undefined");
- }
- msg_center_vector_navi_req_dst_by_text(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_DST_BY_TEST,data,strlen(data));
+ setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH,true);
+ setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH,false);
+ msg_center_vector_navi_req_route_walking_search(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_WALKING_SEARCH,data,strlen(data));
return JSI::CreateBoolean(0);
}
char *data = JSI::JsonStringify(args[0]);
HILOG_INFO(HILOG_MODULE_ACE,"route_transit_search : %s \n",data);
//success Callback & failed Callback
- ReleaseJsValue(route_transit_successCallback);
- ReleaseJsValue(route_transit_failCallback);
- ReleaseJsValue(route_transit_callbackContext);
+ ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH);
route_transit_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal);
OHOS::ACELite::JSIValue successCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_SUCCESS);
OHOS::ACELite::JSIValue failCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CB_FAIL);
-
- if (!OHOS::ACELite::JSI::ValueIsUndefined(successCallback)) {
- if (!OHOS::ACELite::JSI::ValueIsFunction(successCallback)) {
- HILOG_ERROR(HILOG_MODULE_ACE, "route_transit_search Success callback value is not a function");
- } else {
- route_transit_successCallback = OHOS::ACELite::JSI::AcquireValue(successCallback);
- }
- } else {
- HILOG_ERROR(HILOG_MODULE_ACE, "route_transit_search Success callback value is undefined");
- }
-
- if (!OHOS::ACELite::JSI::ValueIsUndefined(failCallback)) {
- if (!OHOS::ACELite::JSI::ValueIsFunction(failCallback)) {
- HILOG_ERROR(HILOG_MODULE_ACE, "route_transit_search Fail callback value is not a function");
- } else {
- route_transit_failCallback = OHOS::ACELite::JSI::AcquireValue(failCallback);
- }
- } else {
- HILOG_ERROR(HILOG_MODULE_ACE, "route_transit_search Fail callback value is undefined");
- }
- msg_center_vector_navi_req_dst_by_text(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_DST_BY_TEST,data,strlen(data));
+ setCallbackFunction(successCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH,true);
+ setCallbackFunction(failCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH,false);
+ msg_center_vector_navi_req_route_transit_search(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_ROUTE_TRANSIT_SEARCH,data,strlen(data));
return JSI::CreateBoolean(0);
}
return JSI::CreateBoolean(0);
}
+/**
+ * destroy page interface
+ */
+JSIValue BaiduMapComponentModule::Destroy_page(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize)
+{
+ HILOG_INFO(HILOG_MODULE_ACE,"Destroy_page");
+ char *data = JSI::JsonStringify(args[0]);
+ HILOG_INFO(HILOG_MODULE_ACE,"Destroy_page : %s \n",data);
+ msg_center_vector_navi_req_destroy_page(MSGCENTER_CMD_VECTOR_NAVI,MSGCENTER_TYPE_ID_VECTOR_NAVI_REQ_DESTROY_PAGE,data,strlen(data));
+ return JSI::CreateBoolean(0);
+}
+
+/**
+ * BT connect interface
+ */
+JSIValue BaiduMapComponentModule::onBTConnect(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize)
+{
+ HILOG_INFO(HILOG_MODULE_ACE,"onBTConnect");
+ char *data = JSI::JsonStringify(args[0]);
+ HILOG_INFO(HILOG_MODULE_ACE,"onBTConnect : %s \n",data);
+ //success Callback & failed Callback
+ ReleaseMsgJsValue(MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED);
+ bt_connect_callbackContext = OHOS::ACELite::JSI::AcquireValue(thisVal);
+ OHOS::ACELite::JSIValue connectCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], CONNECT);
+ OHOS::ACELite::JSIValue disconnectCallback = OHOS::ACELite::JSI::GetNamedProperty(args[0], DISCONNECT);
+ setCallbackFunction(connectCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED,true);
+ setCallbackFunction(disconnectCallback,MSGCENTER_TYPE_ID_VECTOR_NAVI_BT_CONNECTED,false);
+ return JSI::CreateBoolean(0);
+}
+
void InitBaiduMapComponentModule(JSIValue exports)
{
HILOG_INFO(HILOG_MODULE_ACE,"InitBaiduMapComponentModule");
JSI::SetModuleAPI(exports, "geocode_search", BaiduMapComponentModule::Geocode_search);
JSI::SetModuleAPI(exports, "regeocode_search", BaiduMapComponentModule::Regeocode_search);
+ /**
+ * destroy page
+ */
+ JSI::SetModuleAPI(exports, "destroy_page", BaiduMapComponentModule::Destroy_page);
+
+ /**
+ * BT connect interface
+ */
+ JSI::SetModuleAPI(exports, "onBTConnect", BaiduMapComponentModule::onBTConnect);
+
}
} // namespace ACELite
static JSIValue Geocode_search(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
static JSIValue Regeocode_search(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+
+ /**
+ * destroy page interface
+ */
+ static JSIValue Destroy_page(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+
+ /**
+ * bt connect interface
+ */
+ static JSIValue onBTConnect(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+
};
void InitBaiduMapComponentModule(JSIValue exports);
${CMAKE_CURRENT_SOURCE_DIR}/interfaces/kits/communication/broadcast
${CMAKE_CURRENT_SOURCE_DIR}/interfaces/kits/registry
${CMAKE_CURRENT_SOURCE_DIR}/interfaces/kits/samgr
- ${CMAKE_CURRENT_SOURCE_DIR}/services/samgr/dependency
- ${CMAKE_CURRENT_SOURCE_DIR}/services/samgr/registry
)
set(PRIVATE_HEADER
${ROOT_DIR}/application/wearable/ohos_deps
${ROOT_DIR}/open_source/openharmony/utils/native/lite/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/services/samgr/dependency
+ ${CMAKE_CURRENT_SOURCE_DIR}/services/samgr/registry
${PUBLIC_HEADER}
)
*/
static JSIValue SrcGetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+ /**
+ * the getter of audio srcInner property
+ *
+ * @param thisVal Indicates function execute context
+ * @param args Indicates the function arguments
+ * @param argsSize Indicates the size of function arguments
+ */
+ static JSIValue SrcInnerGetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+
/**
* the setter of audio src property
*
*/
static JSIValue SrcSetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+ /**
+ * the setter of audio srcInner property
+ *
+ * @param thisVal Indicates function execute context
+ * @param args Indicates the function arguments
+ * @param argsSize Indicates the size of function arguments
+ */
+ static JSIValue SrcInnerSetter(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize);
+
/**
* the getter of audio currentTime property
*
bool Stop();
- char *GetSrc() const;
+ char *GetSrc(bool innerFlag) const;
double GetCurrentTime() const;
bool IsPlaying() const;
- bool SetSrc(char *src);
+ bool SetSrc(char *src, bool innerFlag);
bool SetCurrentTime(double currentTime) const;
static MediaMutexHandle lock_;
static MediaThreadCondHandle condition_;
static void *UpdateTimeHandler(void *arg);
+ static int GetSrcInnerPrefix(char *src, char *dest);
Media::Player *player_;
std::shared_ptr<AudioPlayerCallback> callback_;
AudioEventListener *onErrorListener_;
AudioEventListener *onTimeUpdateListener_;
char *src_;
+ char *srcInner_;
char *status_;
double volume_;
bool autoPlay_;
bool muted_;
bool isRunning_;
+ bool isSysSrc_;
MediaThreadIdHandle updateTimeProcess_;
};
} // namespace ACELite
LOCAL_MGR_MSG_ID_READ_REMOTE_RSSI_BLE,
LOCAL_MGR_MSG_ID_PAIRED_KEYS, /* 上报BLE配对完成密钥 */
LOCAL_MGR_MSG_ID_REPORT_TERMINATE_ADV, /* 上报广播终止结果 */
+ LOCAL_MGR_MSG_ID_CONN_PARAM_UPDATE, /* 连接参数更新 */
};
/* 发送本地设备管理模块消息 */
bool btsrv_is_bluetooth_disable(void);
bool btsrv_set_local_addr(const bd_addr_t *bd_addr);
+bool is_bts_auto_reconnect_enable(void);
/* 本地设备运行模式设置和查询 */
uint32_t btsrv_set_local_device_mode(btsrv_local_device_mode mode);
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2024. All rights reserved.
+ *
+ * Description: AMS Client Test module.
+ */
+/**
+ * @defgroup bluetooth_sample_ble_ams AMS TEST API
+ * @ingroup bluetooth
+ * @{
+ */
+
+#ifndef SAMPLE_BLE_AMS_H
+#define SAMPLE_BLE_AMS_H
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void ble_ams_client_at_cmd(uint8_t cmd_id, char **params, uint8_t params_cnt);
+
+/**
+ * @}
+ */
+#ifdef __cplusplus
+}
+#endif
+#endif
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2024. All rights reserved.
+ *
+ * Description: ANCS Client Test module.
+ */
+/**
+ * @defgroup bluetooth_sample_ble_ancs ANCS TEST API
+ * @ingroup bluetooth
+ * @{
+ */
+
+#ifndef SAMPLE_BLE_ANCS_H
+#define SAMPLE_BLE_ANCS_H
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void ble_ancs_client_at_cmd(uint8_t cmd_id, char **params, uint8_t params_cnt);
+
+/**
+ * @}
+ */
+#ifdef __cplusplus
+}
+#endif
+#endif
\ No newline at end of file
${CMAKE_CURRENT_SOURCE_DIR}/sample_ble_bas.c
${CMAKE_CURRENT_SOURCE_DIR}/sample_ble_hid.c
${CMAKE_CURRENT_SOURCE_DIR}/sample_ble_fmp.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/sample_ble_ancs.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/sample_ble_ams.c
)
set(BTH_SAMPLE_LIST "${BTH_SAMPLE_LIST}" "${bt_comm_src_list}" CACHE INTERNAL "bt ram obj list" FORCE)
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2024. All rights reserved.
+ * Description: This module include test function of AMS Client module.
+ */
+#include <stdint.h>
+#include <stdlib.h>
+#include <td_base.h>
+#include "datatype.h"
+#include "sdk_general.h"
+#include "mpc_dispatch.h"
+#include "bt_at_cmd_api.h"
+#include "sample_common.h"
+#include "ble_ams_client.h"
+#include "sample_ble_ams.h"
+
+#define HEX_BYTE_CHAR_COUNT 2
+
+/* AMS客户端接口命令id */
+typedef enum {
+ BLE_SAMPLE_AMS_CLIENT_REGISTER_CBK = 1, /* 1 注册AMS客户端回调函数 */
+ BLE_SAMPLE_AMS_CLIENT_SETUP, /* 2 AMS客户端连接服务端 */
+ BLE_SAMPLE_AMS_CLIENT_SUBSCRIBE_REMOTE_COMMNAD, /* 3 订阅远端命令 */
+ BLE_SAMPLE_AMS_CLIENT_SUBSCRIBE_ENTITY_UPDATE, /* 4 订阅实体更新 */
+ BLE_SAMPLE_AMS_CLIENT_SEND_REMOTE_CMD, /* 5 发送远端命令 */
+ BLE_SAMPLE_AMS_CLIENT_REGISTER_INTERESTED_ENTITY_ATT, /* 6 注册感兴趣的实体属性 */
+ BLE_SAMPLE_AMS_CLIENT_RETRIEVE_FULL_ENTITY_ATT, /* 7 请求加载完整实体属性 */
+ BLE_SAMPLE_AMS_CLIENT_READ_FULL_ENTITY_ATT /* 8 读取完整实体属性 */
+} ble_ams_client_at_cmd_id_t;
+
+/* 命令处理函数接口 */
+typedef uint8_t (*ble_ams_client_at_func_t)(uint8_t argc, char **argv);
+
+/* AMS客户端AT命令id与接口对应关系 */
+typedef struct {
+ ble_ams_client_at_cmd_id_t id;
+ ble_ams_client_at_func_t func;
+} ble_ams_client_at_hdl_info_t;
+
+/* 当前活跃媒体设备支持的远端命令 */
+ble_ams_remote_cmd_rpt_t *g_remote_cmd_supported = NULL;
+
+/* AMS服务建立结果回调 */
+static void ble_ams_client_setup_result_cbk(uint8_t client_id, uint16_t conn_id, errcode_t status)
+{
+ bts_info("[AMSClientSetupCBK]conn_id:%d status:0x%x\r\n", conn_id, status);
+}
+
+/* AMS服务订阅结果回调 */
+static void ble_ams_client_subscribe_result_cbk(uint8_t client_id, uint16_t conn_id,
+ ams_client_subscribe_type_t type, gatt_status_t status)
+{
+ bts_info("[AMSClientSubscribeResultCBK]conn_id:%d type:%d status:0x%x\r\n", conn_id, type, status);
+}
+
+/* AMS服务远端支持的命令上报 */
+static void ble_ams_client_remote_cmd_cbk(uint8_t client_id, uint16_t conn_id,
+ ble_ams_remote_cmd_rpt_t *remote_cmd, errcode_t status)
+{
+ if (status == ERRCODE_BT_SUCCESS) {
+ bts_sample_log_no_header("[AMSClientRemoteCMDCBK]conn_id:%d status:0x%x cmd_num=%d ",
+ conn_id, status, remote_cmd->cmd_num);
+ if (g_remote_cmd_supported != NULL) {
+ bt_os_free(g_remote_cmd_supported);
+ }
+ uint16_t length = sizeof(ble_ams_remote_cmd_rpt_t) + remote_cmd->cmd_num;
+ g_remote_cmd_supported = bt_os_new(length);
+ g_remote_cmd_supported->cmd_num = remote_cmd->cmd_num;
+ if (memcpy_s(g_remote_cmd_supported->remote_cmd, remote_cmd->cmd_num,
+ remote_cmd->remote_cmd, remote_cmd->cmd_num) != EOK) {
+ bts_error("[AMSClientSample] memcpy error!\r\n");
+ bt_os_free(g_remote_cmd_supported);
+ return;
+ }
+ bts_sample_log_no_header("supported_cmd=");
+ for (int i = 0; i < remote_cmd->cmd_num; i++) {
+ bts_sample_log_no_header("0x%02x", remote_cmd->remote_cmd[i]);
+ }
+ bts_sample_log_no_header("\r\n");
+ } else {
+ bts_info("[AMSClientRemoteCMDCBK]conn_id:%d status:0x%x\r\n", conn_id, status);
+ }
+}
+
+/* AMS服务实体更新上报 */
+static void ble_ams_client_entity_update_cbk(uint8_t client_id, uint16_t conn_id,
+ ble_ams_entity_update_rpt_t *entity_update, errcode_t status)
+{
+ if (status == ERRCODE_BT_SUCCESS) {
+ bts_info(
+ "[AMSClientEntityUpdateCBK]conn_id:%d status:0x%x entityId=%d att_id=%d update_flags=0x%x value=%s\r\n",
+ conn_id, status,
+ entity_update->entity_id,
+ entity_update->att_id,
+ entity_update->entity_update_flags,
+ entity_update->value);
+ } else {
+ bts_info("[AMSClientEntityUpdateCBK]conn_id:%d status:0x%x\r\n", conn_id, status);
+ }
+}
+
+/* AMS客户端写请求响应结果上报 */
+static void ble_ams_client_write_character_rsp_cbk(uint8_t client_id, uint16_t conn_id,
+ ams_client_write_character_type_t type,
+ gatt_status_t status)
+{
+ bts_info("[AMSClientWriteRSPCBK]conn_id:%d type:%d status:0x%x\r\n", conn_id, type, status);
+}
+
+/* AMS客户端读请求响应结果上报 */
+static void ble_ams_client_read_full_attr_result_cbk(uint8_t client_id, uint16_t conn_id,
+ ble_ams_full_attr_value_t *read_result,
+ gatt_status_t status)
+{
+ if (status == ERRCODE_BT_SUCCESS) {
+ bts_info("[AMSClientReadFullAttrCBK]conn_id:%d status:0x%x value_len=%d value=%s\r\n",
+ conn_id, status,
+ read_result->value_len,
+ read_result->value);
+ } else {
+ bts_info("[AMSClientReadFullAttrCBK]conn_id:%d status:0x%x\r\n", conn_id, status);
+ }
+}
+
+/* 注册AMS服务回调 */
+static uint8_t ble_ams_client_at_cmd_register_cbk(uint8_t argc, char **argv)
+{
+ ble_ams_client_callbacks_t cbk = {0};
+ cbk.setup_cb = ble_ams_client_setup_result_cbk;
+ cbk.subscribe_cb = ble_ams_client_subscribe_result_cbk;
+ cbk.remote_cmd_cb = ble_ams_client_remote_cmd_cbk;
+ cbk.entity_update_cb = ble_ams_client_entity_update_cbk;
+ cbk.write_rsp_cb = ble_ams_client_write_character_rsp_cbk;
+ cbk.read_full_attr_result_cb = ble_ams_client_read_full_attr_result_cbk;
+ errcode_t ret = ble_ams_client_register_callbacks(&cbk);
+ bts_info("ble ams client register cbk ret:0x%x\r\n", ret);
+ return MPC_BT_SUCC;
+}
+
+/* AMS客户端发起服务建立 */
+static uint8_t ble_ams_client_at_cmd_setup(uint8_t argc, char **argv)
+{
+ if (argc != BT_AT_PARAM_LEN2) {
+ bts_error("ble ams client argc num invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ uint8_t client_id = 0;
+ uint16_t conn_id = 0;
+ client_id = (uint8_t)atoi(argv[BT_INDEX_0]);
+ conn_id = (uint16_t)atoi(argv[BT_INDEX_1]);
+ errcode_t ret = ble_ams_client_setup_service(client_id, conn_id);
+ bts_info("ble ams client setup ret:0x%x\r\n", ret);
+ return MPC_BT_SUCC;
+}
+
+/* AMS客户端订阅远端命令特征通知 */
+static uint8_t ble_ams_client_at_cmd_remote_cmd(uint8_t argc, char **argv)
+{
+ if (argc != BT_AT_PARAM_LEN3) {
+ bts_error("ble ams client argc num invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ uint8_t client_id = 0;
+ uint16_t conn_id = 0;
+ uint8_t sub_flag = 0;
+ client_id = (uint8_t)atoi(argv[BT_INDEX_0]);
+ conn_id = (uint16_t)atoi(argv[BT_INDEX_1]);
+ sub_flag = (uint8_t)atoi(argv[BT_INDEX_2]);
+ if (sub_flag > AMS_CLIENT_NOTIFY_ENABLE) {
+ bts_error("ble ams client argc invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ errcode_t ret = ble_ams_client_subscribe_remote_cmd(client_id, conn_id, sub_flag);
+ bts_info("ble ams client sub remote cmd ret:0x%x\r\n", ret);
+ return MPC_BT_SUCC;
+}
+
+/* AMS客户端订阅实体更新特征通知 */
+static uint8_t ble_ams_client_at_cmd_entity_update(uint8_t argc, char **argv)
+{
+ if (argc != BT_AT_PARAM_LEN3) {
+ bts_error("ble ams client argc num invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ uint8_t client_id = 0;
+ uint16_t conn_id = 0;
+ uint8_t sub_flag = 0;
+ client_id = (uint8_t)atoi(argv[BT_INDEX_0]);
+ conn_id = (uint16_t)atoi(argv[BT_INDEX_1]);
+ sub_flag = (uint8_t)atoi(argv[BT_INDEX_2]);
+ if (sub_flag > AMS_CLIENT_NOTIFY_ENABLE) {
+ bts_error("ble ams client argc invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ errcode_t ret = ble_ams_client_subscribe_entity_update(client_id, conn_id, sub_flag);
+ bts_info("ble ams client sub entity update ret:0x%x\r\n", ret);
+ return MPC_BT_SUCC;
+}
+
+/* AMS客户端发送远端命令 */
+static uint8_t ble_ams_client_at_cmd_send_remote_cmd(uint8_t argc, char **argv)
+{
+ if (argc != BT_AT_PARAM_LEN3) {
+ bts_error("ble ams client argc num invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ uint8_t client_id = 0;
+ uint16_t conn_id = 0;
+ uint8_t remote_cmd = 0;
+ client_id = (uint8_t)atoi(argv[BT_INDEX_0]);
+ conn_id = (uint16_t)atoi(argv[BT_INDEX_1]);
+ remote_cmd = (uint8_t)atoi(argv[BT_INDEX_2]);
+ if (remote_cmd > AMS_RMT_CMD_ID_BOOKMARK_TRACK) {
+ bts_error("ble ams client argc invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ errcode_t ret = ble_ams_client_send_remote_cmd(client_id, conn_id, remote_cmd);
+ bts_info("ble ams client send remote cmd ret:0x%x\r\n", ret);
+ return MPC_BT_SUCC;
+}
+
+/* AMS客户端注册感兴趣的实体属性 */
+static uint8_t ble_ams_client_at_cmd_register_interested_entity_att(uint8_t argc, char **argv)
+{
+ if (argc != BT_AT_PARAM_LEN5) {
+ bts_error("ble ams client argc num invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ uint8_t client_id = 0;
+ uint16_t conn_id = 0;
+ uint16_t att_num = 0;
+ uint8_t entity_id = 0;
+ client_id = (uint8_t)atoi(argv[BT_INDEX_0]);
+ conn_id = (uint16_t)atoi(argv[BT_INDEX_1]);
+ entity_id = (uint8_t)atoi(argv[BT_INDEX_2]);
+ att_num = (uint16_t)atoi(argv[BT_INDEX_3]);
+ uint32_t len = strlen(argv[BT_INDEX_4]);
+ if (len != (att_num * HEX_BYTE_CHAR_COUNT)) {
+ bts_error("ble ams client argc att_num invalid :%u\r\n", att_num);
+ return MPC_BT_FAIL;
+ }
+
+ ble_ams_interested_entity_attr_req_t *attr_req = bt_os_new(sizeof(ble_ams_interested_entity_attr_req_t) + att_num);
+ attr_req->entity_id = entity_id;
+ attr_req->att_num = att_num;
+ if (decode_hex_from_str(argv[BT_INDEX_4], attr_req->att_id) != EXT_ERR_SUCCESS) {
+ bt_os_free(attr_req);
+ bts_error("ble ams client decode attr fail!\r\n");
+ return MPC_BT_FAIL;
+ }
+ errcode_t ret = ble_ams_client_register_interested_entity_attribute(client_id, conn_id, attr_req);
+ bts_info("ble ams client register interested attr ret:0x%x\r\n", ret);
+ bt_os_free(attr_req);
+ return MPC_BT_SUCC;
+}
+
+/* AMS客户端请求加载完整的实体属性 */
+static uint8_t ble_ams_client_at_cmd_retrieve_full_attr(uint8_t argc, char **argv)
+{
+ if (argc != BT_AT_PARAM_LEN4) {
+ bts_error("ble ams client argc num invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ uint8_t client_id = 0;
+ uint16_t conn_id = 0;
+ uint8_t entity_id = 0;
+ uint8_t attr_id = 0;
+ client_id = (uint8_t)atoi(argv[BT_INDEX_0]);
+ conn_id = (uint16_t)atoi(argv[BT_INDEX_1]);
+ entity_id = (uint8_t)atoi(argv[BT_INDEX_2]);
+ attr_id = (uint8_t)atoi(argv[BT_INDEX_3]);
+
+ ble_ams_full_entity_attr_cmd_t *full_attr = bt_os_new(sizeof(ble_ams_full_entity_attr_cmd_t));
+ full_attr->entity_id = entity_id;
+ full_attr->att_id = attr_id;
+ errcode_t ret = ble_ams_client_retrieve_full_entity_attribute(client_id, conn_id, full_attr);
+ bts_info("ble ams client retrieve full attr ret:0x%x\r\n", ret);
+ bt_os_free(full_attr);
+ return MPC_BT_SUCC;
+}
+
+/* AMS客户端读取完整的实体属性 */
+static uint8_t ble_ams_client_at_cmd_read_full_attr(uint8_t argc, char **argv)
+{
+ if (argc != BT_AT_PARAM_LEN2) {
+ bts_error("ble ams client argc num invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ uint8_t client_id = 0;
+ uint16_t conn_id = 0;
+ client_id = (uint8_t)atoi(argv[BT_INDEX_0]);
+ conn_id = (uint16_t)atoi(argv[BT_INDEX_1]);
+
+ errcode_t ret = ble_ams_client_read_full_entity_attribute(client_id, conn_id);
+ bts_info("ble ams client read full attr ret:0x%x\r\n", ret);
+ return MPC_BT_SUCC;
+}
+
+/* AMS客户端AT命令与接口对应关系 */
+static ble_ams_client_at_hdl_info_t g_ble_ams_client_at_hdl[] = {
+ { BLE_SAMPLE_AMS_CLIENT_REGISTER_CBK, ble_ams_client_at_cmd_register_cbk },
+ { BLE_SAMPLE_AMS_CLIENT_SETUP, ble_ams_client_at_cmd_setup },
+ { BLE_SAMPLE_AMS_CLIENT_SUBSCRIBE_REMOTE_COMMNAD, ble_ams_client_at_cmd_remote_cmd },
+ { BLE_SAMPLE_AMS_CLIENT_SUBSCRIBE_ENTITY_UPDATE, ble_ams_client_at_cmd_entity_update },
+ { BLE_SAMPLE_AMS_CLIENT_SEND_REMOTE_CMD, ble_ams_client_at_cmd_send_remote_cmd },
+ { BLE_SAMPLE_AMS_CLIENT_REGISTER_INTERESTED_ENTITY_ATT, ble_ams_client_at_cmd_register_interested_entity_att },
+ { BLE_SAMPLE_AMS_CLIENT_RETRIEVE_FULL_ENTITY_ATT, ble_ams_client_at_cmd_retrieve_full_attr },
+ { BLE_SAMPLE_AMS_CLIENT_READ_FULL_ENTITY_ATT, ble_ams_client_at_cmd_read_full_attr },
+};
+
+/* AMS客户端AT命令处理入口函数 */
+void ble_ams_client_at_cmd(uint8_t cmd_id, char **params, uint8_t params_cnt)
+{
+ size_t hdl_cnt = sizeof(g_ble_ams_client_at_hdl) / sizeof(ble_ams_client_at_hdl_info_t);
+ for (uint8_t i = 0; i < hdl_cnt; i++) {
+ if (g_ble_ams_client_at_hdl[i].id == cmd_id && g_ble_ams_client_at_hdl[i].func != NULL) {
+ (void)g_ble_ams_client_at_hdl[i].func(params_cnt, params);
+ return;
+ }
+ }
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2024. All rights reserved.
+ * Description: This module include test function of ANCS Client module.
+ */
+#include <stdint.h>
+#include <stdlib.h>
+#include <td_base.h>
+#include "datatype.h"
+#include "sdk_general.h"
+#include "mpc_dispatch.h"
+#include "bt_at_cmd_api.h"
+#include "ble_ancs_client.h"
+#include "sample_ble_ancs.h"
+
+#define TEN 10
+#define ANCS_ATT_BYTE_LENGTH 6
+#define ANCS_DEC_CHAR_COUNT 2
+#define BYTE_BIT_COUNT 8
+
+/* ANCS客户端接口命令id */
+typedef enum {
+ BLE_SAMPLE_ANCS_CLIENT_REGISTER_CBK = 1, /* 1 注册ANCS客户端回调函数 */
+ BLE_SAMPLE_ANCS_CLIENT_SETUP, /* 2 ANCS客户端连接服务端 */
+ BLE_SAMPLE_ANCS_CLIENT_SUBSCRIBE_NOTITY, /* 3 订阅通知 */
+ BLE_SAMPLE_ANCS_CLIENT_SUBSCRIBE_DATA, /* 4 订阅数据 */
+ BLE_SAMPLE_ANCS_CLIENT_PERFORM_ACTION, /* 5 执行操作 */
+ BLE_SAMPLE_ANCS_CLIENT_NOTIFY_ATT_GET, /* 6 执行操作 */
+ BLE_SAMPLE_ANCS_CLIENT_APP_ATT_GET /* 7 执行操作 */
+} ble_ancs_client_at_cmd_id_t;
+
+/* 命令处理函数接口 */
+typedef uint8_t (*ble_ancs_client_at_func_t)(uint8_t argc, char **argv);
+
+/* ANCS客户端AT命令id与接口对应关系 */
+typedef struct {
+ ble_ancs_client_at_cmd_id_t id;
+ ble_ancs_client_at_func_t func;
+} ble_ancs_client_at_hdl_info_t;
+
+/* ANCS服务建立结果回调 */
+static void ble_ancs_client_setup_result_cbk(uint8_t client_id, uint16_t conn_id, errcode_t status)
+{
+ bts_info("[ANCSClientSetupCBK]conn_id:%d status:0x%x\r\n", conn_id, status);
+}
+
+/* ANCS服务订阅结果回调 */
+static void ble_ancs_client_subscribe_result_cbk(uint8_t client_id, uint16_t conn_id,
+ ancs_client_subscribe_type_t type, gatt_status_t status)
+{
+ bts_info("[ANCSClientSubscribeResultCBK]conn_id:%d type:%d status:0x%x\r\n", conn_id, type, status);
+}
+
+/* ANCS服务命令执行结果回调 */
+static void ble_ancs_client_write_result_cbk(uint8_t client_id, uint16_t conn_id, gatt_status_t status)
+{
+ bts_info("[ANCSClientCMDResultCBK]conn_id:%d status:0x%x\r\n", conn_id, status);
+}
+
+/* ANCS服务消息通知回调 */
+static void ble_ancs_client_notify_source_cbk(uint8_t client_id, uint16_t conn_id,
+ ble_ancs_notification_src_t *notify_src, errcode_t status)
+{
+ if (status == ERRCODE_BT_SUCCESS) {
+ bts_info(
+ "[ANCSClientNotifySRCCBK]conn_id:%d status:0x%x notify_id:%lu "
+ "eventId:%d eventFlags:0x%x category_id:%d\r\n",
+ conn_id, status,
+ notify_src->notification_uid,
+ notify_src->event_id,
+ notify_src->event_flags,
+ notify_src->category_id);
+ } else {
+ bts_error("[ANCSClientNotifySRCCBK]conn_id:%d status:0x%x.\r\n",
+ conn_id, status);
+ }
+}
+
+/* ANCS服务通知属性响应结果回调 */
+static void ble_ancs_client_notification_attr_rsp_cbk(uint8_t client_id, uint16_t conn_id,
+ ble_ancs_notification_attr_rsp_t *notify_attr_rsp, errcode_t status)
+{
+ if (status == ERRCODE_BT_SUCCESS) {
+ bts_info("[ANCSClientNotifyATTRSPCBK]conn_id:%d status:0x%x notify_uid:%lu\r\n",
+ conn_id, status, notify_attr_rsp->notification_uid);
+
+ ble_ancs_attr_rsp_t *node = (ble_ancs_attr_rsp_t *)notify_attr_rsp->attr_rsp_lst.head;
+ uint16_t att_num = 1;
+ while (node != NULL) {
+ if (node != NULL) {
+ bts_info_no_header("[ANCSClientNotifyATTRSPCBK]att id:%d length:%lu att_value:%s\r\n",
+ node->att_id, node->att_length, node->att);
+ }
+ node = lnext(node);
+ if (att_num == notify_attr_rsp->att_num) {
+ break;
+ }
+ att_num = att_num + 1;
+ }
+ } else {
+ bts_error("[ANCSClientNotifyATTRSPCBK]conn_id:%d status:0x%x.\r\n",
+ conn_id, status);
+ }
+}
+
+/* ANCS服务应用属性响应结果回调 */
+static void ble_ancs_client_app_attr_rsp_cbk(uint8_t client_id, uint16_t conn_id,
+ ble_ancs_app_attr_rsp_t *app_attr_rsp, errcode_t status)
+{
+ bts_info("[ANCSClientAPPATTRSPCBK]conn_id:%d status:0x%x\r\n", conn_id, status);
+ if (status == ERRCODE_BT_SUCCESS) {
+ ble_ancs_attr_rsp_t *node = (ble_ancs_attr_rsp_t *)app_attr_rsp->attr_rsp_lst.head;
+ uint16_t att_num = 1;
+ while (node != NULL) {
+ if (node != NULL && node->att_id == ANCS_APP_ATT_DISPLAY_NAME) {
+ bts_info_no_header("[ANCSClientAPPATTRSPCBK]app id:%s length:%lu app name:%s\r\n",
+ app_attr_rsp->app_id.id, node->att_length, node->att);
+ }
+ node = lnext(node);
+ if (att_num == app_attr_rsp->att_num) {
+ break;
+ }
+ att_num = att_num + 1;
+ }
+ } else {
+ bts_error("[ANCSClientAPPATTRSPCBK]conn_id:%d status:0x%x.\r\n",
+ conn_id, status);
+ }
+}
+
+/* 注册ancs服务回调 */
+static uint8_t ble_ancs_client_at_cmd_register_cbk(uint8_t argc, char **argv)
+{
+ ble_ancs_client_callbacks_t cbk = {0};
+ cbk.setup_cb = ble_ancs_client_setup_result_cbk;
+ cbk.subscribe_cb = ble_ancs_client_subscribe_result_cbk;
+ cbk.write_result_cb = ble_ancs_client_write_result_cbk;
+ cbk.notify_source_cb = ble_ancs_client_notify_source_cbk;
+ cbk.notify_attr_cb = ble_ancs_client_notification_attr_rsp_cbk;
+ cbk.app_attr_cb = ble_ancs_client_app_attr_rsp_cbk;
+ errcode_t ret = ble_ancs_client_register_callbacks(&cbk);
+ bts_info("ble ancs client register cbk ret:0x%x\r\n", ret);
+ return MPC_BT_SUCC;
+}
+
+/* ANCS服务建立 */
+static uint8_t ble_ancs_client_at_cmd_setup(uint8_t argc, char **argv)
+{
+ if (argc != BT_AT_PARAM_LEN2) {
+ bts_error("ble ancs client argc num invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ uint8_t client_id = 0;
+ uint16_t conn_id = 0;
+ client_id = (uint8_t)atoi(argv[BT_INDEX_0]);
+ conn_id = (uint16_t)atoi(argv[BT_INDEX_1]);
+ errcode_t ret = ble_ancs_client_setup_service(client_id, conn_id);
+ bts_info("ble ancs client setup ret:0x%x\r\n", ret);
+ return MPC_BT_SUCC;
+}
+
+/* 订阅通知 */
+static uint8_t ble_ancs_client_at_cmd_subscribe_notify(uint8_t argc, char **argv)
+{
+ if (argc != BT_AT_PARAM_LEN3) {
+ bts_error("ble ancs client argc num invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ uint8_t client_id = 0;
+ uint16_t conn_id = 0;
+ uint8_t sub_flag = 0;
+ client_id = (uint8_t)atoi(argv[BT_INDEX_0]);
+ conn_id = (uint16_t)atoi(argv[BT_INDEX_1]);
+ sub_flag = (uint8_t)atoi(argv[BT_INDEX_2]);
+ if (sub_flag > ANCS_CLIENT_NOTIFY_ENABLE) {
+ bts_error("ble ancs client argc invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ errcode_t ret = ble_ancs_client_subscribe_notification_source(client_id, conn_id, sub_flag);
+ bts_info("ble ancs client sub notify ret:0x%x\r\n", ret);
+ return MPC_BT_SUCC;
+}
+
+/* 订阅数据 */
+static uint8_t ble_ancs_client_at_cmd_subscribe_data(uint8_t argc, char **argv)
+{
+ if (argc != BT_AT_PARAM_LEN3) {
+ bts_error("ble ancs client argc num invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ uint8_t client_id = 0;
+ uint16_t conn_id = 0;
+ uint8_t sub_flag = 0;
+ client_id = (uint8_t)atoi(argv[BT_INDEX_0]);
+ conn_id = (uint16_t)atoi(argv[BT_INDEX_1]);
+ sub_flag = (uint8_t)atoi(argv[BT_INDEX_2]);
+ if (sub_flag > ANCS_CLIENT_NOTIFY_ENABLE) {
+ bts_error("ble ancs client argc invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+
+ errcode_t ret = ble_ancs_client_subscribe_data_source(client_id, conn_id, sub_flag);
+ bts_info("ble ancs client sub data ret:0x%x\r\n", ret);
+ return MPC_BT_SUCC;
+}
+
+/* 执行消息行为(积极或消极行为) */
+static uint8_t ble_ancs_client_at_cmd_perform_action(uint8_t argc, char **argv)
+{
+ if (argc != BT_AT_PARAM_LEN4) {
+ bts_error("ble ancs client argc num invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ uint8_t client_id = 0;
+ uint16_t conn_id = 0;
+ uint32_t notify_uid = 0;
+ uint8_t action_id = 0;
+ client_id = (uint8_t)atoi(argv[BT_INDEX_0]);
+ conn_id = (uint16_t)atoi(argv[BT_INDEX_1]);
+ notify_uid = (uint32_t)atoi(argv[BT_INDEX_2]);
+ action_id = (uint8_t)atoi(argv[BT_INDEX_3]);
+ if (action_id > ANCS_ACTION_RESERVED) {
+ bts_error("ble ancs client argc invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+ ble_ancs_notification_action_req_t action_cmd = {0};
+ action_cmd.notification_uid = notify_uid;
+ action_cmd.action_id = action_id;
+ errcode_t ret = ble_ancs_client_send_perform_notify_action_cmd(client_id, conn_id, &action_cmd);
+ bts_info("ble ancs client perform action ret:0x%x\r\n", ret);
+ return MPC_BT_SUCC;
+}
+
+/* 十六进制字符转数值 */
+static uint8_t char_2_num(int8_t c)
+{
+ if (c >= '0' && c <= '9') {
+ return (uint8_t)(c - '0');
+ } else if (c >= 'A' && c <= 'F') {
+ return (uint8_t)(c - 'A' + TEN);
+ } else if (c >= 'a' && c <= 'f') {
+ return (uint8_t)(c - 'a' + TEN);
+ } else {
+ return TD_U8_MAX;
+ }
+}
+
+/* 十六进制字符转数值 */
+static uint8_t str_2_byte(const char *str)
+{
+ return ((char_2_num(str[0]) << TD_U4_BITS) + char_2_num(str[1]));
+}
+
+/* 十六进制字符转属性请求参数结构体 */
+static void decode_att_req_from_str(const char *str, ble_ancs_attr_req_t *nums)
+{
+ uint32_t len = strlen(str);
+ uint32_t cnt = 0;
+ char *ptr_str = NULL;
+ uint16_t length_big_byte = 0;
+ uint16_t length_little_byte = 0;
+ ptr_str = str;
+ for (uint32_t i = 0; i < len - 1; i += ANCS_ATT_BYTE_LENGTH) { /* 6个字符为1组,2个字符为一个字节 */
+ nums[cnt].att_id = str_2_byte(ptr_str);
+ ptr_str += ANCS_DEC_CHAR_COUNT;
+ length_big_byte = (((uint16_t)str_2_byte(ptr_str)) << BYTE_BIT_COUNT);
+ ptr_str += ANCS_DEC_CHAR_COUNT;
+ length_little_byte = ((uint16_t)str_2_byte(ptr_str));
+ nums[cnt].att_max_length = (uint16_t)(length_big_byte | length_little_byte);
+ ptr_str += ANCS_DEC_CHAR_COUNT;
+ cnt++;
+ }
+}
+
+/* 获取通知属性 */
+static uint8_t ble_ancs_client_at_cmd_get_notify_att(uint8_t argc, char **argv)
+{
+ if (argc != BT_AT_PARAM_LEN5) {
+ bts_error("ble ancs client argc num invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+
+ uint8_t client_id = 0;
+ uint16_t conn_id = 0;
+ uint32_t notify_uid = 0;
+ uint8_t att_num = 0;
+ client_id = (uint8_t)atoi(argv[BT_INDEX_0]);
+ conn_id = (uint16_t)atoi(argv[BT_INDEX_1]);
+ notify_uid = (uint32_t)atoi(argv[BT_INDEX_2]);
+ att_num = (uint8_t)atoi(argv[BT_INDEX_3]);
+ if (att_num == 0) {
+ bts_error("ble ancs client notify att req att num is zero!\r\n");
+ return MPC_BT_FAIL;
+ }
+ uint32_t len = strlen(argv[BT_INDEX_4]);
+ if ((att_num * ANCS_ATT_BYTE_LENGTH) != len) {
+ bts_error("ble ancs client notify att req att num is wrong!\r\n");
+ return MPC_BT_FAIL;
+ }
+
+ /* 获取来电通知属性 */
+ ble_ancs_notification_attr_req_t *notify_attr_req = bt_os_new(
+ sizeof(ble_ancs_notification_attr_req_t) + (att_num * sizeof(ble_ancs_attr_req_t)));
+ notify_attr_req->att_num = att_num;
+ notify_attr_req->notification_uid = notify_uid;
+ decode_att_req_from_str(argv[BT_INDEX_4], notify_attr_req->attr);
+ errcode_t ret = ble_ancs_client_send_get_notify_att_cmd(client_id, conn_id, notify_attr_req);
+ bt_os_free(notify_attr_req);
+ bts_info("ble ancs client notify att get ret:0x%x\r\n", ret);
+ return MPC_BT_SUCC;
+}
+
+/* 解析应用属性参数 */
+static uint8_t parse_app_att_req_param(ble_ancs_app_attr_req_t *app_attr_req,
+ uint16_t app_id_len, uint16_t att_num, char **argv)
+{
+ app_attr_req->att_num = att_num;
+ app_attr_req->app_id.len = app_id_len + 1;
+ uint8_t *id = bt_os_new(app_attr_req->app_id.len);
+ if (id == NULL) {
+ bts_error("[ANCSClientSample]app id memnew error!\r\n");
+ app_attr_req->app_id.id = NULL;
+ return MPC_BT_FAIL;
+ }
+ if (memcpy_s(id, app_attr_req->app_id.len, (uint8_t *)argv[BT_INDEX_2], app_id_len) != EOK) {
+ bts_error("[ANCSClientSample]app id memcpy error!\r\n");
+ bt_os_free(id);
+ app_attr_req->app_id.id = NULL;
+ return MPC_BT_FAIL;
+ }
+ *(id + app_id_len) = 0; /* This string is NULL-terminated */
+ app_attr_req->app_id.id = id;
+
+ /* 解析应用属性参数 */
+ decode_att_req_from_str(argv[BT_INDEX_4], app_attr_req->attr_id);
+ return MPC_BT_SUCC;
+}
+
+/* 获取应用属性 */
+static uint8_t ble_ancs_client_at_cmd_get_app_att(uint8_t argc, char **argv)
+{
+ if (argc != BT_AT_PARAM_LEN5) {
+ bts_error("ble ancs client argc num invalid :%u\r\n", argc);
+ return MPC_BT_FAIL;
+ }
+
+ uint8_t client_id = 0;
+ uint16_t conn_id = 0;
+ uint8_t att_num = 0;
+ uint16_t app_id_len = 0;
+ client_id = (uint8_t)atoi(argv[BT_INDEX_0]);
+ conn_id = (uint16_t)atoi(argv[BT_INDEX_1]);
+ app_id_len = strlen(argv[BT_INDEX_2]);
+ att_num = (uint8_t)atoi(argv[BT_INDEX_3]);
+ if (att_num == 0) {
+ bts_error("ble ancs client notify att req att num is zero!\r\n");
+ return MPC_BT_FAIL;
+ }
+ uint32_t len = strlen(argv[BT_INDEX_4]);
+ if ((att_num * ANCS_ATT_BYTE_LENGTH) != len) {
+ bts_error("ble ancs client notify att req att num is wrong!\r\n");
+ return MPC_BT_FAIL;
+ }
+
+ /* 获取应用属性 */
+ ble_ancs_app_attr_req_t *app_attr_req = bt_os_new(sizeof(ble_ancs_app_attr_req_t) + (att_num * sizeof(uint8_t)));
+ uint8_t result = parse_app_att_req_param(app_attr_req, app_id_len, att_num, argv);
+ if (result != MPC_BT_SUCC) {
+ if (app_attr_req->app_id.id != NULL) {
+ bt_os_free(app_attr_req->app_id.id);
+ }
+ bt_os_free(app_attr_req);
+ return result;
+ }
+ errcode_t ret = ble_ancs_client_send_get_app_att_cmd(client_id, conn_id, app_attr_req);
+ bts_info("ble ancs client app att get ret:0x%x\r\n", ret);
+ bt_os_free(app_attr_req->app_id.id);
+ bt_os_free(app_attr_req);
+ return MPC_BT_SUCC;
+}
+
+/* ANCS客户端AT命令与接口对应关系 */
+static ble_ancs_client_at_hdl_info_t g_ble_ancs_client_at_hdl[] = {
+ { BLE_SAMPLE_ANCS_CLIENT_REGISTER_CBK, ble_ancs_client_at_cmd_register_cbk },
+ { BLE_SAMPLE_ANCS_CLIENT_SETUP, ble_ancs_client_at_cmd_setup },
+ { BLE_SAMPLE_ANCS_CLIENT_SUBSCRIBE_NOTITY, ble_ancs_client_at_cmd_subscribe_notify },
+ { BLE_SAMPLE_ANCS_CLIENT_SUBSCRIBE_DATA, ble_ancs_client_at_cmd_subscribe_data },
+ { BLE_SAMPLE_ANCS_CLIENT_NOTIFY_ATT_GET, ble_ancs_client_at_cmd_get_notify_att },
+ { BLE_SAMPLE_ANCS_CLIENT_APP_ATT_GET, ble_ancs_client_at_cmd_get_app_att },
+ { BLE_SAMPLE_ANCS_CLIENT_PERFORM_ACTION, ble_ancs_client_at_cmd_perform_action },
+};
+
+void ble_ancs_client_at_cmd(uint8_t cmd_id, char **params, uint8_t params_cnt)
+{
+ size_t hdl_cnt = sizeof(g_ble_ancs_client_at_hdl) / sizeof(ble_ancs_client_at_hdl_info_t);
+ for (uint8_t i = 0; i < hdl_cnt; i++) {
+ if (g_ble_ancs_client_at_hdl[i].id == cmd_id && g_ble_ancs_client_at_hdl[i].func != NULL) {
+ (void)g_ble_ancs_client_at_hdl[i].func(params_cnt, params);
+ return;
+ }
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) @CompanyNameMagicTag 2024. All rights reserved.
+ * Description: BLE Apple Media Service Client module.
+ */
+
+/**
+ * @defgroup bluetooth_bts_ams_client AMS CLIENT API
+ * @ingroup bluetooth
+ * @{
+ */
+#ifndef BLE_AMS_CLIENT_H
+#define BLE_AMS_CLIENT_H
+#include "errcode.h"
+#include "bth_stack.h"
+#include "bth_stack_gatt.h"
+#include "bts_gatt_client.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * @if Eng
+ * @brief Default value of Client Characteristic Configuration.
+ * @else
+ * @brief 客户端特征配置描述符的默认值。
+ * @endif
+ */
+#define BLE_AMS_CLIENT_CHARACTERISTIC_CONFIGURATION_DEFAULT 0x0000
+
+/**
+ * @if Eng
+ * @brief Client Characteristic Configuration value is notification.
+ * @else
+ * @brief 客户端特征配置描述符的值为通知。
+ * @endif
+ */
+#define BLE_AMS_CLIENT_CHARACTERISTIC_CONFIGURATION_NOTIFICATION 0x0001
+
+/**
+ * @if Eng
+ * @brief Enum of ams notify switch.
+ * @else
+ * @brief 通知开关
+ * @endif
+ */
+typedef enum {
+ AMS_CLIENT_NOTIFY_DISABLE, /*!< @if Eng disable notify @else 关闭通知 @endif */
+ AMS_CLIENT_NOTIFY_ENABLE, /*!< @if Eng enable notify @else 开启通知 @endif */
+} ams_client_notify_enable_t;
+
+/**
+ * @if Eng
+ * @brief Enum of remote command
+ * @else
+ * @brief 远端命令ID
+ * @endif
+ */
+typedef enum {
+ AMS_RMT_CMD_ID_PLAY = 0, /*!< @if Eng play @else 播放 @endif */
+ AMS_RMT_CMD_ID_PAUSE = 1, /*!< @if Eng pause @else 暂停 @endif */
+ AMS_RMT_CMD_ID_TOGGLE_PLAY_PAUSE = 2, /*!< @if Eng toggle play or pause @else 切换播放/暂停 @endif */
+ AMS_RMT_CMD_ID_NEXT_TRACK = 3, /*!< @if Eng next track @else 下一首 @endif */
+ AMS_RMT_CMD_ID_PREVIOUS_TRACK = 4, /*!< @if Eng previous track @else 上一首 @endif */
+ AMS_RMT_CMD_ID_VOLUME_UP = 5, /*!< @if Eng volume up @else 调高音量 @endif */
+ AMS_RMT_CMD_ID_VOLUME_DOWN = 6, /*!< @if Eng volume down @else 调低音量 @endif */
+ AMS_RMT_CMD_ID_ADVANCE_REPEAT_MODE = 7, /*!< @if Eng advance repeat mode @else 高级重复模式 @endif */
+ AMS_RMT_CMD_ID_ADVANCE_SHUFFLE_MODE = 8, /*!< @if Eng advance shuffle mode @else 高级随机模式 @endif */
+ AMS_RMT_CMD_ID_SKIP_FORWARD = 9, /*!< @if Eng skip forward @else 跳过前一个 @endif */
+ AMS_RMT_CMD_ID_SKIP_BACKWARD = 10, /*!< @if Eng skip backward @else 跳过后一个 @endif */
+ AMS_RMT_CMD_ID_LIKE_TRACK = 11, /*!< @if Eng like track @else 喜欢 @endif */
+ AMS_RMT_CMD_ID_DISLIKE_TRACK = 12, /*!< @if Eng dislike track @else 取消喜欢 @endif */
+ AMS_RMT_CMD_ID_BOOKMARK_TRACK = 13, /*!< @if Eng bookmark track @else 标记喜欢或取消喜欢 @endif */
+ AMS_RMT_CMD_ID_RESERVED /*!< @if Eng reserved @else 预留命令ID @endif */
+} ams_remote_cmd_id_t;
+
+/**
+ * @if Eng
+ * @brief Enum of entity id
+ * @else
+ * @brief 实体ID
+ * @endif
+ */
+typedef enum {
+ AMS_ENTITY_ID_PLAYER = 0, /*!< @if Eng player @else 播放器 @endif */
+ AMS_ENTITY_ID_QUEUE = 1, /*!< @if Eng queue @else 播放列表 @endif */
+ AMS_ENTITY_ID_TRACK = 2, /*!< @if Eng track @else 曲目 @endif */
+ AMS_ENTITY_ID_RESERVED /*!< @if Eng reserved @else 预留实体ID @endif */
+} ams_entity_id_t;
+
+/**
+ * @if Eng
+ * @brief Enum of entity update flags
+ * @else
+ * @brief 实体更新标记
+ * @endif
+ */
+typedef enum {
+ AMS_ENTITY_UPDATE_FLAG_TRUNCATED = (1 << 0), /*!< @if Eng truncated @else 销毁 @endif */
+ AMS_ENTITY_UPDATE_FLAG_RESERVED /*!< @if Eng reserved @else 预留标记 @endif */
+} ams_entity_updata_flag_t;
+
+/**
+ * @if Eng
+ * @brief Enum of player attribute id
+ * @else
+ * @brief 播放器属性ID
+ * @endif
+ */
+typedef enum {
+ AMS_PALYER_ATT_ID_NAME = 0, /*!< @if Eng name @else 播放器名称 @endif */
+ AMS_PALYER_ATT_ID_PLAYBACK_INFO = 1, /*!< @if Eng playback info @else 播放信息 @endif */
+ AMS_PALYER_ATT_ID_VOLUME = 2, /*!< @if Eng volume @else 音量,0-1的浮点数 @endif */
+ AMS_PALYER_ATT_ID_RESERVED /*!< @if Eng reserved @else 预留属性ID @endif */
+} ams_player_att_id_t;
+
+/**
+ * @if Eng
+ * @brief Enum of queue attribute id
+ * @else
+ * @brief 队列属性ID
+ * @endif
+ */
+typedef enum {
+ AMS_QUEUE_ATT_ID_INDEX = 0, /*!< @if Eng index @else 序号,从0开始 @endif */
+ AMS_QUEUE_ATT_ID_COUNT = 1, /*!< @if Eng count @else 列表个数 @endif */
+ AMS_QUEUE_ATT_ID_SHUFFLE_MODE = 2, /*!< @if Eng shuffle mode @else 随机模式 @endif */
+ AMS_QUEUE_ATT_ID_REPEAT_MODE = 3, /*!< @if Eng repeat mode @else 重复模式 @endif */
+ AMS_QUEUE_ATT_ID_RESERVED /*!< @if Eng reserved @else 预留属性ID @endif */
+} ams_queue_att_id_t;
+
+
+/**
+ * @if Eng
+ * @brief Enum of track attribute id
+ * @else
+ * @brief 曲目属性ID
+ * @endif
+ */
+typedef enum {
+ AMS_TRACK_ATT_ID_ARTIST = 0, /*!< @if Eng artist @else 艺术家 @endif */
+ AMS_TRACK_ATT_ID_ALBUM = 1, /*!< @if Eng album @else 专辑 @endif */
+ AMS_TRACK_ATT_ID_TITLE = 2, /*!< @if Eng title @else 标题 @endif */
+ AMS_TRACK_ATT_ID_DURATION = 3, /*!< @if Eng duration @else 音乐时长,秒级,浮点数 @endif */
+ AMS_TRACK_ATT_ID_RESERVED /*!< @if Eng reserved @else 预留属性ID @endif */
+} ams_track_att_id_t;
+
+/**
+ * @if Eng
+ * @brief Enum of shuffle mode
+ * @else
+ * @brief 随机模式
+ * @endif
+ */
+typedef enum {
+ AMS_SHUFFLE_MODE_OFF = 0, /*!< @if Eng off @else 关闭 @endif */
+ AMS_SHUFFLE_MODE_ONE = 1, /*!< @if Eng one @else 随机模式1 @endif */
+ AMS_SHUFFLE_MODE_ALL = 2, /*!< @if Eng all @else 随机模式2 @endif */
+ AMS_SHUFFLE_MODE_RESERVED /*!< @if Eng reserved @else 预留随机模式 @endif */
+} ams_shuffle_mode_t;
+
+/**
+ * @if Eng
+ * @brief Enum of repeat mode
+ * @else
+ * @brief 重复模式
+ * @endif
+ */
+typedef enum {
+ AMS_REPEAT_MODE_OFF = 0, /*!< @if Eng off @else 关闭 @endif */
+ AMS_REPEAT_MODE_ONE = 1, /*!< @if Eng one @else 重复模式1 @endif */
+ AMS_REPEAT_MODE_ALL = 2, /*!< @if Eng all @else 重复模式2 @endif */
+ AMS_REPEAT_MODE_RESERVED /*!< @if Eng reserved @else 预留重复模式 @endif */
+} ams_repeat_mode_t;
+
+/**
+ * @if Eng
+ * @brief Enum of subscribe type
+ * @else
+ * @brief 订阅类型
+ * @endif
+ */
+typedef enum {
+ AMS_CLIENT_SUBSCRIBE_REMOTE_CMD = 0, /*!< @if Eng subscribe remote command @else 订阅远端命令 @endif */
+ AMS_CLIENT_SUBSCRIBE_ENTITY_UPDATE = 1, /*!< @if Eng subscribe entity update @else 订阅实体更新 @endif */
+} ams_client_subscribe_type_t;
+
+
+/**
+ * @if Eng
+ * @brief Enum of write character
+ * @else
+ * @brief 写特征类型
+ * @endif
+ */
+typedef enum {
+ AMS_CLIENT_WRITE_REMOTE_CMD = 0, /*!< @if Eng write remote command @else 写远端命令 @endif */
+ AMS_CLIENT_WRITE_ENTITY_UPDATE = 1, /*!< @if Eng write entity update @else 写实体更新 @endif */
+ AMS_CLIENT_WRITE_ENTITY_ATTRIBUTE = 2, /*!< @if Eng write entity attribute @else 写实体属性 @endif */
+} ams_client_write_character_type_t;
+
+/**
+ * @if Eng
+ * @brief Enum of ams character.
+ * @else
+ * @brief AMS服务特征。
+ * @endif
+ */
+typedef enum {
+ AMS_CHAR_REMOTE_CMD, /*!< @if Eng remote command @else 远端命令 @endif */
+ AMS_CHAR_ENTITY_UPDATE, /*!< @if Eng entity update @else 实体更新 @endif */
+ AMS_CHAR_ENTITY_ATTR, /*!< @if Eng entity update @else 实体更新 @endif */
+ AMS_CHAR_INVALID, /*!< @if Eng invalid @else 无效特征 @endif */
+} ams_character_t;
+
+/**
+ * @if Eng
+ * @brief Enum of ams error codes.
+ * @else
+ * @brief AMS客户端写和读特征响应错误码。
+ * @endif
+ */
+typedef enum {
+ AMS_ERROR_CODE_INVALID_STATE = 0xA0, /*!< @if Eng Invalid State
+ @else 无效状态,客户端未发起服务建立 @endif */
+ AMS_ERROR_CODE_INVALID_CMD = 0xA1, /*!< @if Eng Invalid command @else 无效命令 @endif */
+ AMS_ERROR_CODE_ABSENT_ATTRIBUTE = 0xA2 /*!< @if Eng Absent attribute @else 属性为空 @endif */
+} ams_write_error_code_t;
+
+/**
+ * @if Eng
+ * @brief Struct of ams service.
+ * @else
+ * @brief AMS服务。
+ * @endif
+ */
+typedef struct {
+ uint8_t client_id; /*!< @if Eng client id @else 客户端ID @endif */
+ uint16_t conn_id; /*!< @if Eng connect id @else 连接ID @endif */
+ uint16_t start_handle; /*!< @if Eng start handle @else 服务开始handle @endif */
+ uint16_t end_handle; /*!< @if Eng end handle @else 服务结束handle @endif */
+ gattc_discovery_character_result_t remote_cmd; /*!< @if Eng remote command @else 远端命令特征 @endif */
+ gattc_discovery_character_result_t entity_update; /*!< @if Eng entity update @else 实体更新特征 @endif */
+ gattc_discovery_character_result_t entity_attr; /*!< @if Eng entity attribute @else 实体属性特征 @endif */
+ uint16_t remote_cmd_ccc_handle; /*!< @if Eng remote command ccc
+ @else 远端命令特征ccc描述符handle @endif */
+ uint16_t entity_update_ccc_handle; /*!< @if Eng entity update ccc
+ @else 实体更新特征ccc描述符handle @endif */
+} ble_ams_service_t;
+
+/**
+ * @if Eng
+ * @brief Struct of interested entity attribute request.
+ * @else
+ * @brief 感兴趣实体属性请求。
+ * @endif
+ */
+typedef struct {
+ uint8_t entity_id; /*!< @if Eng entity id @else 实体ID @endif */
+ uint16_t att_num; /*!< @if Eng the count of attribute @else 属性个数 @endif */
+ uint8_t att_id[0]; /*!< @if Eng the array of attribute @else 属性ID数组 @endif */
+} ble_ams_interested_entity_attr_req_t;
+
+/**
+ * @if Eng
+ * @brief Struct of full entity attribute request.
+ * @else
+ * @brief 完整实体属性请求。
+ * @endif
+ */
+typedef struct {
+ uint8_t entity_id; /*!< @if Eng entity id @else 实体ID @endif */
+ uint8_t att_id; /*!< @if Eng attribute id @else 属性ID @endif */
+} ble_ams_full_entity_attr_cmd_t;
+
+/**
+ * @if Eng
+ * @brief Struct of supported remote command.
+ * @else
+ * @brief 支持的远端命令。
+ * @endif
+ */
+typedef struct {
+ uint16_t cmd_num; /*!< @if Eng the count of command @else 支持的远端命令个数 @endif */
+ uint8_t remote_cmd[0]; /*!< @if Eng the array of remote command @else 支持的远端命令数组 @endif */
+} ble_ams_remote_cmd_rpt_t;
+
+/**
+ * @if Eng
+ * @brief Struct of entity update info.
+ * @else
+ * @brief 实体更新信息。
+ * @endif
+ */
+typedef struct {
+ uint8_t entity_id; /*!< @if Eng entity id @else 实体ID @endif */
+ uint8_t att_id; /*!< @if Eng attribute id @else 属性ID @endif */
+ uint8_t entity_update_flags; /*!< @if Eng entity update flags @else 实体更新标记 @endif */
+ uint16_t value_length; /*!< @if Eng the length of entity value @else 属性值长度 @endif */
+ uint8_t value[0]; /*!< @if Eng entity value @else 属性值字节序(字符串,以0结尾),上层应用根据协议解析 @endif */
+} ble_ams_entity_update_rpt_t;
+
+/**
+ * @if Eng
+ * @brief Struct of full entity attribute.
+ * @else
+ * @brief 完整实体属性信息。
+ * @endif
+ */
+typedef struct {
+ uint8_t entity_id; /*!< @if Eng entity id @else 实体ID @endif */
+ uint8_t att_id; /*!< @if Eng attribute id @else 属性ID @endif */
+ uint16_t value_len; /*!< @if Eng the length of entity value @else 属性值长度 @endif */
+ uint8_t value[0]; /*!< @if Eng entity value @else 属性值字节序(字符串,以0结尾) @endif */
+} ble_ams_full_attr_value_t;
+
+
+/**
+ * @if Eng
+ * @brief Callback invoked when client setup service complete.
+ * @par Callback invoked when client setup service complete.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] status error code{ @ref errcode_bt_t }.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see ble_ams_client_callbacks_t
+ * @else
+ * @brief AMS客户端服务建立完成回调函数。
+ * @par AMS客户端服务建立完成回调函数。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] status 执行结果错误码{ @ref errcode_bt_t }。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_def.h
+ * @see ble_ams_client_callbacks_t
+ * @endif
+ */
+typedef void (*ams_client_setup_result_cbk)(uint8_t client_id, uint16_t conn_id, errcode_t status);
+
+/**
+ * @if Eng
+ * @brief Callback invoked when client subscribe character notify complete.
+ * @par Callback invoked when client subscribe character notify complete.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] type subscribe type{ @ref ams_client_subscribe_type_t }.
+ * @param [in] status gatt error code{ @ref gatt_status_t }.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_stru.h
+ * @see ble_ams_client_callbacks_t
+ * @else
+ * @brief AMS客户端订阅特征通知结果回调函数。
+ * @par AMS客户端订阅特征通知结果回调函数。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] type 订阅类型{ @ref ams_client_subscribe_type_t }.
+ * @param [in] status gatt操作错误码{ @ref gatt_status_t }。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_stru.h
+ * @see ble_ams_client_callbacks_t
+ * @endif
+ */
+typedef void (*ams_client_subscribe_result_cbk)(uint8_t client_id, uint16_t conn_id,
+ ams_client_subscribe_type_t type, gatt_status_t status);
+
+/**
+ * @if Eng
+ * @brief Callback invoked when remote service notify supported remote command.
+ * @par Callback invoked when remote service notify supported remote command.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] remote_cmd supported remote command{ @ref ble_ams_remote_cmd_rpt_t }.
+ * @param [in] status error code{ @ref errcode_bt_t }.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see ble_ams_client_callbacks_t
+ * @else
+ * @brief AMS远端服务通知支持的远端命令回调函数。
+ * @par AMS远端服务通知支持的远端命令回调函数。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] remote_cmd 支持的远端命令{ @ref ble_ams_remote_cmd_rpt_t }.
+ * @param [in] status 操作错误码{ @ref errcode_bt_t }。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_def.h
+ * @see ble_ams_client_callbacks_t
+ * @endif
+ */
+typedef void (*ams_client_remote_command_rpt_cbk)(uint8_t client_id, uint16_t conn_id,
+ ble_ams_remote_cmd_rpt_t *remote_cmd, errcode_t status);
+
+/**
+ * @if Eng
+ * @brief Callback invoked when remote service notify entity update info.
+ * @par Callback invoked when remote service notify entity update info.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] entity_update entity update info{ @ref ble_ams_entity_update_rpt_t }.
+ * @param [in] status error code{ @ref errcode_bt_t }.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see ble_ams_client_callbacks_t
+ * @else
+ * @brief AMS远端服务通知实体更新信息回调函数。
+ * @par AMS远端服务通知实体更新信息回调函数。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] entity_update 实体更新信息{ @ref ble_ams_entity_update_rpt_t }.
+ * @param [in] status 操作错误码{ @ref errcode_bt_t }。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_def.h
+ * @see ble_ams_client_callbacks_t
+ * @endif
+ */
+typedef void (*ams_client_entity_update_rpt_cbk)(uint8_t client_id, uint16_t conn_id,
+ ble_ams_entity_update_rpt_t *entity_update, errcode_t status);
+
+/**
+ * @if Eng
+ * @brief Callback invoked when client write remote character complete.
+ * @par Callback invoked when client write remote character complete.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] type character type{ @ref ams_client_write_character_type_t }.
+ * @param [in] status gatt error code{ @ref gatt_status_t }.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_stru.h
+ * @see ble_ams_client_callbacks_t
+ * @else
+ * @brief AMS客户端写对端特征响应回调函数。
+ * @par AMS客户端写对端特征响应回调函数。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] type 特征类型{ @ref ams_client_write_character_type_t }.
+ * @param [in] status gatt操作错误码{ @ref gatt_status_t }。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_stru.h
+ * @see ble_ams_client_callbacks_t
+ * @endif
+ */
+typedef void (*ams_client_write_character_rsp_cbk)(uint8_t client_id, uint16_t conn_id,
+ ams_client_write_character_type_t type,
+ gatt_status_t status);
+
+/**
+ * @if Eng
+ * @brief Callback invoked when client read remote character complete.
+ * @par Callback invoked when client read remote character complete.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] read_result full attribute value{ @ref ble_ams_full_attr_value_t }.
+ * @param [in] status gatt error code{ @ref gatt_status_t }.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_stru.h
+ * @see ble_ams_client_callbacks_t
+ * @else
+ * @brief AMS客户端读对端特征响应回调函数。
+ * @par AMS客户端读对端特征响应回调函数。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] read_result 特征值{ @ref ble_ams_full_attr_value_t }.
+ * @param [in] status gatt操作错误码{ @ref gatt_status_t }。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_stru.h
+ * @see ble_ams_client_callbacks_t
+ * @endif
+ */
+typedef void (*ams_client_read_full_attr_result_cbk)(uint8_t client_id, uint16_t conn_id,
+ ble_ams_full_attr_value_t *read_result,
+ gatt_status_t status);
+
+/**
+ * @if Eng
+ * @brief Struct of AMS client callback function.
+ * @else
+ * @brief AMS 客户端回调函数接口定义。
+ * @endif
+ */
+typedef struct {
+ ams_client_setup_result_cbk setup_cb; /*!< @if Eng setup callback @else 客户端服务建立完成回调 @endif */
+ ams_client_subscribe_result_cbk subscribe_cb; /*!< @if Eng subscribe callback
+ @else 订阅特征通知结果回调 @endif */
+ ams_client_remote_command_rpt_cbk remote_cmd_cb; /*!< @if Eng suppported remote command callback
+ @else 远端服务通知支持的远端命令回调 @endif */
+ ams_client_entity_update_rpt_cbk entity_update_cb; /*!< @if Eng entity update callback
+ @else 远端服务通知实体更新信息回调 @endif */
+ ams_client_write_character_rsp_cbk write_rsp_cb; /*!< @if Eng write response callback
+ @else 客户端写请求响应回调 @endif */
+ ams_client_read_full_attr_result_cbk read_full_attr_result_cb; /*!< @if Eng read response callback
+ @else 客户端读请求响应回调 @endif */
+} ble_ams_client_callbacks_t;
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client setup service.
+ * @par The interface of AMS client setup service.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief AMS客户端发起服务建立。
+ * @par AMS客户端发起服务建立。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ams_client_setup_service(uint8_t client_id, uint16_t conn_id);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client discovery service result callback.
+ * @par The interface of AMS client discovery service result callback.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] service service info.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_client.h
+ * @see
+ * @else
+ * @brief AMS客户端发现服务结果处理接口。
+ * @par AMS客户端发现服务结果处理接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] service AMS 服务信息。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_client.h
+ * @see
+ * @endif
+ */
+void ble_ams_client_discovery_service_cbk(uint8_t client_id, uint16_t conn_id,
+ gattc_discovery_service_result_t *service);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client discovery character result callback.
+ * @par The interface of AMS client discovery character result callback.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] character character info.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_client.h
+ * @see
+ * @else
+ * @brief AMS客户端发现特征结果处理接口。
+ * @par AMS客户端发现特征结果处理接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] character AMS 服务特征信息。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_client.h
+ * @see
+ * @endif
+ */
+void ble_ams_client_discovery_character_cbk(uint8_t client_id, uint16_t conn_id,
+ gattc_discovery_character_result_t *character);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client discovery descriptor result callback.
+ * @par The interface of AMS client discovery descriptor result callback.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] descriptor descriptor info.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_client.h
+ * @see
+ * @else
+ * @brief AMS客户端发现描述符结果处理接口。
+ * @par AMS客户端发现描述符结果处理接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] descriptor AMS 服务特征描述符信息。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_client.h
+ * @see
+ * @endif
+ */
+void ble_ams_client_discovery_descriptor_cbk(uint8_t client_id, uint16_t conn_id,
+ gattc_discovery_descriptor_result_t *descriptor);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client receive notify info callback.
+ * @par The interface of AMS client receive notify info callback.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] data notify info.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_client.h
+ * @see
+ * @else
+ * @brief AMS客户端接收对端通知信息处理接口。
+ * @par AMS客户端接收对端通知信息处理接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] data 对端通知信息。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_client.h
+ * @see
+ * @endif
+ */
+void ble_ams_client_notify_cbk(uint8_t client_id, uint16_t conn_id, gattc_handle_value_t *data);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client write response callback.
+ * @par The interface of AMS client write response callback.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] status gatt status {@ref gatt_status_t}.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_stru.h
+ * @see
+ * @else
+ * @brief AMS客户端写请求响应结果处理接口。
+ * @par AMS客户端写请求响应结果处理接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] status gatt 操作结果码 {@ref gatt_status_t}.
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_stru.h
+ * @see
+ * @endif
+ */
+void ble_ams_client_write_cbk(uint8_t client_id, uint16_t conn_id, uint16_t handle, gatt_status_t status);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client read response callback.
+ * @par The interface of AMS client read response callback.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] read_result read response result.
+ * @param [in] status gatt status {@ref gatt_status_t}.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_stru.h
+ * @li bts_gatt_client.h
+ * @see
+ * @else
+ * @brief AMS客户端读请求响应结果处理接口。
+ * @par AMS客户端读请求响应结果处理接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] read_result 读请求响应结果.
+ * @param [in] status gatt 操作结果码 {@ref gatt_status_t}.
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_stru.h
+ * @li bts_gatt_client.h
+ * @see
+ * @endif
+ */
+void ble_ams_client_read_cbk(uint8_t client_id, uint16_t conn_id, gattc_handle_value_t *read_result,
+ gatt_status_t status);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client subscribe remote command character notify.
+ * @par The interface of AMS client subscribe remote command character notify.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] enable_flag enable/disable flag {@ref ams_client_notify_enable_t}.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief AMS客户端订阅远端命令特征通知接口。
+ * @par AMS客户端订阅远端命令特征通知接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] enable_flag 开启/关闭标记。 {@ref ams_client_notify_enable_t}.
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ams_client_subscribe_remote_cmd(uint8_t client_id, uint16_t conn_id,
+ ams_client_notify_enable_t enable_flag);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client subscribe entity update character notify.
+ * @par The interface of AMS client subscribe entity update character notify.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] enable_flag enable/disable flag {@ref ams_client_notify_enable_t}.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief AMS客户端订阅实体更新特征通知接口。
+ * @par AMS客户端订阅实体更新特征通知接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] enable_flag 开启/关闭标记。 {@ref ams_client_notify_enable_t}.
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ams_client_subscribe_entity_update(uint8_t client_id, uint16_t conn_id,
+ ams_client_notify_enable_t enable_flag);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client send remote command.
+ * @par The interface of AMS client send remote command, it is used for operating remote media action.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] cmd_id command id {@ref ams_remote_cmd_id_t}.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief AMS客户端发送远端命令接口。
+ * @par AMS客户端发送远端命令接口,该接口用来控制对端媒体行为,例如播放/暂停,调节音量等
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] cmd_id 命令ID。 {@ref ams_remote_cmd_id_t}.
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ams_client_send_remote_cmd(uint8_t client_id, uint16_t conn_id,
+ ams_remote_cmd_id_t cmd_id);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client register interested entity attribute.
+ * @par The interface of AMS client register interested entity attribute.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] entity_attr_req interested entity attribute list.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief AMS客户端注册感兴趣的实体属性接口。
+ * @par AMS客户端注册感兴趣的实体属性,当该实体属性更新时,对端会发送通知到本端。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] entity_attr_req 感兴趣的实体属性列表。
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ams_client_register_interested_entity_attribute(uint8_t client_id, uint16_t conn_id,
+ ble_ams_interested_entity_attr_req_t *entity_attr_req);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client retrieve full entity attribute.
+ * @par The interface of AMS client retrieve full entity attribute.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] full_attr_req entity attribute.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief AMS客户端请求对端加载完整的实体属性信息接口。
+ * @par AMS客户端请求对端加载完整的实体属性信息接口,稍后AMS客户端再发起读请求,读取完整的实体属性信息。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] full_attr_req 实体属性。
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ams_client_retrieve_full_entity_attribute(uint8_t client_id, uint16_t conn_id,
+ ble_ams_full_entity_attr_cmd_t *full_attr_req);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client read full entity attribute.
+ * @par The interface of AMS client read full entity attribute.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief AMS客户端读取完整实体属性信息接口。
+ * @par AMS客户端读取完整完整实体属性信息接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ams_client_read_full_entity_attribute(uint8_t client_id, uint16_t conn_id);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client register callback.
+ * @par The interface of AMS client register callback.
+ * @attention
+ * @param [in] func the pointer of callback struct.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief AMS客户端注册回调接口。
+ * @par AMS客户端注册回调接口。
+ * @attention
+ * @param [in] func 回调函数结构体指针。
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ams_client_register_callbacks(ble_ams_client_callbacks_t *func);
+
+/**
+ * @if Eng
+ * @brief The interface of check service uuid whether or not AMS service.
+ * @par The interface of check service uuid whether or not AMS service.
+ * @attention
+ * @param [in] uuid service uuid.
+ * @retval true or false true:Yes, false:No.
+ * @par Dependency:
+ * @li
+ * @see
+ * @else
+ * @brief AMS客户端注册回调接口。
+ * @par AMS客户端注册回调接口。
+ * @attention
+ * @param [in] uuid 服务uuid。
+ * @retval 是或否 是:是AMS服务,否:不是AMS服务.
+ * @par 依赖:
+ * @li
+ * @see
+ * @endif
+ */
+bool is_ble_ams_service(bt_uuid_t *uuid);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client clear stored remote ams service info by connect id.
+ * @par The interface of AMS client clear stored remote ams service info by connect id.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li
+ * @see
+ * @else
+ * @brief AMS客户端根据连接ID清理存储的对端AMS服务信息。
+ * @par AMS客户端根据连接ID清理存储的对端AMS服务信息。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li
+ * @see
+ * @endif
+ */
+void ble_ams_client_clear_remote_by_conn(uint8_t client_id, uint16_t conn_id);
+
+/**
+ * @if Eng
+ * @brief The interface of AMS client clear all stored remote ams service info.
+ * @par The interface of AMS client clear all stored remote ams service info.
+ * @attention
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li
+ * @see
+ * @else
+ * @brief AMS客户端清理所有存储的对端AMS服务信息。
+ * @par AMS客户端清理所有存储的对端AMS服务信息。
+ * @attention
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li
+ * @see
+ * @endif
+ */
+void ble_ams_client_clear_remote_all(void);
+
+/**
+ * @}
+ */
+#ifdef __cplusplus
+}
+#endif
+#endif
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) @CompanyNameMagicTag 2024. All rights reserved.
+ * Description: BLE Apple Notification Center Service Client module.
+ */
+
+/**
+ * @defgroup bluetooth_bts_ancs_client ANCS CLIENT API
+ * @ingroup bluetooth
+ * @{
+ */
+#ifndef BLE_ANCS_CLIENT_H
+#define BLE_ANCS_CLIENT_H
+#include "errcode.h"
+#include "sdk_list.h"
+#include "bth_stack.h"
+#include "bth_stack_gatt.h"
+#include "bts_gatt_client.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @if Eng
+ * @brief Default value of Client Characteristic Configuration.
+ * @else
+ * @brief 客户端特征配置描述符的默认值。
+ * @endif
+ */
+#define BLE_ANCS_CLIENT_CHARACTERISTIC_CONFIGURATION_DEFAULT 0x0000
+
+/**
+ * @if Eng
+ * @brief Client Characteristic Configuration value is notification.
+ * @else
+ * @brief 客户端特征配置描述符的值为通知。
+ * @endif
+ */
+#define BLE_ANCS_CLIENT_CHARACTERISTIC_CONFIGURATION_NOTIFICATION 0x0001
+
+/**
+ * @if Eng
+ * @brief Enum of ancs notify switch.
+ * @else
+ * @brief 通知开关枚举值。
+ * @endif
+ */
+typedef enum {
+ ANCS_CLIENT_NOTIFY_DISABLE, /*!< @if Eng disable notify @else 关闭通知 @endif */
+ ANCS_CLIENT_NOTIFY_ENABLE, /*!< @if Eng enable notify @else 开启通知 @endif */
+} ancs_client_notify_enable_t;
+
+/**
+ * @if Eng
+ * @brief Enum of event id
+ * @else
+ * @brief 事件ID枚举值
+ * @endif
+ */
+typedef enum {
+ ANCS_EVENT_ADDED = 0, /*!< @if Eng add @else 新增通知 @endif */
+ ANCS_EVENT_MODIFIED = 1, /*!< @if Eng modify @else 修改通知 @endif */
+ ANCS_EVENT_REMOEVD = 2, /*!< @if Eng remove @else 移除通知 @endif */
+ ANCS_EVENT_RESERVED /*!< @if Eng reserved @else 预留事件ID @endif */
+} ancs_event_id_t;
+
+/**
+ * @if Eng
+ * @brief Enum of event flags
+ * @else
+ * @brief 事件标记枚举值
+ * @endif
+ */
+typedef enum {
+ ANCS_EVENT_FLAG_SILENT = (1 << 0), /*!< @if Eng silent @else 安静 @endif */
+ ANCS_EVENT_FLAG_IMPORTANT = (1 << 1), /*!< @if Eng important @else 重要 @endif */
+ ANCS_EVENT_FLAG_PREEXISTING = (1 << 2), /*!< @if Eng preexisting @else 先存的 @endif */
+ ANCS_EVENT_FLAG_POSITIVE_ACTION = (1 << 3), /*!< @if Eng positive action @else 积极活动 @endif */
+ ANCS_EVENT_FLAG_NEGATIVE_ACTION = (1 << 4), /*!< @if Eng negative action @else 消极活动 @endif */
+ ANCS_EVENT_FLAG_RESERVED /*!< @if Eng reserved @else 预留事件标记 @endif */
+} ancs_event_flags_t;
+
+/**
+ * @if Eng
+ * @brief Enum of command id
+ * @else
+ * @brief 命令ID枚举值
+ * @endif
+ */
+typedef enum {
+ ANCS_CMD_GET_NOTIFY_ATT = 0, /*!< @if Eng Get notify attribute @else 获取通知属性 @endif */
+ ANCS_CMD_GET_APP_ATT = 1, /*!< @if Eng Get app attribute @else 获取应用属性 @endif */
+ ANCS_CMD_PERFORM_NOTIFY_ACTION = 2, /*!< @if Eng Perform notify action @else 处理通知 @endif */
+ ANCS_CMD_RESERVED /*!< @if Eng reserved @else 预留命令ID @endif */
+} ancs_command_id_t;
+
+/**
+ * @if Eng
+ * @brief Enum of category id
+ * @else
+ * @brief 分类ID枚举值
+ * @endif
+ */
+typedef enum {
+ ANCS_CATEGORY_OTHER = 0, /*!< @if Eng Other @else 其他 @endif */
+ ANCS_CATEGORY_INCOMING_CALL = 1, /*!< @if Eng Incoming call @else 来电 @endif */
+ ANCS_CATEGORY_MISSED_CALL = 2, /*!< @if Eng Missed call @else 未接来电 @endif */
+ ANCS_CATEGORY_VOICE_MAIL = 3, /*!< @if Eng Voice mail @else 语音消息 @endif */
+ ANCS_CATEGORY_SOCIAL = 4, /*!< @if Eng Social @else 社交 @endif */
+ ANCS_CATEGORY_SCHEDULE = 5, /*!< @if Eng Schedule @else 计划 @endif */
+ ANCS_CATEGORY_EMAIL = 6, /*!< @if Eng Email @else 邮件 @endif */
+ ANCS_CATEGORY_NEWS = 7, /*!< @if Eng News @else 新闻 @endif */
+ ANCS_CATEGORY_HEALTH_FITNESS = 8, /*!< @if Eng Health fitness @else 运动健康 @endif */
+ ANCS_CATEGORY_BUSINESS_FINANCE = 9, /*!< @if Eng Business finance @else 商业金融 @endif */
+ ANCS_CATEGORY_LOCATION = 10, /*!< @if Eng Location @else 位置 @endif */
+ ANCS_CATEGORY_ENTERTAINMENT = 11, /*!< @if Eng Entertainment @else 娱乐 @endif */
+ ANCS_CATEGORY_RESERVED /*!< @if Eng reserved @else 预留分类ID @endif */
+} ancs_category_id_t;
+
+
+/**
+ * @if Eng
+ * @brief Enum of notify attribute id
+ * @else
+ * @brief 通知属性ID枚举值
+ * @endif
+ */
+typedef enum {
+ ANCS_NOTIFY_ATT_APP_ID = 0, /*!< @if Eng App id @else 应用编号 @endif */
+ ANCS_NOTIFY_ATT_TITLE = 1, /*!< @if Eng Title @else 标题 @endif */
+ ANCS_NOTIFY_ATT_SUBTITLE = 2, /*!< @if Eng Subtitle @else 副标题 @endif */
+ ANCS_NOTIFY_ATT_MESSAGE = 3, /*!< @if Eng Message @else 消息 @endif */
+ ANCS_NOTIFY_ATT_MSG_SIZE = 4, /*!< @if Eng Message size @else 消息大小 @endif */
+ ANCS_NOTIFY_ATT_DATE = 5, /*!< @if Eng Date @else 日期 @endif */
+ ANCS_NOTIFY_ATT_POSITIVE_LABEL = 6, /*!< @if Eng Positive lable @else 积极活动标签 @endif */
+ ANCS_NOTIFY_ATT_NEGATIVE_LABEL = 7, /*!< @if Eng Negative lable @else 消极活动标签 @endif */
+ ANCS_NOTIFY_ATT_RESERVED /*!< @if Eng reserved @else 预留通知属性ID @endif */
+} ancs_notification_att_id_t;
+
+/**
+ * @if Eng
+ * @brief Enum of app attribute id
+ * @else
+ * @brief 应用属性ID枚举值
+ * @endif
+ */
+typedef enum {
+ ANCS_APP_ATT_DISPLAY_NAME = 0, /*!< @if Eng Display name @else 应用显示名称 @endif */
+ ANCS_APP_ATT_RESERVED /*!< @if Eng reserved @else 预留应用属性ID @endif */
+} ancs_app_att_id_t;
+
+/**
+ * @if Eng
+ * @brief Enum of action id
+ * @else
+ * @brief 活动ID枚举值
+ * @endif
+ */
+typedef enum {
+ ANCS_ACTION_POSITIVE = 0, /*!< @if Eng Positive @else 积极活动 @endif */
+ ANCS_ACTION_NEGATIVE = 1, /*!< @if Eng Negative @else 消极活动 @endif */
+ ANCS_ACTION_RESERVED /*!< @if Eng Reserved @else 预留活动ID @endif */
+} ancs_action_id_t;
+
+/**
+ * @if Eng
+ * @brief Enum of subscribe type
+ * @else
+ * @brief 订阅类型
+ * @endif
+ */
+typedef enum {
+ ANCS_CLIENT_SUBSCRIBE_NOTIFY = 0, /*!< @if Eng Subscribe notify @else 订阅通知 @endif */
+ ANCS_CLIENT_SUBSCRIBE_DATA = 1, /*!< @if Eng Subscribe data @else 订阅数据 @endif */
+} ancs_client_subscribe_type_t;
+
+/**
+ * @if Eng
+ * @brief Enum of ancs servie character.
+ * @else
+ * @brief ANCS服务特征。
+ * @endif
+ */
+typedef enum {
+ ANCS_CHAR_NOTIFY_SRC = 0, /*!< @if Eng Notify source @else 通知源 @endif */
+ ANCS_CHAR_CTRL_POINT = 1, /*!< @if Eng Control point @else 控制点 @endif */
+ ANCS_CHAR_DATA_SRC = 2, /*!< @if Eng Data Source @else 数据源 @endif */
+ ANCS_CHAR_INVALID,
+} ancs_character_t;
+
+/**
+ * @if Eng
+ * @brief Enum of ancs error codes.
+ * @else
+ * @brief ANCS客户端写特征响应错误码。
+ * @endif
+ */
+typedef enum {
+ ANCS_ERROR_CODE_UNKNOW_CMD = 0xA0, /*!< @if Eng Unknown command @else 未知命令 @endif */
+ ANCS_ERROR_CODE_INVALID_CMD = 0xA1, /*!< @if Eng Invalid command @else 无效命令 @endif */
+ ANCS_ERROR_CODE_INVALID_PARAM = 0xA2, /*!< @if Eng Invalid parameter @else 无效参数 @endif */
+ ANCS_ERROR_CODE_ACTION_FAILED = 0xA3 /*!< @if Eng The action was not performed @else 行为没有被执行 @endif */
+} ancs_write_error_code_t;
+
+/**
+ * @if Eng
+ * @brief Struct of ancs servie.
+ * @else
+ * @brief ANCS服务。
+ * @endif
+ */
+typedef struct {
+ uint8_t client_id; /*!< @if Eng Client id @else 客户端ID @endif */
+ uint16_t conn_id; /*!< @if Eng Connect id @else 连接ID @endif */
+ uint16_t start_handle; /*!< @if Eng Start handle @else 开始handle @endif */
+ uint16_t end_handle; /*!< @if Eng End handle @else 结束handle @endif */
+ gattc_discovery_character_result_t notify_src; /*!< @if Eng Notify source @else 通知源 @endif */
+ gattc_discovery_character_result_t ctl_point; /*!< @if Eng Control point @else 控制点 @endif */
+ gattc_discovery_character_result_t data_src; /*!< @if Eng Data Source @else 数据源 @endif */
+ uint16_t notify_src_ccc_handle; /*!< @if Eng Notify source CCC handle
+ @else 通知源CCC描述符handle @endif */
+ uint16_t data_src_ccc_handle; /*!< @if Eng Data source CCC handle
+ @else 数据源CCC描述符handle @endif */
+} ble_ancs_service_t;
+
+
+/**
+ * @if Eng
+ * @brief Struct of notification info.
+ * @else
+ * @brief 通知消息结构体。
+ * @endif
+ */
+typedef struct {
+ uint8_t event_id; /*!< @if Eng Event id {@ref ancs_event_id_t}
+ @else 事件ID {@ref ancs_event_id_t} @endif */
+ uint8_t event_flags; /*!< @if Eng Event flags {@ref ancs_event_flags_t}
+ @else 事件标记 {@ref ancs_event_flags_t} @endif */
+ uint8_t category_id; /*!< @if Eng Category id {@ref ancs_category_id_t}
+ @else 分类ID {@ref ancs_category_id_t} @endif */
+ uint8_t category_count; /*!< @if Eng Category count @else 分类消息个数 @endif */
+ uint32_t notification_uid; /*!< @if Eng Notify uuid @else 通知ID @endif */
+} ble_ancs_notification_src_t;
+
+/**
+ * @if Eng
+ * @brief Struct of attribute request
+ * @else
+ * @brief 属性请求结构体。
+ * @endif
+ */
+typedef struct {
+ uint8_t att_id; /*!< @if Eng Attribute id @else 属性ID @endif */
+ uint16_t att_max_length; /*!< @if Eng Attribute max length
+ @else 属性值最大长度,仅用于通知属性【标题】【子标题】【消息】属性,其他属性传0 @endif */
+} ble_ancs_attr_req_t;
+
+/**
+ * @if Eng
+ * @brief Struct of notify attribute request
+ * @else
+ * @brief 通知属性请求结构体。
+ * @endif
+ */
+typedef struct {
+ uint32_t notification_uid; /*!< @if Eng Notify uuid @else 通知ID @endif */
+ uint16_t att_num; /*!< @if Eng Attribute num @else 属性个数 @endif */
+ ble_ancs_attr_req_t attr[0]; /*!< @if Eng Attribute array @else 属性ID数组 @endif */
+} ble_ancs_notification_attr_req_t;
+
+/**
+ * @if Eng
+ * @brief Struct of attribute response
+ * @else
+ * @brief 属性响应结构体。
+ * @endif
+ */
+typedef struct {
+ uint8_t att_id; /*!< @if Eng Attribute id @else 属性ID @endif */
+ uint16_t att_length; /*!< @if Eng Attribute length @else 属性长度 @endif */
+ uint8_t *att; /*!< @if Eng Attribute value @else 属性值 @endif */
+} ble_ancs_attr_rsp_t;
+
+/**
+ * @if Eng
+ * @brief Struct of notify attribute response
+ * @else
+ * @brief 通知属性响应结构体。
+ * @endif
+ */
+typedef struct {
+ uint32_t notification_uid; /*!< @if Eng Notify uuid @else 通知ID @endif */
+ uint16_t att_num; /*!< @if Eng Attribute num @else 属性个数 @endif */
+ struct list_stru attr_rsp_lst; /*!< @if Eng Attribute list {@ref ble_ancs_attr_rsp_t}
+ @else 属性列表 {@ref ble_ancs_attr_rsp_t} @endif */
+} ble_ancs_notification_attr_rsp_t;
+
+/**
+ * @if Eng
+ * @brief Struct of APP id
+ * @else
+ * @brief 应用ID
+ * @endif
+ */
+typedef struct {
+ uint16_t len; /*!< @if Eng Length @else 长度 @endif */
+ uint8_t *id; /*!< @if Eng Id @else ID @endif */
+} ble_ancs_app_id_t;
+
+/**
+ * @if Eng
+ * @brief Struct of app attribute request
+ * @else
+ * @brief 应用属性请求结构体。
+ * @endif
+ */
+typedef struct {
+ ble_ancs_app_id_t app_id; /*!< @if Eng App id @else 应用ID @endif */
+ uint16_t att_num; /*!< @if Eng Attribute num @else 属性个数 @endif */
+ uint8_t attr_id[0]; /*!< @if Eng Attribute Array {@ref ancs_app_att_id_t}
+ @else 属性ID数组 {@ref ancs_app_att_id_t} @endif */
+} ble_ancs_app_attr_req_t;
+
+/**
+ * @if Eng
+ * @brief Struct of app attribute response
+ * @else
+ * @brief 应用属性响应结构体。
+ * @endif
+ */
+typedef struct {
+ ble_ancs_app_id_t app_id; /*!< @if Eng App id @else 应用ID @endif */
+ uint16_t att_num; /*!< @if Eng Attribute num @else 属性个数 @endif */
+ struct list_stru attr_rsp_lst; /*!< @if Eng Attribute list {@ref ble_ancs_attr_rsp_t}
+ @else 属性列表 {@ref ble_ancs_attr_rsp_t} @endif */
+} ble_ancs_app_attr_rsp_t;
+
+
+/**
+ * @if Eng
+ * @brief Struct of perform action request
+ * @else
+ * @brief 通知处理请求结构体。
+ * @endif
+ */
+typedef struct {
+ uint32_t notification_uid; /*!< @if Eng Notify uuid @else 通知ID @endif */
+ uint8_t action_id; /*!< @if Eng Action id {@ref ancs_action_id_t}
+ @else 行为ID {@ref ancs_action_id_t} @endif */
+} ble_ancs_notification_action_req_t;
+
+/**
+ * @if Eng
+ * @brief Callback invoked when client setup service complete.
+ * @par Callback invoked when client setup service complete.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] status error code{ @ref errcode_bt_t }.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see ble_ancs_client_callbacks_t
+ * @else
+ * @brief ANCS客户端服务建立完成回调函数。
+ * @par ANCS客户端服务建立完成回调函数。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] status 执行结果错误码{ @ref errcode_bt_t }。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_def.h
+ * @see ble_ancs_client_callbacks_t
+ * @endif
+ */
+typedef void (*ancs_client_setup_result_cbk)(uint8_t client_id, uint16_t conn_id, errcode_t status);
+
+/**
+ * @if Eng
+ * @brief Callback invoked when client subscribe character notify complete.
+ * @par Callback invoked when client subscribe character notify complete.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] type subscribe type{ @ref ancs_client_subscribe_type_t }.
+ * @param [in] status gatt error code{ @ref gatt_status_t }.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_stru.h
+ * @see ble_ancs_client_callbacks_t
+ * @else
+ * @brief ANCS客户端订阅特征通知结果回调函数。
+ * @par ANCS客户端订阅特征通知结果回调函数。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] type 订阅类型{ @ref ancs_client_subscribe_type_t }.
+ * @param [in] status gatt操作错误码{ @ref gatt_status_t }。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_stru.h
+ * @see ble_ancs_client_callbacks_t
+ * @endif
+ */
+typedef void (*ancs_client_subscribe_result_cbk)(uint8_t client_id, uint16_t conn_id,
+ ancs_client_subscribe_type_t type, gatt_status_t status);
+
+/**
+ * @if Eng
+ * @brief Callback invoked when remote service push notify message.
+ * @par Callback invoked when remote service push notify message.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] notify_src notify message { @ref ble_ancs_notification_src_t }.
+ * @param [in] status error code{ @ref errcode_bt_t }.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see ble_ancs_client_callbacks_t
+ * @else
+ * @brief ANCS远端服务推送通知消息回调函数。
+ * @par ANCS远端服务推送通知消息回调函数。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] notify_src 通知消息 { @ref ble_ancs_notification_src_t }.
+ * @param [in] status 操作错误码{ @ref errcode_bt_t }。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_def.h
+ * @see ble_ancs_client_callbacks_t
+ * @endif
+ */
+typedef void (*ancs_client_notify_source_cbk)(uint8_t client_id, uint16_t conn_id,
+ ble_ancs_notification_src_t *notify_src, errcode_t status);
+
+/**
+ * @if Eng
+ * @brief Callback invoked when remote service push notify attribute info.
+ * @par Callback invoked when remote service push notify attribute info.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] notify_attr_rsp notify attribute info { @ref ble_ancs_notification_attr_rsp_t }.
+ * @param [in] status error code{ @ref errcode_bt_t }.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see ble_ancs_client_callbacks_t
+ * @else
+ * @brief ANCS远端服务推送通知属性信息回调函数。
+ * @par ANCS远端服务推送通知属性信息回调函数。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] notify_attr_rsp 通知属性信息 { @ref ble_ancs_notification_attr_rsp_t }.
+ * @param [in] status 操作错误码{ @ref errcode_bt_t }。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_def.h
+ * @see ble_ancs_client_callbacks_t
+ * @endif
+ */
+typedef void (*ancs_client_notification_attr_rsp_cbk)(uint8_t client_id, uint16_t conn_id,
+ ble_ancs_notification_attr_rsp_t *notify_attr_rsp, errcode_t status);
+
+/**
+ * @if Eng
+ * @brief Callback invoked when remote service push app attribute info.
+ * @par Callback invoked when remote service push app attribute info.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] app_attr_rsp app attribute info { @ref ble_ancs_app_attr_rsp_t }.
+ * @param [in] status error code{ @ref errcode_bt_t }.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see ble_ancs_client_callbacks_t
+ * @else
+ * @brief ANCS远端服务推送应用属性信息回调函数。
+ * @par ANCS远端服务推送应用属性信息回调函数。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] app_attr_rsp 应用属性信息 { @ref ble_ancs_app_attr_rsp_t }.
+ * @param [in] status 操作错误码{ @ref errcode_bt_t }。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_def.h
+ * @see ble_ancs_client_callbacks_t
+ * @endif
+ */
+typedef void (*ancs_client_app_attr_rsp_cbk)(uint8_t client_id, uint16_t conn_id,
+ ble_ancs_app_attr_rsp_t *app_attr_rsp, errcode_t status);
+
+/**
+ * @if Eng
+ * @brief Callback invoked when client write contro point complete.
+ * @par Callback invoked when client write contro point complete.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] status gatt error code{ @ref gatt_status_t }.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_stru.h
+ * @see ble_ancs_client_callbacks_t
+ * @else
+ * @brief AMS客户端写控制点特征响应回调函数。
+ * @par AMS客户端写控制点特征响应回调函数。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] status gatt操作错误码{ @ref gatt_status_t }。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_stru.h
+ * @see ble_ancs_client_callbacks_t
+ * @endif
+ */
+typedef void (*ancs_client_write_result_cbk)(uint8_t client_id, uint16_t conn_id, gatt_status_t status);
+
+/**
+ * @if Eng
+ * @brief Struct of GATT client callback function.
+ * @else
+ * @brief GATT client回调函数接口定义。
+ * @endif
+ */
+typedef struct {
+ ancs_client_setup_result_cbk setup_cb; /*!< @if Eng setup callback @else 客户端服务建立完成回调 @endif */
+ ancs_client_subscribe_result_cbk subscribe_cb; /*!< @if Eng subscribe callback @else 订阅特征通知结果回调 @endif */
+ ancs_client_notify_source_cbk notify_source_cb; /*!< @if Eng notify source callback
+ @else 远端服务推送通知消息回调 @endif */
+ ancs_client_notification_attr_rsp_cbk notify_attr_cb; /*!< @if Eng notify attribute callback
+ @else 远端服务推送通知属性信息回调 @endif */
+ ancs_client_app_attr_rsp_cbk app_attr_cb; /*!< @if Eng app attribute callback
+ @else 远端服务推送应用属性信息回调 @endif */
+ ancs_client_write_result_cbk write_result_cb; /*!< @if Eng write result callback
+ @else 客户端写控制点特征请求响应回调 @endif */
+} ble_ancs_client_callbacks_t;
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client setup service.
+ * @par The interface of ANCS client setup service.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief ANCS客户端发起服务建立。
+ * @par ANCS客户端发起服务建立。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ancs_client_setup_service(uint8_t client_id, uint16_t conn_id);
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client discovery service result callback.
+ * @par The interface of ANCS client discovery service result callback.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] service service info.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_client.h
+ * @see
+ * @else
+ * @brief ANCS客户端发现服务结果处理接口。
+ * @par ANCS客户端发现服务结果处理接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] service ANCS 服务信息。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_client.h
+ * @see
+ * @endif
+ */
+void ble_ancs_client_discovery_service_cbk(uint8_t client_id, uint16_t conn_id,
+ gattc_discovery_service_result_t *service);
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client discovery character result callback.
+ * @par The interface of ANCS client discovery character result callback.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] character character info.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_client.h
+ * @see
+ * @else
+ * @brief ANCS客户端发现特征结果处理接口。
+ * @par ANCS客户端发现特征结果处理接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] character ANCS 服务特征信息。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_client.h
+ * @see
+ * @endif
+ */
+void ble_ancs_client_discovery_character_cbk(uint8_t client_id, uint16_t conn_id,
+ gattc_discovery_character_result_t *character);
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client discovery descriptor result callback.
+ * @par The interface of ANCS client discovery descriptor result callback.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] descriptor descriptor info.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_client.h
+ * @see
+ * @else
+ * @brief ANCS客户端发现描述符结果处理接口。
+ * @par ANCS客户端发现描述符结果处理接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] descriptor ANCS服务特征描述符信息。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_client.h
+ * @see
+ * @endif
+ */
+void ble_ancs_client_discovery_descriptor_cbk(uint8_t client_id, uint16_t conn_id,
+ gattc_discovery_descriptor_result_t *descriptor);
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client receive notify info callback.
+ * @par The interface of ANCS client receive notify info callback.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] data notify info.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_client.h
+ * @see
+ * @else
+ * @brief ANCS客户端接收对端通知信息处理接口。
+ * @par ANCS客户端接收对端通知信息处理接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] data 对端通知信息。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_client.h
+ * @see
+ * @endif
+ */
+void ble_ancs_client_notify_cbk(uint8_t client_id, uint16_t conn_id, gattc_handle_value_t *data);
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client write response callback.
+ * @par The interface of ANCS client write response callback.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] status gatt status {@ref gatt_status_t}.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li bts_gatt_stru.h
+ * @see
+ * @else
+ * @brief ANCS客户端写请求响应结果处理接口。
+ * @par ANCS客户端写请求响应结果处理接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] status gatt 操作结果码 {@ref gatt_status_t}.
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li bts_gatt_stru.h
+ * @see
+ * @endif
+ */
+void ble_ancs_client_write_cbk(uint8_t client_id, uint16_t conn_id, uint16_t handle, gatt_status_t status);
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client subscribe notify source character notify.
+ * @par The interface of ANCS client subscribe notify source character notify.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] enable_flag enable/disable flag {@ref ancs_client_notify_enable_t}.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief ANCS客户端订阅通知源特征通知接口。
+ * @par ANCS客户端订阅通知源特征通知接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] enable_flag 开启/关闭标记。 {@ref ancs_client_notify_enable_t}.
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ancs_client_subscribe_notification_source(uint8_t client_id, uint16_t conn_id,
+ ancs_client_notify_enable_t enable_flag);
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client subscribe data source character notify.
+ * @par The interface of ANCS client subscribe data source character notify.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] enable_flag enable/disable flag {@ref ancs_client_notify_enable_t}.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief ANCS客户端订阅数据源特征通知接口。
+ * @par ANCS客户端订阅数据源特征通知接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] enable_flag 开启/关闭标记。 {@ref ancs_client_notify_enable_t}.
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ancs_client_subscribe_data_source(uint8_t client_id, uint16_t conn_id,
+ ancs_client_notify_enable_t enable_flag);
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client send get notify attribute command.
+ * @par The interface of ANCS client send get notify attribute command.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] notify_att_req notify attribute request {@ref ble_ancs_notification_attr_req_t}.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief ANCS客户端发送获取通知属性命令接口。
+ * @par ANCS客户端发送获取通知属性命令接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] notify_att_req 通知属性请求。 {@ref ble_ancs_notification_attr_req_t}.
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ancs_client_send_get_notify_att_cmd(uint8_t client_id, uint16_t conn_id,
+ ble_ancs_notification_attr_req_t *notify_att_req);
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client send get app attribute command.
+ * @par The interface of ANCS client send get app attribute command.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] app_att_req app attribute request {@ref ble_ancs_app_attr_req_t}.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief ANCS客户端发送获取应用属性命令接口。
+ * @par ANCS客户端发送获取应用属性命令接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] app_att_req 应用属性请求。 {@ref ble_ancs_app_attr_req_t}.
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ancs_client_send_get_app_att_cmd(uint8_t client_id, uint16_t conn_id,
+ ble_ancs_app_attr_req_t *app_att_req);
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client send perform notify action command.
+ * @par The interface of ANCS client send perform notify action command.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @param [in] action_req perform action request {@ref ble_ancs_notification_action_req_t}.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief ANCS客户端发送执行通知行为命令接口。
+ * @par ANCS客户端发送执行通知行为命令接口。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @param [in] action_req 执行行为请求。 {@ref ble_ancs_notification_action_req_t}.
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ancs_client_send_perform_notify_action_cmd(uint8_t client_id, uint16_t conn_id,
+ ble_ancs_notification_action_req_t *action_req);
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client register callback.
+ * @par The interface of ANCS client register callback.
+ * @attention
+ * @param [in] func the pointer of callback struct.
+ * @retval errcode_t {@ref errcode_bt_t}.
+ * @par Dependency:
+ * @li bts_def.h
+ * @see
+ * @else
+ * @brief ANCS客户端注册回调接口。
+ * @par ANCS客户端注册回调接口。
+ * @attention
+ * @param [in] func 回调函数结构体指针。
+ * @retval 操作错误码 {@ref errcode_bt_t}.
+ * @par 依赖:
+ * @li bts_def.h
+ * @see
+ * @endif
+ */
+errcode_t ble_ancs_client_register_callbacks(ble_ancs_client_callbacks_t *func);
+
+/**
+ * @if Eng
+ * @brief The interface of check service uuid whether or not ANCS service.
+ * @par The interface of check service uuid whether or not ANCS service.
+ * @attention
+ * @param [in] uuid service uuid.
+ * @retval true or false true:Yes, false:No.
+ * @par Dependency:
+ * @li
+ * @see
+ * @else
+ * @brief ANCS客户端注册回调接口。
+ * @par ANCS客户端注册回调接口。
+ * @attention
+ * @param [in] uuid 服务uuid。
+ * @retval 是或否 是:是ANCS服务,否:不是ANCS服务.
+ * @par 依赖:
+ * @li
+ * @see
+ * @endif
+ */
+bool is_ble_ancs_service(bt_uuid_t *uuid);
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client clear stored remote ANCS service info by connect id.
+ * @par The interface of ANCS client clear stored remote ANCS service info by connect id.
+ * @attention
+ * @param [in] client_id client ID.
+ * @param [in] conn_id connect id.
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li
+ * @see
+ * @else
+ * @brief ANCS客户端根据连接ID清理存储的对端ANCS服务信息。
+ * @par ANCS客户端根据连接ID清理存储的对端ANCS服务信息。
+ * @attention
+ * @param [in] client_id 客户端ID。
+ * @param [in] conn_id 连接ID。
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li
+ * @see
+ * @endif
+ */
+void ble_ancs_client_clear_remote_by_conn(uint8_t client_id, uint16_t conn_id);
+
+/**
+ * @if Eng
+ * @brief The interface of ANCS client clear all stored remote ANCS service info.
+ * @par The interface of ANCS client clear all stored remote ANCS service info.
+ * @attention
+ * @retval #void no return value.
+ * @par Dependency:
+ * @li
+ * @see
+ * @else
+ * @brief ANCS客户端清理所有存储的对端ANCS服务信息。
+ * @par ANCS客户端清理所有存储的对端ANCS服务信息。
+ * @attention
+ * @retval 无返回值。
+ * @par 依赖:
+ * @li
+ * @see
+ * @endif
+ */
+void ble_ancs_client_clear_remote_all(void);
+
+/**
+ * @}
+ */
+#ifdef __cplusplus
+}
+#endif
+#endif
\ No newline at end of file
errcode_t ble_server_register_gatt_callbacks(void);
errcode_t ble_client_register_gatt_callbacks(void);
+uint32_t ble_gatt_mtu_exchange_result_get(void);
/**
* @}
${CMAKE_CURRENT_SOURCE_DIR}/ble_fmp_target.c
${CMAKE_CURRENT_SOURCE_DIR}/ble_fmp_locator.c
${CMAKE_CURRENT_SOURCE_DIR}/ble_gatts_callbacks.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/ble_ancs_client.c
+ ${CMAKE_CURRENT_SOURCE_DIR}/ble_ams_client.c
)
set(BTH_SAMPLE_LIST "${BTH_SAMPLE_LIST}" "${bt_comm_src_list}" CACHE INTERNAL "bt ram obj list" FORCE)
--- /dev/null
+/*
+ * Copyright (c) @CompanyNameMagicTag 2024. All rights reserved.
+ * Description: BLE Apple Media Service Client module.
+ */
+
+#include <string.h>
+#include "sdk_list.h"
+#include "errcode.h"
+#include "btsrv_log.h"
+#include "bts_le_gap.h"
+#include "sdk_general.h"
+#include "bts_uuid.h"
+#include "ble_ams_client.h"
+
+#define BLE_CLIENT_CHARACTERISTIC_CONFIGURATION_UUID 0x2902
+#define AMS_ENTITY_UPDATE_NOTIFY_VALUE_OFFSET 3
+#define AMS_ENTITY_UPDATE_NOTIFY_FLAGS_OFFSET 2
+#define AMS_STRING_SUFFIX_ZERO_BYTE 1
+
+#define u16_low_byte(uuid) ((uint8_t)((uuid) & 0x00FF))
+#define u16_high_byte(uuid) ((uint8_t)(((uuid) & 0xFF00) >> 8))
+
+/* AMS服务UUID,小端序 */
+uint8_t ams_uuid[BT_UUID_MAX_LEN] = {
+ 0xDC, 0xF8, 0x55, 0xAD, 0x02, 0xC5, 0xF4, 0x8E, 0x3A, 0x43, 0x36, 0x0F, 0x2B, 0x50, 0xD3, 0x89};
+
+/* AMS服务特征UUID-Remote Command,小端序 */
+uint8_t rmt_cmd_uuid[BT_UUID_MAX_LEN] = {
+ 0xC2, 0x51, 0xCA, 0xF7, 0x56, 0x0E, 0xDF, 0xB8, 0x8A, 0x4A, 0xB1, 0x57, 0xD8, 0x81, 0x3C, 0x9B};
+
+/* AMS服务特征UUID-Entity Update,小端序 */
+uint8_t entity_update_uuid[BT_UUID_MAX_LEN] = {
+ 0x02, 0xC1, 0x96, 0xBA, 0x92, 0xBB, 0x0C, 0x9A, 0x1F, 0x41, 0x8D, 0x80, 0xCE, 0xAB, 0x7C, 0x2F};
+
+/* AMS服务特征UUID-Entity Attribute,小端序 */
+uint8_t entity_att_uuid[BT_UUID_MAX_LEN] = {
+ 0xD7, 0xD5, 0xBB, 0x70, 0xA8, 0xA3, 0xAB, 0xA6, 0xD8, 0x46, 0xAB, 0x23, 0x8C, 0xF3, 0xB2, 0xC6};
+
+/* AMS客户端回调函数结构体 */
+ble_ams_client_callbacks_t g_ams_callbacks_t = {0};
+
+/* 对端AMS服务信息 */
+struct list_stru g_ble_ams_service_list = {NULL, NULL};
+
+/* 根据连接ID查询存储的对端AMS服务信息 */
+static ble_ams_service_t* ams_service_remote_by_conn(uint8_t client_id, uint16_t conn_id)
+{
+ ble_ams_service_t *node = (ble_ams_service_t *)g_ble_ams_service_list.head;
+ while (node != NULL) {
+ if ((node->client_id == client_id) && (node->conn_id == conn_id)) {
+ return node;
+ }
+ node = lnext(node);
+ }
+
+ return NULL;
+}
+
+/* AMS客户端发起服务建立 */
+errcode_t ble_ams_client_setup_service(uint8_t client_id, uint16_t conn_id)
+{
+ ble_ams_service_t *remote = ams_service_remote_by_conn(client_id, conn_id);
+ if (remote != NULL) {
+ bts_error("ams client remote service is already exist,client_id:%u, conn_id:%u.\r\n",
+ client_id, conn_id);
+ return ERRCODE_BT_DONE;
+ }
+
+ bt_uuid_t service_uuid = {0};
+ service_uuid.uuid_len = BT_UUID_MAX_LEN;
+ if (memcpy_s(service_uuid.uuid, BT_UUID_MAX_LEN, ams_uuid, BT_UUID_MAX_LEN) != EOK) {
+ bts_error("[btsrv][ERROR] uuid memcpy fail!\r\n");
+ return ERRCODE_BT_FAIL;
+ }
+ return gattc_discovery_service(client_id, conn_id, &service_uuid);
+}
+
+/* 发现服务回调函数 */
+void ble_ams_client_discovery_service_cbk(uint8_t client_id, uint16_t conn_id,
+ gattc_discovery_service_result_t *service)
+{
+ ble_ams_service_t *remote = ams_service_remote_by_conn(client_id, conn_id);
+ if (remote != NULL) {
+ bts_error("ams client remote service is already exist,client_id:%u, conn_id:%u.\r\n",
+ client_id, conn_id);
+ return;
+ }
+ remote = bt_sdk_list_node_create(sizeof(ble_ams_service_t));
+ if (remote == NULL) {
+ bts_info("ams client remote node create fail.\r\n");
+ return;
+ }
+ remote->client_id = client_id;
+ remote->conn_id = conn_id;
+ remote->start_handle = service->start_hdl;
+ remote->end_handle = service->end_hdl;
+ bt_sdk_list_add_tail(&g_ble_ams_service_list, remote);
+
+ /* 发现特征 */
+ gattc_discovery_character_param_t param = {0};
+ param.service_handle = remote->start_handle;
+ errcode_t ret = gattc_discovery_character(client_id, conn_id, ¶m);
+ bts_info("ams client discovery character ret:%u.\r\n", ret);
+}
+
+/* AMS服务特征匹配 */
+static ams_character_t ams_char_match(bt_uuid_t *uuid)
+{
+ if (uuid->uuid_len != BT_UUID_MAX_LEN) {
+ return AMS_CHAR_INVALID;
+ }
+ bt_uuid_t char_uuid = {0};
+ char_uuid.uuid_len = BT_UUID_MAX_LEN;
+ if (memcpy_s(char_uuid.uuid, BT_UUID_MAX_LEN, rmt_cmd_uuid, BT_UUID_MAX_LEN) != EOK) {
+ bts_error("[btsrv][ERROR] remote cmd uuid memcpy fail!\r\n");
+ return AMS_CHAR_INVALID;
+ }
+ if (memcmp(&char_uuid, uuid, sizeof(bt_uuid_t)) == 0) {
+ return AMS_CHAR_REMOTE_CMD;
+ }
+ if (memcpy_s(char_uuid.uuid, BT_UUID_MAX_LEN, entity_update_uuid, BT_UUID_MAX_LEN) != EOK) {
+ bts_error("[btsrv][ERROR] entity update uuid memcpy fail!\r\n");
+ return AMS_CHAR_INVALID;
+ }
+ if (memcmp(&char_uuid, uuid, sizeof(bt_uuid_t)) == 0) {
+ return AMS_CHAR_ENTITY_UPDATE;
+ }
+ if (memcpy_s(char_uuid.uuid, BT_UUID_MAX_LEN, entity_att_uuid, BT_UUID_MAX_LEN) != EOK) {
+ bts_error("[btsrv][ERROR] entity att uuid memcpy fail!\r\n");
+ return AMS_CHAR_INVALID;
+ }
+ if (memcmp(&char_uuid, uuid, sizeof(bt_uuid_t)) == 0) {
+ return AMS_CHAR_ENTITY_ATTR;
+ }
+ return AMS_CHAR_INVALID;
+}
+
+/* 发现特征回调函数 */
+void ble_ams_client_discovery_character_cbk(uint8_t client_id, uint16_t conn_id,
+ gattc_discovery_character_result_t *character)
+{
+ ble_ams_service_t *remote = ams_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ return;
+ }
+
+ if ((character->declare_handle < remote->start_handle) ||
+ (character->declare_handle > remote->end_handle)) {
+ bts_error("ams client remote service did not have this character_handle:%u conn_id:%u\n",
+ character->declare_handle, conn_id);
+ return;
+ }
+
+ switch (ams_char_match(&(character->uuid))) {
+ case AMS_CHAR_REMOTE_CMD: {
+ remote->remote_cmd.declare_handle = character->declare_handle;
+ remote->remote_cmd.value_handle = character->value_handle;
+ remote->remote_cmd.properties = character->properties;
+
+ /* 发现描述符 */
+ gattc_discovery_descriptor(client_id, conn_id, character->declare_handle);
+ break;
+ }
+
+ case AMS_CHAR_ENTITY_UPDATE: {
+ remote->entity_update.declare_handle = character->declare_handle;
+ remote->entity_update.value_handle = character->value_handle;
+ remote->entity_update.properties = character->properties;
+
+ /* 发现描述符 */
+ gattc_discovery_descriptor(client_id, conn_id, character->declare_handle);
+ break;
+ }
+
+ case AMS_CHAR_ENTITY_ATTR: {
+ remote->entity_attr.declare_handle = character->declare_handle;
+ remote->entity_attr.value_handle = character->value_handle;
+ remote->entity_attr.properties = character->properties;
+ break;
+ }
+
+ default:
+ bts_error("[btsrv][INFO] invalid character!\r\n");
+ break;
+ }
+}
+
+/* 发现描述符回调函数 */
+void ble_ams_client_discovery_descriptor_cbk(uint8_t client_id, uint16_t conn_id,
+ gattc_discovery_descriptor_result_t *descriptor)
+{
+ ble_ams_service_t *remote = ams_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ return;
+ }
+
+ if (descriptor->descriptor_hdl < remote->start_handle ||
+ descriptor->descriptor_hdl > remote->end_handle) {
+ bts_error("ams client remote service did not have this descriptor_handle:%u conn_id:%u\n",
+ descriptor->descriptor_hdl, conn_id);
+ return;
+ }
+
+ /* 客户端特征配置描述符 */
+ bt_uuid_t ccc_uuid = {0};
+ bts_data_to_uuid_len2(BLE_CLIENT_CHARACTERISTIC_CONFIGURATION_UUID, &ccc_uuid);
+ if (!bts_uuid_is_equal(&ccc_uuid, &(descriptor->uuid))) {
+ return;
+ }
+
+ uint16_t cmd_ccc_max_handle = remote->end_handle;
+ uint16_t entity_ccc_max_handle = remote->end_handle;
+
+ if ((remote->entity_update.value_handle != 0) &&
+ (remote->remote_cmd.value_handle != 0) &&
+ (remote->remote_cmd.value_handle < remote->entity_update.value_handle)) {
+ cmd_ccc_max_handle = remote->entity_update.value_handle - 1;
+ } else if ((remote->remote_cmd.value_handle != 0) &&
+ (remote->entity_update.value_handle != 0) &&
+ (remote->remote_cmd.value_handle > remote->entity_update.value_handle)) {
+ entity_ccc_max_handle = remote->remote_cmd.value_handle - 1;
+ }
+
+ if ((remote->remote_cmd.value_handle != 0) &&
+ (descriptor->descriptor_hdl > remote->remote_cmd.value_handle) &&
+ (descriptor->descriptor_hdl <= cmd_ccc_max_handle)) {
+ remote->remote_cmd_ccc_handle = descriptor->descriptor_hdl;
+ } else if ((remote->entity_update.value_handle != 0) &&
+ (descriptor->descriptor_hdl > remote->entity_update.value_handle) &&
+ (descriptor->descriptor_hdl <= entity_ccc_max_handle)) {
+ remote->entity_update_ccc_handle = descriptor->descriptor_hdl;
+ }
+
+ if ((remote->remote_cmd_ccc_handle != 0) &&
+ (remote->entity_update_ccc_handle != 0)) {
+ if (g_ams_callbacks_t.setup_cb != NULL) {
+ g_ams_callbacks_t.setup_cb(client_id, conn_id, ERRCODE_BT_SUCCESS);
+ }
+ }
+}
+
+/* 处理远端命令上报信息 */
+static void remote_cmd_rpt_handle(uint8_t client_id, uint16_t conn_id, gattc_handle_value_t *data)
+{
+ errcode_t status = ERRCODE_BT_SUCCESS;
+ ble_ams_remote_cmd_rpt_t *rpt_data = bt_os_new(sizeof(ble_ams_remote_cmd_rpt_t) + data->data_len);
+ rpt_data->cmd_num = data->data_len;
+ if (memcpy_s(rpt_data->remote_cmd, rpt_data->cmd_num, data->data, rpt_data->cmd_num) != EOK) {
+ bts_error("[btsrv][ERROR] remote cmd rpt memcpy fail!\r\n");
+ status = ERRCODE_BT_MEMCPY_FAIL;
+ }
+
+ if (g_ams_callbacks_t.remote_cmd_cb != NULL) {
+ g_ams_callbacks_t.remote_cmd_cb(client_id, conn_id, rpt_data, status);
+ }
+ bt_os_free(rpt_data);
+}
+
+/* 处理实体更新上报信息 */
+static void entity_update_rpt_handle(uint8_t client_id, uint16_t conn_id, gattc_handle_value_t *data)
+{
+ errcode_t status = ERRCODE_BT_SUCCESS;
+ uint16_t value_len = data->data_len - AMS_ENTITY_UPDATE_NOTIFY_VALUE_OFFSET;
+ ble_ams_entity_update_rpt_t *rpt_data = bt_os_new(
+ sizeof(ble_ams_entity_update_rpt_t) + value_len + AMS_STRING_SUFFIX_ZERO_BYTE);
+ rpt_data->entity_id = *(data->data);
+ rpt_data->att_id = *(data->data + sizeof(uint8_t));
+ rpt_data->entity_update_flags = *(data->data + AMS_ENTITY_UPDATE_NOTIFY_FLAGS_OFFSET);
+ rpt_data->value_length = value_len + AMS_STRING_SUFFIX_ZERO_BYTE;
+ if (memcpy_s(rpt_data->value, rpt_data->value_length,
+ (data->data + AMS_ENTITY_UPDATE_NOTIFY_VALUE_OFFSET), value_len) != EOK) {
+ bts_error("[btsrv][ERROR] entity update rpt memcpy fail!\r\n");
+ status = ERRCODE_BT_MEMCPY_FAIL;
+ }
+ rpt_data->value[rpt_data->value_length - 1] = 0; /* 字符串拼接末尾0 */
+
+ if (g_ams_callbacks_t.entity_update_cb != NULL) {
+ g_ams_callbacks_t.entity_update_cb(client_id, conn_id, rpt_data, status);
+ }
+ bt_os_free(rpt_data);
+}
+
+/* 特征通知回调函数 */
+void ble_ams_client_notify_cbk(uint8_t client_id, uint16_t conn_id, gattc_handle_value_t *data)
+{
+ ble_ams_service_t *remote = ams_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ return;
+ }
+
+ /* Remote Command */
+ /* 数据格式:RemoteCommandID 1(1B)|RemoteCommandID 2(1B)|... */
+ if (data->handle == remote->remote_cmd.value_handle) {
+ remote_cmd_rpt_handle(client_id, conn_id, data);
+
+ /* Entity Update */
+ /* 数据格式:EntityID(1B)|AttributeID(1B)|EntityUpdateFlags(1B)|Value(动态) */
+ } else if (data->handle == remote->entity_update.value_handle) {
+ entity_update_rpt_handle(client_id, conn_id, data);
+ }
+}
+
+/* AMS客户端订阅结果处理函数 */
+static void ble_ams_client_subscribe_result(uint8_t client_id, uint16_t conn_id,
+ ams_client_subscribe_type_t type, gatt_status_t status)
+{
+ if (g_ams_callbacks_t.subscribe_cb != NULL) {
+ g_ams_callbacks_t.subscribe_cb(client_id, conn_id, type, status);
+ }
+}
+
+/* 注册感兴趣实体属性响应结果处理 */
+static void ble_ams_client_write_character_rsp(uint8_t client_id, uint16_t conn_id,
+ ams_client_write_character_type_t type,
+ gatt_status_t status)
+{
+ if (g_ams_callbacks_t.write_rsp_cb != NULL) {
+ g_ams_callbacks_t.write_rsp_cb(client_id, conn_id, type, status);
+ }
+}
+
+/* 写请求响应回调函数 */
+void ble_ams_client_write_cbk(uint8_t client_id, uint16_t conn_id, uint16_t handle, gatt_status_t status)
+{
+ ble_ams_service_t *remote = ams_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ return;
+ }
+
+ if (handle == (remote->remote_cmd_ccc_handle)) {
+ ble_ams_client_subscribe_result(client_id, conn_id, AMS_CLIENT_SUBSCRIBE_REMOTE_CMD, status);
+ } else if (handle == (remote->entity_update_ccc_handle)) {
+ ble_ams_client_subscribe_result(client_id, conn_id, AMS_CLIENT_SUBSCRIBE_ENTITY_UPDATE, status);
+ } else if (handle == (remote->entity_update.value_handle)) {
+ ble_ams_client_write_character_rsp(client_id, conn_id, AMS_CLIENT_WRITE_ENTITY_UPDATE, status);
+ } else if (handle == (remote->remote_cmd.value_handle)) {
+ ble_ams_client_write_character_rsp(client_id, conn_id, AMS_CLIENT_WRITE_REMOTE_CMD, status);
+ } else if (handle == (remote->entity_attr.value_handle)) {
+ ble_ams_client_write_character_rsp(client_id, conn_id, AMS_CLIENT_WRITE_ENTITY_ATTRIBUTE, status);
+ }
+}
+
+/* 读请求响应回调函数 */
+void ble_ams_client_read_cbk(uint8_t client_id, uint16_t conn_id, gattc_handle_value_t *read_result,
+ gatt_status_t status)
+{
+ ble_ams_service_t *remote = ams_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ return;
+ }
+
+ if (read_result->handle != remote->entity_attr.value_handle) {
+ return;
+ }
+
+ ble_ams_full_attr_value_t *full_value = bt_os_new(sizeof(ble_ams_full_attr_value_t) + read_result->data_len + 1);
+ full_value->value_len = read_result->data_len + 1;
+ if (read_result->data_len != 0) {
+ if (memcpy_s(full_value->value, full_value->value_len, read_result->data, read_result->data_len) != EOK) {
+ bts_error("[btsrv][ERROR] read result memcpy fail!\r\n");
+ bt_os_free(full_value);
+ return;
+ }
+ }
+ *(full_value->value + full_value->value_len - 1) = 0; /* 字符串末尾拼接0 */
+
+ if (g_ams_callbacks_t.read_full_attr_result_cb != NULL) {
+ g_ams_callbacks_t.read_full_attr_result_cb(client_id, conn_id, full_value, status);
+ }
+ bt_os_free(full_value);
+}
+
+/* 订阅远端命令特征通知 */
+errcode_t ble_ams_client_subscribe_remote_cmd(uint8_t client_id, uint16_t conn_id,
+ ams_client_notify_enable_t enable_flag)
+{
+ ble_ams_service_t *remote = ams_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ bts_error("ams client remote service is not exist, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (remote->remote_cmd_ccc_handle == 0) {
+ bts_error("ams client remote service did not discovery notify ccc, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ uint16_t ccc_value = BLE_AMS_CLIENT_CHARACTERISTIC_CONFIGURATION_DEFAULT;
+ if (enable_flag == AMS_CLIENT_NOTIFY_ENABLE) {
+ ccc_value = BLE_AMS_CLIENT_CHARACTERISTIC_CONFIGURATION_NOTIFICATION;
+ }
+ uint8_t notify_ccc_val[] = {
+ u16_low_byte(ccc_value),
+ u16_high_byte(ccc_value)
+ };
+ gattc_handle_value_t value = {0};
+ value.data_len = (uint16_t)sizeof(notify_ccc_val);
+ value.data = notify_ccc_val;
+ value.handle = remote->remote_cmd_ccc_handle;
+ return gattc_write_req(client_id, conn_id, &value);
+}
+
+/* 订阅实体更新特征通知 */
+errcode_t ble_ams_client_subscribe_entity_update(uint8_t client_id, uint16_t conn_id,
+ ams_client_notify_enable_t enable_flag)
+{
+ ble_ams_service_t *remote = ams_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ bts_error("ams client remote service is not exist, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (remote->entity_update_ccc_handle == 0) {
+ bts_error("ams client remote service did not discovery notify ccc, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ uint16_t ccc_value = BLE_AMS_CLIENT_CHARACTERISTIC_CONFIGURATION_DEFAULT;
+ if (enable_flag == AMS_CLIENT_NOTIFY_ENABLE) {
+ ccc_value = BLE_AMS_CLIENT_CHARACTERISTIC_CONFIGURATION_NOTIFICATION;
+ }
+ uint8_t notify_ccc_val[] = {
+ u16_low_byte(ccc_value),
+ u16_high_byte(ccc_value)
+ };
+ gattc_handle_value_t value = {0};
+ value.data_len = (uint16_t)sizeof(notify_ccc_val);
+ value.data = notify_ccc_val;
+ value.handle = remote->entity_update_ccc_handle;
+ return gattc_write_req(client_id, conn_id, &value);
+}
+
+/* 发送远端命令 */
+errcode_t ble_ams_client_send_remote_cmd(uint8_t client_id, uint16_t conn_id,
+ ams_remote_cmd_id_t cmd_id)
+{
+ ble_ams_service_t *remote = ams_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ bts_error("ams client remote service is not exist, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (remote->remote_cmd.value_handle == 0) {
+ bts_error("ams client did not discovery character, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ uint8_t data = (uint8_t)cmd_id;
+ gattc_handle_value_t value = {0};
+ value.data_len = (uint16_t)sizeof(uint8_t);
+ value.data = &data;
+ value.handle = remote->remote_cmd.value_handle;
+ return gattc_write_req(client_id, conn_id, &value);
+}
+
+/* 注册感兴趣的实体属性 */
+errcode_t ble_ams_client_register_interested_entity_attribute(uint8_t client_id, uint16_t conn_id,
+ ble_ams_interested_entity_attr_req_t *entity_attr_req)
+{
+ ble_ams_service_t *remote = ams_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ bts_error("ams client remote service is not exist, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (remote->entity_update.value_handle == 0) {
+ bts_error("ams client did not discovery character, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (entity_attr_req->att_num == 0) {
+ bts_error("ams client attr req param error, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_PARAM_ERR;
+ }
+
+ uint16_t data_length = sizeof(uint8_t) + (entity_attr_req->att_num) * sizeof(uint8_t);
+ uint8_t *data = bt_os_new(data_length);
+ uint8_t *pt_data = data;
+ *pt_data = entity_attr_req->entity_id;
+ pt_data = pt_data + 1;
+ for (int i = 0; i < entity_attr_req->att_num; i++) {
+ *(pt_data + i) = entity_attr_req->att_id[i];
+ }
+
+ gattc_handle_value_t value = {0};
+ value.data_len = data_length;
+ value.data = data;
+ value.handle = remote->entity_update.value_handle;
+ errcode_t result = gattc_write_req(client_id, conn_id, &value);
+ bt_os_free(data);
+ return result;
+}
+
+/* 获取完整的实体属性 */
+errcode_t ble_ams_client_retrieve_full_entity_attribute(uint8_t client_id, uint16_t conn_id,
+ ble_ams_full_entity_attr_cmd_t *full_attr_req)
+{
+ ble_ams_service_t *remote = ams_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ bts_error("ams client remote service is not exist, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (remote->entity_attr.value_handle == 0) {
+ bts_error("ams client did not discovery character, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ gattc_handle_value_t value = {0};
+ value.data_len = (uint16_t)sizeof(ble_ams_full_entity_attr_cmd_t);
+ value.data = full_attr_req;
+ value.handle = remote->entity_attr.value_handle;
+ return gattc_write_req(client_id, conn_id, &value);
+}
+
+/* 读取完整的实体属性 */
+errcode_t ble_ams_client_read_full_entity_attribute(uint8_t client_id, uint16_t conn_id)
+{
+ ble_ams_service_t *remote = ams_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ bts_error("ams client remote service is not exist, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (remote->entity_attr.value_handle == 0) {
+ bts_error("ams client did not discovery character, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+ return gattc_read_req_by_handle(client_id, conn_id, remote->entity_attr.value_handle);
+}
+
+/* 注册AMS客户端回调函数 */
+errcode_t ble_ams_client_register_callbacks(ble_ams_client_callbacks_t *func)
+{
+ if (memcpy_s(&g_ams_callbacks_t, sizeof(g_ams_callbacks_t), func, sizeof(ble_ams_client_callbacks_t)) != EOK) {
+ return ERRCODE_BT_MEMCPY_FAIL;
+ }
+ return ERRCODE_BT_SUCCESS;
+}
+
+/* AMS服务判断 */
+bool is_ble_ams_service(bt_uuid_t *uuid)
+{
+ bt_uuid_t ams_service_uuid = {0};
+ ams_service_uuid.uuid_len = BT_UUID_MAX_LEN;
+ if (memcpy_s(ams_service_uuid.uuid, BT_UUID_MAX_LEN, ams_uuid, BT_UUID_MAX_LEN) != EOK) {
+ bts_error("[BLE]service uuid memcpy error! \n");
+ return false;
+ }
+ if (ams_service_uuid.uuid_len != uuid->uuid_len) {
+ return false;
+ }
+
+ return (memcmp(uuid, &ams_service_uuid, sizeof(bt_uuid_t)) == 0 ? true : false);
+}
+
+/* 根据连接ID清理存储的对端AMS服务信息 */
+void ble_ams_client_clear_remote_by_conn(uint8_t client_id, uint16_t conn_id)
+{
+ ble_ams_service_t *node = NULL;
+ node = ams_service_remote_by_conn(client_id, conn_id);
+ if (node != NULL) {
+ bt_sdk_list_remove(&g_ble_ams_service_list, node);
+ sdk_list_node_free(node);
+ }
+}
+
+/* 清理所有存储的对端AMS服务信息 */
+void ble_ams_client_clear_remote_all(void)
+{
+ ble_ams_service_t *node = (ble_ams_service_t *)g_ble_ams_service_list.head;
+ ble_ams_service_t *cur_node = NULL;
+ while (node != NULL) {
+ cur_node = node;
+ node = lnext(node);
+ bt_sdk_list_remove(&g_ble_ams_service_list, cur_node);
+ sdk_list_node_free(cur_node);
+ cur_node = NULL;
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) @CompanyNameMagicTag 2024. All rights reserved.
+ * Description: BLE Apple Notification Center Service Client module.
+ */
+
+#include <string.h>
+#include "sdk_list.h"
+#include "datatype.h"
+#include "errcode.h"
+#include "btsrv_log.h"
+#include "bts_le_gap.h"
+#include "sdk_general.h"
+#include "bts_uuid.h"
+#include "ble_gatts_callbacks.h"
+#include "ble_ancs_client.h"
+
+#define BLE_CLIENT_CHARACTERISTIC_CONFIGURATION_UUID 0x2902
+#define ANCS_NOTIFY_ATT_ID_OFFSET 5
+#define ANCS_NOTIFY_ATT_MAX_LENGTH_BYTE 2
+#define ANCS_NOTIFY_ACTION_ID_OFFSET 5
+#define ANCS_NOTIFY_ATT_VALUE_OFFSET 3
+#define BLE_ATT_HEADER_LEN 3
+#define BLE_ANCS_DATA_MAX_LEN 512
+#define ANCS_NOTIFY_UUID_BYTE_LENGTH 4
+#define ANCS_NOTIFY_SOURCE_LENGTH 8
+#define ANCS_NOTIFY_ATT_DATA_HEADER_LENGTH 8
+
+#define u16_low_byte(data) ((uint8_t)((data) & 0x00FF))
+#define u16_high_byte(data) ((uint8_t)(((data) & 0xFF00) >> 8))
+#define little_u8_2_u16(p) ((((uint16_t)(*((p) + 1))) << 8) | ((uint16_t)(*(p))))
+#define u32_2_little_first_byte(uuid) ((uint8_t)((uuid) & 0x000000FF))
+#define u32_2_little_second_byte(uuid) ((uint8_t)(((uuid) & 0x0000FF00) >> 8))
+#define u32_2_little_three_byte(uuid) ((uint8_t)(((uuid) & 0x00FF0000) >> 16))
+#define u32_2_little_four_byte(uuid) ((uint8_t)(((uuid) & 0xFF000000) >> 24))
+#define little_byte_2_u32(data) (((uint32_t)(*(data))) | \
+ ((uint32_t)(((uint32_t)*((data) + BT_INDEX_1)) << 8)) | \
+ ((uint32_t)(((uint32_t)*((data) + BT_INDEX_2)) << 16)) | \
+ ((uint32_t)(((uint32_t)*((data) + BT_INDEX_3)) << 24)))
+
+/* ANCS服务UUID,小端序 */
+uint8_t ancs_uuid[BT_UUID_MAX_LEN] = {
+ 0xD0, 0x00, 0x2D, 0x12, 0x1E, 0x4B, 0x0F, 0xA4, 0x99, 0x4E, 0xCE, 0xB5, 0x31, 0xF4, 0x05, 0x79};
+
+/* ANCS服务特征UUID-Notification Source,小端序 */
+uint8_t notify_src_uuid[BT_UUID_MAX_LEN] = {
+ 0xBD, 0x1D, 0xA2, 0x99, 0xE6, 0x25, 0x58, 0x8C, 0xD9, 0x42, 0x01, 0x63, 0x0D, 0x12, 0xBF, 0x9F};
+
+/* ANCS服务特征UUID-Control Point,小端序 */
+uint8_t ctl_point_uuid[BT_UUID_MAX_LEN] = {
+ 0xD9, 0xD9, 0xAA, 0xFD, 0xBD, 0x9B, 0x21, 0x98, 0xA8, 0x49, 0xE1, 0x45, 0xF3, 0xD8, 0xD1, 0x69};
+
+/* ANCS服务特征UUID-Data Source,小端序 */
+uint8_t data_src_uuid[BT_UUID_MAX_LEN] = {
+ 0xFB, 0x7B, 0x7C, 0xCE, 0x6A, 0xB3, 0x44, 0xBE, 0xB5, 0x4B, 0xD6, 0x24, 0xE9, 0xC6, 0xEA, 0x22};
+
+ble_ancs_client_callbacks_t g_ancs_callbacks_t = {0};
+struct list_stru g_ble_ancs_service_list = {NULL, NULL}; /* ble_ancs_service_t */
+
+/* 根据连接ID查询ANCS服务信息 */
+static ble_ancs_service_t* ancs_service_remote_by_conn(uint8_t client_id, uint16_t conn_id)
+{
+ ble_ancs_service_t *node = (ble_ancs_service_t *)g_ble_ancs_service_list.head;
+ while (node != NULL) {
+ if ((node->client_id == client_id) && (node->conn_id == conn_id)) {
+ return node;
+ }
+ node = lnext(node);
+ }
+
+ return NULL;
+}
+
+/* ANCS服务特征匹配 */
+static ancs_character_t ancs_char_match(bt_uuid_t *uuid)
+{
+ if (uuid->uuid_len != BT_UUID_MAX_LEN) {
+ return ANCS_CHAR_INVALID;
+ }
+ bt_uuid_t char_uuid = {0};
+ char_uuid.uuid_len = BT_UUID_MAX_LEN;
+ if (memcpy_s(char_uuid.uuid, BT_UUID_MAX_LEN, notify_src_uuid, BT_UUID_MAX_LEN) != EOK) {
+ bts_error("[btsrv][ERROR] notify src uuid memcpy fail!\r\n");
+ return ANCS_CHAR_INVALID;
+ }
+ if (memcmp(&char_uuid, uuid, sizeof(bt_uuid_t)) == 0) {
+ return ANCS_CHAR_NOTIFY_SRC;
+ }
+ if (memcpy_s(char_uuid.uuid, BT_UUID_MAX_LEN, ctl_point_uuid, BT_UUID_MAX_LEN) != EOK) {
+ bts_error("[btsrv][ERROR] ctl point uuid memcpy fail!\r\n");
+ return ANCS_CHAR_INVALID;
+ }
+ if (memcmp(&char_uuid, uuid, sizeof(bt_uuid_t)) == 0) {
+ return ANCS_CHAR_CTRL_POINT;
+ }
+ if (memcpy_s(char_uuid.uuid, BT_UUID_MAX_LEN, data_src_uuid, BT_UUID_MAX_LEN) != EOK) {
+ bts_error("[btsrv][ERROR] data src uuid memcpy fail!\r\n");
+ return ANCS_CHAR_INVALID;
+ }
+ if (memcmp(&char_uuid, uuid, sizeof(bt_uuid_t)) == 0) {
+ return ANCS_CHAR_DATA_SRC;
+ }
+ return ANCS_CHAR_INVALID;
+}
+
+/* ANCS客户端发起服务建立 */
+errcode_t ble_ancs_client_setup_service(uint8_t client_id, uint16_t conn_id)
+{
+ ble_ancs_service_t *remote = ancs_service_remote_by_conn(client_id, conn_id);
+ if (remote != NULL) {
+ bts_error("ancs client remote service is already exist,client_id:%u, conn_id:%u.\r\n",
+ client_id, conn_id);
+ return ERRCODE_BT_DONE;
+ }
+ bt_uuid_t service_uuid = {0};
+ service_uuid.uuid_len = BT_UUID_MAX_LEN;
+ if (memcpy_s(service_uuid.uuid, BT_UUID_MAX_LEN, ancs_uuid, BT_UUID_MAX_LEN) != EOK) {
+ bts_error("[btsrv][ERROR] uuid memcpy fail!\r\n");
+ return ERRCODE_BT_FAIL;
+ }
+ return gattc_discovery_service(client_id, conn_id, &service_uuid);
+}
+
+/* ANCS客户端发现服务回调处理函数 */
+void ble_ancs_client_discovery_service_cbk(uint8_t client_id, uint16_t conn_id,
+ gattc_discovery_service_result_t *service)
+{
+ ble_ancs_service_t *remote = ancs_service_remote_by_conn(client_id, conn_id);
+ if (remote != NULL) {
+ bts_error("ancs client remote service is already exist,client_id:%u, conn_id:%u.\r\n",
+ client_id, conn_id);
+ return;
+ }
+ remote = bt_sdk_list_node_create(sizeof(ble_ancs_service_t));
+ if (remote == NULL) {
+ bts_info("ancs client remote node create fail.\r\n");
+ return;
+ }
+ remote->client_id = client_id;
+ remote->conn_id = conn_id;
+ remote->start_handle = service->start_hdl;
+ remote->end_handle = service->end_hdl;
+ bt_sdk_list_add_tail(&g_ble_ancs_service_list, remote);
+
+ /* 发现特征 */
+ gattc_discovery_character_param_t param = {0};
+ param.service_handle = remote->start_handle;
+ errcode_t ret = gattc_discovery_character(client_id, conn_id, ¶m);
+ bts_info("ancs client discovery character ret:%u.\r\n", ret);
+}
+
+/* ANCS客户端发现特征回调处理函数 */
+void ble_ancs_client_discovery_character_cbk(uint8_t client_id, uint16_t conn_id,
+ gattc_discovery_character_result_t *character)
+{
+ ble_ancs_service_t *remote = ancs_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ return;
+ }
+
+ if ((character->declare_handle < remote->start_handle) ||
+ (character->declare_handle > remote->end_handle)) {
+ bts_error("ancs client remote service did not have this character_handle:%u conn_id:%u\n",
+ character->declare_handle, conn_id);
+ return;
+ }
+
+ switch (ancs_char_match(&(character->uuid))) {
+ case ANCS_CHAR_NOTIFY_SRC: {
+ remote->notify_src.declare_handle = character->declare_handle;
+ remote->notify_src.value_handle = character->value_handle;
+ remote->notify_src.properties = character->properties;
+
+ /* 发现描述符 */
+ gattc_discovery_descriptor(client_id, conn_id, character->declare_handle);
+ break;
+ }
+
+ case ANCS_CHAR_DATA_SRC: {
+ remote->data_src.declare_handle = character->declare_handle;
+ remote->data_src.value_handle = character->value_handle;
+ remote->data_src.properties = character->properties;
+
+ /* 发现描述符 */
+ gattc_discovery_descriptor(client_id, conn_id, character->declare_handle);
+ break;
+ }
+
+ case ANCS_CHAR_CTRL_POINT: {
+ remote->ctl_point.declare_handle = character->declare_handle;
+ remote->ctl_point.value_handle = character->value_handle;
+ remote->ctl_point.properties = character->properties;
+ break;
+ }
+
+ default:
+ bts_error("[btsrv][INFO] invalid character!\r\n");
+ break;
+ }
+}
+
+/* ANCS客户端发现描述符回调处理函数 */
+void ble_ancs_client_discovery_descriptor_cbk(uint8_t client_id, uint16_t conn_id,
+ gattc_discovery_descriptor_result_t *descriptor)
+{
+ ble_ancs_service_t *remote = ancs_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ return;
+ }
+
+ if (descriptor->descriptor_hdl < remote->start_handle ||
+ descriptor->descriptor_hdl > remote->end_handle) {
+ bts_error("ancs client remote service did not have this descriptor_handle:%u conn_id:%u\n",
+ descriptor->descriptor_hdl, conn_id);
+ return;
+ }
+
+ /* 客户端特征配置描述符 */
+ bt_uuid_t ccc_uuid = {0};
+ bts_data_to_uuid_len2(BLE_CLIENT_CHARACTERISTIC_CONFIGURATION_UUID, &ccc_uuid);
+ if (!bts_uuid_is_equal(&ccc_uuid, &(descriptor->uuid))) {
+ return;
+ }
+
+ uint16_t notify_ccc_max_handle = remote->end_handle;
+ uint16_t data_ccc_max_handle = remote->end_handle;
+ if ((remote->data_src.value_handle != 0) &&
+ (remote->notify_src.value_handle != 0) &&
+ (remote->notify_src.value_handle < remote->data_src.value_handle)) {
+ notify_ccc_max_handle = remote->data_src.value_handle - 1;
+ } else if ((remote->notify_src.value_handle != 0) &&
+ (remote->data_src.value_handle != 0) &&
+ (remote->notify_src.value_handle > remote->data_src.value_handle)) {
+ data_ccc_max_handle = remote->notify_src.value_handle - 1;
+ }
+
+ if ((remote->notify_src.value_handle != 0) &&
+ (descriptor->descriptor_hdl > remote->notify_src.value_handle) &&
+ (descriptor->descriptor_hdl <= notify_ccc_max_handle)) {
+ remote->notify_src_ccc_handle = descriptor->descriptor_hdl;
+ } else if ((remote->data_src.value_handle != 0) &&
+ (descriptor->descriptor_hdl > remote->data_src.value_handle) &&
+ (descriptor->descriptor_hdl <= data_ccc_max_handle)) {
+ remote->data_src_ccc_handle = descriptor->descriptor_hdl;
+ }
+
+ if ((remote->notify_src_ccc_handle != 0) &&
+ (remote->data_src_ccc_handle != 0)) {
+ if (g_ancs_callbacks_t.setup_cb != NULL) {
+ g_ancs_callbacks_t.setup_cb(client_id, conn_id, ERRCODE_BT_SUCCESS);
+ }
+ }
+}
+
+/* ANCS客户端订阅通知源特征通知 */
+errcode_t ble_ancs_client_subscribe_notification_source(uint8_t client_id, uint16_t conn_id,
+ ancs_client_notify_enable_t enable_flag)
+{
+ ble_ancs_service_t *remote = ancs_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ bts_error("ancs client remote service is not exist, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (remote->notify_src_ccc_handle == 0) {
+ bts_error("ancs client remote service did not discovery notify ccc, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ uint16_t ccc_value = BLE_ANCS_CLIENT_CHARACTERISTIC_CONFIGURATION_DEFAULT;
+ if (enable_flag == ANCS_CLIENT_NOTIFY_ENABLE) {
+ ccc_value = BLE_ANCS_CLIENT_CHARACTERISTIC_CONFIGURATION_NOTIFICATION;
+ }
+ uint8_t notify_ccc_val[] = {
+ u16_low_byte(ccc_value),
+ u16_high_byte(ccc_value)
+ };
+ gattc_handle_value_t value = {0};
+ value.data_len = (uint16_t)sizeof(notify_ccc_val);
+ value.data = notify_ccc_val;
+ value.handle = remote->notify_src_ccc_handle;
+ return gattc_write_req(client_id, conn_id, &value);
+}
+
+/* ANCS客户端订阅数据源特征通知 */
+errcode_t ble_ancs_client_subscribe_data_source(uint8_t client_id, uint16_t conn_id,
+ ancs_client_notify_enable_t enable_flag)
+{
+ ble_ancs_service_t *remote = ancs_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ bts_error("ancs client remote service is not exist, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (remote->data_src_ccc_handle == 0) {
+ bts_error("ancs client remote service did not discovery data ccc, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ uint16_t ccc_value = BLE_ANCS_CLIENT_CHARACTERISTIC_CONFIGURATION_DEFAULT;
+ if (enable_flag == ANCS_CLIENT_NOTIFY_ENABLE) {
+ ccc_value = BLE_ANCS_CLIENT_CHARACTERISTIC_CONFIGURATION_NOTIFICATION;
+ }
+ uint8_t notify_ccc_val[] = {
+ u16_low_byte(ccc_value),
+ u16_high_byte(ccc_value)
+ };
+ gattc_handle_value_t value = {0};
+ value.data_len = (uint16_t)sizeof(notify_ccc_val);
+ value.data = notify_ccc_val;
+ value.handle = remote->data_src_ccc_handle;
+ return gattc_write_req(client_id, conn_id, &value);
+}
+
+/* u32转小端序字节流 */
+static uint32_t convert_little_2_u32(uint8_t *data)
+{
+ return little_byte_2_u32(data);
+}
+
+/* 释放【通知属性响应数据】申请的内存 */
+static void notify_att_rsp_free(ble_ancs_notification_attr_rsp_t *notify_att_rsp)
+{
+ ble_ancs_attr_rsp_t *node = notify_att_rsp->attr_rsp_lst.head;
+ ble_ancs_attr_rsp_t *cur_node = NULL;
+ /* 校验失败,清空队列 */
+ while (node != NULL) {
+ cur_node = node;
+ node = lnext(node);
+ bt_sdk_list_remove(¬ify_att_rsp->attr_rsp_lst, cur_node); /* 出队 */
+ bt_os_free(cur_node->att);
+ sdk_list_node_free(cur_node);
+ cur_node = NULL;
+ }
+ bt_os_free(notify_att_rsp);
+ return;
+}
+
+/* 组装属性响应数据,兼容分包场景,只解析第一包 */
+static uint16_t ancs_att_rsp_package(ble_ancs_attr_rsp_t *attr_rsp,
+ uint8_t *data, uint16_t total_length, uint16_t offset_byte)
+{
+ if ((total_length - offset_byte) <= ANCS_NOTIFY_ATT_VALUE_OFFSET) { /* 最后一个属性只包含属性id或者属性长度 */
+ attr_rsp->att_id = *data;
+ attr_rsp->att_length = 0;
+ attr_rsp->att = 0;
+ return 0;
+ }
+ attr_rsp->att_id = *data;
+ uint16_t data_length = little_u8_2_u16(data + 1);
+ attr_rsp->att_length = data_length + 1; /* 字符串以0结尾 */
+ if (data_length != 0) {
+ uint8_t *att_data = bt_os_new(attr_rsp->att_length);
+ if (memset_s(att_data, attr_rsp->att_length, 0, attr_rsp->att_length) != EOK) {
+ bt_os_free(att_data);
+ attr_rsp->att_length = 0;
+ attr_rsp->att = 0;
+ return data_length;
+ }
+ uint16_t copy_length = data_length;
+ if ((total_length - offset_byte) < (data_length + ANCS_NOTIFY_ATT_VALUE_OFFSET)) { /* 最后一个属性 */
+ copy_length = total_length - offset_byte - ANCS_NOTIFY_ATT_VALUE_OFFSET;
+ }
+ if (memcpy_s(att_data, attr_rsp->att_length, data + ANCS_NOTIFY_ATT_VALUE_OFFSET, copy_length) != EOK) {
+ bts_error("[btsrv][ERROR] addr memcpy fail!\r\n");
+ bt_os_free(att_data);
+ attr_rsp->att_length = 0;
+ attr_rsp->att = 0;
+ return data_length;
+ }
+ att_data[attr_rsp->att_length - 1] = 0; /* 字符串以0结尾 */
+ attr_rsp->att = att_data;
+ } else {
+ attr_rsp->att_length = 0;
+ attr_rsp->att = 0;
+ }
+ return data_length;
+}
+
+/* 解析属性响应数据 */
+static uint16_t parse_att_rsp(uint8_t *data, uint16_t data_length, struct list_stru *attr_rsp_lst)
+{
+ uint16_t offset_byte = 0;
+ uint16_t att_num = 0;
+ uint16_t att_data_len = 0;
+ while (offset_byte < data_length) {
+ ble_ancs_attr_rsp_t *attr_rsp = (ble_ancs_attr_rsp_t *)bt_sdk_list_node_create(sizeof(ble_ancs_attr_rsp_t));
+ if (attr_rsp != NULL) {
+ att_data_len = ancs_att_rsp_package(attr_rsp, data, data_length, offset_byte);
+ att_num += 1;
+ bt_sdk_list_add_tail(attr_rsp_lst, attr_rsp);
+ offset_byte = offset_byte + 1 + sizeof(uint16_t) + att_data_len;
+ data = data + 1 + sizeof(uint16_t) + att_data_len;
+ }
+ }
+ return att_num;
+}
+
+/* 解析通知属性响应数据,响应数据格式:cmd_id(1B)|notify_uid(4B)|att_id1(1B)|att_id1_length(2B)|att_id1_data(动态)|... */
+static void notify_att_data_parse(uint8_t client_id, uint16_t conn_id, uint8_t *data, uint16_t data_length)
+{
+ ble_ancs_notification_attr_rsp_t *notify_att_rsp = NULL;
+ errcode_t result = ERRCODE_BT_SUCCESS;
+ if (data_length <= (ANCS_NOTIFY_ATT_DATA_HEADER_LENGTH - 1)) {
+ result = ERRCODE_BT_PARAM_ERR;
+ } else {
+ notify_att_rsp = bt_os_new(sizeof(ble_ancs_notification_attr_rsp_t));
+ notify_att_rsp->notification_uid = convert_little_2_u32(data);
+ notify_att_rsp->att_num = 0;
+ notify_att_rsp->attr_rsp_lst.head = NULL;
+ notify_att_rsp->attr_rsp_lst.tail = NULL;
+ data = data + ANCS_NOTIFY_UUID_BYTE_LENGTH;
+ notify_att_rsp->att_num = parse_att_rsp(data,
+ data_length - ANCS_NOTIFY_UUID_BYTE_LENGTH, ¬ify_att_rsp->attr_rsp_lst);
+ }
+
+ if (g_ancs_callbacks_t.notify_attr_cb != NULL) {
+ g_ancs_callbacks_t.notify_attr_cb(client_id, conn_id, notify_att_rsp, result);
+ }
+
+ if (notify_att_rsp != NULL) {
+ notify_att_rsp_free(notify_att_rsp);
+ }
+}
+
+/* 释放【应用属性响应结果】申请的内存 */
+static void app_att_rsp_free(ble_ancs_app_attr_rsp_t *app_att_rsp)
+{
+ ble_ancs_attr_rsp_t *node = app_att_rsp->attr_rsp_lst.head;
+ ble_ancs_attr_rsp_t *cur_node = NULL;
+ while (node != NULL) {
+ cur_node = node;
+ node = lnext(node);
+ bt_sdk_list_remove(&app_att_rsp->attr_rsp_lst, cur_node); /* 出队 */
+ bt_os_free(cur_node->att);
+ sdk_list_node_free(cur_node);
+ cur_node = NULL;
+ }
+ if (app_att_rsp->app_id.id != NULL) {
+ bt_os_free(app_att_rsp->app_id.id);
+ }
+ bt_os_free(app_att_rsp);
+ return;
+}
+
+/* 解析应用编号 */
+static void app_id_parse(ble_ancs_app_attr_rsp_t *app_att_rsp, uint8_t *data, uint16_t data_length)
+{
+ uint16_t app_id_len = 0;
+ for (int i = 0; i < data_length - 1; i++) {
+ app_id_len = app_id_len + 1;
+ if (*(data + i) == 0) {
+ break;
+ }
+ }
+ if (app_id_len != 0) {
+ app_att_rsp->app_id.len = app_id_len;
+ uint8_t *id = bt_os_new(app_id_len);
+ if (id != NULL) {
+ if (memcpy_s(id, app_id_len, data, app_id_len) != EOK) {
+ bt_os_free(id);
+ app_att_rsp->app_id.id = NULL;
+ return;
+ }
+ app_att_rsp->app_id.id = id;
+ return;
+ }
+ }
+ app_att_rsp->app_id.len = 0;
+ app_att_rsp->app_id.id = NULL;
+}
+
+/* 解析应用属性响应结果,响应格式:cmd_id(1B)|app_id(动态长度,字符串字节流,以NULL结尾)|att_id1(1B)|att_id1_length(2B)|att_id1_data(动态)|... */
+static void app_att_data_parse(uint8_t client_id, uint16_t conn_id, uint8_t *data, uint16_t data_length)
+{
+ ble_ancs_app_attr_rsp_t *app_att_rsp = NULL;
+ errcode_t result = ERRCODE_BT_SUCCESS;
+ if (data_length <= 0) {
+ result = ERRCODE_BT_PARAM_ERR;
+ } else {
+ app_att_rsp = bt_os_new(sizeof(ble_ancs_app_attr_rsp_t));
+ app_id_parse(app_att_rsp, data, data_length);
+ if ((app_att_rsp->app_id.len == 0) || (app_att_rsp->app_id.id == NULL)) {
+ result = ERRCODE_BT_PARAM_ERR;
+ } else {
+ app_att_rsp->att_num = 0;
+ app_att_rsp->attr_rsp_lst.head = NULL;
+ app_att_rsp->attr_rsp_lst.tail = NULL;
+ uint16_t app_id_len = app_att_rsp->app_id.len;
+ data = data + app_id_len;
+ app_att_rsp->att_num = parse_att_rsp(data, data_length - app_id_len, &app_att_rsp->attr_rsp_lst);
+ }
+ }
+
+ if (g_ancs_callbacks_t.app_attr_cb != NULL) {
+ g_ancs_callbacks_t.app_attr_cb(client_id, conn_id, app_att_rsp, result);
+ }
+
+ if (app_att_rsp != NULL) {
+ app_att_rsp_free(app_att_rsp);
+ }
+}
+
+/* ANCS客户端通知消息处理函数,消息格式:event_id(1B)|event_flags(1B)|category_id(1B)|category_count(1B)|notify_uuid(4B) */
+static void notify_src_handle(uint8_t client_id, uint16_t conn_id, gattc_handle_value_t *data)
+{
+ errcode_t result = ERRCODE_BT_SUCCESS;
+ ble_ancs_notification_src_t *notify_src_data = NULL;
+ if (data->data_len != ANCS_NOTIFY_SOURCE_LENGTH) {
+ result = ERRCODE_BT_PARAM_ERR;
+ } else {
+ uint8_t *pt_data = data->data;
+ notify_src_data = bt_os_new(sizeof(ble_ancs_notification_src_t));
+ notify_src_data->event_id = *pt_data;
+ notify_src_data->event_flags = *(pt_data + BT_INDEX_1);
+ notify_src_data->category_id = *(pt_data + BT_INDEX_2);
+ notify_src_data->category_count = *(pt_data + BT_INDEX_3);
+ pt_data = pt_data + BT_INDEX_4;
+ notify_src_data->notification_uid = convert_little_2_u32(pt_data);
+ }
+
+ if (g_ancs_callbacks_t.notify_source_cb != NULL) {
+ g_ancs_callbacks_t.notify_source_cb(client_id, conn_id, notify_src_data, result);
+ }
+ if (notify_src_data != NULL) {
+ bt_os_free(notify_src_data);
+ }
+}
+
+/* ANCS客户端数据消息处理函数 */
+static void data_src_handle(uint8_t client_id, uint16_t conn_id, gattc_handle_value_t *data)
+{
+ uint8_t *pt_data = data->data;
+ uint16_t data_length = data->data_len;
+ if ((data_length == (ble_gatt_mtu_exchange_result_get() - BLE_ATT_HEADER_LEN)) ||
+ (data_length == BLE_ANCS_DATA_MAX_LEN)) {
+ bts_error("response is larger than MTU, please limit attribute length, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ }
+ uint8_t cmd_id = *pt_data;
+ pt_data = pt_data + 1;
+ switch (cmd_id) {
+ /* 数据格式:cmd_id(1B)|notify_uid(4B)|att_id1(1B)|att_id1_length(2B)|att_id1_data(动态)|... */
+ case ANCS_CMD_GET_NOTIFY_ATT:{
+ notify_att_data_parse(client_id, conn_id, pt_data, data->data_len - 1);
+ break;
+ }
+ /* 数据格式:cmd_id(1B)|app_id(动态长度,字符串字节流,以NULL结尾)|att_id1(1B)|att_id1_length(2B)|att_id1_data(动态)|... */
+ case ANCS_CMD_GET_APP_ATT:{
+ app_att_data_parse(client_id, conn_id, pt_data, data->data_len - 1);
+ break;
+ }
+ default:
+ break;
+ }
+}
+
+/* ANCS客户端接收对端通知处理函数 */
+void ble_ancs_client_notify_cbk(uint8_t client_id, uint16_t conn_id, gattc_handle_value_t *data)
+{
+ ble_ancs_service_t *remote = ancs_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ return;
+ }
+
+ /* notification source */
+ /* 数据格式:event_id(1B)|event_flags(1B)|category_id(1B)|category_count(1B)|notification_uid(4B) */
+ if (data->handle == remote->notify_src.value_handle) {
+ notify_src_handle(client_id, conn_id, data);
+ /* data source */
+ } else if (data->handle == remote->data_src.value_handle) {
+ data_src_handle(client_id, conn_id, data);
+ }
+}
+
+/* ANCS客户端订阅结果处理函数 */
+static void ble_ancs_client_subscribe_result(uint8_t client_id, uint16_t conn_id,
+ ancs_client_subscribe_type_t type, gatt_status_t status)
+{
+ if (g_ancs_callbacks_t.subscribe_cb != NULL) {
+ g_ancs_callbacks_t.subscribe_cb(client_id, conn_id, type, status);
+ }
+}
+
+/* ANCS客户端写请求响应结果处理函数 */
+static void ble_ancs_client_write_result(uint8_t client_id, uint16_t conn_id, gatt_status_t status)
+{
+ if (g_ancs_callbacks_t.write_result_cb != NULL) {
+ g_ancs_callbacks_t.write_result_cb(client_id, conn_id, status);
+ }
+}
+
+/* ANCS客户端写请求响应处理函数 */
+void ble_ancs_client_write_cbk(uint8_t client_id, uint16_t conn_id, uint16_t handle, gatt_status_t status)
+{
+ ble_ancs_service_t *remote = ancs_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ return;
+ }
+
+ if (handle == (remote->notify_src_ccc_handle)) {
+ ble_ancs_client_subscribe_result(client_id, conn_id, ANCS_CLIENT_SUBSCRIBE_NOTIFY, status);
+ } else if (handle == (remote->data_src_ccc_handle)) {
+ ble_ancs_client_subscribe_result(client_id, conn_id, ANCS_CLIENT_SUBSCRIBE_DATA, status);
+ } else if (handle == (remote->ctl_point.value_handle)) {
+ ble_ancs_client_write_result(client_id, conn_id, status);
+ }
+}
+
+/* 校验通知属性是否需要拼接【最大长度】参数 */
+static bool is_followed_by_max_length_param(uint8_t att_id)
+{
+ bool is_followed = false;
+ switch (att_id) {
+ case ANCS_NOTIFY_ATT_TITLE:
+ case ANCS_NOTIFY_ATT_SUBTITLE:
+ case ANCS_NOTIFY_ATT_MESSAGE:
+ is_followed = true;
+ break;
+ default:
+ break;
+ }
+ return is_followed;
+}
+
+/* u32转小端序 */
+static void u32_2_little(uint32_t notify_uid, uint8_t *pt_data)
+{
+ *(pt_data + BT_INDEX_1) = u32_2_little_first_byte(notify_uid);
+ *(pt_data + BT_INDEX_2) = u32_2_little_second_byte(notify_uid);
+ *(pt_data + BT_INDEX_3) = u32_2_little_three_byte(notify_uid);
+ *(pt_data + BT_INDEX_4) = u32_2_little_four_byte(notify_uid);
+}
+
+/* 组装通知属性请求参数 */
+static errcode_t package_notify_att_req_param(ble_ancs_notification_attr_req_t *notify_att_req, uint8_t *pt_data)
+{
+ /* command id */
+ *pt_data = ANCS_CMD_GET_NOTIFY_ATT;
+
+ /* notification uuid 小端 */
+ u32_2_little(notify_att_req->notification_uid, pt_data);
+
+ /* 拼接ATT ID */
+ pt_data = pt_data + ANCS_NOTIFY_ATT_ID_OFFSET;
+ for (int i = 0; i < notify_att_req->att_num; i++) {
+ /* 校验ATT ID */
+ if (notify_att_req->attr[i].att_id > ANCS_NOTIFY_ATT_NEGATIVE_LABEL) {
+ return ERRCODE_BT_PARAM_ERR;
+ }
+ *(pt_data) = notify_att_req->attr[i].att_id;
+ pt_data = pt_data + 1;
+
+ /* 属性带有最大长度参数,小端传输 */
+ if (is_followed_by_max_length_param(notify_att_req->attr[i].att_id)) {
+ *(pt_data) = u16_low_byte(notify_att_req->attr[i].att_max_length);
+ *(pt_data + 1) = u16_high_byte(notify_att_req->attr[i].att_max_length);
+ pt_data = pt_data + ANCS_NOTIFY_ATT_MAX_LENGTH_BYTE;
+ }
+ }
+ return ERRCODE_BT_SUCCESS;
+}
+
+/* 计算申请内存大小 */
+static uint16_t calc_notify_att_req_param_length(ble_ancs_notification_attr_req_t *notify_att_req)
+{
+ uint16_t data_len = sizeof(uint8_t) + sizeof(uint32_t) +
+ (notify_att_req->att_num) * sizeof(uint8_t);
+ for (int i = 0; i < notify_att_req->att_num; i++) {
+ /* 属性带有最大长度参数 */
+ if (is_followed_by_max_length_param(notify_att_req->attr[i].att_id)) {
+ data_len += sizeof(uint16_t);
+ }
+ }
+ return data_len;
+}
+
+/* 发送获取通知属性命令 */
+errcode_t ble_ancs_client_send_get_notify_att_cmd(uint8_t client_id, uint16_t conn_id,
+ ble_ancs_notification_attr_req_t *notify_att_req)
+{
+ ble_ancs_service_t *remote = ancs_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ bts_error("ancs client remote service is not exist, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (remote->ctl_point.value_handle == 0) {
+ bts_error("ancs client remote service did not discovery character, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (notify_att_req->att_num == 0) {
+ bts_error("ancs client att num is invalid, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_PARAM_ERR;
+ }
+
+ /* 计算请求数据长度 */
+ uint16_t data_len = calc_notify_att_req_param_length(notify_att_req);
+
+ /* 请求数据格式:cmd_id(1B)|notify_uid(4B)|att_id1(1B)|att_id2(1B)|att_id2_max_length(2B)|... */
+ uint8_t *data = (uint8_t *)bt_os_new(data_len);
+
+ /* 指向参数数据的指针,用于拼接参数移动指针 */
+ uint8_t *pt_data = data;
+ errcode_t ret = package_notify_att_req_param(notify_att_req, pt_data);
+ if (ret != ERRCODE_BT_SUCCESS) {
+ bt_os_free(data);
+ return ret;
+ }
+ gattc_handle_value_t value = {0};
+ value.handle = remote->ctl_point.value_handle;
+ value.data_len = data_len;
+ value.data = data;
+ errcode_t result = gattc_write_req(client_id, conn_id, &value);
+ bt_os_free(data);
+ return result;
+}
+
+static errcode_t package_app_att_req_param(ble_ancs_app_attr_req_t *app_att_req, uint8_t *pt_data)
+{
+ /* command id */
+ *pt_data = ANCS_CMD_GET_APP_ATT;
+
+ /* app id ,字符串 */
+ pt_data = pt_data + 1;
+ if (memcpy_s(pt_data, app_att_req->app_id.len, app_att_req->app_id.id, app_att_req->app_id.len) != EOK) {
+ bts_error("[btsrv][ERROR] app id memcpy fail!\r\n");
+ return ERRCODE_BT_MALLOC_FAIL;
+ }
+
+ /* 校验 att id */
+ pt_data = pt_data + app_att_req->app_id.len;
+ for (int i = 0; i < app_att_req->att_num; i++) {
+ if (app_att_req->attr_id[i] > ANCS_APP_ATT_DISPLAY_NAME) {
+ return ERRCODE_BT_PARAM_ERR;
+ }
+ *(pt_data) = app_att_req->attr_id[i];
+ pt_data = pt_data + 1;
+ }
+
+ return ERRCODE_BT_SUCCESS;
+}
+
+/* 发送获取应用属性命令 */
+errcode_t ble_ancs_client_send_get_app_att_cmd(uint8_t client_id, uint16_t conn_id,
+ ble_ancs_app_attr_req_t *app_att_req)
+{
+ ble_ancs_service_t *remote = ancs_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ bts_error("ancs client remote service is not exist, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (remote->ctl_point.value_handle == 0) {
+ bts_error("ancs client remote service did not discovery character, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (app_att_req->att_num == 0) {
+ bts_error("ancs client att num is invalid, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_PARAM_ERR;
+ }
+
+ if (app_att_req->app_id.len != strlen((char *)app_att_req->app_id.id) + 1) {
+ bts_error("[ANCSClient][AppIdentifier]string must be NULL-terminated!\r\n");
+ return ERRCODE_BT_PARAM_ERR;
+ }
+
+ /* 计算数据长度 */
+ uint16_t data_len = sizeof(uint8_t) + app_att_req->app_id.len +
+ (app_att_req->att_num) * sizeof(uint8_t);
+
+ /* 数据格式:cmd_id(1B)|app_id(动态)|att_id1(1B)|att_id2(1B)|... */
+ uint8_t *data = (uint8_t *)bt_os_new(data_len);
+ /* 指向参数数据的指针,用于拼接参数移动指针 */
+ uint8_t *pt_data = data;
+ errcode_t ret = package_app_att_req_param(app_att_req, pt_data);
+ if (ret != ERRCODE_BT_SUCCESS) {
+ bt_os_free(data);
+ return ret;
+ }
+
+ gattc_handle_value_t value = {0};
+ value.handle = remote->ctl_point.value_handle;
+ value.data_len = data_len;
+ value.data = data;
+ errcode_t result = gattc_write_req(client_id, conn_id, &value);
+ bt_os_free(data);
+ return result;
+}
+
+/* 发送执行通知行为命令 */
+errcode_t ble_ancs_client_send_perform_notify_action_cmd(uint8_t client_id, uint16_t conn_id,
+ ble_ancs_notification_action_req_t *action_req)
+{
+ ble_ancs_service_t *remote = ancs_service_remote_by_conn(client_id, conn_id);
+ if (remote == NULL) {
+ bts_error("ancs client remote service is not exist, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+
+ if (remote->ctl_point.value_handle == 0) {
+ bts_error("ancs client remote service did not discovery character, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_NOT_READY;
+ }
+ if (action_req->action_id >= ANCS_ACTION_RESERVED) {
+ bts_error("ancs client action id is invalid, client_id:%u conn_id:%u\n",
+ client_id, conn_id);
+ return ERRCODE_BT_PARAM_ERR;
+ }
+
+ /* 计算数据长度 */
+ uint16_t data_len = sizeof(uint8_t) + sizeof(uint32_t) + sizeof(uint8_t);
+
+ /* 数据格式:cmd_id(1B)|notify_uid(4B)|action_id(1B) */
+ uint8_t *data = (uint8_t *)bt_os_new(data_len);
+ /* 指向参数数据的指针,用于拼接参数移动指针 */
+ uint8_t *pt_data = data;
+
+ /* command id */
+ *pt_data = ANCS_CMD_PERFORM_NOTIFY_ACTION;
+
+ /* notification uuid 小端 */
+ u32_2_little(action_req->notification_uid, pt_data);
+ *(pt_data + ANCS_NOTIFY_ACTION_ID_OFFSET) = action_req->action_id;
+
+ gattc_handle_value_t value = {0};
+ value.handle = remote->ctl_point.value_handle;
+ value.data_len = data_len;
+ value.data = data;
+ errcode_t result = gattc_write_req(client_id, conn_id, &value);
+ bt_os_free(data);
+ return result;
+}
+
+/* 注册ANCS客户端回调函数 */
+errcode_t ble_ancs_client_register_callbacks(ble_ancs_client_callbacks_t *func)
+{
+ if (memcpy_s(&g_ancs_callbacks_t, sizeof(g_ancs_callbacks_t), func, sizeof(ble_ancs_client_callbacks_t)) != EOK) {
+ return ERRCODE_BT_MEMCPY_FAIL;
+ }
+ return ERRCODE_BT_SUCCESS;
+}
+
+/* ANCS服务判断 */
+bool is_ble_ancs_service(bt_uuid_t *uuid)
+{
+ bt_uuid_t ancs_service_uuid = {0};
+ ancs_service_uuid.uuid_len = BT_UUID_MAX_LEN;
+ if (memcpy_s(ancs_service_uuid.uuid, BT_UUID_MAX_LEN, ancs_uuid, BT_UUID_MAX_LEN) != EOK) {
+ bts_error("[BLE]client discovery ancs memcpy error! \n");
+ return false;
+ }
+ if (ancs_service_uuid.uuid_len != uuid->uuid_len) {
+ return false;
+ }
+
+ return (memcmp(uuid, &ancs_service_uuid, sizeof(bt_uuid_t)) == 0 ? true : false);
+}
+
+/* 根据连接ID清理本地存储的对端ANCS服务信息 */
+void ble_ancs_client_clear_remote_by_conn(uint8_t client_id, uint16_t conn_id)
+{
+ ble_ancs_service_t *node = NULL;
+ node = ancs_service_remote_by_conn(client_id, conn_id);
+ if (node != NULL) {
+ bt_sdk_list_remove(&g_ble_ancs_service_list, node);
+ sdk_list_node_free(node);
+ }
+}
+
+/* 清理本地存储的所有对端ANCS服务信息 */
+void ble_ancs_client_clear_remote_all(void)
+{
+ ble_ancs_service_t *node = (ble_ancs_service_t *)g_ble_ancs_service_list.head;
+ ble_ancs_service_t *cur_node = NULL;
+ while (node != NULL) {
+ cur_node = node;
+ node = lnext(node);
+ bt_sdk_list_remove(&g_ble_ancs_service_list, cur_node);
+ sdk_list_node_free(cur_node);
+ cur_node = NULL;
+ }
+}
bts_unused(status);
ble_bas_client_t *dev = bas_client_get_dev_by_conn(client_id, conn_id);
if (dev == NULL) {
- bts_error("bas client remote service is not exist, client_id:%u conn_id:%hu\n",
- client_id, conn_id);
return;
}
{
ble_bas_client_t *dev = bas_client_get_dev_by_conn(client_id, conn_id);
if (dev == NULL) {
- bts_error("bas client remote service is not exist, client_id:%u conn_id:%hu\n",
- client_id, conn_id);
return;
}
#include "ble_bas_client.h"
#include "ble_pro_dis_client.h"
#include "ble_fmp_locator.h"
+#include "ble_ancs_client.h"
+#include "ble_ams_client.h"
#include "bts_uuid.h"
#include "ble_gatts_callbacks.h"
+uint32_t g_ble_gatt_mtu_size = 23;
+
static bool bt_gatts_cmp_uuid(const bt_uuid_t *tgt_uuid, const bt_uuid_t *src_uuid)
{
uint8_t *tgt = (uint8_t *)bts_init_128bit_uuid(tgt_uuid);
bt_uuid_t fmp_service_uuid = {0};
bts_data_to_uuid_len2(FMP_IMMEDIATE_ALERT_SERVICE_UUID, &fmp_service_uuid);
-
if (bt_gatts_cmp_uuid(&service->uuid, &bas_service_uuid) == true) {
ble_bas_client_discovery_service_cbk(client_id, conn_id, service);
} else if (bt_gatts_cmp_uuid(&service->uuid, &dis_service_uuid) == true) {
ble_dis_client_discovery_service_cbk(client_id, conn_id, service);
} else if (bt_gatts_cmp_uuid(&service->uuid, &fmp_service_uuid) == true) {
fmp_locator_discovery_service_cbk(client_id, conn_id, service);
+ } else if (is_ble_ancs_service(&service->uuid)) {
+ ble_ancs_client_discovery_service_cbk(client_id, conn_id, service);
+ } else if (is_ble_ams_service(&service->uuid)) {
+ ble_ams_client_discovery_service_cbk(client_id, conn_id, service);
}
}
fmp_locator_discovery_characteristic_cbk(client_id, conn_id, character);
} else {
ble_dis_client_discovery_character_cbk(client_id, conn_id, character);
+ ble_ancs_client_discovery_character_cbk(client_id, conn_id, character);
+ ble_ams_client_discovery_character_cbk(client_id, conn_id, character);
}
}
return;
}
ble_bas_client_discovery_descriptor_cbk(client_id, conn_id, descriptor);
+ ble_ancs_client_discovery_descriptor_cbk(client_id, conn_id, descriptor);
+ ble_ams_client_discovery_descriptor_cbk(client_id, conn_id, descriptor);
}
static void ble_client_read_cbk(uint8_t client_id, uint16_t conn_id, gattc_handle_value_t *read_result,
{
bts_info("[BLE]client read cbk client_id: %u conn_id: %hu status: %d handle: %hu \n",
client_id, conn_id, status, read_result->handle);
- if (status != ERRCODE_BT_SUCCESS) {
- return;
- }
ble_bas_client_read_cbk(client_id, conn_id, read_result, status);
ble_dis_client_read_cbk(client_id, conn_id, read_result, status);
+ ble_ams_client_read_cbk(client_id, conn_id, read_result, status);
}
static void ble_client_write_cbk(uint8_t client_id, uint16_t conn_id, uint16_t handle, gatt_status_t status)
{
bts_info("[BLE]client write cbk client_id: %u conn_id: %hu status: %d handle: %hu \n",
client_id, conn_id, status, handle);
+
+ ble_ancs_client_write_cbk(client_id, conn_id, handle, status);
+ ble_ams_client_write_cbk(client_id, conn_id, handle, status);
}
static void ble_client_notification_cbk(uint8_t client_id, uint16_t conn_id, gattc_handle_value_t *data,
return;
}
ble_bas_client_notify_characteristic_cbk(client_id, conn_id, data);
+ ble_ancs_client_notify_cbk(client_id, conn_id, data);
+ ble_ams_client_notify_cbk(client_id, conn_id, data);
}
+static void ble_client_mtu_exchange_result_cbk(uint8_t client_id, uint16_t conn_id, uint32_t mtu_size, errcode_t status)
+{
+ bts_info("[BLE]client MTU changed cbk: status: %u client_id: %u conn_id: %u mtu:%u.\r\n",
+ status, client_id, conn_id, mtu_size);
+ g_ble_gatt_mtu_size = mtu_size;
+}
errcode_t ble_client_register_gatt_callbacks(void)
{
cb.read_cb = ble_client_read_cbk;
cb.write_cb = ble_client_write_cbk;
cb.notification_cb = ble_client_notification_cbk;
+ cb.mtu_changed_cb = ble_client_mtu_exchange_result_cbk;
ret = gattc_register_callbacks(&cb);
return ret;
+}
+
+uint32_t ble_gatt_mtu_exchange_result_get(void)
+{
+ return g_ble_gatt_mtu_size;
}
\ No newline at end of file
#include "soc_errno.h"
#include "bts_br_gap.h"
#include "bts_le_gap.h"
+#include "bts_feature.h"
#include "bts_a2dp_source.h"
#include "bts_br_gap.h"
#include "bts_avrcp_controller.h"
BTSRV_SAMPLE_GAP_SHOW_FOUND_LIST, /* 30 展示发现设备列表 */
BTSRV_SAMPLE_GAP_SET_CONN_REQ_ANSWER, /* 31 设置连接请求应答 */
+ BTSRV_SAMPLE_GAP_SET_FEATURE_CONFIG, /* 32 蓝牙特性配置 */
+ BTSRV_SAMPLE_GAP_GET_FEATURE_CONFIG, /* 33 蓝牙特性获取 */
+ BTSRV_SAMPLE_GAP_RECONNECT_PHONE, /* 34 重连手机 */
+
+ BTSRV_SAMPLE_GAP_SET_INQUIRY_PARAM, /* 35 设置搜到参数 */
} btsrv_gap_sample_cmd_id;
typedef enum {
bts_sample_log("gap_get_device_class device_class: %d\n", ret);
}
+static void btsrv_sample_cmd_set_filter_device_class(const char **params, int32_t params_cnt)
+{
+ if (params_cnt != 2) { /* 2:参数个数 */
+ bts_sample_log("gap_br_set_inquiry_paramters params_cnt error! need: device_class max_number\n");
+ return;
+ }
+
+ uint32_t dev_class = (uint32_t)atoi(params[0]);
+ uint8_t max_num = (uint8_t)atoi(params[1]);
+ bts_sample_log_with_func("dev_class:%u max_num:%u\n", dev_class, max_num);
+ int ret = gap_br_set_inquiry_paramters(dev_class, max_num);
+
+ bts_sample_log("gap_br_set_inquiry_paramters ret: %d\n", ret);
+}
+
static void btsrv_sample_cmd_update_found_list(const char **params, int32_t params_cnt)
{
bts_unused(params);
g_sample_gap_accept_conn = (bool)atoi(params[0]);
}
+static void btsrv_sample_cmd_set_feature_config(const char **params, int32_t params_cnt)
+{
+ bts_feature_t feature;
+ if (params_cnt != 1) { /* 1:参数个数 */
+ bts_sample_log("btsrv_sample_cmd_set_feature_config params_cnt error! need: feature_config\n");
+ return;
+ }
+ *(int *)&feature = atoi(params[0]);
+ bts_sample_log("feature:%d bt_auto_reconnect_closed:%d\n", *(int *)&feature, feature.bt_auto_reconnect_closed);
+ errcode_t ret = bts_set_features(&feature);
+ bts_sample_log("bts set features ret:%d\n", ret);
+}
+
+static void btsrv_sample_cmd_get_feature_config(const char **params, int32_t params_cnt)
+{
+ bts_unused(params);
+ bts_unused(params_cnt);
+ bts_feature_t feature = bts_get_features();
+ bts_sample_log("bts get features feature: bt_auto_reconnect_closed:%d.\n", feature.bt_auto_reconnect_closed);
+}
+
+static void btsrv_sample_cmd_reconnect_phone(const char **params, int32_t params_cnt)
+{
+ errcode_t ret;
+ if (params_cnt != 1) { /* 1:参数个数 */
+ bts_sample_log("reconnect phone param error! need: bd_addr.\n");
+ return;
+ }
+
+ bd_addr_t bd_addr;
+ if (decode_bd_addr_from_str(params[0], bd_addr.addr, BD_ADDR_LEN) != EXT_ERR_SUCCESS) {
+ bts_sample_log("reconnect phone decode addr error!\n");
+ return;
+ }
+ ret = gap_reconnect_media_device(&bd_addr);
+ bts_sample_log("reconnect phone ret:%d.\n", ret);
+}
+
btsrv_sample_cmd_hdl_info g_btsrv_gap_sample_hdls[] = {
/* 0 */
{ BTSRV_SAMPLE_GAP_ENABLE_BLE, btsrv_sample_cmd_enable_ble },
{ BTSRV_SAMPLE_GAP_GET_DEVICE_NAME, btsrv_sample_cmd_get_device_name },
{ BTSRV_SAMPLE_GAP_GET_DEVICE_CLASS, btsrv_sample_cmd_get_device_class },
+ /* 25 */
+ { BTSRV_SAMPLE_GAP_PAIR_REQUEST_RELY, NULL },
+ { BTSRV_SAMPLE_GAP_SET_DEVICE_PIN, NULL },
+ { BTSRV_SAMPLE_GAP_SET_DEVICE_PAIRING_CONFIRMATION, NULL },
+ { BTSRV_SAMPLE_GAP_SET_DEVICE_PASSKEY, NULL },
/* 29 */
{ BTSRV_SAMPLE_GAP_UPDATE_FOUND_LIST, btsrv_sample_cmd_update_found_list },
/* 30 */
{ BTSRV_SAMPLE_GAP_SHOW_FOUND_LIST, btsrv_sample_cmd_show_found_list },
- { BTSRV_SAMPLE_GAP_SET_CONN_REQ_ANSWER, btsrv_sample_cmd_set_connect_req_answer }
+ { BTSRV_SAMPLE_GAP_SET_CONN_REQ_ANSWER, btsrv_sample_cmd_set_connect_req_answer },
+ { BTSRV_SAMPLE_GAP_SET_FEATURE_CONFIG, btsrv_sample_cmd_set_feature_config },
+ { BTSRV_SAMPLE_GAP_GET_FEATURE_CONFIG, btsrv_sample_cmd_get_feature_config },
+ { BTSRV_SAMPLE_GAP_RECONNECT_PHONE, btsrv_sample_cmd_reconnect_phone },
+
+ /* 35 */
+ { BTSRV_SAMPLE_GAP_SET_INQUIRY_PARAM, btsrv_sample_cmd_set_filter_device_class },
};
void btsrv_gap_sample_cmd(uint32_t cmd_id, const char **params, int32_t params_cnt)
#include "ble_pro_dis_client.h"
#include "ble_bas_client.h"
#include "ble_fmp_locator.h"
+#include "ble_ancs_client.h"
+#include "ble_ams_client.h"
#include "osal_task.h"
#define BTSRV_LOG_DEBUG
scan_result_data->addr.addr[BT_INDEX_5]);
}
-static void sample_gap_ble_conn_state_change_cbk(uint16_t conn_id, bd_addr_t *addr, gap_acl_state_t conn_state,
- gap_pair_state_t pair_state, gap_ble_disc_reason_t disc_reason)
+static void sample_gap_ble_conn_state_change_cbk(uint16_t conn_id, bd_addr_t *addr, gap_ble_conn_state_t conn_state,
+ gap_ble_pair_state_t pair_state, gap_ble_disc_reason_t disc_reason)
{
bts_sample_log("ConnectStateChanged conn_id:%u addr:0x%02x:**:**:**:%02x:%02x addr_type:%u"
"conn_state:%d pair_state:%d\r\n", conn_id, addr->addr[BT_INDEX_0], addr->addr[BT_INDEX_4],
ble_dis_client_clear_remote_by_conn(1, conn_id);
ble_bas_client_clear_remote_by_conn(1, conn_id);
ble_fmp_locator_clear_remote_by_conn(1, conn_id);
+ ble_ancs_client_clear_remote_by_conn(1, conn_id);
+ ble_ams_client_clear_remote_by_conn(1, conn_id);
}
}
bts_sample_log("read remote rssi conn_id:%u rssi:%d status:%u\r\n", conn_id, rssi, status);
}
+static void sample_gap_ble_connect_param_update_cbk(uint16_t conn_id, errcode_t status,
+ const gap_ble_conn_param_update_t *param)
+{
+ bts_sample_log("connect param changed conn_id:%u status:%u", conn_id, status);
+ if (param != NULL) {
+ bts_sample_log(" interval:%u latency:%u timeout:%u\r\n", param->interval, param->latency, param->timeout);
+ }
+}
+
/* 注册GATT回调 params: sample_mode fill_callbacks */
static void sample_gatt_cmd_ble_gatt_reg_cbk(char **params, int32_t params_cnt)
{
sample_gap_ble_read_remote_rssi_cbk,
sample_gap_ble_terminate_adv_cbk,
sample_gap_ble_auth_complete_cbk,
- NULL,
+ sample_gap_ble_connect_param_update_cbk,
};
ret = gap_ble_register_callbacks(&cb);
bts_sample_log("gap_ble_register_callbacks with funcs ret(errcode_t): %x\n", ret);
#include "sample_bt_audio_hal.h"
#include "sample_ble_fmp.h"
#include "sample_pan_service.h"
+#include "sample_ble_ancs.h"
+#include "sample_ble_ams.h"
#define BT_SRV_SAMPLE_CMD_ARGC_MIN 2
BTSRV_SAMPLE_CMD_GROUP_PAN = 22, /* 22 PAN 测试命令 */
BTSRV_SAMPLE_CMD_GROUP_HFP_AG = 23, /* 23 HFP-AG 测试命令 */
#endif
+
+ BTSRV_SAMPLE_CMD_GROUP_ANCS_CLIENT = 24, /* 24 ANCS CLIENT 测试命令 */
+ BTSRV_SAMPLE_CMD_GROUP_AMS_CLIENT = 25, /* 25 AMS CLIENT 测试命令 */
} btsrv_sample_cmd_group;
#if (BTH_LE_ONLY == YES) || (BTH_BREDR_LE_DOUBLE == YES)
static void ble_service_sample_cmd(int32_t module_id, int32_t cmd_id, char **params, int32_t params_num)
case BTSRV_SAMPLE_CMD_GROUP_FMP:
ble_at_fmp_srv_cmd(cmd_id, params, params_num);
break;
+ case BTSRV_SAMPLE_CMD_GROUP_ANCS_CLIENT:
+ ble_ancs_client_at_cmd(cmd_id, params, params_num);
+ break;
+ case BTSRV_SAMPLE_CMD_GROUP_AMS_CLIENT:
+ ble_ams_client_at_cmd(cmd_id, params, params_num);
+ break;
default:
bts_sample_log_with_func("invalid cmd group id\n");
break;
uintptr_t btsdk_add_remote_device(uint8_t *bd_addr, uint8_t addr_len);
int32_t btsdk_update_remote_device_name(uintptr_t dev_hdl, uint8_t *name, uint16_t *plen);
int32_t btsdk_update_remote_device_name_async(uintptr_t dev_hdl, gap_execute_command_cfm_cbk *cfm_cbk);
-int32_t btsdk_start_device_discovery(uint32_t dev_class);
+int32_t btsdk_start_device_discovery(uint32_t dev_class, uint8_t max_num, uint8_t max_seconds);
int32_t btsdk_get_remote_device_address(uintptr_t dev_hdl, uint8_t *bd_addr, uint8_t addr_len);
int32_t btsdk_create_acl_link(uintptr_t dev_hdl, uint8_t link_type);
int32_t btsdk_create_acl_link_async(uintptr_t dev_hdl, uint8_t link_type, gap_create_connection_cfm_cbk *cfm_cbk);
from nv_binary import nv_begin
# brandy packet
-def build_brandy_other_bin():
+def build_brandy_other_bin(pack_style_str):
''' build brandy partition and nv '''
chip_dir = os.path.join(SDK_DIR, "build", "config", "target_config", "brandy")
# 分区配置文件路径
partition_cfg = os.path.join(chip_dir, "param_sector", "param_sector.json")
partition_bin = os.path.join(SDK_DIR, "output", "brandy", "partition_table.bin")
# nv配置文件路径
- nv_config_json = os.path.join(chip_dir, "nv_bin_cfg", "mk_nv_bin_cfg.json")
+ nv_config_json = os.path.join(chip_dir, "nv_bin_cfg")
+ if pack_style_str.endswith("-user"):
+ nv_config_json = os.path.join(nv_config_json, "mk_nv_bin_cfg_user.json")
+ else:
+ nv_config_json = os.path.join(nv_config_json, "mk_nv_bin_cfg_eng.json")
targets = ["acore"]
# 输出路径
nv_output_path = os.path.join(SDK_DIR, "output", "brandy", "nv_bin")
def make_all_in_one_packet(pack_style_str):
# make all in one packet
- build_brandy_other_bin()
+ build_brandy_other_bin(pack_style_str)
bin_dir = os.path.join(PKG_DIR, "bin", "brandy")
application_dir = os.path.join(SDK_DIR,
"acore",
pack_style_str)
recovery_target = "%s-r" % pack_style_str
+ recovery_target = recovery_target.replace('-user', '')
recovery_bin = os.path.join(SDK_DIR,
"output",
"brandy",
--- /dev/null
+*.iml\r
+.gradle\r
+/local.properties\r
+/.idea\r
+.DS_Store\r
+/build\r
+/captures\r
+.externalNativeBuild\r
+/entry/.preview\r
+/entry/build\r
+.cxx\r
--- /dev/null
+# Lite_Himalayas
+
+3321 喜马拉雅demo
\ No newline at end of file
--- /dev/null
+// Top-level build file where you can add configuration options common to all sub-projects/modules.\r
+apply plugin: 'com.huawei.ohos.app'\r
+\r
+//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#ZH-CN_TOPIC_0000001154985555__section1112183053510\r
+ohos {\r
+ compileSdkVersion 5\r
+ defaultConfig {\r
+ compatibleSdkVersion 5\r
+ }\r
+}\r
+ \r
+buildscript {\r
+ repositories {\r
+ maven {\r
+ url 'https://repo.huaweicloud.com/repository/maven/'\r
+ }\r
+ maven {\r
+ url 'https://developer.huawei.com/repo/'\r
+ }\r
+ jcenter()\r
+ }\r
+ dependencies {\r
+ classpath 'com.huawei.ohos:hap:2.4.4.2'\r
+ classpath 'com.huawei.ohos:decctest:1.2.4.0'\r
+ }\r
+}\r
+\r
+allprojects {\r
+ repositories {\r
+ maven {\r
+ url 'https://repo.huaweicloud.com/repository/maven/'\r
+ }\r
+ maven {\r
+ url 'https://developer.huawei.com/repo/'\r
+ }\r
+ jcenter()\r
+ }\r
+}\r
--- /dev/null
+apply plugin: 'com.huawei.ohos.hap'\r
+apply plugin: 'com.huawei.ohos.decctest'\r
+//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#ZH-CN_TOPIC_0000001154985555__section1112183053510\r
+ohos {\r
+ compileSdkVersion 5\r
+ defaultConfig {\r
+ compatibleSdkVersion 5\r
+ }\r
+ buildTypes {\r
+ release {\r
+ proguardOpt {\r
+ proguardEnabled false\r
+ rulesFiles 'proguard-rules.pro'\r
+ }\r
+ }\r
+ }\r
+ \r
+}\r
+\r
+dependencies {\r
+ testImplementation 'junit:junit:4.13'\r
+}\r
+decc {\r
+ supportType = ['html','xml']\r
+}\r
+\r
+project.afterEvaluate {\r
+ project.getTasks().getByName("convertImage").dependsOn(project.getTasks().getByName("generateDebugBinSource"))\r
+ project.getTasks().getByName("assembleDebug").dependsOn(project.getTasks().getByName("convertImage"))\r
+}\r
+\r
+task convertImage(type: Exec) {\r
+ workingDir System.getenv("ImageTool")\r
+ buildDir = getBuildDir()\r
+ commandLine "python3","images_tool.py","-p","file","-c","config.xml","-i","${buildDir}/intermediates/","-o","${buildDir}/intermediates/"\r
+}
\ No newline at end of file
--- /dev/null
+# config module specific ProGuard rules here.
\ No newline at end of file
--- /dev/null
+{
+ "app": {
+ "bundleName": "cn.tingshu",
+ "vendor": "vendor",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "deviceType": [
+ "liteWearable"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "name": "default",
+ "icon": "$media:icon",
+ "label": "$string:entry_MainAbility",
+ "type": "page"
+ }
+ ],
+ "js": [
+ {
+ "name": "default",
+ "pages": [
+ "pages/index/index",
+ "pages/play/play",
+ "pages/playlist/playlist"
+ ]
+ }
+ ]
+ }
+}
\ No newline at end of file
--- /dev/null
+export default {
+ onCreate() {
+ console.info("Application onCreate");
+ },
+ onDestroy() {
+ console.info("Application onDestroy");
+ }
+};
--- /dev/null
+{
+ "strings": {
+ "hello": "Hello",
+ "world": "World"
+ }
+}
\ No newline at end of file
--- /dev/null
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
--- /dev/null
+.stack {\r
+ width: 100%;\r
+ height: 100%;\r
+}\r
+\r
+.container {\r
+ display: flex;\r
+ flex-direction: column;\r
+ justify-content: center;\r
+ align-items: center;\r
+ width: 100%;\r
+ height: 100%;\r
+}\r
+\r
+.logo_img {\r
+ width: 180px;\r
+ height: 180px;\r
+ border-radius: 90px;\r
+}\r
+\r
+.logo_text {\r
+ margin-top: 15px;\r
+ width: 180px;\r
+ font-size: 40px;\r
+ text-align: center;\r
+}\r
+\r
+.logo_mini {\r
+ margin-top: 5px;\r
+ letter-spacing: 4px;\r
+ width: 180px;\r
+ font-size: 16px;\r
+ text-align: center;\r
+}\r
--- /dev/null
+<stack class="stack">\r
+ <div class="container">\r
+ <image class="logo_img" src="/common/images/xima_logo.png"></image>\r
+ <text class="logo_text">JS听书</text>\r
+ <text class="logo_mini">每一天的精神食粮</text>\r
+ </div>\r
+</stack>\r
--- /dev/null
+import app from '@system.app';\r
+import router from '@system.router';\r
+\r
+export default {\r
+ data: {},\r
+ onInit() {\r
+ },\r
+ onShow() {\r
+ setTimeout(this.toNav, 2000)\r
+ },\r
+ toNav() {\r
+ router.replace({\r
+ uri: "pages/playlist/playlist"\r
+ })\r
+ },\r
+ swipeEvent(e) {\r
+ if (e.direction == "right") {\r
+ app.terminate()\r
+ console.log("Xima exit");\r
+ }\r
+ },\r
+}
\ No newline at end of file
--- /dev/null
+.stack {
+ width: 100%;
+ height: 100%;
+}
+
+.top_record {
+ left: 198px;
+ width: 256px;
+ height: 256px;
+}
+
+.bottom_record {
+ top: 198px;
+ width: 256px;
+ height: 256px;
+}
+
+.album_div {
+ width: 100%;
+ height: 120px;
+ align-items: center;
+ padding-top: 40px;
+ flex-direction: column;
+ background-color: transparent;
+}
+
+.song_div {
+ width: 70%;
+ height: 37px;
+ background-color: transparent;
+}
+
+.device_img {
+ width: 26px;
+ height: 37px;
+ background-color: transparent;
+}
+
+.song_text {
+ font-size: 30px;
+ width: 100%;
+ text-align: center;
+ background-color: transparent;
+}
+
+.singer_name {
+ font-size: 24px;
+ margin-top: 5px;
+ width: 60%;
+ height: 32px;
+ background-color: transparent;
+}
+
+.play_stack {
+ width: 118px;
+ height: 118px;
+ left: 168px;
+ top: 168px;
+}
+
+.play_img {
+ width: 118px;
+ height: 118px;
+}
+
+.left_btn {
+ width: 78px;
+ height: 78px;
+ left: 40px;
+ top: 188px;
+}
+
+.right_btn {
+ width: 78px;
+ height: 78px;
+ left: 336px;
+ top: 188px;
+}
+
+.order_stack {
+ width: 48px;
+ height: 48px;
+ left: 100px;
+ top: 346px;
+ background-color: transparent;
+}
+
+.order_img {
+ width: 48px;
+ height: 48px;
+ background-color: transparent;
+}
+
+.volume_img {
+ width: 48px;
+ height: 48px;
+ left: 140px;
+ top: 346px;
+}
+
+.settings_img {
+ width: 26px;
+ height: 37px;
+ left: 277px;
+ top: 351px;
+}
+
+.progress {
+ center-x: 227px;
+ center-y: 227px;
+ width: 100%;
+ height: 100%;
+ start-angle: 120;
+ total-angle: -60;
+ stroke-width: 8px;
+ radius: 220px;
+ color: steelblue;
+ background-color: #333333;
+}
+
+.volume_div {
+ width: 100%;
+ height: 100%;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ background-color: black;
+}
+
+.volume_div_2 {
+ width: 80%;
+ height: 60px;
+ border-radius: 30px;
+ align-items: center;
+ justify-content: center;
+ background-color: #2CFFFFFF;
+}
+
+.hide_div {
+ width: 100%;
+ height: 197px;
+}
+
+.volume_slider {
+ height: 20px;
+ width: 70%;
+ selected-color: steelblue;
+ color: aliceblue;
+}
\ No newline at end of file
--- /dev/null
+<stack class="stack">
+
+ <stack class="stack" on:swipe="swipeExit">
+
+ <!-- top album -->
+ <div class="album_div">
+ <div class="song_div">
+ <text class="song_text">{{ curMusic.curMusicName }}</text>
+ </div>
+ <marquee scrollamount="10" class="singer_name">{{ curMusic.singer }}</marquee>
+ </div>
+
+ <!-- center images -->
+ <stack class="play_stack" on:click="playMusic">
+ <image class="play_img" src="/common/images/A055_010.png" if="{{ playStatus != 0 }}"/>
+ <image class="play_img" src="/common/images/A055_009.png" if="{{ playStatus == 0 }}"/>
+ </stack>
+
+ <image src="/common/images/A055_006.png" style="object-fit : contain;"
+ class="left_btn" on:click="changeSong"/>
+ <image src="/common/images/A055_007.png" style="object-fit : contain;"
+ class="right_btn" on:click="changeSong"/>
+
+ <image src="/common/images/A055_001.png" class="volume_img" on:click="showVolume"/>
+
+ <image src="/common/images/A055_024.png" class="settings_img" on:click="exitApp"/>
+
+ <progress type="arc" class="progress" percent="{{ progress }}"></progress>
+
+ </stack>
+ <div class="volume_div" if="{{ showVolume }}">
+ <div class="hide_div" on:swipe="swipeQuitVolume" on:click="hideVolume"></div>
+ <div class="volume_div_2" on:click="clickVolumeDiv">
+ <slider class="volume_slider" value="{{ volume }}" on:change="changeVolume" on:swipe="swipeSliderVolume"/>
+ </div>
+ <div class="hide_div" on:swipe="swipeQuitVolume" on:click="hideVolume"></div>
+ </div>
+</stack>
--- /dev/null
+import player from '@system.audio'
+import router from '@system.router';
+
+var timestamp = 0
+var lastVolume = 0
+
+export default {
+ data: {
+ playStatus: 2, //0:play,1:pause,2:stop
+ duration: 0,
+ currentTime: 0,
+ curIndex: 0,
+ progress: 0,
+ showVolume: false,
+ canExit: true,
+ volume: 0,
+ musicList: [
+ {
+ src: "/user/music/chun_feng_chu.mp3",
+ name: "运动听单",
+ singer: "今日畅听歌曲,春风吹 欢迎收听",
+ pathType: 0 // 0: system path, 1: inner path
+ },
+ {
+ src: "resources/base/media/alarm.mp3",
+ name: "运动听单",
+ singer: "日本最神秘歌曲,Lemon 欢迎收听",
+ pathType: 1
+ },
+ {
+ src: "/user/music/lan_jing.mp3",
+ name: "运动听单",
+ singer: "今日畅听歌曲,化身孤岛的鲸 欢迎收听",
+ pathType: 0
+ }
+ ],
+ curMusic: { //current music info
+ curMusicName: "",
+ singer: "",
+ },
+ },
+ onInit() {
+ this.curMusic.curMusicName = this.musicList[this.curIndex].name;
+ this.curMusic.singer = this.musicList[this.curIndex].singer;
+ //get music duration
+ player.onplay = () => {
+ console.log("MusicDemo onplay start");
+ this.playStatus = 0;
+ };
+ player.onended = () => {
+ console.log("MusicDemo onended start");
+ this.playStatus = 2;
+
+ // reset player
+ player.reset();
+
+ this.changeSong()
+ console.log("MusicDemo onended start");
+ }
+ player.ontimeupdate = () => {
+ this.duration = player.duration;
+ this.currentTime = player.currentTime
+ console.info("MusicDemo dur:" + this.duration + ", cur:" + this.currentTime)
+ if (this.duration != 0) {
+ this.progress = this.currentTime * 100.0 / this.duration;
+ } else {
+ this.progress = 0;
+ }
+ }
+ },
+ playMusic() {
+ console.info("MusicDemo getPlayState: " + this.playStatus)
+ if (this.playStatus == 1) {
+ player.play();
+ this.playStatus = 0;
+ console.log("MusicDemo playMusic:play");
+ return;
+ } else if (this.playStatus == 0) {
+ this.playImage = "common/ic_music_play.png";
+ player.pause();
+ this.playStatus = 1;
+ console.log("MusicDemo playMusic:pause");
+ return;
+ }
+
+ this.curMusic.curMusicName = this.musicList[this.curIndex].name;
+ this.curMusic.singer = this.musicList[this.curIndex].singer;
+ if (this.musicList[this.curIndex].pathType == 0) {
+ player.src = this.musicList[this.curIndex].src;
+ } else {
+ player.srcInner = this.musicList[this.curIndex].src;
+ }
+ player.play();
+ this.playStatus = 0;
+ console.log("MusicDemo playMusic:play");
+ },
+ changeSong() {
+ console.log("MusicDemo ChangeSong:start");
+ if (this.playStatus == 0 || this.playStatus == 1) {
+ this.playStatus = 2;
+ }
+ this.curIndex = (this.curIndex + 1) % 3;
+
+ this.playMusic();
+ console.log("MusicDemo ChangeSong:end");
+ },
+ stopPlay() {
+ console.log("stopPlay");
+ player.onplay = null;
+ player.onended = null;
+ player.ontimeupdate = null;
+ },
+ changeVolume(e) {
+ console.log("MusicDemo ChangeVolume: " + e.progress)
+ let temp_timestamp = new Date().getTime()
+ if (temp_timestamp - timestamp > 250) {
+ timestamp = temp_timestamp
+ player.volume = e.progress / 100.0
+ } else {
+ lastVolume = e.progress / 100.0
+ }
+ },
+ swipeSliderVolume(e){
+ player.volume = lastVolume
+ },
+ showVolume() {
+ this.showVolume = true
+ this.canExit = false
+ this.volume = player.volume * 100
+ },
+ hideVolume() {
+ this.showVolume = false
+ setTimeout(this.setCanExit, 500)
+ },
+ clickVolumeDiv() {
+ },
+ setCanExit() {
+ this.canExit = true
+ },
+ swipeQuitVolume(e) {
+ if (e.direction == "right") {
+ if (this.showVolume) {
+ this.hideVolume()
+ }
+ }
+ },
+ swipeExit(e) {
+ if (e.direction == "right" && this.canExit) {
+ this.exitApp()
+ }
+ },
+ exitApp() {
+ console.log("MusicDemo start back");
+ player.reset();
+ this.stopPlay();
+ router.replace({
+ uri: "pages/playlist/playlist"
+ })
+ console.log("MusicDemo end back");
+ },
+}
--- /dev/null
+/* index.css */\r
+.container {\r
+ display: flex;\r
+ justify-content: center;\r
+ align-items: center;\r
+ width: 100%;\r
+ height: 100%;\r
+ flex-direction: column;\r
+}\r
+\r
+.todo-wrapper {\r
+ margin-top: 40px;\r
+ width: 100%;\r
+ height: 300px;\r
+}\r
+\r
+.todo-item {\r
+ width: 100%;\r
+ height: 80px;\r
+ flex-direction: column;\r
+ justify-content: center;\r
+ align-items: center;\r
+}\r
+\r
+.item_divider {\r
+ height: 1px;\r
+ width: 70%;\r
+ background-color: #333333;\r
+}\r
+\r
+.item_div_wrapper {\r
+ flex-direction: row;\r
+ align-items: center;\r
+ justify-content: center;\r
+ width: 70%;\r
+ height: 60px;\r
+}\r
+\r
+.index-title {\r
+ margin-top: 20px;\r
+ width: 15%;\r
+ height: 40px;\r
+ font-size: 30px;\r
+ color: #666666;\r
+}\r
+\r
+.todo-title {\r
+ margin-top: 20px;\r
+ width: 85%;\r
+ height: 40px;\r
+ text-overflow: ellipsis;\r
+ font-size: 30px;\r
+}
\ No newline at end of file
--- /dev/null
+<!-- index.hml -->\r
+<div class="container">\r
+\r
+ <text>运动听单</text>\r
+\r
+ <list class="todo-wrapper" on:swipe="swipeExit">\r
+ <list-item for="{{ musicList }}" class="todo-item" on:click="goPlay({{ $item.index }})">\r
+ <div class="item_divider"></div>\r
+ <div class="item_div_wrapper">\r
+ <text class="index-title">{{ $item.index }}</text>\r
+ <text class="todo-title">{{ $item.singer }}</text>\r
+ </div>\r
+ </list-item>\r
+ </list>\r
+</div>\r
--- /dev/null
+import app from '@system.app';\r
+import router from '@system.router';\r
+\r
+// index.js\r
+export default {\r
+ data: {\r
+ musicList: [\r
+ {\r
+ index: 1,\r
+ src: "/user/music/chun_feng_chu.mp3",\r
+ name: "运动听单",\r
+ singer: "今日畅听歌曲,春风吹 欢迎收听"\r
+ },\r
+ {\r
+ index: 2,\r
+ src: "/user/music/alarm.mp3",\r
+ name: "运动听单",\r
+ singer: "日本最神秘歌曲,Lemon 欢迎收听"\r
+ },\r
+ {\r
+ index: 3,\r
+ src: "/user/music/lan_jing.mp3",\r
+ name: "运动听单",\r
+ singer: "今日畅听歌曲,化身孤岛的鲸 欢迎收听"\r
+ }\r
+ ],\r
+ },\r
+ goPlay(index) {\r
+ router.replace({\r
+ uri: "pages/play/play",\r
+ params: {\r
+ curIndex: index - 1\r
+ }\r
+ })\r
+ },\r
+ swipeExit(e) {\r
+ if (e.direction == "right") {\r
+ this.exitApp()\r
+ }\r
+ },\r
+ exitApp() {\r
+ console.log("MusicDemo start exit");\r
+ app.terminate();\r
+ console.log("MusicDemo end exit");\r
+ },\r
+}
\ No newline at end of file
--- /dev/null
+{\r
+ "string": [\r
+ {\r
+ "name": "entry_MainAbility",\r
+ "value": "JS听书"\r
+ }\r
+ ]\r
+}\r
--- /dev/null
+# Project-wide Gradle settings.\r
+# IDE (e.g. DevEco Studio) users:\r
+# Gradle settings configured through the IDE *will override*\r
+# any settings specified in this file.\r
+# For more details on how to configure your build environment visit\r
+# http://www.gradle.org/docs/current/userguide/build_environment.html\r
+# Specifies the JVM arguments used for the daemon process.\r
+# The setting is particularly useful for tweaking memory settings.\r
+# If the Chinese output is garbled, please configure the following parameter.\r
+# This function is enabled by default when the DevEco Studio builds the hap/app,if you need disable gradle parallel,you should set org.gradle.parallel false.\r
+# more information see https://docs.gradle.org/current/userguide/performance.html\r
+# org.gradle.parallel=false\r
+# org.gradle.jvmargs=-Dfile.encoding=GBK
\ No newline at end of file
--- /dev/null
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://repo.huaweicloud.com/gradle/gradle-6.3-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
--- /dev/null
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ]; do
+ ls=$(ls -ld "$PRG")
+ link=$(expr "$ls" : '.*-> \(.*\)$')
+ if expr "$link" : '/.*' >/dev/null; then
+ PRG="$link"
+ else
+ PRG=$(dirname "$PRG")"/$link"
+ fi
+done
+SAVED="$(pwd)"
+cd "$(dirname \"$PRG\")/" >/dev/null
+APP_HOME="$(pwd -P)"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=$(basename "$0")
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn() {
+ echo "$*"
+}
+
+die() {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$(uname)" in
+CYGWIN*)
+ cygwin=true
+ ;;
+Darwin*)
+ darwin=true
+ ;;
+MINGW*)
+ msys=true
+ ;;
+NONSTOP*)
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ]; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ]; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ]; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ]; then
+ MAX_FD_LIMIT=$(ulimit -H -n)
+ if [ $? -eq 0 ]; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ]; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ]; then
+ APP_HOME=$(cygpath --path --mixed "$APP_HOME")
+ CLASSPATH=$(cygpath --path --mixed "$CLASSPATH")
+ JAVACMD=$(cygpath --unix "$JAVACMD")
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=$(find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null)
+ SEP=""
+ for dir in $ROOTDIRSRAW; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ]; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@"; do
+ CHECK=$(echo "$arg" | egrep -c "$OURCYGPATTERN" -)
+ CHECK2=$(echo "$arg" | egrep -c "^-") ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ]; then ### Added a condition
+ eval $(echo args$i)=$(cygpath --path --ignore --mixed "$arg")
+ else
+ eval $(echo args$i)="\"$arg\""
+ fi
+ i=$(expr $i + 1)
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save() {
+ for i; do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/"; done
+ echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
--- /dev/null
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
--- /dev/null
+include ':entry'\r
--- /dev/null
+【补丁名称】patch_602_base_to_0521\r
+【基础版本】b602\r
+【修复问题】\r
+BT合入内容\r
+ 1、解决调用a2dp snk接口断开失败问题。\r
+ 2、解决手表与android手机通过WRTM连接后取消配对后能搜到手表BT但是连接不上的问题。\r
+ 3、客户需求:BT自动回连开关、BT回连接口。\r
+ 4、解决BLE数传触发流控丢包后A核无感知的问题。\r
+ 5、优化B核BLE GAP事件上报流程,解决断连事件上报慢的问题。\r
+ 6、解决BLE GATT断连处理中内存泄漏问题。\r
+ 7、解决BR回连失败问题。\r
+ 8、优化GATT服务发现、写请求等阻塞流程,从死等优化成60s超时。 \r
+ 9、配置MTU默认值为23,解决ios mut更新失败兼容性问题。\r
+ 10、客户需求合入:inquiry参数配置接口,可配置参数:设备类型、最大设备数量。\r
+ 11、新增维测日志。\r
+ 12、配合btc解决BLE数传和通话共存场景下通话卡顿问题,具体方案是:BT通话和BLE共存时,BT通话结束,连接参数恢复成原先的值。\r
+ 13、解决ble地址变化时BLE write响应上报不成功问题。\r
+ 14、增加默认广播数据名字长度限制。 \r
+ 15、解决BT回连过程中,BLE数传ipc error问题。\r
+ 16、解决MMI扫描内存不足问题\r
+ 17、解决BLE配置广播数据后未清理内存导致系统内存资源不足问题\r
+ 18、新增BLE ANCS/AMS Client功能\r
+PLT合入内容\r
+ 1、dfx维测增强,增加bt panic场景bt ram,bt trace,preserve信息。\r
+ 2、A核到B核IPC消息判断B核深睡flag。\r
+ 3、复位前保护,复位等待B核响应。\r
+ 4、QSPI指针越界\r
+ 5、解决屏幕概率显示黑线,增加gpu memretention配置 \r
+ 6、解决efuse写bit问题\r
+ 7、SEC sha hash运算错误\r
+ 8、适配2G NANDflash\r
+ 9、RTC定时问题\r
+ 10、解决log dump重新配置狗超时\r
+ 11、增加user target,默认开启离线日志\r
+ 12、离线日志增加流控功能\r
+ 13、优化windows编译路径长问题\r
+ 14、nv配置区分user和eng版本,解决nv升级未生效问题\r
+GUI合入内容\r
+ 1、支持蜂窝进入退出仿苹果动效\r
+ 2、支持CoverFlow的松手惯性动效\r
+ 3、支持Dump图片资源使用信息\r
+ 4、优化视频页面截图以及跳转进入动效方案\r
+ 5、解决图片资源加卸载过程中的内存异常问题\r
+ 6、解决SVG解析失败问题\r
+ 7、解决页面跳转崩溃问题\r
+ 8、解决跑马灯因精度导致的抖动问题\r
+ 9、解决触摸事件因不同页面控件地址相同导致的异常处理问题\r
+ 10、关闭MapBuffer节省图形占用内存\r
+ 11、解决弧形列表内存泄漏问题\r
+ 12、解决UICrossView 已对齐时松手不上报ScrollEnd回调\r
+ 13、预防通过UIView清除了其他焦点控件\r
+ 14、修复内存分配时内存没对齐问题\r
+ 15、修复问题:Text绘制应取交集,否则可能传超大区域导致VAU绘制报错\r
+ 16、修复corssview UIMenuItem截图失败\r
+AUDIO&MEDIA合入内容\r
+ 1、解决3A算法无法调参的问题\r
+ 2、解决HSO命令行无法dump数据的问题,删去多余的realpath操作\r
+ 3、支持使用seek的方式进行音视频的循环播放,提升性能\r
+ 4、解决从本地音乐切换到蓝牙音乐频率不改变的问题\r
+ 5、支持设置视频退出的同步和异步模式\r
+OHOS合入内容\r
+ 1、支持音频资源文件打包到JS应用的需求\r
+ 2、支持百度矢量地图,合入百度JSI接口的修改\r
+ 3、解决自定义地图控件场景ref count反转导致挂死问题\r
+GPU合入内容:\r
+ 1、解决视频播放花屏问题以及低功耗时访问GPU寄存器问题\r
+ 2、解决多线程场景下低功耗时GPU寄存器访问挂死问题\r
+NATIVE-JS sample合入内容\r
+ 1、增加表盘管理\r
+ 2、增加卡片管理\r
+ 3、增加列表蜂窝切换\r
+ 4、解决概率通话无声、耳机回连失败问题\r
+【修改影响】NA\r
+【使用方法】\r
+ 1、手动删除sdk_602版本以下文件:\r
+ code\sdk\application\wearable\nativeapp\nativeui\main\src\dial\parser\DialBinTypes.h\r
+ code\sdk\application\wearable\nativeapp\nativeui\main\src\dial\parser\DialBinParser.h\r
+ code\sdk\open_source\openharmony\third_party\jerryscript\r
+ 2、合入补丁内容到sdk_602版本目录\r
+ 3、离线表盘工具、js开发配套工具存放在tools,视频表盘制作变更具体参考tools\dial_converter_tool\视频表盘制作变更.txt\r
+ 4、nativeapp新增资源存放在res目录\r
+【自测情况】\r
+ 自验证范围:\r
+ 全功能冒烟\r
+ 自验证target:\r
+ Native-js、target3 rc版本\r
+【是否合入版本】根据测试结果确定
\ No newline at end of file