8#ifndef PHYPHOX_BLE_TRANSPORT_H
9#define PHYPHOX_BLE_TRANSPORT_H
13#include "../core/Config.h"
68 virtual bool notify(
CharId id,
const uint8_t* data, uint16_t len) = 0;
78 virtual void requestMtu(uint16_t payload) { (void)payload; }
83 uint16_t latency, uint16_t timeout) {
84 (void)minInterval; (void)maxInterval; (void)latency; (void)timeout;
94 virtual const char*
name()
const = 0;
Callbacks from the transport into the core (implemented by Server).
Definition Transport.h:40
virtual void pump()=0
Drive the transfer: send what is due.
virtual void onConnect()=0
virtual void onSubscribe(CharId id, bool enabled)=0
The central enabled/disabled notifications on id (only CH_EXPERIMENT and CH_DATA are notifiable).
virtual void onDisconnect()=0
virtual ~TransportListener()
Definition Transport.h:42
virtual void onWrite(CharId id, const uint8_t *data, uint16_t len)=0
The central wrote len bytes to id.
virtual void onNotifyStatus(CharId id, bool accepted)=0
Asynchronous verdict on the last notify() for stacks that report it later.
Definition Transport.h:59
virtual bool asyncNotifyStatus() const
True if the verdict on notify() arrives later through onNotifyStatus() (ESP32); false if notify()'s r...
Definition Transport.h:71
virtual bool connected() const =0
virtual bool drivesTransfer() const
True if the transport calls listener.pump() from a task of its own, so the core must not also pump fr...
Definition Transport.h:92
virtual const char * name() const =0
"ArduinoBLE", "ESP32", "NINA-B31" — for printXML/debug
virtual uint16_t mtuPayload() const =0
The negotiated MTU payload (ATT_MTU − 3), or PHYPHOX_BLE_DEFAULT_MTU.
virtual bool notify(CharId id, const uint8_t *data, uint16_t len)=0
Send a notification.
virtual void poll()=0
Give the stack CPU time.
virtual void setValue(CharId id, const uint8_t *data, uint16_t len)=0
Set a characteristic's value without notifying (initial values, the legacy config).
virtual void requestMtu(uint16_t payload)
Ask the stack for an MTU before connecting (ESP32 only today; others ignore).
Definition Transport.h:78
virtual void requestConnectionParameters(uint16_t minInterval, uint16_t maxInterval, uint16_t latency, uint16_t timeout)
Ask the central for connection parameters (units of 1.25 ms / 10 ms).
Definition Transport.h:82
virtual bool begin(const GattLayout &layout, TransportListener &listener)=0
Create services and characteristics, start advertising the experiment service.
virtual void restartAdvertising()=0
virtual ~Transport()
Definition Transport.h:61
Definition ChannelStore.h:11
CharKind
The characteristics a phyphox device exposes.
Definition Transport.h:21
@ CH_SENSOR
Definition Transport.h:21
@ CH_INPUT
Definition Transport.h:21
@ CH_EVENT
Definition Transport.h:21
@ CH_DATA
Definition Transport.h:21
@ CH_CONTROL
Definition Transport.h:21
@ CH_EXPERIMENT
Definition Transport.h:21
@ CH_LEGACY_CONFIG
Definition Transport.h:21
Definition Transport.h:23
uint8_t index
channel or sensor number for CH_INPUT / CH_SENSOR, else 0
Definition Transport.h:25
CharKind kind
Definition Transport.h:24
What the core asks the transport to create at begin().
Definition Transport.h:29
uint8_t inputChannels
highest input channel (0 in user-XML mode)
Definition Transport.h:31
uint32_t inputChannelMask
bit k set: create characteristic cddf20kk (sensor-fed channels have none)
Definition Transport.h:32
const uint8_t * sensorValueSize
bytes each sensor characteristic holds (sensors entries)
Definition Transport.h:34
const char * deviceName
Definition Transport.h:30
uint16_t dataValueSize
bytes of the data characteristic value (MTU payload)
Definition Transport.h:36
uint8_t sensors
characteristics cddf3001 … cddf30ss
Definition Transport.h:33
bool legacyConfig
also create cddf1003 (20 bytes) — user-XML mode
Definition Transport.h:35