8000 Addition of missing arduino debugs #210 · tsaitsai/esp32-snippets@19398e6 · GitHub
[go: up one dir, main page]

Skip to content

Commit 19398e6

Browse files
committed
Addition of missing arduino debugs nkolban#210
1 parent dcdd635 commit 19398e6

File tree

6 files changed

+120
-46
lines changed

6 files changed

+120
-46
lines changed
99.5 KB
Loading

cpp_utils/ArduinoBLE.md

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -32,25 +32,10 @@ From October 2017 onwards, a build of the BLE libraries is supplied with the Ard
3232
4. Extract the `ESP32_BLE.zip` file there
3333

3434
## Switching on debugging
35-
The BLE support contains extensive internal diagnostics which can be switched on by editing the file called `sdkconfig.h` and finding the lines which read:
35+
The BLE support contains extensive internal diagnostics which can be switched on through the "Tools > Core Debug Level" setting:
3636

37-
```
38-
#define CONFIG_LOG_DEFAULT_LEVEL 1
39-
```
37+
![](../../Documentation/images/arduino_debug.png)
4038

41-
Change this to:
42-
43-
```
44-
#define CONFIG_LOG_DEFAULT_LEVEL 5
45-
```
46-
47-
and rebuild/deploy your project.
48-
49-
This file can be found in your Arduino IDE installation directories at:
50-
51-
```
52-
<ArduinoIDE>/hardware/espressif/esp32/tools/sdk/include/config
53-
```
5439

5540
## Decoding an exception stack trace
5641
While using the BLE C++ classes there is always the unfortunate possibility that something will go wrong and your application crash. Fortunately, this results in some debug information being logged to the console. This is known as a *stack trace*. Included in the stack trace are a sequence of hexadecimal numbers known as the *back trace* which are the list of addresses of functions that were executed just before the crash was detected. If we could decode these we would have a lot of great information that could be used to aid in the resolution. Fortunately there is a fantastic project that makes decoding this information very easy indeed.

