@@ -736,6 +736,11 @@ static void on_ble_evt(ble_evt_t * p_ble_evt)
736736 uint32_t err_code ;
737737 ble_gatts_rw_authorize_reply_params_t auth_reply ;
738738
739+ #ifdef CFG_DEBUG
740+ extern const char * dbg_ble_event_str (uint16_t evt_id );
741+ ADALOG ("BLE" , dbg_ble_event_str (p_ble_evt -> header .evt_id ));
742+ #endif
743+
739744 switch (p_ble_evt -> header .evt_id )
740745 {
741746 case BLE_GAP_EVT_CONNECTED :
@@ -896,6 +901,7 @@ static void on_ble_evt(ble_evt_t * p_ble_evt)
896901 case BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST :
897902 {
898903 uint16_t att_mtu = MIN (p_ble_evt -> evt .gatts_evt .params .exchange_mtu_request .client_rx_mtu , BLEGATT_ATT_MTU_MAX );
904+ ADALOG ("GAP" , "ATT MTU is changed to %d" , att_mtu );
899905 APP_ERROR_CHECK ( sd_ble_gatts_exchange_mtu_reply (m_conn_handle , att_mtu ) );
900906 }
901907 break ;
@@ -1088,3 +1094,109 @@ uint32_t dfu_transport_ble_close()
10881094
10891095 return NRF_SUCCESS ;
10901096}
1097+
1098+ #ifdef CFG_DEBUG
1099+
1100+ typedef struct
1101+ {
1102+ uint32_t key ;
1103+ void const * data ;
1104+ }lookup_entry_t ;
1105+
1106+ typedef struct
1107+ {
1108+ uint16_t count ;
1109+ lookup_entry_t const * items ;
1110+ } lookup_table_t ;
1111+
1112+ void const * lookup_find (lookup_table_t const * p_table , uint32_t key )
1113+ {
1114+ for (uint16_t i = 0 ; i < p_table -> count ; i ++ )
1115+ {
1116+ if (p_table -> items [i ].key == key ) return p_table -> items [i ].data ;
1117+ }
1118+
1119+ return NULL ;
1120+ }
1121+
1122+ /*------------------------------------------------------------------*/
1123+ /* BLE Event String
1124+ *------------------------------------------------------------------*/
1125+ static lookup_entry_t const _strevt_lookup [] =
1126+ {
1127+ // BLE common: 0x01
1128+ { .key = BLE_EVT_USER_MEM_REQUEST , .data = "BLE_EVT_USER_MEM_REQUEST" },
1129+ { .key = BLE_EVT_USER_MEM_RELEASE , .data = "BLE_EVT_USER_MEM_RELEASE" },
1130+
1131+ // BLE Gap: 0x10
1132+ { .key = BLE_GAP_EVT_CONNECTED , .data = "BLE_GAP_EVT_CONNECTED" },
1133+ { .key = BLE_GAP_EVT_DISCONNECTED , .data = "BLE_GAP_EVT_DISCONNECTED" },
1134+ { .key = BLE_GAP_EVT_CONN_PARAM_UPDATE , .data = "BLE_GAP_EVT_CONN_PARAM_UPDATE" },
1135+ { .key = BLE_GAP_EVT_SEC_PARAMS_REQUEST , .data = "BLE_GAP_EVT_SEC_PARAMS_REQUEST" },
1136+ { .key = BLE_GAP_EVT_SEC_INFO_REQUEST , .data = "BLE_GAP_EVT_SEC_INFO_REQUEST" },
1137+ { .key = BLE_GAP_EVT_PASSKEY_DISPLAY , .data = "BLE_GAP_EVT_PASSKEY_DISPLAY" },
1138+ { .key = BLE_GAP_EVT_KEY_PRESSED , .data = "BLE_GAP_EVT_KEY_PRESSED" },
1139+ { .key = BLE_GAP_EVT_AUTH_KEY_REQUEST , .data = "BLE_GAP_EVT_AUTH_KEY_REQUEST" },
1140+ { .key = BLE_GAP_EVT_LESC_DHKEY_REQUEST , .data = "BLE_GAP_EVT_LESC_DHKEY_REQUEST" },
1141+ { .key = BLE_GAP_EVT_AUTH_STATUS , .data = "BLE_GAP_EVT_AUTH_STATUS" },
1142+ { .key = BLE_GAP_EVT_CONN_SEC_UPDATE , .data = "BLE_GAP_EVT_CONN_SEC_UPDATE" },
1143+ { .key = BLE_GAP_EVT_TIMEOUT , .data = "BLE_GAP_EVT_TIMEOUT" },
1144+ { .key = BLE_GAP_EVT_RSSI_CHANGED , .data = "BLE_GAP_EVT_RSSI_CHANGED" },
1145+ { .key = BLE_GAP_EVT_ADV_REPORT , .data = "BLE_GAP_EVT_ADV_REPORT" },
1146+ { .key = BLE_GAP_EVT_SEC_REQUEST , .data = "BLE_GAP_EVT_SEC_REQUEST" },
1147+ { .key = BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST , .data = "BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST" },
1148+ { .key = BLE_GAP_EVT_SCAN_REQ_REPORT , .data = "BLE_GAP_EVT_SCAN_REQ_REPORT" },
1149+ { .key = BLE_GAP_EVT_PHY_UPDATE_REQUEST , .data = "BLE_GAP_EVT_PHY_UPDATE_REQUEST" },
1150+ { .key = BLE_GAP_EVT_PHY_UPDATE , .data = "BLE_GAP_EVT_PHY_UPDATE" },
1151+ { .key = BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST , .data = "BLE_GAP_EVT_DATA_LENGTH_UPDATE_REQUEST" },
1152+ { .key = BLE_GAP_EVT_DATA_LENGTH_UPDATE , .data = "BLE_GAP_EVT_DATA_LENGTH_UPDATE" },
1153+ { .key = BLE_GAP_EVT_QOS_CHANNEL_SURVEY_REPORT , .data = "BLE_GAP_EVT_QOS_CHANNEL_SURVEY_REPORT" },
1154+ { .key = BLE_GAP_EVT_ADV_SET_TERMINATED , .data = "BLE_GAP_EVT_ADV_SET_TERMINATED" },
1155+
1156+ // BLE Gattc: 0x30
1157+ { .key = BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP , .data = "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP" },
1158+ { .key = BLE_GATTC_EVT_REL_DISC_RSP , .data = "BLE_GATTC_EVT_REL_DISC_RSP" },
1159+ { .key = BLE_GATTC_EVT_CHAR_DISC_RSP , .data = "BLE_GATTC_EVT_CHAR_DISC_RSP" },
1160+ { .key = BLE_GATTC_EVT_DESC_DISC_RSP , .data = "BLE_GATTC_EVT_DESC_DISC_RSP" },
1161+ { .key = BLE_GATTC_EVT_ATTR_INFO_DISC_RSP , .data = "BLE_GATTC_EVT_ATTR_INFO_DISC_RSP" },
1162+ { .key = BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP , .data = "BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP" },
1163+ { .key = BLE_GATTC_EVT_READ_RSP , .data = "BLE_GATTC_EVT_READ_RSP" },
1164+ { .key = BLE_GATTC_EVT_CHAR_VALS_READ_RSP , .data = "BLE_GATTC_EVT_CHAR_VALS_READ_RSP" },
1165+ { .key = BLE_GATTC_EVT_WRITE_RSP , .data = "BLE_GATTC_EVT_WRITE_RSP" },
1166+ { .key = BLE_GATTC_EVT_HVX , .data = "BLE_GATTC_EVT_HVX" },
1167+ { .key = BLE_GATTC_EVT_EXCHANGE_MTU_RSP , .data = "BLE_GATTC_EVT_EXCHANGE_MTU_RSP" },
1168+ { .key = BLE_GATTC_EVT_TIMEOUT , .data = "BLE_GATTC_EVT_TIMEOUT" },
1169+ { .key = BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE , .data = "BLE_GATTC_EVT_WRITE_CMD_TX_COMPLETE" },
1170+
1171+ // BLE Gatts: 0x50
1172+ { .key = BLE_GATTS_EVT_WRITE , .data = "BLE_GATTS_EVT_WRITE" },
1173+ { .key = BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST , .data = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST" },
1174+ { .key = BLE_GATTS_EVT_SYS_ATTR_MISSING , .data = "BLE_GATTS_EVT_SYS_ATTR_MISSING" },
1175+ { .key = BLE_GATTS_EVT_HVC , .data = "BLE_GATTS_EVT_HVC" },
1176+ { .key = BLE_GATTS_EVT_SC_CONFIRM , .data = "BLE_GATTS_EVT_SC_CONFIRM" },
1177+ { .key = BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST , .data = "BLE_GATTS_EVT_EXCHANGE_MTU_REQUEST" },
1178+ { .key = BLE_GATTS_EVT_TIMEOUT , .data = "BLE_GATTS_EVT_TIMEOUT" },
1179+ { .key = BLE_GATTS_EVT_HVN_TX_COMPLETE , .data = "BLE_GATTS_EVT_HVN_TX_COMPLETE" },
1180+ };
1181+
1182+ lookup_table_t const _strevt_table =
1183+ {
1184+ .count = arrcount (_strevt_lookup ),
1185+ .items = _strevt_lookup
1186+ };
1187+
1188+ const char * dbg_ble_event_str (uint16_t evt_id )
1189+ {
1190+ const char * str = (const char * ) lookup_find (& _strevt_table , evt_id );
1191+ static char unknown_str [7 ] = {0 };
1192+
1193+ if ( str == NULL )
1194+ {
1195+ sprintf (unknown_str , "0x%04X" , evt_id );
1196+ str = unknown_str ;
1197+ }
1198+
1199+ return str ;
1200+ }
1201+
1202+ #endif
0 commit comments