summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoruvok2025-07-20 08:00:35 +0200
committeruvok2025-07-20 08:00:35 +0200
commitad7f1107328fdd69aa7b808c904df2b052807bbf (patch)
treef13ef2afefeff2afe5452a80e278bee9178ef25a /src
parent12f19e6ac90513038d71a1e9018e8b40f8abfc68 (diff)
Separate BLE stuff
Diffstat (limited to 'src')
-rw-r--r--src/ble.cpp38
-rw-r--r--src/main.cpp35
2 files changed, 48 insertions, 25 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);
+ }
+}
diff --git a/src/main.cpp b/src/main.cpp
index 75c4d8b..b5afe53 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,8 +1,8 @@
#include <Arduino.h>
-#include <NimBLEDevice.h>
-
#include "badge/config.h"
+
+#include "badge/ble.h"
#include "badge/display.h"
#include "badge/gpio.h"
@@ -13,29 +13,15 @@
#define BADGE_USE_WIFI 0
#endif
-NimBLEServer *server;
-
#define PRESS_TIME_DRAW 1000
#define PRESS_TIME_BLE_ADV 3000
#define SLEEP_TIME 10000
-NimBLEAdvertising *pAdvertising;
void setup()
{
Serial.begin(115200);
Serial.println("Yes, it works!");
-
- NimBLEDevice::init("Espadge");
- server = NimBLEDevice::createServer();
- NimBLEService *service = new NimBLEService("ca260000-b4bb-46b2-bd06-b7b7a61ea990");
- auto c = service->createCharacteristic("ca260001-b4bb-46b2-bd06-b7b7a61ea990");
- service->start();
- c->setValue("1");
-
- server->addService(service);
-
- pAdvertising = NimBLEDevice::getAdvertising();
- pAdvertising->setName("NimBLE");
+ de::uvok::badge::ble_init();
de::uvok::badge::display_init();
#if BADGE_USE_WIFI
@@ -58,17 +44,16 @@ void loop()
uint16_t pressDuration = de::uvok::badge::gpio_poll();
if (pressDuration < 64)
{
- if (pressDuration == NEXT_KEY) de::uvok::badge::display_next();
- if (pressDuration == PRV_KEY) de::uvok::badge::display_prev();
- if (pressDuration == OK_KEY) de::uvok::badge::display_refresh();
+ if (pressDuration == NEXT_KEY)
+ de::uvok::badge::display_next();
+ if (pressDuration == PRV_KEY)
+ de::uvok::badge::display_prev();
+ if (pressDuration == OK_KEY)
+ de::uvok::badge::display_refresh();
}
else if (pressDuration > PRESS_TIME_BLE_ADV)
{
- if (!pAdvertising->isAdvertising())
- {
- Serial.println("Long press detected. Starting advertising...");
- pAdvertising->start(10000);
- }
+ de::uvok::badge::ble_advertise();
}
else if (pressDuration > PRESS_TIME_DRAW)
{