Dawn Framework 1.0
Universal data acquisition framework for embedded systems
Classes | Typedefs | Enumerations
dawn Namespace Reference

Out-of-tree user-extension hooks for Dawn. More...

Classes

class  CBindableObject
 Base object with bindable object map support. More...
 
class  CDawn
 Main orchestrator class that integrates all Dawn components. More...
 
class  CDescObject
 Descriptor wrapper for individual object configuration. More...
 
class  CDescriptor
 Binary device descriptor manager. More...
 
class  CDescSwitch
 Global descriptor switch request manager. More...
 
class  CDevDescriptor
 Descriptor interface available for IO. More...
 
class  CDevInspector
 Global registry for object inspection. More...
 
class  CGenericHandler
 Template handler for object lifecycle management. More...
 
class  CHandler
 Base implementation of IHandler interface. More...
 
class  CIOAdcBase
 Shared ADC base for fetch/sync/stream implementations. More...
 
class  CIOAdcFetch
 On-demand ADC fetch I/O. More...
 
class  CIOAdcStream
 High-throughput batched ADC stream I/O. More...
 
class  CIOAdcSync
 Hardware-triggered single-sample ADC I/O. More...
 
class  CIOBatteryBase
 Shared base for the battery (fuel-gauge) IO family. More...
 
class  CIOBattSoc
 Battery state of charge in percent (DTYPE_UINT32). More...
 
class  CIOBattState
 Battery charge state as a numeric code (BATTERY_*; DTYPE_UINT32). More...
 
class  CIOBattVolt
 Battery voltage in mV (DTYPE_UINT32). More...
 
class  CIOBoardctl
 Board control I/O for system operations. More...
 
class  CIOButtons
 Button input I/O type for reading button/switch states. More...
 
class  CIOCapabilities
 Read-only seekable capability bitmap IO. More...
 
class  CIOCommon
 Base class for all I/O objects. More...
 
class  CIOConfig
 Configuration I/O for runtime object management. More...
 
class  CIOControl
 Control I/O for lifecycle management of bound objects. More...
 
class  CIODac
 Digital-to-Analog Converter (DAC) output I/O type. More...
 
class  CIODescriptor
 Device descriptor I/O access. More...
 
class  CIODescSelector
 Runtime descriptor slot selector I/O. More...
 
class  CIODummy
 Dummy I/O type for testing and simulation. More...
 
class  CIODummyNotify
 Timer-driven dummy I/O with notification support. More...
 
class  CIOEncoder
 Quadrature encoder I/O (position only). More...
 
class  CIOEncoderIndex
 Quadrature encoder I/O (position + index information). More...
 
class  CIOFactory
 Built-in I/O object factory for standard I/O types. More...
 
class  CIOFile
 File system I/O access. More...
 
class  CIOGpi
 GPIO Input (GPI) I/O type for reading digital input states. More...
 
class  CIOGpo
 GPIO Output (GPO) I/O type for writing digital output states. More...
 
class  CIOHandler
 Manages I/O object lifecycle and dispatch. More...
 
class  CIOLeds
 LED output I/O type for controlling LED indicators. More...
 
class  CIOLimits
 Common IO runtime limits container and validator. More...
 
class  CIOLteSignal
 LTE modem signal-quality I/O (read-only, timer-driven). More...
 
class  CIONotifier
 I/O notification handler with poll-based event delivery. More...
 
class  CIONotifierManager
 Manages notifier instances for I/O objects. More...
 
class  CIOPulseCount
 Finite pulse-train output backed by the NuttX PULSECOUNT driver. More...
 
class  CIOPwm
 Pulse Width Modulation (PWM) output I/O type. More...
 
class  CIORand
 Random number generator I/O type. More...
 
class  CIORgbLed
 RGB LED output I/O type. More...
 
class  CIOSensor
 Generic sensor interface for various sensor types. More...
 
class  CIOSensorGnss
 GNSS sensor I/O. More...
 
class  CIOSensorProducer
 Sensor/uORB publisher backed by Dawn protocol writes. More...
 
class  CIOSysinfo
 System information I/O providing uptime and CPU load. More...
 
class  CIOSystime
 System information I/O providing system time. More...
 
class  CIOTimerfd
 Internal helper for timer-based I/O notifications. More...
 
class  CIOTimestamp
 System timestamp/monotonic time generator. More...
 
class  CIOTrigger
 Trigger I/O for dispatching commands to bound objects. More...
 
class  CIOUname
 System identification I/O providing hostname and version info. More...
 
