hlcc 2.0.0-beta2+pre1
Loading...
Searching...
No Matches
trackCmdsImpl.hpp
Go to the documentation of this file.
1
9#ifndef HLCC_TRKSIM_TRACK_CMDS_IMPL_HPP
10#define HLCC_TRKSIM_TRACK_CMDS_IMPL_HPP
11
12#include <trksim/trackCtrEvents.rad.hpp>
13
14#include <trksim/logger.hpp>
15
16#include <rad/exceptions.hpp>
17#include <rad/smAdapter.hpp>
18
19namespace hlcc {
20namespace trksim {
21
22class TrackCmdsImpl : public msif::AsyncTrackCmds {
23public:
24 explicit TrackCmdsImpl(rad::SMAdapter& sm) : m_sm(sm) {
25 RAD_TRACE(GetLogger());
26
27 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::Preset>();
28 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SkyOffset>();
29 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::VelocityOffset>();
30 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetTargetAltAz>();
31 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetPointingPosition>();
32 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetPointingOffset>();
33 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetObservingWavelength>();
34 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::Stop>();
35 //m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetPointingModel>();
36 }
37
38 virtual ~TrackCmdsImpl() {
39 RAD_TRACE(GetLogger());
40 }
41
42 elt::mal::future<std::string> Preset(const std::shared_ptr<::msif::PresetArgs>& args) override {
43 RAD_TRACE(GetLogger());
44
45 auto ev = std::make_shared<TrackCtrEvents::Preset>(args->clone());
46 m_sm.PostEvent(ev);
47
48 return ev->GetPayload().GetReplyFuture();
49 }
50
51 elt::mal::future<std::string> SkyOffset(const std::shared_ptr<::msif::RaDec>& args) override {
52 RAD_TRACE(GetLogger());
53
54 auto ev = std::make_shared<TrackCtrEvents::SkyOffset>(args->clone());
55 m_sm.PostEvent(ev);
56
57 return ev->GetPayload().GetReplyFuture();
58 }
59
60 elt::mal::future<std::string> VelocityOffset(const std::shared_ptr<::msif::RaDec>& args) override {
61 RAD_TRACE(GetLogger());
62
63 auto ev = std::make_shared<TrackCtrEvents::VelocityOffset>(args->clone());
64 m_sm.PostEvent(ev);
65
66 return ev->GetPayload().GetReplyFuture();
67 }
68
69 elt::mal::future<std::string> SetTargetAltAz(const std::shared_ptr<::msif::AltAz>& args) override {
70
71 RAD_TRACE(GetLogger());
72
73 auto ev = std::make_shared<TrackCtrEvents::SetTargetAltAz>(args->clone());
74 m_sm.PostEvent(ev);
75
76 return ev->GetPayload().GetReplyFuture();
77 }
78
79 elt::mal::future<std::string> SetPointingPosition(const std::shared_ptr<::msif::XY>& args) override {
80
81 RAD_TRACE(GetLogger());
82
83 auto ev = std::make_shared<TrackCtrEvents::SetPointingPosition>(args->clone());
84 m_sm.PostEvent(ev);
85
86 return ev->GetPayload().GetReplyFuture();
87 }
88
89 elt::mal::future<std::string> SetPointingOffset(const std::shared_ptr<::msif::RaDec>& args) override {
90
91 RAD_TRACE(GetLogger());
92
93 auto ev = std::make_shared<TrackCtrEvents::SetPointingOffset>(args->clone());
94 m_sm.PostEvent(ev);
95
96 return ev->GetPayload().GetReplyFuture();
97 }
98
99 elt::mal::future<std::string> SetObservingWavelength(double args) override {
100 RAD_TRACE(GetLogger());
101
102 auto ev = std::make_shared<TrackCtrEvents::SetObservingWavelength>(args);
103 m_sm.PostEvent(ev);
104
105 return ev->GetPayload().GetReplyFuture();
106 }
107
108 elt::mal::future<std::string> Stop() override {
109 RAD_TRACE(GetLogger());
110
111 auto ev = std::make_shared<TrackCtrEvents::Stop>();
112 m_sm.PostEvent(ev);
113
114 return ev->GetPayload().GetReplyFuture();
115 }
116
117 /*
118 // This is probably better handels as a configuration command/(parameters)
119 elt::mal::future<std::string> SetPointingModel(const std::string& args) override {
120
121 RAD_TRACE(GetLogger());
122
123 auto ev = std::make_shared<TrackCtrEvents::SetPointingModel>(args);
124 m_sm.PostEvent(ev);
125
126 return ev->GetPayload().GetReplyFuture();
127 }
128 */
129
130private:
131 rad::SMAdapter& m_sm;
132};
133
134} // namespace trksim
135} // namespace hlcc
136
137#endif // HLCC_TRKSIM_TRACK_CMDS_IMPL_HPP
Definition: trackCmdsImpl.hpp:22
elt::mal::future< std::string > Stop() override
Definition: trackCmdsImpl.hpp:108
TrackCmdsImpl(rad::SMAdapter &sm)
Definition: trackCmdsImpl.hpp:24
elt::mal::future< std::string > VelocityOffset(const std::shared_ptr<::msif::RaDec > &args) override
Definition: trackCmdsImpl.hpp:60
elt::mal::future< std::string > SkyOffset(const std::shared_ptr<::msif::RaDec > &args) override
Definition: trackCmdsImpl.hpp:51
elt::mal::future< std::string > SetPointingPosition(const std::shared_ptr<::msif::XY > &args) override
Definition: trackCmdsImpl.hpp:79
elt::mal::future< std::string > Preset(const std::shared_ptr<::msif::PresetArgs > &args) override
Definition: trackCmdsImpl.hpp:42
virtual ~TrackCmdsImpl()
Definition: trackCmdsImpl.hpp:38
elt::mal::future< std::string > SetPointingOffset(const std::shared_ptr<::msif::RaDec > &args) override
Definition: trackCmdsImpl.hpp:89
elt::mal::future< std::string > SetObservingWavelength(double args) override
Definition: trackCmdsImpl.hpp:99
elt::mal::future< std::string > SetTargetAltAz(const std::shared_ptr<::msif::AltAz > &args) override
Definition: trackCmdsImpl.hpp:69
log4cplus::Logger & GetLogger()
Definition: logger.cpp:17
Coordinates conversion methods between equatorial and horizontal.
Definition: requestor.hpp:19
Default logger name.