Ersa Wearable Platform
Embedded smartwatch firmware and application framework
Loading...
Searching...
No Matches
board.h
Go to the documentation of this file.
1#pragma once
2
3#include "ersa/common/types.h"
5#include "ersa/board/pins.h"
6#include "ersa/hal/display.h"
7#include "ersa/hal/rtc.h"
8#include "ersa/hal/battery.h"
9#include "ersa/hal/input.h"
10#include "ersa/hal/bluetooth.h"
12#include "ersa/hal/wifi.h"
14#include "ersa/hal/console.h"
18
19namespace ersa {
20namespace board {
21
22struct DeviceInfo {
24 const char* name;
26 const char* codename;
28 const char* manufacturer;
30 const char* platform;
31};
32
42class Board {
43public:
44 virtual ~Board() = default;
45
47 virtual Result<void> init() = 0;
49 virtual const char* getName() const = 0;
51 virtual const DeviceInfo& getDeviceInfo() const = 0;
53 virtual const BoardConfig& getConfig() const = 0;
55 virtual const Pins& getPins() const = 0;
56
59 return getConfig().capabilities;
60 }
61
63 virtual hal::IDisplay& getDisplay() = 0;
65 virtual hal::IRtc& getRtc() = 0;
67 virtual hal::IBattery& getBattery() = 0;
69 virtual hal::IInput& getInput() = 0;
75 virtual hal::IWifiRadio& getWifi() = 0;
79 virtual hal::IConsole& getConsole() = 0;
90
92 virtual uint32_t getUptimeMs() const = 0;
94 virtual void delayMs(uint32_t ms) = 0;
96 virtual void restart() = 0;
97
103 static Board& current();
108 static Board* currentOrNull();
109};
110
111} // namespace board
112} // namespace ersa
Definition types.h:52
Definition board.h:42
virtual ~Board()=default
virtual hal::IDisplay & getDisplay()=0
Return the generic display implementation selected by this BSP.
virtual hal::IPlatformDiagnostics & getDiagnostics()=0
Return reset, memory, and CPU readings through the platform diagnostics HAL.
static Board * currentOrNull()
Definition board.cpp:22
virtual void restart()=0
virtual hal::IInput & getInput()=0
Return the normalized input implementation selected by this BSP.
virtual uint32_t getUptimeMs() const =0
virtual const BoardConfig & getConfig() const =0
virtual hal::IHttpClient & getHttpClient()=0
Return platform HTTP transport for portable sync and provisioning services.
virtual hal::IBattery & getBattery()=0
Return the battery implementation selected by this BSP.
virtual hal::IDnsServer & getDnsServer()=0
Return the board's captive DNS responder adapter.
virtual hal::IConsole & getConsole()=0
Return the platform debug/control console selected by this BSP.
virtual Result< void > init()=0
virtual hal::IBluetooth & getBluetooth()=0
Return the BLE transport selected by this BSP.
virtual const char * getName() const =0
virtual hal::IPowerManagement & getPowerManagement()=0
Return the platform power-management implementation selected by this BSP.
const BoardCapabilities & capabilities() const
Return the capability set declared by this board.
Definition board.h:58
virtual const DeviceInfo & getDeviceInfo() const =0
virtual void delayMs(uint32_t ms)=0
virtual hal::IHttpServer & getHttpServer()=0
Return the board's local HTTP server adapter used by captive apps.
virtual hal::IRtc & getRtc()=0
Return the RTC implementation selected by this BSP.
virtual hal::ICompanionSource & getCompanionSource()=0
Return the companion-data provider selected by this BSP.
virtual hal::INtpTimeSource & getNtpTimeSource()=0
Return the platform NTP synchronization adapter.
virtual hal::IWifiRadio & getWifi()=0
Return the Wi-Fi radio selected by this BSP.
static Board & current()
Definition board.cpp:14
virtual const Pins & getPins() const =0
Definition pins.h:57
Definition battery.h:17
Definition bluetooth.h:20
Definition companion_source.h:49
Definition console.h:9
Definition display.h:40
Definition http_server.h:28
Definition network_client.h:11
Definition http_server.h:14
Definition input.h:16
Definition network_client.h:33
Definition platform_diagnostics.h:9
Definition power_management.h:27
Definition rtc.h:41
Definition wifi.h:21
Definition application.h:10
Definition board_config.h:9
Definition board_config.h:42
BoardCapabilities capabilities
Definition board_config.h:46
Definition board.h:22
const char * platform
Definition board.h:30
const char * name
Definition board.h:24
const char * manufacturer
Definition board.h:28
const char * codename
Definition board.h:26