Dawn Framework 1.0
Universal data acquisition framework for embedded systems
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
dawn::IProtoNimblePrphCb Class Referenceabstract

Interface for BLE peripheral services with GATT characteristics. More...

#include <iprph.hxx>

Inheritance diagram for dawn::IProtoNimblePrphCb:
[legend]

Public Member Functions

virtual CIOCommongetObject (SObjectId::ObjectId id)=0
 Get protocol object by ID.
 
virtual size_t getObjectsLen ()=0
 Get count of registered I/O objects.
 
virtual void regObject (SObjectId::ObjectId id)=0
 Register an I/O object for this service.
 
virtual int serviceRegister (struct ble_gatt_svc_def *svc)=0
 Register a GATT service with the peripheral.
 
virtual int startService (int id)=0
 Start a specific service.
 
virtual int stopService (int id)=0
 Stop a specific service.
 

Static Public Member Functions

static float charScaleGet (uint16_t u)
 Get scaling factor for a characteristic UUID.
 

Static Public Attributes

static std::pair< uint16_t, float > charScale []
 Scaling factors for GATT characteristics.
 
static size_t charScaleSize
 Number of characteristic scaling entries.
 
static uint16_t UUID16_ACCEL = 0x2c06
 16-bit UUID for Acceleration characteristic.
 
static uint16_t UUID16_AGGREGATE = 0x2a5a
 16-bit UUID for Aggregate characteristic.
 
static uint16_t UUID16_AIOS = 0x1815
 16-bit Bluetooth SIG UUID for AIOS.
 
static uint16_t UUID16_ANALOG = 0x2a58
 16-bit UUID for Analog characteristic.
 
static uint16_t UUID16_BSS = 0x183b
 16-bit Bluetooth SIG UUID for BSS.
 
static uint16_t UUID16_CURRENT = 0x2aee
 16-bit UUID for Electric Current characteristic.
 
static uint16_t UUID16_CURRENTRANGE = 0x2aef
 16-bit UUID for Electric Current Range characteristic.
 
static uint16_t UUID16_CURRENTSPEC = 0x2af0
 16-bit UUID for Electric Current Specification characteristic.
 
static uint16_t UUID16_CURRENTSTATS = 0x2af1
 16-bit UUID for Electric Current Statistics characteristic.
 
static uint16_t UUID16_DIGITAL = 0x2a56
 16-bit UUID for Digital characteristic.
 
static uint16_t UUID16_ESS = 0x181a
 16-bit Bluetooth SIG UUID for ESS.
 
static uint16_t UUID16_HUM = 0x2a6f
 16-bit UUID for Humidity characteristic.
 
static uint16_t UUID16_ILLUMINANCE = 0x2afb
 16-bit UUID for Illuminance characteristic.
 
static uint16_t UUID16_IMDS = 0x185a
 16-bit Bluetooth SIG UUID for IMDS.
 
static uint16_t UUID16_PRESS = 0x2a6d
 16-bit UUID for Pressure characteristic.
 
static uint16_t UUID16_RESISTANCE = 0x272a
 16-bit UUID for Electric Resistance characteristic.
 
static uint16_t UUID16_TEMP = 0x2a6e
 16-bit UUID for Temperature characteristic.
 
static uint16_t UUID16_TWINDDIR = 0x2a71
 16-bit UUID for True Wind Direction characteristic.
 
static uint16_t UUID16_TWINDSPEED = 0x2a70
 16-bit UUID for True Wind Speed characteristic.
 
static uint16_t UUID16_UVIDX = 0x2a76
 16-bit UUID for UV Index characteristic.
 
static uint16_t UUID16_VOLTAGE = 0x2b18
 16-bit UUID for Voltage characteristic.
 
static uint16_t UUID16_VOLTAGEFREQ = 0x2be8
 16-bit UUID for Voltage Frequency characteristic.
 
static uint16_t UUID16_VOLTAGESPEC = 0x2b19
 16-bit UUID for Voltage Specification characteristic.
 
static uint16_t UUID16_VOLTAGESTAT = 0x2b1a
 16-bit UUID for Voltage Statistics characteristic.
 
static uint32_t UUID_ACCEL [4] = {0x2c060010, 0x7474754e, 0x694e2058, 0x454c426d}
 Acceleration Characteristic UUID (0x2C06).
 
static uint32_t UUID_AGGREGATE [4] = {0x2a5a0010, 0x7474754e, 0x694e2058, 0x454c426d}
 Aggregate Characteristic UUID (0x2A5A).
 
