summaryrefslogtreecommitdiff
path: root/src/ble.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ble.cpp')
-rw-r--r--src/ble.cpp38
1 files changed, 38 insertions, 0 deletions
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 <NimBLEDevice.h>
+
+#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);
+ }
+}