增加蓝牙连接的日志跟踪
authorcaisking <caiyqm@qq.com>
Fri, 22 May 2026 09:36:09 +0000 (17:36 +0800)
committercaisking <caiyqm@qq.com>
Fri, 22 May 2026 09:36:09 +0000 (17:36 +0800)
code/sdk/application/wearable/fd272/nativeapp/nativeui/bluetooth/src/BluetoothModel.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/bluetooth/src/BluetoothWrapper.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/classicbluetooth/src/ClassicBlueToothPresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/phoneservice/src/PhoneService.cpp
code/sdk/zhihui/services/ble_service/bleservice/bleEvent.c
code/sdk/zhihui/services/ble_service/bleservice/bleService.c
code/sdk/zhihui/utils/custom_cmd_service.c
code/sdk/zhihui/utils/custom_utils.c

index e662144..566709e 100644 (file)
@@ -1197,6 +1197,10 @@ void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state,
 {\r
     #ifdef SUPPORT_BLE_SERVICE\r
 \r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+        "[连接时序][系统BR] ACL状态变化 state=%d reason=0x%x bt开关=%d ble连=%d 设备类=0x%x",\r
+        state, reason, uapi_dev_runtime_get_bt_powerstat(), uapi_dev_runtime_get_ble_connect_stat(),\r
+        gap_get_device_class(bdAddr));\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt GapAclStateChangedCallback state %d, reason %x succ or err", state, reason);\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: %02x%02x%02x%02x%02x%02x",\r
         bdAddr->addr[5], bdAddr->addr[4], bdAddr->addr[3], /* mac下标 0 1 2 3 4 5 */\r
@@ -1204,18 +1208,24 @@ void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state,
 \r
     if(uapi_dev_runtime_get_atuoota_status())\r
     {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "[连接时序][系统BR] 忽略ACL事件 原因=OTA进行中");\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt GapAclStateChangedCallback state %d, reason %x succ or err", state, reason);\r
         return;\r
     }\r
 \r
     if(!uapi_dev_runtime_get_bt_powerstat())\r
     {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "[连接时序][系统BR] 主动断开ACL 原因=蓝牙总开关关闭 调用方=GapAclStateChangedCallback");\r
         gap_disconnect_remote_device(bdAddr);\r
     }\r
 \r
     if ((gap_get_device_class(bdAddr) & 0x200) != 0) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GapAclStateChangedCallback: Mobile Phone Device");\r
         if (state == GAP_ACL_STATE_DISCONNECTED) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                "[连接时序][系统BR] 手机ACL断开 动作=恢复BR可连接扫描(不影响BLE广播)");\r
             /* 通知msg_center,ble状态仍用bt状态,此处不区分 */\r
             // SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
             SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0);\r
@@ -1230,6 +1240,8 @@ void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state,
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GAP_SCAN_MODE_CONNECTABLE");\r
 \r
         } else if (state == GAP_ACL_STATE_CONNECTED) {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                "[连接时序][系统BR] 手机ACL已连接 动作=关闭BR扫描(不影响BLE广播) 注意:系统已连≠App已连");\r
             // SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0);\r
             SendMsgToUIService(BT_CONNECTED_TO_UI, 0, nullptr, 0);\r
 \r
@@ -2130,7 +2142,8 @@ int uapi_set_acl_connect_A2DP()
 \r
 int uapi_reconnect_()\r
 {\r
-    \r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+        "[连接时序][BR回连] 异步请求 调用方=uapi_reconnect_ 将投递BR_RECONNECT");\r
     br_cmd=BR_RECONNECT;\r
     do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BR_CONNECT,&br_cmd,sizeof(br_cmd));\r
      return 0;\r
@@ -2141,7 +2154,12 @@ int uapi_reconnect(void)
 {\r
     bd_addr_t bdaddr={0};\r
     uapi_get_br_address(&bdaddr);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+        "[连接时序][BR回连] 同步调用 调用方=uapi_reconnect MAC=%02x:%02x:%02x:%02x:%02x:%02x",\r
+        bdaddr.addr[5], bdaddr.addr[4], bdaddr.addr[3], bdaddr.addr[2], bdaddr.addr[1], bdaddr.addr[0]);\r
     int ret=gap_reconnect_media_device(&bdaddr);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+        "[连接时序][BR回连] gap_reconnect_media_device ret=0x%x", ret);\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"ret(int): %X\n", ret);\r
 \r
     return 0;\r