static uint32_t UUID_AIOS [4] = {0x18150010, 0x7474754e, 0x694e2058, 0x454c426d}
 Automation I/O Service UUID (0x1815).
 
static uint32_t UUID_ANALOG [4] = {0x2a580010, 0x7474754e, 0x694e2058, 0x454c426d}
 Analog Characteristic UUID (0x2A58).
 
static uint32_t UUID_BSS [4] = {0x183b0010, 0x7474754e, 0x694e2058, 0x454c426d}
 Binary Sensor Service UUID (0x183B).
 
static uint32_t UUID_CURRENT [4] = {0x2aee0010, 0x7474754e, 0x694e2058, 0x454c426d}
 Electric Current Characteristic UUID (0x2AEE).
 
static uint32_t UUID_CURRENTRANGE [4] = {0x2aef0010, 0x7474754e, 0x694e2058, 0x454c426d}
 Electric Current Range Characteristic UUID (0x2AEF).
 
static uint32_t UUID_CURRENTSPEC [4] = {0x2af00010, 0x7474754e, 0x694e2058, 0x454c426d}
 Electric Current Specification Characteristic UUID (0x2AF0).
 
static uint32_t UUID_CURRENTSTATS [4] = {0x2af10010, 0x7474754e, 0x694e2058, 0x454c426d}
 Electric Current Statistics Characteristic UUID (0x2AF1).
 
static uint32_t UUID_DIGITAL [4] = {0x2a560010, 0x7474754e, 0x694e2058, 0x454c426d}
 Digital Characteristic UUID (0x2A56).
 
static uint32_t UUID_ESS [4] = {0x181a0010, 0x7474754e, 0x694e2058, 0x454c426d}
 Environmental Sensing Service UUID (0x181A).
 
static uint32_t UUID_HUM [4] = {0x2a6f0010, 0x7474754e, 0x694e2058, 0x454c426d}
 Humidity Characteristic UUID (0x2A6F).
 
static uint32_t UUID_ILLUMINANCE [4] = {0x2afb0010, 0x7474754e, 0x694e2058, 0x454c426d}
 Illuminance Characteristic UUID (0x2AFB).
 
static uint32_t UUID_IMDS [4] = {0x185a0010, 0x7474754e, 0x694e2058, 0x454c426d}
 Industrial Measurement Device Service UUID (0x185A).
 
static uint32_t UUID_INPUT_TRIGGER_SET [4]
 AIOS Input Trigger Set characteristic (0x2A57).
 
static uint32_t UUID_OUTPUT_TRIGGER_SET [4]
 AIOS Output Trigger Set characteristic (0x2A5C).
 
static uint32_t UUID_PRESS [4] = {0x2a6d0010, 0x7474754e, 0x694e2058, 0x454c426d}
 Pressure Characteristic UUID (0x2A6D).
 
static uint32_t UUID_RESISTANCE [4] = {0x272a0010, 0x7474754e, 0x694e2058, 0x454c426d}
 Electric Resistance Characteristic UUID (0x272A).
 
static uint32_t UUID_TEMP [4] = {0x2a6e0010, 0x7474754e, 0x694e2058, 0x454c426d}
 Temperature Characteristic UUID (0x2A6E).
 
static uint32_t UUID_TIME_TRIGGER_SET [4]
 AIOS Time Trigger Set characteristic (0x2A3F).
 
static uint32_t UUID_TWINDDIR [4] = {0x2a710010, 0x7474754e, 0x694e2058, 0x454c426d}
 True Wind Direction Characteristic UUID (0x2A71).
 
static uint32_t UUID_TWINDSPEED [4] = {0x2a700010, 0x7474754e, 0x694e2058, 0x454c426d}
 True Wind Speed Characteristic UUID (0x2A70).
 
static uint32_t UUID_UVIDX [4] = {0x2a760010, 0x7474754e, 0x694e2058, 0x454c426d}
 UV Index Characteristic UUID (0x2A76).
 
static uint32_t UUID_VOLTAGE [4] = {0x2b180010, 0x7474754e, 0x694e2058, 0x454c426d}
 Voltage Characteristic UUID (0x2B18).
 
static uint32_t UUID_VOLTAGEFREQ [4] = {0x2be80010, 0x7474754e, 0x694e2058, 0x454c426d}
 Voltage Frequency Characteristic UUID (0x2BE8).
 
static uint32_t UUID_VOLTAGESPEC [4] = {0x2b190010, 0x7474754e, 0x694e2058, 0x454c426d}
 Voltage Specification Characteristic UUID (0x2B19).
 
