From ad7f1107328fdd69aa7b808c904df2b052807bbf Mon Sep 17 00:00:00 2001 From: uvok Date: Sun, 20 Jul 2025 08:00:35 +0200 Subject: Separate BLE stuff --- src/ble.cpp | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/ble.cpp (limited to 'src/ble.cpp') diff --git a/src/ble.cpp b/src/ble.cpp new file mode 100644 index 0000000..4f98679 --- /dev/null +++ b/src/ble.cpp @@ -0,0 +1,38 @@ +#include "badge/ble.h" + +#include + +#include "badge/config.h" + +static NimBLEServer *server; +static NimBLEAdvertising *pAdvertising; + +void de::uvok::badge::ble_init(void) +{ + + NimBLEDevice::init("Espadge"); + server = NimBLEDevice::createServer(); + NimBLEService *service = new NimBLEService("ca260000-b4bb-46b2-bd06-b7b7a61ea990"); + // read/write current + auto c = service->createCharacteristic("ca260001-b4bb-46b2-bd06-b7b7a61ea990", + NIMBLE_PROPERTY::READ | NIMBLE_PROPERTY::WRITE || NIMBLE_PROPERTY::NOTIFY); + + // get pictures + service->createCharacteristic("ca260002-b4bb-46b2-bd06-b7b7a61ea990", NIMBLE_PROPERTY::READ); + + service->start(); + + server->addService(service); + + pAdvertising = NimBLEDevice::getAdvertising(); + pAdvertising->setName("NimBLE"); +} + +void de::uvok::badge::ble_advertise(void) +{ + if (!pAdvertising->isAdvertising()) + { + Serial.println("Long press detected. Starting advertising..."); + pAdvertising->start(10000); + } +} -- cgit v1.2.3