Dawn Framework 1.0
Universal data acquisition framework for embedded systems
Public Member Functions | List of all members
dawn::CDescObject Class Reference

Descriptor wrapper for individual object configuration. More...

#include <descobject.hxx>

Public Member Functions

 CDescObject (SObjectCfg::SObjectCfgData &cfg)
 Construct CDescObject from raw descriptor pointer.
 
 CDescObject (uint32_t *cfg)
 Construct CDescObject from raw descriptor pointer.
 
 ~CDescObject ()=default
 Destructor.
 
uint32_t getAtOffset (size_t offset) const
 Get 32-bit word at specified offset.
 
SObjectCfg::SObjectCfgDatagetCfg () const
 Get underlying descriptor data structure.
 
uint16_t getObjectCls () const
 Get object class field.
 
uint8_t getObjectDtype () const
 Get data type field.
 
SObjectId::UObjectIdgetObjectId () const
 Get object identifier as union structure.
 
SObjectId::ObjectId getObjectIdV () const
 Get object identifier as raw 32-bit value.
 
uint8_t getObjectType () const
 Get object type field.
 
size_t getSize () const
 Get number of configuration items for this object.
 
size_t getSizeBytes () const
 Get total size in bytes for this object definition.
 
SObjectCfg::SObjectCfgItemobjectCfgItemAtOffset (size_t offset) const
 Get configuration item at specified offset.
 
SObjectCfg::SObjectCfgItemobjectCfgItemId (SObjectCfg::ObjectCfgId id) const
 Get configuration item with specified ConfigID.
 
SObjectCfg::SObjectCfgItemobjectCfgItemNext (size_t &offset) const
 Get config item at current offset and advance past it.
 

Detailed Description

Descriptor wrapper for individual object configuration.

Provides convenient access to object configuration data stored in a descriptor binary.

Definition at line 21 of file descobject.hxx.

Constructor & Destructor Documentation

◆ CDescObject() [1/2]

dawn::CDescObject::CDescObject ( SObjectCfg::SObjectCfgData cfg)
inlineexplicit

Construct CDescObject from raw descriptor pointer.

Wraps raw 32-bit pointer to descriptor data.

Parameters
cfgReference to SObjectCfgData in descriptor.

Definition at line 32 of file descobject.hxx.

◆ CDescObject() [2/2]

dawn::CDescObject::CDescObject ( uint32_t *  cfg)
inlineexplicit

Construct CDescObject from raw descriptor pointer.

Wraps raw 32-bit pointer to descriptor data.

Parameters
cfgPointer to descriptor data (32-bit word pointer).

Definition at line 46 of file descobject.hxx.

Member Function Documentation

◆ getAtOffset()

uint32_t CDescObject::getAtOffset ( size_t  offset) const

Get 32-bit word at specified offset.

Convenient accessor for reading a single 32-bit word from object's descriptor data.

Parameters
offsetOffset in 32-bit words from object start.
Returns
32-bit value at offset (host endian).

Definition at line 71 of file descobject.cxx.

◆ getCfg()

SObjectCfg::SObjectCfgData * CDescObject::getCfg ( ) const

Get underlying descriptor data structure.

Returns pointer to raw SObjectCfgData in descriptor.

Returns
Pointer to SObjectCfgData (or nullptr if invalid).

Definition at line 37 of file descobject.cxx.

◆ getObjectCls()

uint16_t CDescObject::getObjectCls ( ) const

Get object class field.

Extracts class identifier from object ID.

Returns
Object class (0-511).

Definition at line 22 of file descobject.cxx.

References dawn::SObjectId::UObjectId::cls, dawn::SObjectCfg::SObjectCfgData::objid, and dawn::SObjectId::UObjectId::s.

Here is the caller graph for this function:

◆ getObjectDtype()

uint8_t CDescObject::getObjectDtype ( ) const

Get data type field.

Extracts data type from object ID.

Returns
Data type (DTYPE_UINT32, DTYPE_FLOAT, etc.).

Definition at line 32 of file descobject.cxx.