class  CIOUuid
 System UUID I/O providing unique device identifier. More...
 
class  CIOVirt
 Virtual I/O type for user-provided data and callbacks. More...
 
class  CIsoTp
 ISO-TP (ISO 15765-2) transport protocol helper. More...
 
class  CObject
 Base class for all Dawn objects (IOs, Programs, Protocols). More...
 
class  CPollLoopRunner
 Shared runner for poll-based worker threads. More...
 
class  CProgAdjust
 Data scaling and offset transformation PROG. More...
 
class  CProgBitPack
 Bit packer: combines multiple typed inputs into a single packed output bitstream. More...
 
class  CProgBitSplit
 Bit demultiplexer: extracts configurable bit slices from the input into separate outputs. More...
 
class  CProgBuffer
 Notify-driven history buffer Program. More...
 
class  CProgCommon
 Base class for all PROG (processing) objects. More...
 
class  CProgCounter
 Event counter with configurable wrap-around. More...
 
class  CProgDummy
 Dummy Program for tests and descriptor binding placeholders. More...
 
class  CProgExpression
 Arithmetic expression evaluator on IO values. More...
 
class  CProgFactory
 Built-in PROG factory implementation. More...
 
class  CProgGateway
 Protocol-to-protocol IO gateway Program. More...
 
class  CProgHandler
 Manages Programs object lifecycle and dispatch. More...
 
class  CProgIIRFilter
 First-order IIR low-pass filter. More...
 
class  CProgIODemux
 IO demultiplexer: routes one input to the selected output. More...
 
class  CProgIOMux
 IO multiplexer: routes selected input to one output. More...
 
class  CProgLatest
 Latest-sample cache Program. More...
 
class  CProgManyToOne
 Many-to-one bridge: forwards the last changed input to one output. More...
 
class  CProgMovingAverage
 Notify-driven sliding window moving average filter. More...
 
class  CProgOneToMany
 One-to-many bridge: forwards one input to many outputs. More...
 
class  CProgProcess
 Base class for callback-driven sample processing Program objects. More...
 
class  CProgProcessTemplate
 Policy-based template for sample processing implementations. More...
 
class  CProgRedirect
 Input-to-output routing Program. More...
 
class  CProgSampling
 Periodic data sampling and buffering Program. More...
 
class  CProgSelector
 Data selector: routes one of N data inputs to a target IO based on the value of a control input. More...
 
class  CProgSequencer
 Periodic state sequencer Program. More...
 
class  CProgStatsAvg
 Running average statistics Program. More...
 
class  CProgStatsCount
 Sample counting statistics Program. More...
 
class  CProgStatsMax
 Maximum value tracking statistics Program. More...
 
class  CProgStatsMin
 Minimum value tracking statistics Program. More...
 
class  CProgStatsRms
 Running RMS statistics Program. More...
 
class  CProgStatsSum
 Sum accumulation statistics Program. More...
 
class  CProgSwitch
 Multi-input AND-gate switch: writes on/off commands to a target IO when all control inputs match their configured values. More...
 
class  CProgThreshold
 Threshold comparator returning boolean alert output. More...
 
class  CProgThresholdBase
 Shared threshold logic for derived threshold programs. More...
 
class  CProgThresholdValue
 Threshold comparator returning gated source values. More...
 
class  CProgToggle
 Toggle/latch: flips output between two configured values on each rising edge of the input. More...
 
class  CProgVecPack
 Vector packer: combines multiple IO values into one vector IO. More...
 
class  CProgVecSplit
 Vector splitter: splits one vector IO into multiple outputs. More...
 
class  CProtoCan
 CAN bus protocol for industrial automation. More...
 
class  CProtoCommon
 Base class for all protocol implementations. More...
 
class  CProtoDummy
 Dummy Protocol for tests and binding placeholders. More...
 
class  CProtoFactory
 Built-in protocol factory. More...
 
class  CProtoHandler
 Manages PROTO object lifecycle and dispatch. More...
 
class  CProtoIpc
 Simple FIFO-based IPC transport for local Dawn communication. More...
 
class  CProtoModbusRegs
 Modbus register management base class (shared RTU/TCP logic). More...
 
class  CProtoModbusRtu
 Modbus RTU (Remote Terminal Unit) protocol implementation. More...
 
class  CProtoModbusTcp
 Modbus TCP protocol implementation. More...
 
class  CProtoNimbleAdv
 BLE advertisement management and GAP interface. More...
 
