h2zero / NimBLE-Arduino

A fork of the NimBLE library structured for compilation with Arduino, for use with ESP32, nRF5x.
https://h2zero.github.io/NimBLE-Arduino/
Apache License 2.0
667 stars 138 forks source link

suppressing some serial output from the scan whitelist example #640

Closed linxcow closed 3 weeks ago

linxcow commented 4 months ago

How can i suppress following output to my serial monitor ? 20:50:32.829 -> Service Data: 20:50:32.829 -> UUID: 0xfe2c, Data:

I just want to see the advertised lines.: 20:50:25.525 -> Advertised Device: Name: < snipped >

      class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
        void onResult(BLEAdvertisedDevice* advertisedDevice) {
          if (!advertisedDevice->getName().empty()) {
             Serial.printf("Advertised Device: %s \n", advertisedDevice->toString().c_str());
          }
        }
      };

I've noticed only a few specific devices adds those extra lines , maybe something to do with the toString().c_str() conversion

      20:51:21.565 -> Advertised Device: Name: LE-SRS-XB13, Address: 70:0b:1f:d6:xx:xx, txPower: -10
      20:51:21.565 -> Service Data:
      20:51:21.565 -> UUID: 0xfe2c, Data:  
h2zero commented 4 months ago

You could just call getName and print the value. The toString method dumps more data.

linxcow commented 4 months ago

Yes , but this was not my question. I want to see all data on 1 line when name is not empty , some devices print on several lines.

h2zero commented 4 months ago

You'll need to implement your own version of toString to accomplish this.