index 2274cba..1522f29 100644 (file)
@@ -323,6 +323,7 @@ void wrapper_gatts_service_start(void)
         g_svr_handle_list.clear();\r
         // printf("wrapper_gatts_service_start g_uuid_list empty,start adv \n");\r
          /**开始ble广播*/\r
+        printf("[连接时序][蓝牙服务] GATT服务就绪 调用方=wrapper_gatts_service_start 即将开启BLE广播\n");\r
         custom_ble_service_start();\r
     }\r
     // printf("wrapper_gatts_service_start end\n");\r
index bba80e1..6082b6b 100644 (file)
@@ -114,6 +114,8 @@ namespace OHOS
         {
         case UICheckBox::SELECTED:
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BlueTooth Capability Is Enabled");
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+                "[连接时序][蓝牙服务] UI开启经典蓝牙 调用方=ClassicBlueToothPresenter");
             start_custom_ble_service(); // 主动开启蓝牙
             // 开启完增加回连
 
@@ -123,6 +125,8 @@ namespace OHOS
                 if (cm_get_HFP_switch() && cm_get_A2DP_switch() && false == bt_is_acl_connected(&bdaddr) && !(bdaddr.addr[0] == 0 && bdaddr.addr[1] == 0 && bdaddr.addr[2] == 0 && bdaddr.addr[3] == 0 && bdaddr.addr[4] == 0 && bdaddr.addr[5] == 0))
                 {
                     int ret = gap_reconnect_media_device(&bdaddr);
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+                        "[连接时序][BR回连] 触发方=UI开经典蓝牙 动作=gap_reconnect_media_device ret=0x%x", ret);
                     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " gap_reconnect_media_device ret = %u %02x %02x %02x ", ret, bdaddr.addr[5], bdaddr.addr[4], bdaddr.addr[3]);
                 }
                 else
@@ -146,6 +150,8 @@ namespace OHOS
         case UICheckBox::UNSELECTED:
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BlueTooth Capability Is Disabled");
 
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+                "[连接时序][蓝牙服务] UI关闭经典蓝牙 调用方=ClassicBlueToothPresenter");
             stop_custom_ble_service();
 
             ConfigModel::GetInstance()->SetClassicBlueToothState(false);
index 3f19185..3ecb775 100644 (file)
@@ -2300,12 +2300,18 @@ int uapi_hfp_connect_(void)
 {
      if( get_BT_is_init()==0)
     {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+            "[连接时序][BR回连] 跳过 调用方=uapi_hfp_connect_ 原因=蓝牙未初始化");
         return 0;
     }
 
     int ret;
     bd_addr_t bdaddr={0};
     OHOS:: uapi_get_br_address(&bdaddr);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+        "[连接时序][BR回连] 开始 调用方=uapi_hfp_connect_ acl已连=%d MAC=%02x:%02x:%02x:%02x:%02x:%02x",
+        bt_is_acl_connected(&bdaddr),
+        bdaddr.addr[5], bdaddr.addr[4], bdaddr.addr[3], bdaddr.addr[2], bdaddr.addr[1], bdaddr.addr[0]);
 
     if(false==bt_is_acl_connected(&bdaddr) &&
     !( bdaddr.addr[0] == 0 && bdaddr.addr[1] == 0 && bdaddr.addr[2] == 0
@@ -2313,10 +2319,14 @@ int uapi_hfp_connect_(void)
     )
     {
         ret=gap_reconnect_media_device(&bdaddr);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+            "[连接时序][BR回连] 分支=ACL未连接 动作=gap_reconnect_media_device ret=0x%x", ret);
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[gap_connect_remote_device] ret:%X", ret);
     }
     else
     {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+            "[连接时序][BR回连] 分支=ACL已连接 动作=hfp_hf_connect");
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[bt_is_acl_connected is true");
         ret = hfp_hf_connect(&bdaddr);
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[uapi_hfp_connect] ret:%X", ret);
index b56dcd0..3238564 100644 (file)
@@ -904,6 +904,9 @@ uint8_t *savephonename=NULL;
 uint8_t first_bond = 0;//是否第一次绑定 第一次绑定保存配对mac地址
 void comfirmPaire(uint8_t flag)
 {
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+        "[连接时序][App绑定] 确认配对 调用方=comfirmPaire flag=%u(1同意/0拒绝) conn_id=%u ios安卓=%u",
+        flag, g_ble_conn_id, get_ble_pair());
     uint8_t value[19];
     memset(value,0,19);
     uint32_t tmp = 1;
@@ -929,6 +932,8 @@ void comfirmPaire(uint8_t flag)
             get_phone_addr(&addr,g_ble_conn_id);
 
             errcode_t code = gap_ble_pair_remote_device(&addr);
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+                "[连接时序][App绑定] 发起BLE配对 调用方=comfirmPaire ret=0x%x", code);
             if(code!=ERRCODE_SUCC)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"gap_ble_pair_remote_device fail %X\r\n",code);
