summaryrefslogtreecommitdiff
path: root/src/ble.cpp
blob: 4f986791a6aa90e5138e3cc5fd1d81440791d9a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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);
    }
}