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

Interface for describing static information about a device type/class. More...

#include <IDeviceSpecification.h>

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

Public Types

enum  DeviceCapabilities { DC_READ = 1 , DC_WRITE = 2 }
 Binary flags for describing capabilities of a device. More...
 

Public Member Functions

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.
 

Detailed Description

Interface for describing static information about a device type/class.

IDeviceSpecification defines the static properties and capabilities of a device type or model. Unlike IDeviceInstance which represents a specific device instance at runtime, IDeviceSpecification describes what all devices of a particular type can do.

This interface provides:

Key Concepts:
  • Device Class: High-level category (e.g., "Camera", "Sensor", "Motor")
  • Device Type ID: Unique identifier for specific model (e.g., "Logitech_MX_Master_3")
  • Device Type Name: Human-readable name (e.g., "Logitech MX Master 3 Wireless Mouse")
  • Capabilities: What operations the device supports (read, write, etc.)
  • Commands: Specific operations that can be executed on the device
Usage Example:
const IDeviceSpecification* pSpec = pController->GetDeviceStaticInfo(deviceTypeId);
// Check device class and identification
QByteArray deviceClass = pSpec->GetClass();
QString typeName = pSpec->GetTypeName();
// Check capabilities
int caps = pSpec->GetCapabilities();
bool canWrite = (caps & IDeviceSpecification::DC_WRITE) != 0;
// Get supported commands
const QByteArrayList& commands = pSpec->GetSupportedCommands();
// Get default configuration
const iprm::IParamsSet& defaultConfig = pSpec->GetDefaultConfiguration();
// Validate custom configuration
if (pSpec->AreConfigurationAccepted(customConfig))
{
// Configuration is valid
}
Interface for describing static information about a device type/class.
virtual QByteArray GetClass() const =0
Get device class.
virtual int GetCapabilities() const =0
Get capability flags for the device.
virtual const iprm::IParamsSet & GetDefaultConfiguration() const =0
Get the default device configuration.
@ DC_WRITE
Device supports write operations.
virtual QString GetTypeName() const =0
Get human-readable name of the device type.
virtual bool AreConfigurationAccepted(const iprm::IParamsSet &configuration) const =0
Check if device configuration is valid.
virtual const QByteArrayList & GetSupportedCommands() const =0
Get the list of commands supported by the device class.
See also
IDeviceInstance
ICompositeDeviceSpecification
IDeviceController

Definition at line 66 of file IDeviceSpecification.h.

Member Enumeration Documentation

◆ DeviceCapabilities

Binary flags for describing capabilities of a device.

These flags can be combined using bitwise OR to describe multiple capabilities.

Enumerator
DC_READ 

Device supports read operations.

DC_WRITE 

Device supports write operations.

Definition at line 75 of file IDeviceSpecification.h.

Member Function Documentation

◆ AreConfigurationAccepted()

virtual bool imtdev::IDeviceSpecification::AreConfigurationAccepted ( const iprm::IParamsSet &  configuration) const
pure virtual

Check if device configuration is valid.

Validates whether a given configuration parameter set is acceptable for this device type. This can check for required parameters, valid value ranges, and parameter compatibility.

Parameters
configurationConfiguration to validate
Returns
true if configuration is valid and accepted, false otherwise
See also
GetDefaultConfiguration()

◆ GetAttributes()

virtual const iattr::IAttributesProvider * imtdev::IDeviceSpecification::GetAttributes ( ) const
pure virtual

Get device static attributes provider.

Returns the attributes provider that manages static attributes applicable to all devices of this type. May return nullptr if no static attributes are defined.

Returns
Pointer to static attributes provider, or nullptr if not available
See also
iattr::IAttributesProvider

◆ GetCapabilities()

virtual int imtdev::IDeviceSpecification::GetCapabilities ( ) const
pure virtual

Get capability flags for the device.

Returns a bitwise combination of DeviceCapabilities flags indicating what operations this device type supports.

Returns
Capability flags (combination of DC_READ, DC_WRITE, etc.)
See also
DeviceCapabilities

◆ GetClass()

virtual QByteArray imtdev::IDeviceSpecification::GetClass ( ) const
pure virtual

Get device class.

Returns the high-level category or class of the device (e.g., "Mouse", "Camera", "Sensor"). Devices in the same class typically share similar functionality.

Returns
Device class identifier as a byte array

◆ GetDefaultConfiguration()

virtual const iprm::IParamsSet & imtdev::IDeviceSpecification::GetDefaultConfiguration ( ) const
pure virtual

Get the default device configuration.

Returns the default configuration parameters for this device type. This configuration can be used as a starting point for device initialization.

Returns
Reference to default configuration parameter set
See also
iprm::IParamsSet
AreConfigurationAccepted()

◆ GetSupportedCommands()

virtual const QByteArrayList & imtdev::IDeviceSpecification::GetSupportedCommands ( ) const
pure virtual

Get the list of commands supported by the device class.

Returns identifiers of all commands that can be executed on devices of this type via IDeviceAccessor::ExecuteCommand().

Returns
Reference to list of supported command identifiers
See also
IDeviceAccessor::ExecuteCommand()

◆ GetTypeId()

virtual QByteArray imtdev::IDeviceSpecification::GetTypeId ( ) const
pure virtual

Get unique device type ID.

Returns a unique identifier for this specific device type or model. This ID is used to distinguish between different models within the same device class.

Returns
Unique device type identifier (e.g., "Logitech_MX_Master_3")

◆ GetTypeName()

virtual QString imtdev::IDeviceSpecification::GetTypeName ( ) const
pure virtual

Get human-readable name of the device type.

Returns a user-friendly name suitable for display in user interfaces.

Returns
Human-readable device type name (e.g., "Logitech MX Master 3 Wireless Mouse")