20class AudioBLEServer :
public AudioBLEStream,
21 public BLECharacteristicCallbacks,
22 public BLEServerCallbacks {
30 BLEDevice::init(name);
32 p_server = BLEDevice::createServer();
38 BLEDevice::startAdvertising();
48 size_t readBytes(uint8_t *data,
size_t len)
override {
60 size_t write(
const uint8_t *data,
size_t dataSize)
override {
61 LOGD(
"AudioBLEStream::write: %d", dataSize);
118 int peer_max_transfer_size =
151 BLECharacteristic::PROPERTY_READ |
152 BLECharacteristic::PROPERTY_NOTIFY |
153 BLECharacteristic::PROPERTY_INDICATE);
176 BLEDevice::startAdvertising();
180 void onWrite(BLECharacteristic *pCharacteristic)
override {
184 auto value = pCharacteristic->getValue();
185 if (pCharacteristic->getUUID().toString() ==
BLE_INFO_UUID) {
193 void onRead(BLECharacteristic *pCharacteristic)
override {
196 auto uuid = pCharacteristic->getUUID().toString();
203 LOGD(
"%s: len: %d, buffer: %d", uuid.c_str(), len,
207 pCharacteristic->setValue(tmp, len);
232 size_t read_size = dataSize;
238 if (dataSize < read_size) {
239 LOGE(
"read size too small: %d - it must be >= %d", dataSize, read_size);
243 LOGE(
"missing data in buffer");
#define TRACEI()
Definition AudioLoggerIDF.h:32
#define TRACED()
Definition AudioLoggerIDF.h:31
#define LOGI(...)
Definition AudioLoggerIDF.h:28
#define LOGD(...)
Definition AudioLoggerIDF.h:27
#define LOGE(...)
Definition AudioLoggerIDF.h:30
#define BLE_MTU
Definition ConstantsArduino.h:4
#define TX_COUNT
Definition ConstantsArduino.h:9
#define RX_BUFFER_SIZE
Definition ConstantsArduino.h:6
#define TX_BUFFER_SIZE
Definition ConstantsArduino.h:8
#define RX_COUNT
Definition ConstantsArduino.h:7
#define BLE_MTU_OVERHEAD
Definition ConstantsArduino.h:5
#define DEFAULT_BUFFER_SIZE
Definition avr.h:20