HLCC Documentation 2.2.0
Loading...
Searching...
No Matches
trackCmdsImpl.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2020-2025 European Southern Observatory (ESO)
2//
3// SPDX-License-Identifier: LGPL-3.0-only
4
13#ifndef HLCC_TRKSIM_TRACK_CMDS_IMPL_HPP
14#define HLCC_TRKSIM_TRACK_CMDS_IMPL_HPP
15
16#include <trksim/trackCtrEvents.rad.hpp>
17
18#include <trksim/logger.hpp>
19
20#include <rad/exceptions.hpp>
21#include <rad/smAdapter.hpp>
22
23namespace hlcc {
24namespace trksim {
25
26class TrackCmdsImpl : public::msif::AsyncTrackCmds {
27public:
28 explicit TrackCmdsImpl(rad::SMAdapter& sm) : m_sm(sm) {
29 RAD_TRACE(GetLogger());
30
31 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::Preset>();
32 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SkyOffset>();
33 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::VelocityOffset>();
34 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetTargetAltAz>();
35 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetPointingPosition>();
36 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetPointingOffset>();
37 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetObservingWavelength>();
38 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::Stop>();
39 //m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetPointingModel>();
40 }
41
42 virtual ~TrackCmdsImpl() {
43 RAD_TRACE(GetLogger());
44 }
45
46 elt::mal::future<std::string> Preset(const std::shared_ptr<::msif::PresetArgs>& args) override {
47 RAD_TRACE(GetLogger());
48 LOG4CPLUS_INFO(GetLogger(), "Received Preset with: Ra " << args->getRa() << ", Dec "
49 << args->getDec() << ", Epoch " << args->getEpoch()
50 << ", Rshift" << args->getRshift() << ", Radvel " << args->getRadvel()
51 << ", Parallax " << args->getParallax()
52 << ", Proper_motion_ra " << args->getProper_motion_ra()
53 << ", Proper_motion_dec " << args->getProper_motion_dec()
54 << ", Velocity_offset_ra " << args->getVelocity_offset_ra()
55 << ", Velocity_offset_dec " << args->getVelocity_offset_dec());
56 auto ev = std::make_shared<TrackCtrEvents::Preset>(args->clone());
57 m_sm.PostEvent(ev);
58
59 return ev->GetPayload().GetReplyFuture();
60 }
61
62 elt::mal::future<std::string> SkyOffset(const std::shared_ptr<::msif::RaDec>& args) override {
63 RAD_TRACE(GetLogger());
64 LOG4CPLUS_INFO(GetLogger(), "Received SkyOffset with: Ra " << args->getRa()
65 << ", Dec " << args->getDec());
66 auto ev = std::make_shared<TrackCtrEvents::SkyOffset>(args->clone());
67 m_sm.PostEvent(ev);
68
69 return ev->GetPayload().GetReplyFuture();
70 }
71
72 elt::mal::future<std::string> VelocityOffset(const std::shared_ptr<::msif::RaDec>& args) override {
73 RAD_TRACE(GetLogger());
74 LOG4CPLUS_INFO(GetLogger(), "Received VelocityOffset with: Ra " << args->getRa()
75 << ", Dec " << args->getDec());
76 auto ev = std::make_shared<TrackCtrEvents::VelocityOffset>(args->clone());
77 m_sm.PostEvent(ev);
78
79 return ev->GetPayload().GetReplyFuture();
80 }
81
82 elt::mal::future<std::string> SetTargetAltAz(const std::shared_ptr<::msif::AltAz>& args) override {
83
84 RAD_TRACE(GetLogger());
85 LOG4CPLUS_INFO(GetLogger(), "Received SetTargetAltAz with: Alt " << args->getAlt()
86 << ", Az " << args->getAz());
87 auto ev = std::make_shared<TrackCtrEvents::SetTargetAltAz>(args->clone());
88 m_sm.PostEvent(ev);
89
90 return ev->GetPayload().GetReplyFuture();
91 }
92
93 elt::mal::future<std::string> SetPointingPosition(const std::shared_ptr<::msif::XY>& args) override {
94
95 RAD_TRACE(GetLogger());
96 LOG4CPLUS_INFO(GetLogger(), "Received SetTargetAltAz with: X " << args->getX()
97 << ", Y " << args->getY());
98 auto ev = std::make_shared<TrackCtrEvents::SetPointingPosition>(args->clone());
99 m_sm.PostEvent(ev);
100
101 return ev->GetPayload().GetReplyFuture();
102 }
103
104 elt::mal::future<std::string> SetPointingOffset(const std::shared_ptr<::msif::RaDec>& args) override {
105
106 RAD_TRACE(GetLogger());
107 LOG4CPLUS_INFO(GetLogger(), "Received SetPointingOffset with: Ra " << args->getRa()
108 << ", Dec " << args->getDec());
109
110 auto ev = std::make_shared<TrackCtrEvents::SetPointingOffset>(args->clone());
111 m_sm.PostEvent(ev);
112
113 return ev->GetPayload().GetReplyFuture();
114 }
115
116 elt::mal::future<std::string> SetObservingWavelength(double wavelenght) override {
117 RAD_TRACE(GetLogger());
118 LOG4CPLUS_INFO(GetLogger(), "Received SetObservingWavelength with: Wavelenght " << wavelenght);
119
120 auto ev = std::make_shared<TrackCtrEvents::SetObservingWavelength>(wavelenght);
121 m_sm.PostEvent(ev);
122
123 return ev->GetPayload().GetReplyFuture();
124 }
125
126 elt::mal::future<std::string> Stop() override {
127 RAD_TRACE(GetLogger());
128 LOG4CPLUS_INFO(GetLogger(), "Received Stop");
129 auto ev = std::make_shared<TrackCtrEvents::Stop>();
130 m_sm.PostEvent(ev);
131
132 return ev->GetPayload().GetReplyFuture();
133 }
134
135 /*
136 // This is probably better handels as a configuration command/(parameters)
137 elt::mal::future<std::string> SetPointingModel(const std::string& args) override {
138
139 RAD_TRACE(GetLogger());
140
141 auto ev = std::make_shared<TrackCtrEvents::SetPointingModel>(args);
142 m_sm.PostEvent(ev);
143
144 return ev->GetPayload().GetReplyFuture();
145 }
146 */
147
148private:
149 rad::SMAdapter& m_sm;
150};
151
152} // namespace trksim
153} // namespace hlcc
154
155#endif // HLCC_TRKSIM_TRACK_CMDS_IMPL_HPP
Definition trackCmdsImpl.hpp:26
elt::mal::future< std::string > Stop() override
Definition trackCmdsImpl.hpp:126
TrackCmdsImpl(rad::SMAdapter &sm)
Definition trackCmdsImpl.hpp:28
elt::mal::future< std::string > VelocityOffset(const std::shared_ptr<::msif::RaDec > &args) override
Definition trackCmdsImpl.hpp:72
elt::mal::future< std::string > SkyOffset(const std::shared_ptr<::msif::RaDec > &args) override
Definition trackCmdsImpl.hpp:62
elt::mal::future< std::string > SetPointingPosition(const std::shared_ptr<::msif::XY > &args) override
Definition trackCmdsImpl.hpp:93
elt::mal::future< std::string > Preset(const std::shared_ptr<::msif::PresetArgs > &args) override
Definition trackCmdsImpl.hpp:46
elt::mal::future< std::string > SetObservingWavelength(double wavelenght) override
Definition trackCmdsImpl.hpp:116
virtual ~TrackCmdsImpl()
Definition trackCmdsImpl.hpp:42
elt::mal::future< std::string > SetPointingOffset(const std::shared_ptr<::msif::RaDec > &args) override
Definition trackCmdsImpl.hpp:104
elt::mal::future< std::string > SetTargetAltAz(const std::shared_ptr<::msif::AltAz > &args) override
Definition trackCmdsImpl.hpp:82
log4cplus::Logger & GetLogger()
Definition logger.cpp:21
Definition ccsinsoldb.hpp:10
Default logger name.