ChimeraTK-DeviceAccess-DoocsBackend
01.11.02
Loading...
Searching...
No Matches
DoocsBackendTimeStampAccessor.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
DoocsBackendRegisterAccessor.h
"
4
5
#include <ChimeraTK/SupportedUserTypes.h>
6
7
#include <doocs/EqCall.h>
8
9
#include <type_traits>
10
11
namespace
ChimeraTK
{
12
13
template
<
typename
UserType>
14
class
DoocsBackendTimeStampRegisterAccessor
:
public
DoocsBackendRegisterAccessor
<UserType> {
15
public
:
16
~DoocsBackendTimeStampRegisterAccessor
()
override
;
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>
41
DoocsBackendTimeStampRegisterAccessor<UserType>::DoocsBackendTimeStampRegisterAccessor
(
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>
49
DoocsBackendTimeStampRegisterAccessor<UserType>::~DoocsBackendTimeStampRegisterAccessor
() {
50
this->shutdown();
51
}
52
53
/**********************************************************************************************************************/
54
55
template
<
typename
UserType>
56
void
DoocsBackendTimeStampRegisterAccessor<UserType>::doPostRead
(TransferType type,
bool
hasNewData) {
57
DoocsBackendRegisterAccessor<UserType>::doPostRead
(type, hasNewData);
58
if
(!hasNewData)
return
;
59
60
doocs::EqData d =
DoocsBackendRegisterAccessor<UserType>::dst
;
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
DoocsBackendRegisterAccessor.h
ChimeraTK::DoocsBackend
Backend to access DOOCS control system servers.
Definition
DoocsBackend.h:57
ChimeraTK::DoocsBackendRegisterAccessor
Definition
DoocsBackendRegisterAccessor.h:74
ChimeraTK::DoocsBackendRegisterAccessor::doPostRead
void doPostRead(TransferType, bool hasNewData) override
Definition
DoocsBackendRegisterAccessor.h:107
ChimeraTK::DoocsBackendTimeStampRegisterAccessor
Definition
DoocsBackendTimeStampAccessor.h:14
ChimeraTK::DoocsBackendTimeStampRegisterAccessor::isReadable
bool isReadable() const override
Definition
DoocsBackendTimeStampAccessor.h:26
ChimeraTK::DoocsBackendTimeStampRegisterAccessor::DoocsBackendTimeStampRegisterAccessor
DoocsBackendTimeStampRegisterAccessor(boost::shared_ptr< DoocsBackend > backend, const std::string &path, const std::string ®isterPathName, AccessModeFlags flags)
Definition
DoocsBackendTimeStampAccessor.h:41
ChimeraTK::DoocsBackendTimeStampRegisterAccessor::isReadOnly
bool isReadOnly() const override
Definition
DoocsBackendTimeStampAccessor.h:24
ChimeraTK::DoocsBackendTimeStampRegisterAccessor::doPostRead
void doPostRead(TransferType type, bool hasNewData) override
Definition
DoocsBackendTimeStampAccessor.h:56
ChimeraTK::DoocsBackendTimeStampRegisterAccessor::~DoocsBackendTimeStampRegisterAccessor
~DoocsBackendTimeStampRegisterAccessor() override
Definition
DoocsBackendTimeStampAccessor.h:49
ChimeraTK::DoocsBackendTimeStampRegisterAccessor::doWriteTransfer
bool doWriteTransfer(VersionNumber) override
Definition
DoocsBackendTimeStampAccessor.h:30
ChimeraTK::DoocsBackendTimeStampRegisterAccessor::isWriteable
bool isWriteable() const override
Definition
DoocsBackendTimeStampAccessor.h:28
ChimeraTK
Definition
spec_DoocsBackend.dox:2
sources
ChimeraTK-DeviceAccess-DoocsBackend
include
DoocsBackendTimeStampAccessor.h
Generated by
1.9.8