ChimeraTK-DeviceAccess-DoocsBackend 01.11.02
Loading...
Searching...
No Matches
DoocsBackendTimeStampAccessor.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <ChimeraTK/SupportedUserTypes.h>
6
7#include <doocs/EqCall.h>
8
9#include <type_traits>
10
11namespace ChimeraTK {
12
13 template<typename UserType>
15 public:
17
18 protected:
19 DoocsBackendTimeStampRegisterAccessor(boost::shared_ptr<DoocsBackend> backend, const std::string& path,
20 const std::string& registerPathName, AccessModeFlags flags);
21
22 void doPostRead(TransferType type, bool hasNewData) override;
23
24 bool isReadOnly() const override { return true; }
25
26 bool isReadable() const override { return true; }
27
28 bool isWriteable() const override { return false; }
29
30 bool doWriteTransfer(VersionNumber /*versionNumber = {}*/) override {
31 // do not throw again, already done in doPreWrite...
32 return false;
33 }
34
35 friend class DoocsBackend;
36 };
37
38 /**********************************************************************************************************************/
39
40 template<typename UserType>
42 boost::shared_ptr<DoocsBackend> backend, const std::string& path, const std::string& registerPathName,
43 AccessModeFlags flags)
44 : DoocsBackendRegisterAccessor<UserType>(backend, path, registerPathName, 1, 0, flags) {}
45
46 /**********************************************************************************************************************/
47
48 template<typename UserType>
52
53 /**********************************************************************************************************************/
54
55 template<typename UserType>
56 void DoocsBackendTimeStampRegisterAccessor<UserType>::doPostRead(TransferType type, bool hasNewData) {
58 if(!hasNewData) return;
59
61 auto timeStamp = d.get_timestamp();
62
63 UserType val = numericToUserType<UserType>(timeStamp.get_seconds_since_epoch());
64 NDRegisterAccessor<UserType>::buffer_2D[0][0] = val;
65 }
66
67} // namespace ChimeraTK
Backend to access DOOCS control system servers.
void doPostRead(TransferType, bool hasNewData) override
DoocsBackendTimeStampRegisterAccessor(boost::shared_ptr< DoocsBackend > backend, const std::string &path, const std::string &registerPathName, AccessModeFlags flags)
void doPostRead(TransferType type, bool hasNewData) override