ChimeraTK-DeviceAccess 03.25.00
Loading...
Searching...
No Matches
DummyForAreaHandshake.cc
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Deutsches Elektronen-Synchrotron DESY, MSK, ChimeraTK Project <chimeratk-support@desy.de>
2// SPDX-License-Identifier: LGPL-3.0-or-later
3
4#include "BackendFactory.h"
5#include "DummyBackend.h"
6
7namespace ChimeraTK {
8 using namespace ChimeraTK;
9}
10using namespace ChimeraTK;
11
14
15 static boost::shared_ptr<DeviceBackend> createInstance(std::string, std::map<std::string, std::string> parameters) {
16 return returnInstance<DummyForAreaHandshakeBackend>(
17 parameters.at("map"), convertPathRelativeToDmapToAbs(parameters.at("map")));
18 }
19
26
27 void write(uint64_t bar, uint64_t address, int32_t const* data, size_t sizeInBytes) {
28 setBusy();
29 DummyBackend::write(bar, address, data, sizeInBytes);
30 };
31 void setBusy() {
32 // APP.1.STATUS of tests/SubdeviceTarget.map
33 uint64_t address = 8;
34 int32_t data = 1;
35 DummyBackend::write(1, address, &data, 4);
36 }
37};
38
39static DummyForAreaHandshakeBackend::BackendRegisterer gDFAHBackendRegisterer;
static BackendFactory & getInstance()
Static function to get an instance of factory.
void registerBackendType(const std::string &backendType, boost::shared_ptr< DeviceBackend >(*creatorFunction)(std::string address, std::map< std::string, std::string > parameters), const std::vector< std::string > &sdmParameterNames={}, const std::string &deviceAccessVersion=CHIMERATK_DEVICEACCESS_VERSION)
Register a backend by the name backendType with the given creatorFunction.
The dummy device opens a mapping file instead of a device, and implements all registers defined in th...
void write(uint64_t bar, uint64_t address, int32_t const *data, size_t sizeInBytes) override
Write function to be implemented by backends.
DummyBackend(const std::string &mapFileName, const std::string &dataConsistencyKeyDescriptor="")
static std::string convertPathRelativeToDmapToAbs(std::string const &mapfileName)
static boost::shared_ptr< DeviceBackend > createInstance(std::string, std::map< std::string, std::string > parameters)
void write(uint64_t bar, uint64_t address, int32_t const *data, size_t sizeInBytes)
Write function to be implemented by backends.