Newer
Older
Martin Christoph Hierholzer
committed
/*
* DeviceModule.cc
*
* Created on: Jun 27, 2016
* Author: Martin Hierholzer
*/
#include <ChimeraTK/DeviceBackend.h>
Martin Christoph Hierholzer
committed
#include "Application.h"
#include "DeviceModule.h"
namespace ChimeraTK {
DeviceModule::DeviceModule(const std::string& _deviceAliasOrURI, const std::string& _registerNamePrefix)
: Module(&(Application::getInstance()), "Device:"+_deviceAliasOrURI+":"+_registerNamePrefix, ""),
Martin Christoph Hierholzer
committed
deviceAliasOrURI(_deviceAliasOrURI),
registerNamePrefix(_registerNamePrefix)
{}
Martin Christoph Hierholzer
committed
/*********************************************************************************************************************/
VariableNetworkNode DeviceModule::operator()(const std::string& registerName, UpdateMode mode,
Martin Christoph Hierholzer
committed
const std::type_info &valueType, size_t nElements) const {
return {deviceAliasOrURI, registerNamePrefix/registerName, mode, VariableDirection::invalid, valueType, nElements};
Martin Christoph Hierholzer
committed
}
/*********************************************************************************************************************/
Martin Christoph Hierholzer
committed
Module& DeviceModule::operator[](const std::string& moduleName) const {
if(subModules.count(moduleName) == 0) {
Martin Christoph Hierholzer
committed
subModules[moduleName] = {deviceAliasOrURI, registerNamePrefix/moduleName};
Martin Christoph Hierholzer
committed
}
return subModules[moduleName];
Martin Christoph Hierholzer
committed
}
Martin Christoph Hierholzer
committed
/*********************************************************************************************************************/
const Module& DeviceModule::virtualise() const {
return *this;
}