class  CProtoNimbleHci
 Host Controller Interface (HCI) management for NimBLE. More...
 
class  CProtoNimbleHost
 Manages NimBLE Host controller initialization and event processing. More...
 
class  CProtoNimblePrph
 BLE Peripheral (Slave) Protocol Implementation using NimBLE. More...
 
class  CProtoNimblePrphAios
 Automation I/O Service (AIOS) for BLE Peripheral. More...
 
class  CProtoNimblePrphBas
 Battery Service (BAS) for BLE Peripheral. More...
 
class  CProtoNimblePrphCustom
 Custom Service defined by user. More...
 
class  CProtoNimblePrphDis
 Device Information Service (DIS) for BLE Peripheral. More...
 
class  CProtoNimblePrphEss
 Environmental Sensing Service (ESS) for BLE Peripheral. More...
 
class  CProtoNimblePrphImds
 Industrial Measurement Device Service (IMDS) for BLE Peripheral. More...
 
class  CProtoNimblePrphOts
 Object Transfer Service (OTS) for BLE Peripheral. More...
 
class  CProtoNxscope
 Real-time data visualization protocol (base class). More...
 
class  CProtoNxscopeDummy
 NXScope no-op/dummy transport implementation. More...
 
class  CProtoNxscopeSerial
 NXScope over serial port transport. More...
 
class  CProtoNxscopeUdp
 NXScope over UDP transport. More...
 
class  CProtoSerial
 Simple binary serial protocol for device communication. More...
 
class  CProtoShellPretty
 Interactive Command-Line Shell Interface. More...
 
class  CProtoSimpleBase
 Shared base for simple framed protocols. More...
 
class  CProtoUdp
 Simple binary UDP protocol for device communication. More...
 
class  CProtoWakaama
 Wakaama LwM2M client protocol implementation. More...
 
class  CShutdown
 Global shutdown request manager. More...
 
class  CStreamNotifier
 Stream-based I/O notifier with dedicated thread per I/O. More...
 
class  CSystemCommon
 Base class for OBJTYPE_ANY configuration objects. More...
 
class  CSystemFactory
 Built-in dev object factory. More...
 
class  CSystemGnss
 GNSS coexistence manager. More...
 
class  CSystemHandler
 Handler for SYSTEM objects (OBJTYPE_ANY, cls != 0). More...
 
class  CSystemLte
 LTE connectivity object (OBJTYPE_ANY, cls = SYSTEM_CLASS_LTE). More...
 
class  CThreadedObject
 Portable thread owner abstraction for Dawn components. More...
 
class  IHandler
 Common interface for all handler implementations. More...
 
class  IIOFactory
 Abstract factory interface for extensible I/O object creation. More...
 
class  IIONotifier
 Abstract interface for registering asynchronous I/O notification. More...
 
struct  io_data_nots_s
 Single batch of I/O data without timestamp. More...
 
struct  io_data_s
 Single batch of I/O data with timestamp. More...
 
struct  io_data_view_t
 Non-owning I/O data view over caller-provided storage. More...
 
struct  io_ddata_t
 Heap-allocated dynamic I/O data buffer. More...
 
struct  io_sdata_t
 Static (compile-time) I/O data buffer (no timestamp). More...
 
struct  io_sdata_t< T, N, M, true >
 Static (compile-time) I/O data buffer (with timestamp). More...
 
struct  IODataCmn
 Base interface for I/O data buffers (static and dynamic). More...
 
class  IProgFactory
 Abstract factory interface for PROG object creation. More...
 
class  IProtoFactory
 Abstract factory interface for protocol creation. More...
 
class  IProtoNimblePrphCb
 Interface for BLE peripheral services with GATT characteristics. More...
 
class  IProtoNimblePrphService
 Base interface for GATT services exposed by BLE peripheral. More...
 
class  ISystemFactory
 Interface for user-provided dev object factories. More...
 
struct  SLteQuality
 Parameters used to bring up an LTE data connection. More...
 
class  SObjectCfg
 Configuration management for Dawn objects. More...
 
struct  SObjectId
 32-bit encoded Object ID with type, class, data type, and instance. More...
 
struct  SPollLoopCallbacks
 Callback set for poll-based worker loops. More...
 
struct  SProtoWakaamaIOBind
 Descriptor binding for one LwM2M resource. More...
 
struct  StatsOpAvg
 Policy for running average calculation. More...
 
struct  StatsOpCount
 Policy for sample counting. More...
 
struct  StatsOpMax
 Policy for maximum value tracking. More...
 
