openDAQ
Open data acquisition platform
IDeviceInfo Struct Referenceabstract

Contains standard information about an openDAQ device and device type. The Device Info object is a Property Object, allowing for custom String, Int, Bool, or Float-type properties to be added. More...

+ Inheritance diagram for IDeviceInfo:
+ Collaboration diagram for IDeviceInfo:

Detailed Description

Contains standard information about an openDAQ device and device type. The Device Info object is a Property Object, allowing for custom String, Int, Bool, or Float-type properties to be added.

The getter methods represent a standardized set of Device properties according to the OPC UA: Devices standard. Any additional String, Int, Bool, or Float-type properties can be added, using the appropriate Property Object "add property" method. Any other types of properties are invalid. Although Integer-type properties are valid additions, Selection properties cannot be added to Device Info.

As the Device Info object adheres to the OPC UA: Devices standard, it behaves differently than standard Property Objects. No metadata except the Value Type and Default Value are published via OPC UA, and this only said Property metadata is visible to any clients.

All fields - default (e.g. platform, manufacturer...) and custom are represented as either:

  • String-type properties
  • Integer-type properties
  • Bool-type properties
  • Float type properties

As such, listing all properties via Property Object methods, will return both the names of the default and custom properties. All default properties are initialized to an empty string except for RevisionCounter and Position that are integer properties and are thus initialized to '0'. The names of the properties are written in camelCase - for example "systemUuid", "parentMacAddress", "manufacturerUri".

If the DeviceInfo object is obtained from a device, or when listing available devices, the object is frozen (immutable). As such, Property Object setter methods cannot be used and will fail when called.

Public Member Functions

virtual ErrCode INTERFACE_FUNC getName (IString **name)=0
 Gets the name of the device. More...
 
virtual ErrCode INTERFACE_FUNC getConnectionString (IString **connectionString)=0
 Gets the string representation of a connection address used to connect to the device. More...
 
virtual ErrCode INTERFACE_FUNC getDeviceType (IDeviceType **deviceType)=0
 Gets a device type as an object providing type id, name, short description and default device configuration. By using default config object as a starting point, users can easily modify the preset properties to tailor the configuration of the client device accordingly. More...
 
virtual ErrCode INTERFACE_FUNC getManufacturer (IString **manufacturer)=0
 Gets the company that manufactured the device. More...
 
virtual ErrCode INTERFACE_FUNC getManufacturerUri (IString **manufacturerUri)=0
 Gets the unique identifier of the company that manufactured the device This identifier should be a fully qualified domain name; however, it may be a GUID or similar construct that ensures global uniqueness. More...
 
virtual ErrCode INTERFACE_FUNC getModel (IString **model)=0
 Gets the model of the device. More...
 
virtual ErrCode INTERFACE_FUNC getProductCode (IString **productCode)=0
 Gets the unique combination of numbers and letters used to identify the device. More...
 
virtual ErrCode INTERFACE_FUNC getDeviceRevision (IString **deviceRevision)=0
 Gets the revision level of the device. More...
 
virtual ErrCode INTERFACE_FUNC getHardwareRevision (IString **hardwareRevision)=0
 Gets the revision level of the hardware. More...
 
virtual ErrCode INTERFACE_FUNC getSoftwareRevision (IString **softwareRevision)=0
 Gets the revision level of the software component. More...
 
virtual ErrCode INTERFACE_FUNC getDeviceManual (IString **deviceManual)=0
 Gets the address of the user manual. It may be a pathname in the file system or a URL (Web address) More...
 
virtual ErrCode INTERFACE_FUNC getDeviceClass (IString **deviceClass)=0
 Gets the purpose of the device. For example "TestMeasurementDevice". More...
 
virtual ErrCode INTERFACE_FUNC getSerialNumber (IString **serialNumber)=0
 Gets the unique production number provided by the manufacturer. More...
 
