Ersa Wearable Platform
Embedded smartwatch firmware and application framework
Loading...
Searching...
No Matches
bluetooth.h
Go to the documentation of this file.
1#pragma once
2
3#include "ersa/common/types.h"
4#include <stdint.h>
5
6namespace ersa {
7namespace hal {
8
10using BleConnectionCallback = void (*)(bool connected, void* userData);
11
21public:
22 virtual ~IBluetooth() = default;
23
25 virtual Result<void> init() = 0;
27 virtual void startAdvertising() = 0;
29 virtual void stopAdvertising() = 0;
30 // Suspend the radio stack for memory intensive maintenance such as OTA.
31 // The link is dropped. Implementations without a suspendable radio may
32 // keep their existing behavior and return true.
34 virtual bool suspendForMaintenance() { stopAdvertising(); return true; }
38 virtual bool isConnected() const = 0;
40 virtual bool isAdvertising() const { return false; }
46 virtual uint32_t nextWakeDelayMs(uint32_t nowMs) const { (void)nowMs; return UINT32_MAX; }
48 virtual void tick() {}
50 virtual const char* getDeviceName() const = 0;
52 virtual const char* getDeviceAddress() const = 0;
53
59 virtual void setConnectionCallback(BleConnectionCallback cb, void* userData) = 0;
60};
61
62} // namespace hal
63} // namespace ersa
Definition types.h:52
Definition bluetooth.h:20
virtual bool isAdvertising() const
Definition bluetooth.h:40
virtual Result< void > init()=0
virtual bool isConnected() const =0
virtual const char * getDeviceAddress() const =0
virtual const char * getDeviceName() const =0
Return the local BLE device name.
virtual void resumeAfterMaintenance()
Resume advertising after maintenance completes.
Definition bluetooth.h:36
virtual uint32_t nextWakeDelayMs(uint32_t nowMs) const
Definition bluetooth.h:46
virtual ~IBluetooth()=default
virtual void setConnectionCallback(BleConnectionCallback cb, void *userData)=0
virtual void stopAdvertising()=0
virtual void startAdvertising()=0
virtual bool suspendForMaintenance()
Release radio resources before memory-intensive maintenance.
Definition bluetooth.h:34
virtual void tick()
Definition bluetooth.h:48
void(*)(bool connected, void *userData) BleConnectionCallback
Definition bluetooth.h:10
Definition application.h:10