@@ -937,6 +942,8 @@ void comfirmPaire(uint8_t flag)
 
         
     }else{
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+            "[连接时序][App绑定] 用户拒绝配对 将断开并清除配对信息");
         first_bond = 0;
         errcode_t ret = 0;
          bd_addr_t addr={0};
@@ -1338,6 +1345,9 @@ bool get_ctkd_flag(void)
 }
 void sendBindInfor(uint8_t *data)
 {
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+        "[连接时序][App绑定] 收到73_02_10手机信息 conn_id=%u(主连接句柄)",
+        g_ble_conn_id);
     uint8_t value[19];
     memset(value,0,19);
     uint32_t tmp = 1;
@@ -1367,10 +1377,16 @@ void sendBindInfor(uint8_t *data)
     
     GetwatchSaveMac(&save_mac,&MacType);//获取手表设备本地保存的mac地址和mac地址类型 
     getPhoneMac(data,&copare_mac);
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+        "[连接时序][App绑定] MAC比对 本地=%02x:%02x:%02x:%02x:%02x:%02x App上报=%02x:%02x:%02x:%02x:%02x:%02x",
+        save_mac[5], save_mac[4], save_mac[3], save_mac[2], save_mac[1], save_mac[0],
+        copare_mac[5], copare_mac[4], copare_mac[3], copare_mac[2], copare_mac[1], copare_mac[0]);
 
     if(save_mac[0] == 0 && save_mac[1] == 0 && save_mac[2] == 0 && save_mac[3] == 0 && save_mac[4] == 0 && save_mac[5] == 0)//只要手表本地存储没有mac地址就走连接流程重新绑定
     {
         bond = 0x01;//手表未和任何手机绑定过
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+            "[连接时序][App绑定] 判定=首次绑定(bond=0x01) 将弹绑定界面");
         //未配过使能一键双联
 
         //清除一次配对
@@ -1498,12 +1514,16 @@ void sendBindInfor(uint8_t *data)
                 }
      
                 bond = 0x02;//手表与该手机绑定过
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+                    "[连接时序][App绑定] 判定=同机重连(bond=0x02) 将发起BLE配对");
                 value[17] = bond;//
                 value[18] = Calculate_CRC(value,18);
                 sendBleData(value,19);
                 return;
             }else{
                 bond = 0x03;//手表与其他手机绑定过
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+                    "[连接时序][App绑定] 判定=已绑其他手机(bond=0x03) App MAC与本地不一致");
             }
         }
     }
@@ -1580,11 +1600,15 @@ void sendParieSuccess(uint8_t flag,bd_addr_t *addr)//发送配对成功指令to
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sendParieSuccess:0x%x-0x%x-0x%x-0x%x-0x%x-0x%x\r\n",addr->addr[0],addr->addr[1],addr->addr[2],addr->addr[3],addr->addr[4],addr->addr[5]);
     if(g_ble_conn_id==0)
     {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+            "[连接时序][App绑定] 发送72_05_10失败 原因=g_ble_conn_id为0(BLE已断或未识别为App连接)");
         return;
 
     }
     if(first_bond == 1 && phoneDataFlag == 1)//第一次连接绑定
     {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+            "[连接时序][App绑定] 发送72_05_10成功 首次绑定完成 conn_id=%u", g_ble_conn_id);
         set_ble_falg(1);
         uint8_t value[25];
         uint8_t length = 0;
