ImagingTools Core SDK
Public Member Functions | List of all members
imtdev::ICompositeDeviceSpecificationabstract

Interface for composite device static information. More...

#include <ICompositeDeviceSpecification.h>

Inheritance diagram for imtdev::ICompositeDeviceSpecification:
imtdev::IDeviceSpecification

Public Member Functions

virtual const imtbase::ICollectionInfoGetSubDeviceList () const =0
 Get the list of sub-device specifications.
 
virtual const IDeviceSpecificationGetSubDeviceSpecification (const QByteArray &id) const =0
 Get specification for a specific sub-device.
 
- Public Member Functions inherited from imtdev::IDeviceSpecification
virtual QByteArray GetClass () const =0
 Get device class.
 
virtual QByteArray GetTypeId () const =0
 Get unique device type ID.
 
virtual QString GetTypeName () const =0
 Get human-readable name of the device type.
 
virtual const iattr::IAttributesProvider * GetAttributes () const =0
 Get device static attributes provider.
 
virtual const iprm::IParamsSet & GetDefaultConfiguration () const =0
 Get the default device configuration.
 
virtual bool AreConfigurationAccepted (const iprm::IParamsSet &configuration) const =0
 Check if device configuration is valid.
 
virtual int GetCapabilities () const =0
 Get capability flags for the device.
 
virtual const QByteArrayList & GetSupportedCommands () const =0
 Get the list of commands supported by the device class.
 

Additional Inherited Members

- Public Types inherited from imtdev::IDeviceSpecification
enum  DeviceCapabilities { DC_READ = 1 , DC_WRITE = 2 }
 Binary flags for describing capabilities of a device. More...
 

Detailed Description

Interface for composite device static information.

ICompositeDeviceSpecification extends IDeviceSpecification to describe static properties and capabilities of composite device types. It provides information about the sub-devices that can exist within the composite device structure.

While IDeviceSpecification describes a single device type, ICompositeDeviceSpecification adds metadata about the hierarchical structure, including specifications for each supported sub-device type.

Key Features:
  • Sub-Device Specifications: Access to static info for each sub-device type
  • Hierarchical Metadata: Information about parent-child relationships
  • Type Validation: Verify which sub-device types are supported
  • Default Configurations: Default sub-device configurations
Usage Example:
const ICompositeDeviceSpecification* pCompositeSpec =
pController->GetDeviceStaticInfo(compositeDeviceTypeId);
if (pCompositeSpec)
{
// Access base device specification properties
QByteArray deviceClass = pCompositeSpec->GetClass();
QString typeName = pCompositeSpec->GetTypeName();
// Get list of sub-device specifications
const imtbase::ICollectionInfo& subDeviceList =
pCompositeSpec->GetSubDeviceList();
// Iterate through sub-device specifications
for (int i = 0; i < subDeviceList.GetCount(); ++i)
{
QByteArray subDeviceId = GetSubDeviceId(subDeviceList, i);
// Get specification for this sub-device type
const IDeviceSpecification* pSubSpec =
pCompositeSpec->GetSubDeviceSpecification(subDeviceId);
if (pSubSpec)
{
QString subDeviceName = pSubSpec->GetTypeName();
QByteArrayList subCommands = pSubSpec->GetSupportedCommands();
// Sub-device specification might also be composite
auto pSubCompositeSpec =
dynamic_cast<const ICompositeDeviceSpecification*>(pSubSpec);
if (pSubCompositeSpec)
{
// Handle nested composite specification
}
}
}
}
Interface for composite device static information.
virtual const imtbase::ICollectionInfo & GetSubDeviceList() const =0
Get the list of sub-device specifications.
virtual const IDeviceSpecification * GetSubDeviceSpecification(const QByteArray &id) const =0
Get specification for a specific sub-device.
Interface for describing static information about a device type/class.
virtual QByteArray GetClass() const =0
Get device class.
virtual QString GetTypeName() const =0
Get human-readable name of the device type.
virtual const QByteArrayList & GetSupportedCommands() const =0
Get the list of commands supported by the device class.
Specification Hierarchy Example:
├── Supports: "StandardCamera" type
├── Supports: "SensorHub" type
├── StandardCameraSpec (IDeviceSpecification)
│ ├── Class: "Camera"
│ ├── Commands: "CAPTURE", "SET_EXPOSURE", ...
│ └── Capabilities: DC_READ | DC_WRITE
└── SensorHubSpec (ICompositeDeviceSpecification)
├── Class: "SensorArray"
├── TemperatureSensorSpec (IDeviceSpecification)
└── HumiditySensorSpec (IDeviceSpecification)
@ DC_WRITE
Device supports write operations.
@ DC_READ
Device supports read operations.
See also
IDeviceSpecification
ICompositeDeviceInstance
CCompositeDeviceInstanceBase

Definition at line 94 of file ICompositeDeviceSpecification.h.

Member Function Documentation

◆ GetSubDeviceList()

virtual const imtbase::ICollectionInfo & imtdev::ICompositeDeviceSpecification::GetSubDeviceList ( ) const
pure virtual

Get the list of sub-device specifications.

Returns a collection containing specifications for all sub-device types that are part of this composite device. Each specification describes the static properties of one sub-device type.

Returns
Reference to collection info containing sub-device specifications
See also
GetSubDeviceSpecification()
imtbase::ICollectionInfo

◆ GetSubDeviceSpecification()

virtual const IDeviceSpecification * imtdev::ICompositeDeviceSpecification::GetSubDeviceSpecification ( const QByteArray &  id) const
pure virtual

Get specification for a specific sub-device.

Retrieves the device specification that describes the static properties of a particular sub-device type within this composite device.

Parameters
idUnique identifier of the sub-device type
Returns
Pointer to sub-device specification, or nullptr if not found
See also
GetSubDeviceList()
IDeviceSpecification