Dawn Framework 1.0
Universal data acquisition framework for embedded systems
Classes | Typedefs
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  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  CIONotifier
 I/O notification handler with poll-based event delivery. More...
 
class  CIONotifierManager
 Manages notifier instances for I/O objects. 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  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  CShutdown
 Global shutdown request manager. More...
 
class  CStreamNotifier
 Stream-based I/O notifier with dedicated thread per I/O. 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  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  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).
 

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.