|
Dawn Framework 1.0
Universal data acquisition framework for embedded systems
|
32-bit encoded Object ID with type, class, data type, and instance. More...
#include <objectid.hxx>
Classes | |
| union | UObjectId |
| 32-bit encoded object identifier (union with bit field). More... | |
Public Types | |
| enum | EObjectDataType { DTYPE_ANY = 0 , DTYPE_BOOL = 1 , DTYPE_INT8 = 2 , DTYPE_UINT8 = 3 , DTYPE_INT16 = 4 , DTYPE_UINT16 = 5 , DTYPE_INT32 = 6 , DTYPE_UINT32 = 7 , DTYPE_INT64 = 8 , DTYPE_UINT64 = 9 , DTYPE_FLOAT = 10 , DTYPE_DOUBLE = 11 , DTYPE_B16 = 12 , DTYPE_UB16 = 13 , DTYPE_CHAR = 14 , DTYPE_BLOCK = 15 , DTYPE_LAST = 16 } |
| Data types supported by Dawn framework. More... | |
| enum | EObjectIdType { OBJTYPE_ANY = 0 , OBJTYPE_IO = 1 , OBJTYPE_PROTO = 2 , OBJTYPE_PROG = 3 , OBJTYPE_LAST = 4 } |
| Object types in the Dawn framework. More... | |
| typedef uint32_t | ObjectId |
| ObjectID type - single 32-bit value. | |
| typedef uint64_t | ObjectIdExt |
| Extended ObjectID type - future 64-bit support. | |
Static Public Member Functions | |
| static const char * | dtypeToString (uint8_t dtype) |
| Convert data type to human-readable string. | |
| static int | getDtypeSize_ (const EObjectDataType dtype) |
| Get byte size for a specific data type. | |
| static bool | isDtypeSupported (uint8_t dtype) |
| Check if a data type is enabled in build configuration. | |
| static ObjectId | objectId (uint8_t type, uint16_t cls, uint8_t dtype, uint8_t flags, uint16_t priv) |
| Construct 32-bit ObjectID from component fields. | |
| static uint16_t | objectIdGetCls (const ObjectId objid) |
| Extract object class from ObjectID. | |
| static uint8_t | objectIdGetDtype (const ObjectId objid) |
| Extract data type field from ObjectID. | |
| static uint8_t | objectIdGetFlags (const ObjectId objid) |
| Extract type-specific flags from ObjectID. | |
| static uint16_t | objectIdGetId (const ObjectId objid) |
| Extract instance/private field from ObjectID. | |
| static uint32_t | objectIdGetNoId (const ObjectId objid) |
| Extract "type-agnostic" ObjectID (zero instance field). | |
| static uint8_t | objectIdGetType (const ObjectId objid) |
| Extract object type from ObjectID. | |
| static bool | objectIsIO (const ObjectId objid) |
| Check if object is I/O type (union structure version). | |
| static bool | objectIsIO (const UObjectId &objid) |
| Check if object is I/O type (union structure version). | |
| static bool | objectIsProg (const ObjectId objid) |
| Check if object is Program type (raw 32-bit version). | |
| static bool | objectIsProg (const UObjectId &objid) |
| Check if object is Program type (raw 32-bit version). | |
| static bool | objectIsProto (const ObjectId objid) |
| Check if object is Protocol type (raw 32-bit version). | |
| static bool | objectIsProto (const UObjectId &objid) |
| Check if object is Protocol type (raw 32-bit version). | |
| static ObjectId | objectMask (const ObjectId objid) |
| Extract type and class mask from ObjectID. | |
Static Public Attributes | |
| static size_t | PRIV_MAX = 0b11111111111111 |
| Bit field constants and shift positions for ObjectID extraction. | |
32-bit encoded Object ID with type, class, data type, and instance.
Fundamental identifier for all Dawn objects.
Definition at line 22 of file objectid.hxx.
| typedef uint64_t dawn::SObjectId::ObjectIdExt |
Extended ObjectID type - future 64-bit support.
Not currently supported.
Definition at line 52 of file objectid.hxx.
Data types supported by Dawn framework.
Defines all supported data types for object values and configurations.
Definition at line 60 of file objectid.hxx.
Object types in the Dawn framework.
Defines the categories of objects managed by the framework.
| Enumerator | |
|---|---|
| OBJTYPE_ANY | Wildcard/metadata object type. Used for descriptor metadata (version, device string). |
| OBJTYPE_IO | Input/Output object type. Managed by: CIOHandler Purpose: Physical device I/O and virtual I/O. |
| OBJTYPE_PROTO | Protocol object type. Managed by: CProtoHandler Purpose: Device-to-external communication (host, cloud, peers). |
| OBJTYPE_PROG | Program/algorithm object type. Managed by: CProgHandler Purpose: Edge processing and data transformation. |
| OBJTYPE_LAST | Sentinel value (last valid type + 1). |
Definition at line 168 of file objectid.hxx.
|
static |
Convert data type to human-readable string.
Returns string representation of data type enum value.
| dtype | Data type (EObjectDataType value). |
Definition at line 167 of file objectid.cxx.
References DTYPE_ANY, DTYPE_B16, DTYPE_BLOCK, DTYPE_BOOL, DTYPE_CHAR, DTYPE_DOUBLE, DTYPE_FLOAT, DTYPE_INT16, DTYPE_INT32, DTYPE_INT64, DTYPE_INT8, DTYPE_UB16, DTYPE_UINT16, DTYPE_UINT32, DTYPE_UINT64, and DTYPE_UINT8.
|
static |
Get byte size for a specific data type.
Returns the size in bytes of values for the given data type.
| dtype | Data type (EObjectDataType value). |
Definition at line 12 of file objectid.cxx.
References DTYPE_B16, DTYPE_BLOCK, DTYPE_BOOL, DTYPE_DOUBLE, DTYPE_FLOAT, DTYPE_INT16, DTYPE_INT32, DTYPE_INT64, DTYPE_INT8, DTYPE_UB16, DTYPE_UINT16, DTYPE_UINT32, DTYPE_UINT64, and DTYPE_UINT8.
|
static |
Check if a data type is enabled in build configuration.
DTYPE_ANY is always considered supported.
| dtype | Data type (EObjectDataType value). |
Definition at line 95 of file objectid.cxx.
References DTYPE_ANY, DTYPE_B16, DTYPE_BLOCK, DTYPE_BOOL, DTYPE_CHAR, DTYPE_DOUBLE, DTYPE_FLOAT, DTYPE_INT16, DTYPE_INT32, DTYPE_INT64, DTYPE_INT8, DTYPE_UB16, DTYPE_UINT16, DTYPE_UINT32, DTYPE_UINT64, and DTYPE_UINT8.
|
inlinestatic |
Construct 32-bit ObjectID from component fields.
Packs individual fields into a single 32-bit ObjectID value.
| type | Object type (0-3): OBJTYPE_ANY, OBJTYPE_IO, etc. |
| cls | Object class (0-511): IOCLS_ADC, IOCLS_GPIO, etc. |
| dtype | Data type (0-15): DTYPE_UINT32, DTYPE_FLOAT, etc. |
| flags | Type-specific flags (0-3): IO_FLAGS_TS, etc. |
| priv | Instance/private field (0-16383): instance number. |
Definition at line 290 of file objectid.hxx.
References PRIV_MAX.
|
inlinestatic |
Extract object class from ObjectID.
| objid | ObjectID value. |
Definition at line 349 of file objectid.hxx.
|
inlinestatic |
Extract data type field from ObjectID.
| objid | ObjectID value. |
Definition at line 337 of file objectid.hxx.
|
inlinestatic |
Extract type-specific flags from ObjectID.
| objid | ObjectID value. |
Definition at line 325 of file objectid.hxx.
|
inlinestatic |
Extract instance/private field from ObjectID.
| objid | ObjectID value. |
Definition at line 313 of file objectid.hxx.
References PRIV_MAX.
|
inlinestatic |
Extract "type-agnostic" ObjectID (zero instance field).
Returns ObjectID with instance/priv field zeroed.
| objid | ObjectID value. |
Definition at line 375 of file objectid.hxx.
|
inlinestatic |
Extract object type from ObjectID.
| objid | ObjectID value. |
Definition at line 361 of file objectid.hxx.
|
inlinestatic |
Check if object is I/O type (union structure version).
| objid | ObjectID raw value. |
Definition at line 423 of file objectid.hxx.
References objectIdGetType(), and OBJTYPE_IO.
|
inlinestatic |
Check if object is I/O type (union structure version).
| objid | Reference to UObjectId structure. |
Definition at line 387 of file objectid.hxx.
References OBJTYPE_IO, dawn::SObjectId::UObjectId::s, and dawn::SObjectId::UObjectId::type.
|
inlinestatic |
Check if object is Program type (raw 32-bit version).
| objid | ObjectID raw value. |
Definition at line 447 of file objectid.hxx.
References objectIdGetType(), and OBJTYPE_PROG.
|
inlinestatic |
Check if object is Program type (raw 32-bit version).
| objid | Reference to UObjectId structure. |
Definition at line 411 of file objectid.hxx.
References OBJTYPE_PROG, dawn::SObjectId::UObjectId::s, and dawn::SObjectId::UObjectId::type.
|
inlinestatic |
Check if object is Protocol type (raw 32-bit version).
| objid | ObjectID raw value. |
Definition at line 435 of file objectid.hxx.
References objectIdGetType(), and OBJTYPE_PROTO.
|
inlinestatic |
Check if object is Protocol type (raw 32-bit version).
| objid | Reference to UObjectId structure. |
Definition at line 399 of file objectid.hxx.
References OBJTYPE_PROTO, dawn::SObjectId::UObjectId::s, and dawn::SObjectId::UObjectId::type.
Extract type and class mask from ObjectID.
Returns ObjectID with instance and flags fields zeroed.
| objid | ObjectID raw value. |
Definition at line 461 of file objectid.hxx.