cpp_utils/BLEAdvertisedDevice.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ void BLEAdvertisedDevice::parseAdvertisement(uint8_t* payload) {
209209
payload++; // Skip to type
210210
sizeConsumed += 1 + length; // increase the size consumed.
211211

212-
if (length != 0) { // A length of 0 indicate that we have reached the end.
212+
if (length != 0) { // A length of 0 indicates that we have reached the end.
213213
ad_type = *payload;
214214
payload++;
215215
length--;
@@ -253,7 +253,7 @@ void BLEAdvertisedDevice::parseAdvertisement(uint8_t* payload) {
253253
case ESP_BLE_AD_TYPE_32SRV_CMPL:
254254
case ESP_BLE_AD_TYPE_32SRV_PART: { // Adv Data Type: 0x04
255255
for (int var = 0; var < length/4; ++var) {
256-
setServiceUUID(BLEUUID(*reinterpret_cast<uint16_t*>(payload+var*4)));
256+
setServiceUUID(BLEUUID(*reinterpret_cast<uint32_t*>(payload+var*4)));
257257
}
258258
break;
259259
} // ESP_BLE_AD_TYPE_32SRV_PART
@@ -362,13 +362,15 @@ void BLEAdvertisedDevice::setScan(BLEScan* pScan) {
362362
m_pScan = pScan;
363363
} // setScan
364364

365+
365366
/**
366367
* @brief Set the Service UUID for this device.
367368
* @param [in] serviceUUID The discovered serviceUUID
368369
*/
369370
void BLEAdvertisedDevice::setServiceUUID(const char* serviceUUID) {
370371
re A3E2 turn setServiceUUID(BLEUUID(serviceUUID));
371-
} // setRSSI
372+
} // setServiceUUID
373+
372374

373375
/**
374376
* @brief Set the Service UUID for this device.
@@ -378,7 +380,7 @@ void BLEAdvertisedDevice::setServiceUUID(BLEUUID serviceUUID) {
378380
m_serviceUUIDs.push_back(serviceUUID);
379381
m_haveServiceUUID = true;
380382
ESP_LOGD(LOG_TAG, "- addServiceUUID(): serviceUUID: %s", serviceUUID.toString().c_str());
381-
} // setRSSI
383+
} // setServiceUUID
382384

383385

384386
/**

cpp_utils/BLEService.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@
2222
#include "BLEUtils.h"
2323
#include "GeneralUtils.h"
2424

25+
#ifdef ARDUINO_ARCH_ESP32
26+
#include "esp32-hal-log.h"
27+
#endif
28+
2529
#define NULL_HANDLE (0xffff)
2630

2731
static const char* LOG_TAG = "BLEService"; // Tag for logging.

cpp_utils/BLEUUID.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
#include "BLEUUID.h"
1515
static const char* LOG_TAG = "BLEUUID";
1616

17+
#ifdef ARDUINO_ARCH_ESP32
18+
#include "esp32-hal-log.h"
19+
#endif
1720

1821
/**
1922
* @brief Copy memory from source to target but in reverse order.

cpp_utils/BLEUtils.cpp

Lines changed: 105 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@
2424
#include <sstream>
2525
#include <iomanip>
2626

27+
#ifdef ARDUINO_ARCH_ESP32
28+
#include "esp32-hal-log.h"
29+
#endif
30+
2731
static const char* LOG_TAG = "BLEUtils"; // Tag for logging.
2832

2933
/*
@@ -675,56 +679,81 @@ std::string BLEUtils::adFlagsToString(uint8_t adFlags) {
675679
*/
676680
const char* BLEUtils::advTypeToString(uint8_t advType) {
677681
switch(advType) {
678-
case ESP_BLE_AD_TYPE_FLAG:
682+
case ESP_BLE_AD_TYPE_FLAG: // 0x01
679683
return "ESP_BLE_AD_TYPE_FLAG";
680-
case ESP_BLE_AD_TYPE_16SRV_PART:
684+
685+
case ESP_BLE_AD_TYPE_16SRV_PART: // 0x02
681686
return "ESP_BLE_AD_TYPE_16SRV_PART";
682-
case ESP_BLE_AD_TYPE_16SRV_CMPL:
687+
688+
case ESP_BLE_AD_TYPE_16SRV_CMPL: // 0x03
683689
return "ESP_BLE_AD_TYPE_16SRV_CMPL";
684-
case ESP_BLE_AD_TYPE_32SRV_PART:
690+
691+
case ESP_BLE_AD_TYPE_32SRV_PART: // 0x04
685692
return "ESP_BLE_AD_TYPE_32SRV_PART";
686-
case ESP_BLE_AD_TYPE_32SRV_CMPL:
693+
694+
case ESP_BLE_AD_TYPE_32SRV_CMPL: // 0x05
687695
return "ESP_BLE_AD_TYPE_32SRV_CMPL";
688-
case ESP_BLE_AD_TYPE_128SRV_PART:
696+
697+
case ESP_BLE_AD_TYPE_128SRV_PART: // 0x06
689698
return "ESP_BLE_AD_TYPE_128SRV_PART";
690-
case ESP_BLE_AD_TYPE_128SRV_CMPL:
699+
700+
case ESP_BLE_AD_TYPE_128SRV_CMPL: // 0x07
691701
return "ESP_BLE_AD_TYPE_128SRV_CMPL";
692-
case ESP_BLE_AD_TYPE_NAME_SHORT:
702+
703+
case ESP_BLE_AD_TYPE_NAME_SHORT: // 0x08
693704
return "ESP_BLE_AD_TYPE_NAME_SHORT";
694-
case ESP_BLE_AD_TYPE_NAME_CMPL:
705+
706+
case ESP_BLE_AD_TYPE_NAME_CMPL: // 0x09
695707
return "ESP_BLE_AD_TYPE_NAME_CMPL";
696-
case ESP_BLE_AD_TYPE_TX_PWR:
708+
709+
case ESP_BLE_AD_TYPE_TX_PWR: // 0x0a
697710
return "ESP_BLE_AD_TYPE_TX_PWR";
698-
case ESP_BLE_AD_TYPE_DEV_CLASS:
711+
712+
case ESP_BLE_AD_TYPE_DEV_CLASS: // 0x0b
699713
return "ESP_BLE_AD_TYPE_DEV_CLASS";
700-
case ESP_BLE_AD_TYPE_SM_TK:
714+
715+
case ESP_BLE_AD_TYPE_SM_TK: // 0x10
701716
return "ESP_BLE_AD_TYPE_SM_TK";
702-
case ESP_BLE_AD_TYPE_SM_OOB_FLAG:
717+
718+
case ESP_BLE_AD_TYPE_SM_OOB_FLAG: // 0x11
703719
return "ESP_BLE_AD_TYPE_SM_OOB_FLAG";
704-
case ESP_BLE_AD_TYPE_INT_RANGE:
720+
721+
case ESP_BLE_AD_TYPE_INT_RANGE: // 0x12
705722
return "ESP_BLE_AD_TYPE_INT_RANGE";
706-
case ESP_BLE_AD_TYPE_SOL_SRV_UUID:
723+
724+
case ESP_BLE_AD_TYPE_SOL_SRV_UUID: // 0x14
707725
return "ESP_BLE_AD_TYPE_SOL_SRV_UUID";
708-
case ESP_BLE_AD_TYPE_128SOL_SRV_UUID:
726+
727+
case ESP_BLE_AD_TYPE_128SOL_SRV_UUID: // 0x15
709728
return "ESP_BLE_AD_TYPE_128SOL_SRV_UUID";
710-
case ESP_BLE_AD_TYPE_SERVICE_DATA:
729+
730+
case ESP_BLE_AD_TYPE_SERVICE_DATA: // 0x16
711731
return "ESP_BLE_AD_TYPE_SERVICE_DATA";
712-
case ESP_BLE_AD_TYPE_PUBLIC_TARGET:
732+
733+
case ESP_BLE_AD_TYPE_PUBLIC_TARGET: // 0x17
713734
return "ESP_BLE_AD_TYPE_PUBLIC_TARGET";
714-
case ESP_BLE_AD_TYPE_RANDOM_TARGET:
715-
return "ESP_BLE_Amap1D_TYPE_RANDOM_TARGET";
716-
case ESP_BLE_AD_TYPE_APPEARANCE:
735+
736+
case ESP_BLE_AD_TYPE_RANDOM_TARGET: // 0x18
737+
return "ESP_BLE_AD_TYPE_RANDOM_TARGET";
738+
739+
case ESP_BLE_AD_TYPE_APPEARANCE: // 0x19
717740
return "ESP_BLE_AD_TYPE_APPEARANCE";
718-
case ESP_BLE_AD_TYPE_ADV_INT:
741+
742+
case ESP_BLE_AD_TYPE_ADV_INT: // 0x1a
719743
return "ESP_BLE_AD_TYPE_ADV_INT";
744+
720745
case ESP_BLE_AD_TYPE_32SOL_SRV_UUID:
721746
return "ESP_BLE_AD_TYPE_32SOL_SRV_UUID";
722-
case ESP_BLE_AD_TYPE_32SERVICE_DATA:
747+
748+
case ESP_BLE_AD_TYPE_32SERVICE_DATA: // 0x20
723749
return "ESP_BLE_AD_TYPE_32SERVICE_DATA";
724-
case ESP_BLE_AD_TYPE_128SERVICE_DATA:
750+
751+
case ESP_BLE_AD_TYPE_128SERVICE_DATA: // 0x21
725752
return "ESP_BLE_AD_TYPE_128SERVICE_DATA";
726-
case ESP_BLE_AD_MANUFACTURER_SPECIFIC_TYPE:
753+
754+
case ESP_BLE_AD_MANUFACTURER_SPECIFIC_TYPE: // 0xff
727755
return "ESP_BLE_AD_MANUFACTURER_SPECIFIC_TYPE";
756+
728757
default:
729758
ESP_LOGD(LOG_TAG, " adv data type: 0x%x", advType);
730759
return "";
@@ -935,52 +964,76 @@ std::string BLEUtils::gattServerEventTypeToString(esp_gatts_cb_event_t eventType
935964
switch(eventType) {
936965
case ESP_GATTS_REG_EVT:
937966
return "ESP_GATTS_REG_EVT";
967+
938968
case ESP_GATTS_READ_EVT:
939969
return "ESP_GATTS_READ_EVT";
970+
940971
case ESP_GATTS_WRITE_EVT:
941972
return "ESP_GATTS_WRITE_EVT";
973+
942974
case ESP_GATTS_EXEC_WRITE_EVT:
943975
return "ESP_GATTS_EXEC_WRITE_EVT";
976+
944977
case ESP_GATTS_MTU_EVT:
945978
return "ESP_GATTS_MTU_EVT";
979+
946980
case ESP_GATTS_CONF_EVT:
947981
return "ESP_GATTS_CONF_EVT";
982+
948983
case ESP_GATTS_UNREG_EVT:
949984
return "ESP_GATTS_UNREG_EVT";
985+
950986
case ESP_GATTS_CREATE_EVT:
951987
return "ESP_GATTS_CREATE_EVT";
988+
952989
case ESP_GATTS_ADD_INCL_SRVC_EVT:
953990
return "ESP_GATTS_ADD_INCL_SRVC_EVT";
991+
954992
case ESP_GATTS_ADD_CHAR_EVT:
955993
return "ESP_GATTS_ADD_CHAR_EVT";
994+
956995
case ESP_GATTS_ADD_CHAR_DESCR_EVT:
957996
return "ESP_GATTS_ADD_CHAR_DESCR_EVT";
997+
958998
case ESP_GATTS_DELETE_EVT:
959999
return "ESP_GATTS_DELETE_EVT";
1000+
9601001
case ESP_GATTS_START_EVT:
9611002
return "ESP_GATTS_START_EVT";
1003+
9621004
case ESP_GATTS_STOP_EVT:
9631005
return "ESP_GATTS_STOP_EVT";
1006+
9641007
case ESP_GATTS_CONNECT_EVT:
9651008
return "ESP_GATTS_CONNECT_EVT";
1009+
9661010
case ESP_GATTS_DISCONNECT_EVT:
9671011
return "ESP_GATTS_DISCONNECT_EVT";
1012+
9681013
case ESP_GATTS_OPEN_EVT:
9691014
return "ESP_GATTS_OPEN_EVT";
1015+
9701016
case ESP_GATTS_CANCEL_OPEN_EVT:
9711017
return "ESP_GATTS_CANCEL_OPEN_EVT";
1018+
9721019
case ESP_GATTS_CLOSE_EVT:
9731020
return "ESP_GATTS_CLOSE_EVT";
1021+
9741022
case ESP_GATTS_LISTEN_EVT:
9751023
return "ESP_GATTS_LISTEN_EVT";
1024+
9761025
case ESP_GATTS_CONGEST_EVT:
9771026
return "ESP_GATTS_CONGEST_EVT";
1027+
9781028
case ESP_GATTS_RESPONSE_EVT:
9791029
return "ESP_GATTS_RESPONSE_EVT";
1030+
9801031
case ESP_GATTS_CREAT_ATTR_TAB_EVT:
9811032
return "ESP_GATTS_CREAT_ATTR_TAB_EVT";
1033+
9821034
case ESP_GATTS_SET_ATTR_VAL_EVT:
9831035
return "ESP_GATTS_SET_ATTR_VAL_EVT";
1036+
9841037
}
9851038
return "Unknown";
9861039
} // gattServerEventTypeToString
@@ -1788,59 +1841,86 @@ const char* BLEUtils::gapEventToString(uint32_t eventType) {
17881841
switch(eventType) {
17891842
case ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT:
17901843
return "ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT";
1844+
17911845
case ESP_GAP_BLE_ADV_DATA_RAW_SET_COMPLETE_EVT:
17921846
return "ESP_GAP_BLE_ADV_DATA_RAW_SET_COMPLETE_EVT";
1847+
17931848
case ESP_GAP_BLE_ADV_START_COMPLETE_EVT:
17941849
return "ESP_GAP_BLE_ADV_START_COMPLETE_EVT";
1850+
17951851
case ESP_GAP_BLE_ADV_STOP_COMPLETE_EVT: /*!< When stop adv complete, the event comes */
17961852
return "ESP_GAP_BLE_ADV_STOP_COMPLETE_EVT";
1853+
17971854
case ESP_GAP_BLE_AUTH_CMPL_EVT: /* Authentication complete indication. */
17981855
return "ESP_GAP_BLE_AUTH_CMPL_EVT";
1856+
17991857
case ESP_GAP_BLE_CLEAR_BOND_DEV_COMPLETE_EVT:
18001858
return "ESP_GAP_BLE_CLEAR_BOND_DEV_COMPLETE_EVT";
1859+
18011860
case ESP_GAP_BLE_GET_BOND_DEV_COMPLETE_EVT:
18021861
return "ESP_GAP_BLE_GET_BOND_DEV_COMPLETE_EVT";
1862+
18031863
case ESP_GAP_BLE_KEY_EVT: /* BLE key event for peer device keys */
18041864
return "ESP_GAP_BLE_KEY_EVT";
1865+
18051866
case ESP_GAP_BLE_LOCAL_IR_EVT: /* BLE local IR event */
18061867
return "ESP_GAP_BLE_LOCAL_IR_EVT";
1868+
18071869
case ESP_GAP_BLE_LOCAL_ER_EVT: /* BLE local ER event */
18081870
return "ESP_GAP_BLE_LOCAL_ER_EVT";
1871+
18091872
case ESP_GAP_BLE_NC_REQ_EVT: /* Numeric Comparison request event */
18101873
return "ESP_GAP_BLE_NC_REQ_EVT";
1874+
18111875
case ESP_GAP_BLE_OOB_REQ_EVT: /* OOB request event */
18121876
return "ESP_GAP_BLE_OOB_REQ_EVT";
1877+
18131878
case ESP_GAP_BLE_PASSKEY_NOTIF_EVT: /* passkey notification event */
18141879
return "ESP_GAP_BLE_PASSKEY_NOTIF_EVT";
1880+
18151881
case ESP_GAP_BLE_PASSKEY_REQ_EVT: /* passkey request event */
18161882
return "ESP_GAP_BLE_PASSKEY_REQ_EVT";
1883+
18171884
case ESP_GAP_BLE_READ_RSSI_COMPLETE_EVT:
18181885
return "ESP_GAP_BLE_READ_RSSI_COMPLETE_EVT";
1886+
18191887
case ESP_GAP_BLE_REMOVE_BOND_DEV_COMPLETE_EVT:
18201888
return "ESP_GAP_BLE_REMOVE_BOND_DEV_COMPLETE_EVT";
1889+
18211890
case ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT:
18221891
return "ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT";
1892+
18231893
case ESP_GAP_BLE_SCAN_RESULT_EVT:
18241894
return "ESP_GAP_BLE_SCAN_RESULT_EVT";
1895+
18251896
case ESP_GAP_BLE_SCAN_RSP_DATA_RAW_SET_COMPLETE_EVT:
18261897
return "ESP_GAP_BLE_SCAN_RSP_DATA_RAW_SET_COMPLETE_EVT";
1898+
18271899
case ESP_GAP_BLE_SCAN_RSP_DATA_SET_COMPLETE_EVT:
18281900
return "ESP_GAP_BLE_SCAN_RSP_DATA_SET_COMPLETE_EVT";
1901+
18291902
case ESP_GAP_BLE_SCAN_START_COMPLETE_EVT:
18301903
return "ESP_GAP_BLE_SCAN_START_COMPLETE_EVT";
1904+
18311905
case ESP_GAP_BLE_SCAN_STOP_COMPLETE_EVT:
18321906
return "ESP_GAP_BLE_SCAN_STOP_COMPLETE_EVT";
1907+
18331908
case ESP_GAP_BLE_SEC_REQ_EVT: /* BLE security request */
18341909
return "ESP_GAP_BLE_SEC_REQ_EVT";
1910+
18351911
case ESP_GAP_BLE_SET_LOCAL_PRIVACY_COMPLETE_EVT:
18361912
return "ESP_GAP_BLE_SET_LOCAL_PRIVACY_COMPLETE_EVT";
1913+
18371914
case ESP_GAP_BLE_SET_PKT_LENGTH_COMPLETE_EVT:
18381915
return "ESP_GAP_BLE_SET_PKT_LENGTH_COMPLETE_EVT";
1916+
18391917
case ESP_GAP_BLE_SET_STATIC_RAND_ADDR_EVT:
18401918
return "ESP_GAP_BLE_SET_STATIC_RAND_ADDR_EVT";
1919+
18411920
case ESP_GAP_BLE_UPDATE_CONN_PARAMS_EVT:
18421921
return "ESP_GAP_BLE_UPDATE_CONN_PARAMS_EVT";
18431922

1923+
18441924
default:
18451925
ESP_LOGD(LOG_TAG, "gapEventToString: Unknown event type %d 0x%.2x", eventType, eventType);
18461926
return "Unknown event type";

0 commit comments

Comments
 (0)
0