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

Interface for modifying device instance information. More...

#include <IEditableDeviceInstance.h>

Inheritance diagram for imtdev::IEditableDeviceInstance:
imtdev::IDeviceInstance imtdev::CDeviceInstanceBase imtdev::CCompositeDeviceInstanceBase

Public Member Functions

virtual bool SetIdentifier (IdentifierTypes idType, const QByteArray &id)=0
 Set device identifier.
 
virtual bool SetVersion (int versionId, quint32 version, const QString &description)=0
 Set device version information.
 
virtual iattr::IAttributesManager * GetAttributesManager ()=0
 Get device instance attributes manager.
 
- Public Member Functions inherited from imtdev::IDeviceInstance
virtual const IDeviceSpecificationGetDeviceSpecification () const =0
 Get device static info associated with device instance.
 
virtual QByteArray GetIdentifier (int identifierType) const =0
 Get the device identifier of the given type.
 
virtual const iser::IVersionInfo & GetVersion () const =0
 Get device instance version information.
 
virtual const iattr::IAttributesProvider * GetAttributes () const =0
 Get device instance attributes provider.
 

Additional Inherited Members

- Public Types inherited from imtdev::IDeviceInstance
enum  IdentifierTypes { IT_SERIAL }
 Types of device identifiers. More...
 
enum  VersionIds {
  VI_FIRMWARE_VERSION_MAJOR = iser::IVersionInfo::UserVersionId , VI_FIRMWARE_VERSION_MINOR , VI_FIRMWARE_VERSION_PATCH , VI_HARDWARE_VERSION_MAJOR ,
  VI_HARDWARE_VERSION_MINOR , VI_HARDWARE_VERSION_PATCH
}
 Version information identifiers. More...
 

Detailed Description

Interface for modifying device instance information.

IEditableDeviceInstance extends IDeviceInstance to provide mutable access to device instance properties. While IDeviceInstance provides read-only access, this interface allows modification of identifiers, version information, and attributes.

This interface is essential for:

Mutable Properties:
  • Identifiers: Set device identifiers like serial numbers
  • Version Information: Update firmware and hardware versions
  • Attributes: Modify device-specific attributes via attributes manager
Usage Example:
// Typically obtained from device controller or factory
// For implementation reference:
CDeviceInstanceBase* pEditableInstance = // your instance
// Or obtained from controller with editable interface:
// EditableDeviceInstancePtr pEditableInstance = ...;
// Set device identifier (e.g., serial number)
QByteArray serialNumber = "SN123456789";
pEditableInstance->SetIdentifier(
serialNumber);
// Set firmware version
pEditableInstance->SetVersion(
2,
"Major firmware version");
pEditableInstance->SetVersion(
1,
"Minor firmware version");
pEditableInstance->SetVersion(
0,
"Patch firmware version");
// Set hardware version
pEditableInstance->SetVersion(
1,
"Hardware revision");
// Access attributes manager to set device-specific attributes
iattr::IAttributesManager* pAttrMgr =
pEditableInstance->GetAttributesManager();
if (pAttrMgr)
{
pAttrMgr->SetAttribute("DeviceTemperature", QVariant(25.5));
pAttrMgr->SetAttribute("CalibrationDate", QVariant("2024-01-15"));
}
// Use as regular device instance (read-only access)
DeviceInstancePtr pInstance = pEditableInstance;
QByteArray id = pInstance->GetIdentifier(IDeviceInstance::IT_SERIAL);
Base implementation class for device instances.
virtual bool SetVersion(int versionId, quint32 version, const QString &description) override
Set version information component.
virtual iattr::IAttributesManager * GetAttributesManager() override
Get attributes manager for modification.
virtual bool SetIdentifier(IdentifierTypes idType, const QByteArray &id) override
Set device identifier.
virtual QByteArray GetIdentifier(int idType) const override
Get device identifier.
@ IT_SERIAL
Serial number identifier.
@ VI_FIRMWARE_VERSION_MAJOR
Major firmware version number.
@ VI_FIRMWARE_VERSION_MINOR
Minor firmware version number.
@ VI_HARDWARE_VERSION_MAJOR
Major hardware version number.
@ VI_FIRMWARE_VERSION_PATCH
Patch firmware version number.
Implementation Notes:
Implementations typically trigger change notifications when properties are modified, allowing observers to react to device instance updates.
See also
IDeviceInstance
CDeviceInstanceBase
IEditableCompositeDeviceInstance

Definition at line 93 of file IEditableDeviceInstance.h.

Member Function Documentation

◆ GetAttributesManager()

virtual iattr::IAttributesManager * imtdev::IEditableDeviceInstance::GetAttributesManager ( )
pure virtual

Get device instance attributes manager.

Returns the attributes manager that provides mutable access to device instance attributes. Unlike GetAttributes() which returns read-only provider, this returns the manager interface for modifications.

Returns
Pointer to attributes manager
See also
IDeviceInstance::GetAttributes()
iattr::IAttributesManager

Implemented in imtdev::CDeviceInstanceBase.

◆ SetIdentifier()

virtual bool imtdev::IEditableDeviceInstance::SetIdentifier ( IdentifierTypes  idType,
const QByteArray &  id 
)
pure virtual

Set device identifier.

Sets the device identifier of the specified type (e.g., serial number).

Parameters
idTypeType of identifier to set (e.g., IT_SERIAL)
idIdentifier value as a byte array
Returns
true if identifier was set successfully, false otherwise
See also
IDeviceInstance::GetIdentifier()
IDeviceInstance::IdentifierTypes

Implemented in imtdev::CDeviceInstanceBase.

◆ SetVersion()

virtual bool imtdev::IEditableDeviceInstance::SetVersion ( int  versionId,
quint32  version,
const QString &  description 
)
pure virtual

Set device version information.

Sets a version component (firmware or hardware version number) with an optional description.

Parameters
versionIdVersion component identifier (e.g., VI_FIRMWARE_VERSION_MAJOR)
versionVersion number value
descriptionHuman-readable version description
Returns
true if version was set successfully, false otherwise
See also
IDeviceInstance::GetVersion()
IDeviceInstance::VersionIds

Implemented in imtdev::CDeviceInstanceBase.