@@ -3301,11 +3325,14 @@ uint8_t parse_jsonCheck_weather(uint8_t *buf,uint8_t *check)//json 格式解析
     uapi_get_br_address(&bdaddr);
     if( uapi_dev_runtime_get_bt_powerstat() && (cm_get_HFP_switch()||cm_get_A2DP_switch()))
     {
-      
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+            "[连接时序][BR回连] 触发方=天气同步完成 尝试回连BR");
         if(cm_get_A2DP_switch() && cm_get_A2DP_switch() && false==bt_is_acl_connected(&bdaddr) && !(bdaddr.addr[0]==0 && bdaddr.addr[1]==0 && bdaddr.addr[2]==0 && bdaddr.addr[3]==0 
               && bdaddr.addr[4]==0 && bdaddr.addr[5]==0))
         {
-            gap_reconnect_media_device(&bdaddr);
+            int br_ret = gap_reconnect_media_device(&bdaddr);
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+                "[连接时序][BR回连] 天气同步 动作=gap_reconnect_media_device ret=0x%x", br_ret);
         }
         else if(cm_get_A2DP_switch())
         {
index dbbb969..0b603b7 100644 (file)
@@ -256,13 +256,24 @@ static bool g_custom_ble_init_flag = false;
 errcode_t svr_ble_adv_stop(void)\r
 {\r
     ble_adv_falg = 0;\r
-    return gap_ble_stop_adv(BLE_ADV_ID);\r
+    errcode_t ret = gap_ble_stop_adv(BLE_ADV_ID);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+        "[连接时序][BLE广播] 停止广播 调用方=svr_ble_adv_stop AdverFlag=%d ble已连=%d conn_id=%u ret=0x%x",\r
+        AdverFlag, get_ble_connect(), g_ble_conn_id, ret);\r
+    return ret;\r
 }\r
 void svr_ble_adv_start(void)\r
 {\r
     ble_adv_falg = 1;\r
-    if(AdverFlag==true)\r
-    gap_ble_start_adv(BLE_ADV_ID);\r
+    if (AdverFlag == true) {\r
+        errcode_t ret = gap_ble_start_adv(BLE_ADV_ID);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "[连接时序][BLE广播] 启动广播 调用方=svr_ble_adv_start AdverFlag=1 ble已连=%d conn_id=%u ret=0x%x",\r
+            get_ble_connect(), g_ble_conn_id, ret);\r
+    } else {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "[连接时序][BLE广播] 跳过启动 调用方=svr_ble_adv_start 原因=AdverFlag为0(蓝牙服务未开启)");\r
+    }\r
 }\r
 \r
 \r
@@ -636,6 +647,9 @@ void svr_ble_adv_start_param(void)
     svr_ble_adv_data_set(adv_id);//开始广播和扫描数据\r
     ble_adv_falg = 1;\r
     ret = gap_ble_start_adv(adv_id);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+        "[连接时序][BLE广播] 配置并启动 调用方=svr_ble_adv_start_param AdverFlag=%d 产测=%d ret=0x%x",\r
+        AdverFlag, uapi_dev_runtime_get_factory_test_status_flag(), ret);\r
     if (ret) {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "svr_ble_adv_start bt gap_ble_start_adv1  ret = 0x%x", ret);\r
     }\r
@@ -645,7 +659,20 @@ void svr_ble_adv_start_param(void)
 void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_ble_conn_state_t conn_state,\r
     gap_ble_pair_state_t pair_state, gap_ble_disc_reason_t disc_reason)\r
 {\r
-    \r
+    const char *addr_str = (addr != NULL) ? "有效" : "空";\r
+    uint8_t mac_tail[4] = {0};\r
+    if (addr != NULL) {\r
+        mac_tail[0] = addr->addr[3];\r
+        mac_tail[1] = addr->addr[2];\r
+        mac_tail[2] = addr->addr[1];\r
+        mac_tail[3] = addr->addr[0];\r
+    }\r
+\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+        "[连接时序][BLE链路] 状态变化 来源=协议栈回调 conn_id=%u 状态=%d 配对=%d 断开原因=0x%x "\r
+        "当前主conn=%u 任一BLE连=%d AdverFlag=%d 地址=%s %02x%02x%02x%02x",\r
+        conn_id, conn_state, pair_state, disc_reason, g_ble_conn_id, get_ble_connect(), AdverFlag,\r
+        addr_str, mac_tail[0], mac_tail[1], mac_tail[2], mac_tail[3]);\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
      "svr_ble_connstate_change_cb gap_ble_conn_state_t conn_state:%d  pair_state:%d disc_reason:%d\r\n",\r
      conn_state,pair_state,disc_reason);\r