virtual ErrCode INTERFACE_FUNC getProductInstanceUri (IString **productInstanceUri)=0
 Gets the globally unique resource identifier provided by the manufacturer. The recommended syntax of the ProductInstanceUri is: <ManufacturerUri>/<any string> where <any string> is unique among all instances using the same ManufacturerUri. More...
 
virtual ErrCode INTERFACE_FUNC getRevisionCounter (Int *revisionCounter)=0
 Gets the incremental counter indicating the number of times the configuration data has been modified. More...
 
virtual ErrCode INTERFACE_FUNC getAssetId (IString **id)=0
 Gets the asset ID of the device. Represents a user writable alphanumeric character sequence uniquely identifying a component. More...
 
virtual ErrCode INTERFACE_FUNC getMacAddress (IString **macAddress)=0
 Gets the Mac address of the device. More...
 
virtual ErrCode INTERFACE_FUNC getParentMacAddress (IString **macAddress)=0
 Gets the Mac address of the device's parent. More...
 
virtual ErrCode INTERFACE_FUNC getPlatform (IString **platform)=0
 Gets the platform of the device. The platform specifies whether real hardware is used or if the device is simulated. More...
 
virtual ErrCode INTERFACE_FUNC getPosition (Int *position)=0
 Gets the position of the device. The position specifies the position within a given system. For example in which slot or slice the device is in. More...
 
virtual ErrCode INTERFACE_FUNC getSystemType (IString **type)=0
 Gets the system type. The system type can, for example, be LayeredSystem, StandaloneSystem, or RackSystem. More...
 
virtual ErrCode INTERFACE_FUNC getSystemUuid (IString **uuid)=0
 Gets the system UUID that represents a unique ID of a system. All devices in a system share this UUID. More...
 
virtual ErrCode INTERFACE_FUNC getCustomInfoPropertyNames (IList **customInfoNames)=0
 Gets the list of property names that are not in the default set of Device info properties. Default properties are all info properties that have a corresponding getter method. More...
 
virtual ErrCode INTERFACE_FUNC getSdkVersion (IString **version)=0
 Gets the version of the SDK used to build said device. Can be empty if the device does not use the SDK as its firmware/is implemented at a protocol-level. More...
 
virtual ErrCode INTERFACE_FUNC getServerCapabilities (IList **serverCapabilities)=0
 Gets the list of server capabilities stored in device info. More...
 
virtual ErrCode INTERFACE_FUNC getLocation (IString **location)=0
 Gets the location of the device. More...
 
virtual ErrCode INTERFACE_FUNC getConfigurationConnectionInfo (IServerCapability **connectionInfo)=0
 Retrieves the configuration connection information of the server to which the client is connected. More...
 
virtual ErrCode INTERFACE_FUNC hasServerCapability (IString *protocolId, Bool *hasCapability)=0
 Checks whether the server capability with a given ID is available. More...
 
virtual ErrCode INTERFACE_FUNC getServerCapability (IString *protocolId, IServerCapability **serverCapability)=0
 Gets the server capability with a given ID. More...
 
- Public Member Functions inherited from IPropertyObject
virtual ErrCode INTERFACE_FUNC getClassName (IString **className)=0
 Gets the name of the class the Property object was constructed with. More...
 
virtual ErrCode INTERFACE_FUNC setPropertyValue (IString *propertyName, IBaseObject *value)=0
 Sets the value of the Property with the given name. More...
 
virtual ErrCode INTERFACE_FUNC getPropertyValue (IString *propertyName, IBaseObject **value)=0
 Gets the value of the Property with the given name. More...
 
virtual ErrCode INTERFACE_FUNC getPropertySelectionValue (IString *propertyName, IBaseObject **value)=0
 Gets the selected value of the Property, if the Property is a Selection property. More...
 
virtual ErrCode INTERFACE_FUNC clearPropertyValue (IString *propertyName)=0
 Clears the Property value from the Property object. More...
 
virtual ErrCode INTERFACE_FUNC hasProperty (IString *propertyName, Bool *hasProperty)=0
 Checks if the Property object contains a property named propertyName. More...
 