static uint32_t UUID_VOLTAGESTAT [4] = {0x2b1a0010, 0x7474754e, 0x694e2058, 0x454c426d}
 Voltage Statistics Characteristic UUID (0x2B1A).
 

Detailed Description

Interface for BLE peripheral services with GATT characteristics.

This interface defines the callback and UUID constants for GATT services exposed by the BLE peripheral.

Definition at line 23 of file iprph.hxx.

Member Function Documentation

◆ charScaleGet()

static float dawn::IProtoNimblePrphCb::charScaleGet ( uint16_t  u)
inlinestatic

Get scaling factor for a characteristic UUID.

Returns the scaling factor for converting raw values to proper units.

Parameters
[in]u16-bit Bluetooth SIG UUID.
Returns
float Scaling factor (1.0 = no scaling, 100.0 = divide by 100).

Definition at line 383 of file iprph.hxx.

References charScale, and charScaleSize.

◆ getObject()

virtual CIOCommon * dawn::IProtoNimblePrphCb::getObject ( SObjectId::ObjectId  id)
pure virtual

Get protocol object by ID.

Retrieves a protocol instance by its object ID.

Parameters
[in]idI/O object ID.
Returns
CIOCommon* Pointer to I/O object, nullptr if not registered.

Implemented in dawn::CProtoNimblePrph.

◆ getObjectsLen()

virtual size_t dawn::IProtoNimblePrphCb::getObjectsLen ( )
pure virtual

Get count of registered I/O objects.

Returns
size_t Total number of I/O objects registered.

Implemented in dawn::CProtoNimblePrph.

◆ regObject()

virtual void dawn::IProtoNimblePrphCb::regObject ( SObjectId::ObjectId  id)
pure virtual

Register an I/O object for this service.

Called by services to register I/O objects.

Parameters
[in]idI/O object ID to register.

Implemented in dawn::CProtoNimblePrph.

◆ serviceRegister()

virtual int dawn::IProtoNimblePrphCb::serviceRegister ( struct ble_gatt_svc_def *  svc)
pure virtual

Register a GATT service with the peripheral.

Called by service implementations to register their GATT service definition.

Parameters
[in]svcGATT service definition (from NimBLE ble_gatt_svc_def).
Returns
int Service ID assigned by peripheral (for start/stop), or.

Implemented in dawn::CProtoNimblePrph.

Here is the caller graph for this function:

◆ startService()

virtual int dawn::IProtoNimblePrphCb::startService ( int  id)
pure virtual

Start a specific service.

Enables a service (makes its characteristics available to clients).

Parameters
[in]idService ID from serviceRegister().
Returns
int 0 on success, negative error code on failure.

Implemented in dawn::CProtoNimblePrph.

Here is the caller graph for this function:

◆ stopService()

virtual int dawn::IProtoNimblePrphCb::stopService ( int  id)
pure virtual

Stop a specific service.

Disables a service (removes its characteristics from the GATT database).

Parameters
[in]idService ID from serviceRegister().
Returns
int 0 on success, negative error code on failure.

Implemented in dawn::CProtoNimblePrph.

Here is the caller graph for this function:

Member Data Documentation

◆ charScale

std::pair<uint16_t, float> dawn::IProtoNimblePrphCb::charScale[]
static
Initial value:
= {
{UUID16_TEMP, 100.0f},
{UUID16_HUM, 100.0f},
{UUID16_PRESS, 100.0f},
{UUID16_UVIDX, 1.0f},
{UUID16_ILLUMINANCE, 100.0f},
}
static uint16_t UUID16_UVIDX
16-bit UUID for UV Index characteristic.
Definition iprph.hxx:201
static uint16_t UUID16_HUM
16-bit UUID for Humidity characteristic.
Definition iprph.hxx:178
static uint16_t UUID16_TEMP
16-bit UUID for Temperature characteristic.
Definition iprph.hxx:153
static uint16_t UUID16_ILLUMINANCE
16-bit UUID for Illuminance characteristic.
Definition iprph.hxx:332
static uint16_t UUID16_RESISTANCE
16-bit UUID for Electric Resistance characteristic.
Definition iprph.hxx:346
static uint16_t UUID16_PRESS
16-bit UUID for Pressure characteristic.
Definition iprph.hxx:189

Scaling factors for GATT characteristics.

Maps characteristic UUIDs to their scaling factors.

Definition at line 354 of file iprph.hxx.