@@ -662,6 +689,9 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
         \r
         if(conn_id==g_ble_conn_id || !get_ble_connect())\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                "[连接时序][BLE链路] 断开处理 决策=重启广播 原因=主连接断开或无任何BLE连接 "\r
+                "conn_id=%u g_ble_conn_id=%u", conn_id, g_ble_conn_id);\r
             free_ble_data(); \r
                 \r
             ble_disconnect_ok();\r
@@ -680,9 +710,18 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
         }\r
         else if (ble_is_Alipay_bind()==true)\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                "[连接时序][BLE链路] 断开处理 决策=重启广播 原因=支付宝绑定场景 conn_id=%u", conn_id);\r
             //如果当前页面处于支付宝界面,则重新开广播\r
             svr_ble_adv_start();\r
         }\r
+        else\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                "[连接时序][BLE链路] 断开处理 决策=不重启广播 原因=非主连接且仍有其他BLE连接 "\r
+                "conn_id=%u g_ble_conn_id=%u 支付宝conn=%u",\r
+                conn_id, g_ble_conn_id, g_ble_Alipay_conn_id);\r
+        }\r
 \r
         if(g_ble_Alipay_conn_id==conn_id)\r
         {\r
@@ -696,11 +735,17 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
 \r
         uapi_save_runtime_log(RUNTIME_LOG_BLE_CONNECT);\r
 \r
-\r
         if( g_ble_conn_id !=0 && conn_id!=g_ble_conn_id)\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                "[连接时序][BLE链路] 新连接 类型=支付宝/副连接 conn_id=%u 当前主conn=%u", conn_id, g_ble_conn_id);\r
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"支付宝连接");\r
         }\r
+        else\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                "[连接时序][BLE链路] 新连接 类型=App主连接 conn_id=%u 将停止广播", conn_id);\r
+        }\r
 \r
       \r
         int ret =svr_ble_adv_stop();\r
@@ -719,6 +764,8 @@ void svr_ble_connstate_change_cb(unsigned short conn_id, bd_addr_t *addr, gap_bl
     }\r
 \r
     uapi_dev_runtime_set_ble_connect_stat(Bleconnect);\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+        "[连接时序][BLE链路] 运行时状态 ble_connect_stat=%d", Bleconnect);\r
 }\r
 \r
 static uint16_t need_update_connect_param=BLE_CONNECT_INTERVAL_HIGH;\r
@@ -824,6 +871,10 @@ void uapi_ble_connect_param_update(uint16_t data)
 void svr_pair_result_cbt_cb(uint16_t conn_id, const bd_addr_t *addr, errcode_t status)\r
 {\r
     devpair_state = 1;//代表配对成功了\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+        "[连接时序][BLE配对] 配对结果回调 conn_id=%u status=0x%x ctkd=%d bt开关=%d A2DP=%d HFP=%d BR已配=%d",\r
+        conn_id, status, get_ctkd_flag(), uapi_dev_runtime_get_bt_powerstat(),\r
+        cm_get_A2DP_switch(), cm_get_HFP_switch(), get_br_is_pair());\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, \r
     "svr_pair_result_cbt_cb!!! addr 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x status:0x%x\r\n",addr->addr[0],addr->addr[1],\r
     addr->addr[2],addr->addr[3],addr->addr[4],addr->addr[5],status);\r
@@ -840,13 +891,19 @@ void svr_pair_result_cbt_cb(uint16_t conn_id, const bd_addr_t *addr, errcode_t s
                 if(cm_get_A2DP_switch() && cm_get_A2DP_switch())\r
                 {\r
                     int ret=gap_reconnect_media_device(addr);\r
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                        "[连接时序][BR回连] 触发方=BLE配对成功+CTKD 动作=gap_reconnect_media_device(对端) ret=0x%x", ret);\r
                 }\r
                 else if(cm_get_A2DP_switch())\r
                 {\r
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                        "[连接时序][BR回连] 触发方=BLE配对成功+CTKD 动作=uapi_a2dp_snk_connect");\r
                     uapi_a2dp_snk_connect();\r
                 }\r
                 else if(cm_get_HFP_switch())\r
                 {\r
+                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                        "[连接时序][BR回连] 触发方=BLE配对成功+CTKD 动作=uapi_hfp_connect");\r
                     uapi_hfp_connect();\r
                 }\r
 \r
@@ -863,22 +920,38 @@ void svr_pair_result_cbt_cb(uint16_t conn_id, const bd_addr_t *addr, errcode_t s
                         if(cm_get_A2DP_switch() || cm_get_HFP_switch())\r
                         {\r
                             int ret=gap_reconnect_media_device(&bdaddr);\r
-                            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gap_reconnect_media_device!!! %X\r\n",ret);\r
+                            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                                "[连接时序][BR回连] 触发方=BLE配对成功+已存BR地址 动作=gap_reconnect_media_device acl未连 ret=0x%x", ret);\r
                         }\r
                         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gap_reconnect_media_device!!! \r\n");    \r
                     }\r
                     else\r
                     {\r
                         if(cm_get_A2DP_switch() || cm_get_HFP_switch())\r
-                        uapi_a2dp_snk_connect();\r
+                        {\r
+                            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                                "[连接时序][BR回连] 触发方=BLE配对成功+已存BR地址 动作=uapi_a2dp_snk_connect acl已连");\r
+                            uapi_a2dp_snk_connect();\r
+                        }\r
                         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "uapi_a2dp_snk_connect!!! \r\n");\r
                     }\r
                 }\r
             } \r
         }\r
+        else\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                "[连接时序][BR回连] 跳过 原因=CTKD未开或蓝牙总开关关闭 ctkd=%d bt开关=%d",\r
+                get_ctkd_flag(), uapi_dev_runtime_get_bt_powerstat());\r
+        }\r
         hand_watch_first_time_Paired();\r
 \r
     }\r
+    else\r
+    {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "[连接时序][BLE配对] 失败 后续不会触发BR回连 status=0x%x", status);\r
+    }\r
 }\r
  \r
 //添加ota特征值\r
@@ -1895,6 +1968,8 @@ static void svr_ble_bt_gatts_req_read_cb(uint8_t server_id, uint16_t conn_id, ga
     if(read_cb_para->handle==data2ae2Cmd && get_ble_connect() && status==0 )\r
     {\r
         g_ble_conn_id=conn_id;\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "[连接时序][App识别] 标记主连接 来源=App读2AE4 conn_id=%u", conn_id);\r
 \r
     static uint8_t battery_point_val[20] = {0};\r
     // 获取电池电压值\r
@@ -1985,7 +2060,9 @@ static void svr_ble_bt_gatts_req_write_cb(uint8_t server_id, uint16_t conn_id, g
     }\r
     if(Is_App_ble_handle(write_cb_para->handle))\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP," %d %d\r\n",conn_id,write_cb_para->handle);\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "[连接时序][App识别] 标记主连接 来源=App写特征 handle=0x%x conn_id=%u",\r
+            write_cb_para->handle, conn_id);\r
         g_ble_conn_id=conn_id;\r
         uapi_save_runtime_log(RUNTIME_LOG_BLE_APP_CMD);\r
     }\r
@@ -2023,6 +2100,9 @@ static void svr_ble_mtu_exchange(uint8_t server_id, uint16_t conn_id, uint16_t m
 /*******************  gap_ble  ************************************/\r
 void svr_gap_ble_auth_complete_callback(uint16_t conn_id, const bd_addr_t *addr, errcode_t status,ble_auth_info_evt_t* evt)\r
 {\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+        "[连接时序][BLE配对] 鉴权完成 来源=协议栈 conn_id=%u status=0x%x g_ble_conn_id=%u",\r
+        conn_id, status, g_ble_conn_id);\r
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "sendParieSuccess");\r
 \r
 \r
@@ -2201,6 +2281,9 @@ void svr_ble_bluetooth_init(void)
 //关闭蓝牙\r
 void custom_ble_service_stop(void)\r
 {\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+        "[连接时序][蓝牙服务] 关闭 调用方=custom_ble_service_stop 原AdverFlag=%d ble连=%d conn_id=%u",\r
+        AdverFlag, get_ble_connect(), g_ble_conn_id);\r
     AdverFlag = false;\r
     errcode_t ret = 0;\r
     bd_addr_t addr={0};\r
