-
Martin Christoph Hierholzer authored
also make sure for DeviceModules to always return the same sub-module with the [] operator when passing the same sub-module name
Martin Christoph Hierholzer authoredalso make sure for DeviceModules to always return the same sub-module with the [] operator when passing the same sub-module name
DeviceModule.cc 1.25 KiB
/*
* DeviceModule.cc
*
* Created on: Jun 27, 2016
* Author: Martin Hierholzer
*/
#include <mtca4u/DeviceBackend.h>
#include "Application.h"
#include "DeviceModule.h"
namespace ChimeraTK {
DeviceModule::DeviceModule(const std::string& _deviceAliasOrURI, const std::string& _registerNamePrefix)
: Module(&(Application::getInstance()), "Device:"+_deviceAliasOrURI+":"+_registerNamePrefix, ""),
deviceAliasOrURI(_deviceAliasOrURI),
registerNamePrefix(_registerNamePrefix)
{}
/*********************************************************************************************************************/
VariableNetworkNode DeviceModule::operator()(const std::string& registerName, UpdateMode mode,
const std::type_info &valueType, size_t nElements) const {
return {deviceAliasOrURI, registerNamePrefix/registerName, mode, VariableDirection::invalid, valueType, nElements};
}
/*********************************************************************************************************************/
Module& DeviceModule::operator[](const std::string& moduleName) const {
if(subModules.count(moduleName) == 0) {
subModules[moduleName] = {deviceAliasOrURI, registerNamePrefix/moduleName};
}
return subModules[moduleName];
}
}