References dawn::SObjectId::UObjectId::dtype, dawn::SObjectCfg::SObjectCfgData::objid, and dawn::SObjectId::UObjectId::s.

Here is the caller graph for this function:

◆ getObjectId()

SObjectId::UObjectId & CDescObject::getObjectId ( ) const

Get object identifier as union structure.

Returns the complete object ID with access to bit fields (type, class, dtype, flags, instance).

Returns
Reference to UObjectId structure containing object ID fields.

Definition at line 12 of file descobject.cxx.

References dawn::SObjectCfg::SObjectCfgData::objid.

Here is the caller graph for this function:

◆ getObjectIdV()

SObjectId::ObjectId CDescObject::getObjectIdV ( ) const

Get object identifier as raw 32-bit value.

Returns complete object ID as single 32-bit value.

Returns
ObjectId (uint32_t) containing full object metadata.

Definition at line 17 of file descobject.cxx.

References dawn::SObjectCfg::SObjectCfgData::objid, and dawn::SObjectId::UObjectId::v.

◆ getObjectType()

uint8_t CDescObject::getObjectType ( ) const

Get object type field.

Extracts type from object ID.

Returns
Object type (OBJTYPE_ANY, OBJTYPE_IO, OBJTYPE_PROTO, etc.).

Definition at line 27 of file descobject.cxx.

References dawn::SObjectCfg::SObjectCfgData::objid, dawn::SObjectId::UObjectId::s, and dawn::SObjectId::UObjectId::type.

Here is the caller graph for this function:

◆ getSize()

size_t CDescObject::getSize ( ) const

Get number of configuration items for this object.

Returns count of configuration items stored in descriptor for this object.

Returns
Number of configuration items (0-32).

Definition at line 61 of file descobject.cxx.

References dawn::SObjectCfg::SObjectCfgData::size.

Here is the caller graph for this function:

◆ getSizeBytes()

size_t CDescObject::getSizeBytes ( ) const

Get total size in bytes for this object definition.

Returns the complete size of object definition in descriptor, including object metadata and all configuration items/data.

Returns
Total object size in bytes.

Definition at line 66 of file descobject.cxx.

◆ objectCfgItemAtOffset()

SObjectCfg::SObjectCfgItem * CDescObject::objectCfgItemAtOffset ( size_t  offset) const

Get configuration item at specified offset.

Retrieves configuration item at given offset within object.

Parameters
offsetOffset in 32-bit words from object start.
Returns
Pointer to SObjectCfgItem at offset, nullptr if invalid.

Definition at line 42 of file descobject.cxx.

References dawn::SObjectCfg::SObjectCfgData::items.

Here is the caller graph for this function:

◆ objectCfgItemId()

SObjectCfg::SObjectCfgItem * CDescObject::objectCfgItemId ( SObjectCfg::ObjectCfgId  id) const

Get configuration item with specified ConfigID.

Searches configuration items for matching ConfigID and returns it.

Parameters
idConfigID to search for.
Returns
Pointer to matching SObjectCfgItem, nullptr if not found.

Definition at line 56 of file descobject.cxx.

References dawn::SObjectCfg::objectCfgFromCfgId().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ objectCfgItemNext()

SObjectCfg::SObjectCfgItem * CDescObject::objectCfgItemNext ( size_t &  offset) const

Get config item at current offset and advance past it.

Returns the item at offset, then atomically advances offset by 1 (cfgid header word) plus item->cfgid.s.size (data words), so offset points to the next config item on return. Use item->data[] to access the item's payload without a separate pointer lookup.

Parameters
offsetCurrent word offset; updated in-place to point past this item on return.
Returns
Pointer to SObjectCfgItem at entry offset.

Definition at line 49 of file descobject.cxx.

References dawn::SObjectCfg::SObjectCfgItem::cfgid, objectCfgItemAtOffset(), dawn::SObjectCfg::UObjectCfgId::s, and dawn::SObjectCfg::UObjectCfgId::size.

Here is the call graph for this function:
Here is the caller graph for this function:

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