struct  StatsOpMin
 Policy for minimum value tracking. More...
 
struct  StatsOpSum
 Policy for sum accumulation. More...
 

Typedefs

typedef uint64_t io_ts_t
 Timestamp data type (uint64_t, typically microseconds since boot).
 

Enumerations

enum  { DAWN_GNSS_MODE_OFF = 0 , DAWN_GNSS_MODE_HYBRID = 1 }
 GNSS coexistence policy modes (GNSS_CFG_MODE values). More...
 
enum  {
  DAWN_LTE_SIGNAL_RSRP = 0 , DAWN_LTE_SIGNAL_RSRQ = 1 , DAWN_LTE_SIGNAL_SINR = 2 , DAWN_LTE_SIGNAL_BAND = 3 ,
  DAWN_LTE_SIGNAL_DIM = 4
}
 LTE signal-quality vector layout (indices into the data vector). More...
 
enum  { DAWN_LTE_AUTH_NONE = 0 , DAWN_LTE_AUTH_PAP = 1 , DAWN_LTE_AUTH_CHAP = 2 }
 LTE authentication type (target-independent). More...
 
enum  { DAWN_LTE_IPTYPE_V4 = 0 , DAWN_LTE_IPTYPE_V6 = 1 , DAWN_LTE_IPTYPE_V4V6 = 2 }
 LTE IP type (target-independent). More...
 
enum  { DAWN_LTE_PSAVE_NONE = 0 , DAWN_LTE_PSAVE_PSM = 1 , DAWN_LTE_PSAVE_EDRX = 2 }
 LTE power-save mode. More...
 
enum  { DAWN_LTE_STATUS_DOWN = 0 , DAWN_LTE_STATUS_CONNECTED = 1 }
 LTE connection status. More...
 

Detailed Description

Out-of-tree user-extension hooks for Dawn.

Two groups of free functions form the entire user-extension API:

Default implementations in dawn/src/oot.cxx are weak. Out-of-tree projects override them in <oot>/external/dawn_oot_hooks.cxx (compiled into the application target by dawn/apps/dawn/CMakeLists.txt). Strong overrides beat weak defaults during the final link.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

GNSS coexistence policy modes (GNSS_CFG_MODE values).

Enumerator
DAWN_GNSS_MODE_OFF 

Manager idle; do not touch the radio knobs.

DAWN_GNSS_MODE_HYBRID 

LTE first, then borrow the radio in bounded windows for a cold fix, always handing it back so LTE stays reachable (indoors too).

Definition at line 17 of file gnss.hxx.

◆ anonymous enum

anonymous enum

LTE signal-quality vector layout (indices into the data vector).

Enumerator
DAWN_LTE_SIGNAL_RSRP 

Reference Signal Received Power (dBm)

DAWN_LTE_SIGNAL_RSRQ 

Reference Signal Received Quality (dB)

DAWN_LTE_SIGNAL_SINR 

Signal to Interference + Noise Ratio (dB)

DAWN_LTE_SIGNAL_BAND 

Serving E-UTRA band number.

DAWN_LTE_SIGNAL_DIM 

Number of metrics in the vector.

Definition at line 17 of file lte_signal.hxx.

◆ anonymous enum

anonymous enum

LTE authentication type (target-independent).

Enumerator
DAWN_LTE_AUTH_NONE 

No authentication.

DAWN_LTE_AUTH_PAP 

PAP.

DAWN_LTE_AUTH_CHAP 

CHAP.

Definition at line 16 of file lte.hxx.

◆ anonymous enum

anonymous enum

LTE IP type (target-independent).

Enumerator
DAWN_LTE_IPTYPE_V4 

IPv4.

DAWN_LTE_IPTYPE_V6 

IPv6.

DAWN_LTE_IPTYPE_V4V6 

IPv4/IPv6.

Definition at line 27 of file lte.hxx.

◆ anonymous enum

anonymous enum

LTE power-save mode.

Enumerator
DAWN_LTE_PSAVE_NONE 

PSM and eDRX disabled (always reachable)

DAWN_LTE_PSAVE_PSM 

Power Saving Mode.

DAWN_LTE_PSAVE_EDRX 

extended DRX

Definition at line 38 of file lte.hxx.

◆ anonymous enum

anonymous enum

LTE connection status.

Enumerator
DAWN_LTE_STATUS_DOWN 

Not connected.

DAWN_LTE_STATUS_CONNECTED 

Connected (PDN active, IP assigned)

Definition at line 49 of file lte.hxx.