virtual ErrCode INTERFACE_FUNC getProperty (IString *propertyName, IProperty **property)=0
 Gets the Property with the given propertyName. More...
 
virtual ErrCode INTERFACE_FUNC addProperty (IProperty *property)=0
 Adds the property to the Property object. More...
 
virtual ErrCode INTERFACE_FUNC removeProperty (IString *propertyName)=0
 Removes the Property named propertyName from the Property object. More...
 
virtual ErrCode INTERFACE_FUNC getOnPropertyValueWrite (IString *propertyName, IEvent **event)=0
 Gets the Event that is triggered whenever a Property value is written to the Property named propertyName. More...
 
virtual ErrCode INTERFACE_FUNC getOnPropertyValueRead (IString *propertyName, IEvent **event)=0
 Gets the Event that is triggered whenever a Property value of a Property named propertyName is read. More...
 
virtual ErrCode INTERFACE_FUNC getVisibleProperties (IList **properties)=0
 Returns a list of visible properties contained in the Property object. More...
 
virtual ErrCode INTERFACE_FUNC getAllProperties (IList **properties)=0
 Returns a list of all properties contained in the Property object. More...
 
virtual ErrCode INTERFACE_FUNC setPropertyOrder (IList *orderedPropertyNames)=0
 Sets a custom order of properties as defined in the list of property names. More...
 
virtual ErrCode INTERFACE_FUNC beginUpdate ()=0
 Begins batch configuration of the object. More...
 
virtual ErrCode INTERFACE_FUNC endUpdate ()=0
 Ends batch configuration of the object. More...
 
virtual ErrCode INTERFACE_FUNC getUpdating (Bool *updating)=0
 Returns the state of batch configuration. More...
 
virtual ErrCode INTERFACE_FUNC getOnEndUpdate (IEvent **event)=0
 Gets the Event that is triggered whenever the batch configuration is applied. More...
 
virtual ErrCode INTERFACE_FUNC getPermissionManager (IPermissionManager **permissionManager)=0
 Gets the permission manager of property object. More...
 
- Public Member Functions inherited from IBaseObject
virtual ErrCode INTERFACE_FUNC borrowInterface (const IntfID &intfID, void **obj) const =0
 Returns another interface which is supported by the object without incrementing the reference count. More...
 
virtual ErrCode INTERFACE_FUNC dispose ()=0
 Disposes all references held by the object. More...
 
virtual ErrCode INTERFACE_FUNC getHashCode (SizeT *hashCode)=0
 Returns hash code of the object. More...
 
virtual ErrCode INTERFACE_FUNC equals (IBaseObject *other, Bool *equal) const =0
 Compares object to another object for equality. More...
 
virtual ErrCode INTERFACE_FUNC toString (CharPtr *str)=0
 Returns a string representation of the object. More...
 
- Public Member Functions inherited from IUnknown
virtual ErrCode INTERFACE_FUNC queryInterface (const IntfID &intfID, void **obj)=0
 Returns another interface which is supported by the object and increments the reference count. More...
 
virtual int INTERFACE_FUNC addRef ()=0
 Increments the reference count for an interface on an object. More...
 
virtual int INTERFACE_FUNC releaseRef ()=0
 Decrements the reference count for an interface on an object. More...
 

Member Function Documentation

◆ getAssetId()

virtual ErrCode INTERFACE_FUNC getAssetId ( IString **  id)
pure virtual

Gets the asset ID of the device. Represents a user writable alphanumeric character sequence uniquely identifying a component.

Parameters
[out]idThe asset ID of the device.

The ID is provided by the integrator or user of the device. It contains typically an identifier in a branch, use case or user specific naming scheme. This could be for example a reference to an electric scheme. The ID must be a string representation of an Int32 number.

◆ getConfigurationConnectionInfo()

virtual ErrCode INTERFACE_FUNC getConfigurationConnectionInfo ( IServerCapability **  connectionInfo)
pure virtual

Retrieves the configuration connection information of the server to which the client is connected.

Parameters
[out]connectionInfoThe server capability with the configuration connection information.

This method returns the configuration connection information of the server to which the client is connected. If the connection to the server is not established, the fields of the server capability object are empty.

◆ getConnectionString()

virtual ErrCode INTERFACE_FUNC getConnectionString ( IString **  connectionString)
pure virtual

Gets the string representation of a connection address used to connect to the device.

Parameters
[out]connectionStringThe string used to connect to the device.

◆ getCustomInfoPropertyNames()

virtual ErrCode INTERFACE_FUNC getCustomInfoPropertyNames ( IList **  customInfoNames)
pure virtual

Gets the list of property names that are not in the default set of Device info properties. Default properties are all info properties that have a corresponding getter method.

Parameters
[out]customInfoNamesThe list of names of custom properties.

◆ getDeviceClass()

virtual ErrCode INTERFACE_FUNC getDeviceClass ( IString **  deviceClass)
pure virtual

Gets the purpose of the device. For example "TestMeasurementDevice".

Parameters
[out]deviceClassThe class of the device.

◆ getDeviceManual()

virtual ErrCode INTERFACE_FUNC getDeviceManual ( IString **  deviceManual)
pure virtual

Gets the address of the user manual. It may be a pathname in the file system or a URL (Web address)

Parameters
[out]deviceManualThe manual of the device.

◆ getDeviceRevision()

virtual ErrCode INTERFACE_FUNC getDeviceRevision ( IString **  deviceRevision)
pure virtual

Gets the revision level of the device.

Parameters
[out]deviceRevisionThe device revision level.

◆ getDeviceType()

virtual ErrCode INTERFACE_FUNC getDeviceType ( IDeviceType **  deviceType)
pure virtual

Gets a device type as an object providing type id, name, short description and default device configuration. By using default config object as a starting point, users can easily modify the preset properties to tailor the configuration of the client device accordingly.

Parameters
[out]deviceTypeThe device type object

◆ getHardwareRevision()

virtual ErrCode INTERFACE_FUNC getHardwareRevision ( IString **  hardwareRevision)
pure virtual

Gets the revision level of the hardware.

Parameters
[out]hardwareRevisionThe hardware revision of the device.

◆ getLocation()

virtual ErrCode INTERFACE_FUNC getLocation ( IString **  location)
pure virtual

Gets the location of the device.

Parameters
[out]locationThe location of the device.

If the info object is obtained from a device that is already added (not through discovery), the location string value matches that of the device's "location" property.

◆ getMacAddress()

virtual ErrCode INTERFACE_FUNC getMacAddress ( IString **  macAddress)
pure virtual

Gets the Mac address of the device.

Parameters
[out]macAddressThe Mac address.

◆ getManufacturer()

virtual ErrCode INTERFACE_FUNC getManufacturer ( IString **  manufacturer)
pure virtual

Gets the company that manufactured the device.

Parameters
[out]manufacturerThe manufacturer of the device.

◆ getManufacturerUri()

virtual ErrCode INTERFACE_FUNC getManufacturerUri ( IString **  manufacturerUri)
pure virtual

Gets the unique identifier of the company that manufactured the device This identifier should be a fully qualified domain name; however, it may be a GUID or similar construct that ensures global uniqueness.

Parameters
[out]manufacturerUriThe manufacturer uri of the device.

◆ getModel()

virtual ErrCode INTERFACE_FUNC getModel ( IString **  model)
pure virtual

Gets the model of the device.

Parameters
[out]modelThe model of the device.

◆ getName()

virtual ErrCode INTERFACE_FUNC getName ( IString **  name)
pure virtual

Gets the name of the device.

Parameters
[out]nameThe name of the device.

If the info object is obtained from a device that is already added (not through discovery), the name string value matches that of the device's "Name" attribute.

◆ getParentMacAddress()

virtual ErrCode INTERFACE_FUNC getParentMacAddress ( IString **  macAddress)
pure virtual

Gets the Mac address of the device's parent.

Parameters
[out]macAddressThe parent's Mac address.

◆ getPlatform()

virtual ErrCode INTERFACE_FUNC getPlatform ( IString **  platform)
pure virtual

Gets the platform of the device. The platform specifies whether real hardware is used or if the device is simulated.

Parameters
[out]platformThe platform of the device.

◆ getPosition()

virtual ErrCode INTERFACE_FUNC getPosition ( Int *  position)
pure virtual

Gets the position of the device. The position specifies the position within a given system. For example in which slot or slice the device is in.

Parameters
[out]positionThe position of the device.

The Position should be a positive integer in the range supported by the UInt16 data type.

◆ getProductCode()

virtual ErrCode INTERFACE_FUNC getProductCode ( IString **  productCode)
pure virtual

Gets the unique combination of numbers and letters used to identify the device.

Parameters
[out]productCodeThe product code of the device.

◆ getProductInstanceUri()

virtual ErrCode INTERFACE_FUNC getProductInstanceUri ( IString **  productInstanceUri)
pure virtual

Gets the globally unique resource identifier provided by the manufacturer. The recommended syntax of the ProductInstanceUri is: <ManufacturerUri>/<any string> where <any string> is unique among all instances using the same ManufacturerUri.

Parameters
[out]productInstanceUriThe product instance uri of the device.

◆ getRevisionCounter()

virtual ErrCode INTERFACE_FUNC getRevisionCounter ( Int *  revisionCounter)
pure virtual

Gets the incremental counter indicating the number of times the configuration data has been modified.

Parameters
[out]revisionCounterThe revision counter of the device.

◆ getSdkVersion()

virtual ErrCode INTERFACE_FUNC getSdkVersion ( IString **  version)
pure virtual

Gets the version of the SDK used to build said device. Can be empty if the device does not use the SDK as its firmware/is implemented at a protocol-level.

Parameters
[out]versionThe SDK version.

◆ getSerialNumber()

virtual ErrCode INTERFACE_FUNC getSerialNumber ( IString **  serialNumber)
pure virtual

Gets the unique production number provided by the manufacturer.

Parameters
[out]serialNumberThe serial number of the device.

◆ getServerCapabilities()

virtual ErrCode INTERFACE_FUNC getServerCapabilities ( IList **  serverCapabilities)
pure virtual

Gets the list of server capabilities stored in device info.

Parameters
[out]serverCapabilitiesThe list of device supported protocols (List containing IServerCapability objects, representing the supported protocols along with their properties).

◆ getServerCapability()

virtual ErrCode INTERFACE_FUNC getServerCapability ( IString protocolId,
IServerCapability **  serverCapability 
)
pure virtual

Gets the server capability with a given ID.

Parameters
protocolIdThe ID of the server capability protocol.
[out]serverCapabilityThe server capability with the given ID.
Return values
OPENDAQ_ERR_NOTFOUNDif the server capability is not available.

◆ getSoftwareRevision()

virtual ErrCode INTERFACE_FUNC getSoftwareRevision ( IString **  softwareRevision)
pure virtual

Gets the revision level of the software component.

Parameters
[out]softwareRevisionThe software revision of the device.

◆ getSystemType()

virtual ErrCode INTERFACE_FUNC getSystemType ( IString **  type)
pure virtual

Gets the system type. The system type can, for example, be LayeredSystem, StandaloneSystem, or RackSystem.

Parameters
[out]typeThe system type of the device.

◆ getSystemUuid()

virtual ErrCode INTERFACE_FUNC getSystemUuid ( IString **  uuid)
pure virtual

Gets the system UUID that represents a unique ID of a system. All devices in a system share this UUID.

Parameters
[out]uuidThe unique ID of a system.

◆ hasServerCapability()

virtual ErrCode INTERFACE_FUNC hasServerCapability ( IString protocolId,
Bool *  hasCapability 
)
pure virtual

Checks whether the server capability with a given ID is available.

Parameters
protocolIdThe ID of the server capability protocol.
[out]hasCapabilityTrue if the protocol is available; False otherwise.