Device-ID-based configuration manager component.
CDeviceIdBasedConfigurationManagerComp implements IDeviceConfigurationManager to provide centralized storage and retrieval of device-specific configurations indexed by device ID. It supports factory-based deserialization and serialization for configuration persistence across sessions.
- Purpose:
- Manages the lifecycle of device configurations including:
- Storage of configuration parameter sets per device ID
- Factory-based deserialization for loading saved configurations
- Serialization support for persisting configurations
- Validation against device specifications
- Change notifications when configurations are modified
- Key Features:
- Device-ID Indexed Storage: QMap-based storage keyed by device ID
- Factory Pattern: Multiple configuration factories for different device types
- Serialization: Implements iser::ISerializable for save/load support
- Validation: Uses device controller to validate configurations
- Change Tracking: Notifies observers when configurations change
- Type Association: Stores device type ID with each configuration
- Component Configuration:
- DeviceController: Reference to IDeviceController for validation and device info
- ConfigurationFactory: Multi-reference to configuration factories for deserialization
- Storage Structure:
Internal Storage:
{
"DEVICE_001": {
deviceTypeId: "StandardCamera",
configuration: {BaudRate: 115200, Exposure: 100, ...}
},
"DEVICE_002": {
deviceTypeId: "TemperatureSensor",
configuration: {SampleRate: 10, Units: "Celsius", ...}
}
}
- Usage Pattern:
iprm::CParamsSet* pConfig =
pConfig->SetParamValue("BaudRate", 115200);
pConfigMgr->SetDeviceConfiguration("DEVICE_001", *pConfig);
DeviceConfigurationPtr pStoredConfig =
pConfigMgr->GetDeviceConfiguration("DEVICE_001");
iser::IArchive& archive =
pConfigMgr->Serialize(archive);
Device-ID-based configuration manager component.
- Serialization:
- Configurations are serialized with their associated device type IDs, enabling proper factory-based deserialization when loading from persistent storage.
- See also
- IDeviceConfigurationManager
-
CDeviceIdBasedConfigurationComp
-
iser::ISerializable
Definition at line 96 of file CDeviceIdBasedConfigurationManagerComp.h.