revert to NimBLE-Arduino v1.4.0 (v2.2.3 caused button crash regression); restore v1.4.0 callback signatures, service->start(), and setScanResponse
This commit is contained in:
+1
-1
@@ -8,7 +8,7 @@ framework = arduino
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
adafruit/Adafruit TinyUSB [email protected]
|
adafruit/Adafruit TinyUSB [email protected]
|
||||||
fastled/FastLED@^3.9.0
|
fastled/FastLED@^3.9.0
|
||||||
h2zero/NimBLE-Arduino@^2.2.3
|
h2zero/NimBLE-Arduino@^1.4.0
|
||||||
|
|
||||||
build_unflags =
|
build_unflags =
|
||||||
-DARDUINO_USB_MODE=1
|
-DARDUINO_USB_MODE=1
|
||||||
|
|||||||
@@ -13,11 +13,11 @@ static NimBLECharacteristic* ble_char = nullptr;
|
|||||||
static bool device_connected = false;
|
static bool device_connected = false;
|
||||||
|
|
||||||
class ServerCallbacks : public NimBLEServerCallbacks {
|
class ServerCallbacks : public NimBLEServerCallbacks {
|
||||||
void onConnect(NimBLEServer* server, NimBLEConnInfo&) override {
|
void onConnect(NimBLEServer* server) override {
|
||||||
device_connected = true;
|
device_connected = true;
|
||||||
Serial.println("[BLE] Client connected");
|
Serial.println("[BLE] Client connected");
|
||||||
}
|
}
|
||||||
void onDisconnect(NimBLEServer* server, NimBLEConnInfo&, int) override {
|
void onDisconnect(NimBLEServer* server) override {
|
||||||
device_connected = false;
|
device_connected = false;
|
||||||
Serial.println("[BLE] Client disconnected, restarting advertising");
|
Serial.println("[BLE] Client disconnected, restarting advertising");
|
||||||
NimBLEDevice::startAdvertising();
|
NimBLEDevice::startAdvertising();
|
||||||
@@ -25,7 +25,7 @@ class ServerCallbacks : public NimBLEServerCallbacks {
|
|||||||
};
|
};
|
||||||
|
|
||||||
class CharCallbacks : public NimBLECharacteristicCallbacks {
|
class CharCallbacks : public NimBLECharacteristicCallbacks {
|
||||||
void onWrite(NimBLECharacteristic* characteristic, NimBLEConnInfo&) override {
|
void onWrite(NimBLECharacteristic* characteristic) override {
|
||||||
std::string value = characteristic->getValue();
|
std::string value = characteristic->getValue();
|
||||||
if (value.length() > 0 && instance) {
|
if (value.length() > 0 && instance) {
|
||||||
instance->on_receive((const uint8_t*)value.data(), value.length());
|
instance->on_receive((const uint8_t*)value.data(), value.length());
|
||||||
@@ -83,13 +83,15 @@ bool BleMidiTransport::begin() {
|
|||||||
ble_char->setCallbacks(new CharCallbacks());
|
ble_char->setCallbacks(new CharCallbacks());
|
||||||
Serial.println("[BLE] Callbacks set");
|
Serial.println("[BLE] Callbacks set");
|
||||||
|
|
||||||
Serial.println("[BLE] Service created (auto-starts with server)");
|
Serial.println("[BLE] Starting service...");
|
||||||
|
ble_service->start();
|
||||||
|
Serial.println("[BLE] Service started");
|
||||||
|
|
||||||
Serial.println("[BLE] Starting advertising...");
|
Serial.println("[BLE] Starting advertising...");
|
||||||
NimBLEAdvertising* adv = NimBLEDevice::getAdvertising();
|
NimBLEAdvertising* adv = NimBLEDevice::getAdvertising();
|
||||||
adv->setName("JOC Midi");
|
adv->setName("JOC Midi");
|
||||||
adv->addServiceUUID(BLE_MIDI_SERVICE_UUID);
|
adv->addServiceUUID(BLE_MIDI_SERVICE_UUID);
|
||||||
adv->enableScanResponse(true);
|
adv->setScanResponse(true);
|
||||||
adv->start();
|
adv->start();
|
||||||
|
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user