◆ UUID_ACCEL

uint32_t dawn::IProtoNimblePrphCb::UUID_ACCEL[4] = {0x2c060010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Acceleration Characteristic UUID (0x2C06).

NOTE: NON-STANDARD. 0x2C06 is not assigned by the Bluetooth SIG; this is a Dawn-vendor placeholder for three-axis acceleration.

Definition at line 162 of file iprph.hxx.

◆ UUID_AGGREGATE

uint32_t dawn::IProtoNimblePrphCb::UUID_AGGREGATE[4] = {0x2a5a0010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Aggregate Characteristic UUID (0x2A5A).

Aggregates readable AIOS Digital and Analog characteristic values.

Definition at line 137 of file iprph.hxx.

◆ UUID_AIOS

uint32_t dawn::IProtoNimblePrphCb::UUID_AIOS[4] = {0x18150010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Automation I/O Service UUID (0x1815).

Service for digital and analog I/O control and monitoring via BLE.

Definition at line 32 of file iprph.hxx.

◆ UUID_ANALOG

uint32_t dawn::IProtoNimblePrphCb::UUID_ANALOG[4] = {0x2a580010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Analog Characteristic UUID (0x2A58).

Represents analog (continuous) I/O values.

Definition at line 125 of file iprph.hxx.

◆ UUID_BSS

uint32_t dawn::IProtoNimblePrphCb::UUID_BSS[4] = {0x183b0010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Binary Sensor Service UUID (0x183B).

Service for binary state sensors (on/off, open/closed).

Definition at line 101 of file iprph.hxx.

◆ UUID_CURRENT

uint32_t dawn::IProtoNimblePrphCb::UUID_CURRENT[4] = {0x2aee0010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Electric Current Characteristic UUID (0x2AEE).

Electrical current measurement in Amperes.

Definition at line 281 of file iprph.hxx.

◆ UUID_CURRENTRANGE

uint32_t dawn::IProtoNimblePrphCb::UUID_CURRENTRANGE[4] = {0x2aef0010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Electric Current Range Characteristic UUID (0x2AEF).

Supported current measurement range (min, max).

Definition at line 293 of file iprph.hxx.

◆ UUID_CURRENTSPEC

uint32_t dawn::IProtoNimblePrphCb::UUID_CURRENTSPEC[4] = {0x2af00010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Electric Current Specification Characteristic UUID (0x2AF0).

Rated current specification for the device.

Definition at line 304 of file iprph.hxx.

◆ UUID_CURRENTSTATS

uint32_t dawn::IProtoNimblePrphCb::UUID_CURRENTSTATS[4] = {0x2af10010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Electric Current Statistics Characteristic UUID (0x2AF1).

Current measurements and statistics (min, max, average).

Definition at line 316 of file iprph.hxx.

◆ UUID_DIGITAL

uint32_t dawn::IProtoNimblePrphCb::UUID_DIGITAL[4] = {0x2a560010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Digital Characteristic UUID (0x2A56).

Represents digital (boolean) I/O values.

Definition at line 113 of file iprph.hxx.

◆ UUID_ESS

uint32_t dawn::IProtoNimblePrphCb::UUID_ESS[4] = {0x181a0010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Environmental Sensing Service UUID (0x181A).

Service for environmental measurement characteristics (temperature, humidity, pressure, UV index, wind speed/direction).

Definition at line 78 of file iprph.hxx.

◆ UUID_HUM

uint32_t dawn::IProtoNimblePrphCb::UUID_HUM[4] = {0x2a6f0010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Humidity Characteristic UUID (0x2A6F).

Relative humidity in 0.01% units.

Definition at line 174 of file iprph.hxx.

◆ UUID_ILLUMINANCE

uint32_t dawn::IProtoNimblePrphCb::UUID_ILLUMINANCE[4] = {0x2afb0010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Illuminance Characteristic UUID (0x2AFB).

Illuminance / light level in 0.01 lux units (uint24).

Definition at line 328 of file iprph.hxx.

◆ UUID_IMDS

uint32_t dawn::IProtoNimblePrphCb::UUID_IMDS[4] = {0x185a0010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Industrial Measurement Device Service UUID (0x185A).

Service for industrial measurement devices and sensors.

Definition at line 89 of file iprph.hxx.

◆ UUID_INPUT_TRIGGER_SET

uint32_t dawn::IProtoNimblePrphCb::UUID_INPUT_TRIGGER_SET[4]
static
Initial value:
= {0x2a570010,
0x7474754e,
0x694e2058,
0x454c426d}

AIOS Input Trigger Set characteristic (0x2A57).

Specifies trigger conditions for digital inputs.

Definition at line 44 of file iprph.hxx.

◆ UUID_OUTPUT_TRIGGER_SET

uint32_t dawn::IProtoNimblePrphCb::UUID_OUTPUT_TRIGGER_SET[4]
static
Initial value:
= {0x2a5c0010,
0x7474754e,
0x694e2058,
0x454c426d}

AIOS Output Trigger Set characteristic (0x2A5C).

Specifies trigger conditions for digital outputs.

Definition at line 55 of file iprph.hxx.

◆ UUID_PRESS

uint32_t dawn::IProtoNimblePrphCb::UUID_PRESS[4] = {0x2a6d0010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Pressure Characteristic UUID (0x2A6D).

Barometric pressure in Pascals.

Definition at line 186 of file iprph.hxx.

◆ UUID_RESISTANCE

uint32_t dawn::IProtoNimblePrphCb::UUID_RESISTANCE[4] = {0x272a0010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Electric Resistance Characteristic UUID (0x272A).

NOTE: NON-STANDARD. 0x272A is not assigned by the Bluetooth SIG; this is a Dawn-vendor characteristic exposed for gas-resistance sensors until a real GATT mapping is chosen. Unit is kilohms (no scaling).

Definition at line 342 of file iprph.hxx.

◆ UUID_TEMP

uint32_t dawn::IProtoNimblePrphCb::UUID_TEMP[4] = {0x2a6e0010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Temperature Characteristic UUID (0x2A6E).

Temperature measurement in 0.01°C units.

Definition at line 149 of file iprph.hxx.

◆ UUID_TIME_TRIGGER_SET

uint32_t dawn::IProtoNimblePrphCb::UUID_TIME_TRIGGER_SET[4]
static
Initial value:
= {0x2a3f0010,
0x7474754e,
0x694e2058,
0x454c426d}

AIOS Time Trigger Set characteristic (0x2A3F).

Specifies time-based trigger conditions.

Definition at line 66 of file iprph.hxx.

◆ UUID_TWINDDIR

uint32_t dawn::IProtoNimblePrphCb::UUID_TWINDDIR[4] = {0x2a710010, 0x7474754e, 0x694e2058, 0x454c426d}
static

True Wind Direction Characteristic UUID (0x2A71).

Wind direction in degrees (0-359).

Definition at line 221 of file iprph.hxx.

◆ UUID_TWINDSPEED

uint32_t dawn::IProtoNimblePrphCb::UUID_TWINDSPEED[4] = {0x2a700010, 0x7474754e, 0x694e2058, 0x454c426d}
static

True Wind Speed Characteristic UUID (0x2A70).

Wind speed in 0.01 m/s units.

Definition at line 209 of file iprph.hxx.

◆ UUID_UVIDX

uint32_t dawn::IProtoNimblePrphCb::UUID_UVIDX[4] = {0x2a760010, 0x7474754e, 0x694e2058, 0x454c426d}
static

UV Index Characteristic UUID (0x2A76).

UV index value.

Definition at line 197 of file iprph.hxx.

◆ UUID_VOLTAGE

uint32_t dawn::IProtoNimblePrphCb::UUID_VOLTAGE[4] = {0x2b180010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Voltage Characteristic UUID (0x2B18).

Electrical voltage measurement.

Definition at line 233 of file iprph.hxx.

◆ UUID_VOLTAGEFREQ

uint32_t dawn::IProtoNimblePrphCb::UUID_VOLTAGEFREQ[4] = {0x2be80010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Voltage Frequency Characteristic UUID (0x2BE8).

AC voltage frequency in Hz.

Definition at line 245 of file iprph.hxx.

◆ UUID_VOLTAGESPEC

uint32_t dawn::IProtoNimblePrphCb::UUID_VOLTAGESPEC[4] = {0x2b190010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Voltage Specification Characteristic UUID (0x2B19).

Rated voltage specification for the device.

Definition at line 257 of file iprph.hxx.

◆ UUID_VOLTAGESTAT

uint32_t dawn::IProtoNimblePrphCb::UUID_VOLTAGESTAT[4] = {0x2b1a0010, 0x7474754e, 0x694e2058, 0x454c426d}
static

Voltage Statistics Characteristic UUID (0x2B1A).

Voltage measurements and statistics (min, max, average).

Definition at line 269 of file iprph.hxx.


The documentation for this class was generated from the following file: