Introduction
From the feedback discovery is still not straight forward and aligned working. Also systems can not be build up easily. This needs to be simplified.
Requirements
A common representation of a connection string.
Complete information from the discovery service.
Currently only these information are shared on mdns, if the openDAQ mechanism is used:
- name;
- manufacturer;
- model;
- serialNumber;
But the mechanism shall also provide to share these information via discovery:
- deviceClass
- hardwareRevision
- softwareRevision
- sdkVersion
- location
- user
- lockingContext
- systemType
- systemUUID
- Position
Changeable Parameters
User interaction
// Discovery of the devices
daq::ListPtr<daq::IDeviceDiscoveryInfo> availableDevicesInfo = instance.getAvailableDevices();
for (const auto& deviceDiscoveryInfo : availableDevicesInfo)
{
for (auto prop: device.getInfo().getAllProperties())
{
// see method in the article:
printProperty(device.getInfo(), prop);
}
}
// Output is read only and the property object is foozen,
// because it is read from the information send on the wire (mDNS)
// during the getAvailableDevices call.
// It fills up the DeviceDiscoveryInfoPtr, which inerhits
// from Property Object. Because of this, besides the standard
// definitions also other definition which
// are shared via the wire are added as properties to the Property Object.
// Property Name: name: MyHBKDevice (getName())
// Property Name: manufacturer: HBK (getManufacturer())
// Property Name: model: B201-10 (getModel())
// Property Name: deviceRevision: 1.0.0 (getDeviceRevision())
// Property Name: softwareRevision: v2.1.0 (getSoftwareRevision())
// Property Name: deviceClass: DAQ Amplifier (getDeviceClass())
// Property Name: serialNumber: V4-01 (getSerialNumber())
// Property Name: position: 2 (getPosition())
// Property Name: systemType: Layered (getSystemType())
// Property Name: systemUuid: ABSA-SDA1-... (getSystemUuid())
// Property Name: connectionString: daq://172.168.0.1 (getConnectionString())
// Property Name: sdkVersion: 3.20.0 (getSdkVersion())
// Property Name: Location: "MyHome" (getLocation())
// Property Name: UserName: "Nils" (getUserName())Type
// Helper Method
for (const auto& systems: availableDevicesInfo.getAvailableSystems())
{
for (const auto& system : systems)
{
std::cout << system.systemType << " has the UUID" << system.systemUuid << std::endl;
for (auto device : system .getInfo().getAllProperties())
{
printProperty(device.getInfo(), prop);
}
}
}
// Prints
//Layered has the UUID ABDC-AS12-...
// All devices associated with this system
Who shall implement the Feature
openDAQ
Contribution
Status
Feature Planned on Roadmap
Feature Request is discussed in Working Group
Feature declined.