@@ -2208,6 +2291,8 @@ void custom_ble_service_stop(void)
 \r
     if(Bleconnect == GAP_BLE_STATE_CONNECTED){//设备连接需要断开\r
         ret = gap_ble_disconnect_remote_device((const bd_addr_t *)&addr);//与固定的mac设置地址进行断开连接\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+            "[连接时序][蓝牙服务] 主动断开BLE 调用方=custom_ble_service_stop ret=0x%x", ret);\r
     }\r
 \r
     // 一键双连去使能\r
@@ -2232,7 +2317,8 @@ void uapi_ble_disconnect_device()
 void custom_ble_service_start(void)\r
 {\r
     AdverFlag = true;\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "custom_ble_service_start ret");\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+        "[连接时序][蓝牙服务] 开启 调用方=custom_ble_service_start 将启动BLE广播");\r
 \r
     svr_ble_adv_start_param();\r
 }\r
@@ -2456,8 +2542,14 @@ void Check_ble_adv_status(void)
         if(get_ble_adv_status()==0)\r
         {\r
             get_ble_Check_adv_status_falg++;\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                "[连接时序][BLE广播] 巡检 广播未开 累计=%u AdverFlag=%d",\r
+                get_ble_Check_adv_status_falg, AdverFlag);\r
             if(AdverFlag && get_ble_Check_adv_status_falg>=3)\r
             {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                    "[连接时序][BLE广播] 巡检恢复广播 调用方=Check_ble_adv_status 产测=%d",\r
+                    uapi_dev_runtime_get_factory_test_status_flag());\r
                 if(uapi_dev_runtime_get_factory_test_status_flag())\r
                 svr_ble_adv_factory_test_start_param();\r
                 else\r
index e693b85..73d14cb 100644 (file)
@@ -364,6 +364,8 @@ static void custom_cmd_service_check_task(void const *arg)
                     uapi_a2dp_snk_disconnect_();
                     break;
                 case BR_RECONNECT:
+
+                    PRINT("[连接时序][BR回连] 命令处理 调用方=custom_cmd_service BR_RECONNECT");
                     uapi_reconnect_();
                     break;
                 case BR_HFP_CONNECT_FAIL:
index c0edb4e..31cffff 100644 (file)
@@ -598,6 +598,8 @@ bool start_custom_ble_service(void)
 #ifdef CUSTOM_ZHIHUI
 
         PRINT("start custom protocol classic bt ble service !\r\n");
+        PRINT(
+            "[连接时序][蓝牙服务] 启动 调用方=start_custom_ble_service");
         bluetooth_enable_all();
 #endif
 #endif 
@@ -615,6 +617,7 @@ bool stop_custom_ble_service(void)
 {
 #ifdef SUPPORT_BLE_SERVICE
     PRINT("stop custom protocol classic bt ble service !\r\n");
+    PRINT("[连接时序][蓝牙服务] 停止 调用方=stop_custom_ble_service");
 // #ifdef CUSTOM_ZHIHUI
     bluetooth_close_all();
 // #endif
@@ -3134,6 +3137,8 @@ void uapi_exit_power_saving_mode(void)
     //根据配置自动回连
     if(uapi_dev_runtime_get_bt_powerstat() &&  (cm_get_HFP_switch() || cm_get_A2DP_switch()))
     {
+        PRINT(
+            "[连接时序][BR回连] 触发方=退出省电模式 动作=uapi_hfp_connect");
         uapi_hfp_connect();
     }
     //打开cat1
@@ -4698,7 +4703,7 @@ void factorytest_send_big_data(ble_data_type type,char *data, uint16_t datalen)
     buf = malloc(17 + datalen + 1); 
     memset_s(buf,250,0,17 + datalen + 1);
     if (buf == NULL && datalen!=0) {
-        //   WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"内存分配失败\n");
+        //   PRINT("内存分配失败\n");
         return;
     }
     if(type.Packet_id>=2)
@@ -4769,7 +4774,7 @@ bool factorytest_upload_mic_file(void)
             // send_big_data(type_,(char *)data,read_size);
             factorytest_send_big_data(type_,(char *)data,read_size);
 #endif
-            // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"Read_tar_file_buf_send_Data size %d\r\n",read_size);
+            // PRINT("Read_tar_file_buf_send_Data size %d\r\n",read_size);
         }
     
         //send_big_data(1,data,read_size,file_size,pack_id,pack,id,5);