HLCC Documentation 3.0.1
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::UpdateTarget>();
33 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SkyOffset>();
34 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::VelocityOffset>();
35 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetTargetAltAz>();
36 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetPointingPosition>();
37 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetPointingOffset>();
38 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetObservingWavelength>();
39 m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::Stop>();
40 //m_sm.RegisterDefaultRequestRejectHandler<TrackCtrEvents::SetPointingModel>();
41 }
42
43 virtual ~TrackCmdsImpl() {
44 RAD_TRACE(GetLogger());
45 }
46
47 elt::mal::future<std::string> Preset(const std::shared_ptr<::ccscommonif::TargetData>& args) override {
48 RAD_TRACE(GetLogger());
49 LOG4CPLUS_INFO(GetLogger(), "Received Preset with: Ra " << args->getRa() << ", Dec "
50 << args->getDec() << ", Epoch " << args->getEpoch()
51 << ", Rshift" << args->getRshift() << ", Radvel " << args->getRadvel()
52 << ", Parallax " << args->getParallax()
53 << ", Proper_motion_ra " << args->getProper_motion_ra()
54 << ", Proper_motion_dec " << args->getProper_motion_dec()
55 << ", Velocity_offset_ra " << args->getVelocity_offset_ra()
56 << ", Velocity_offset_dec " << args->getVelocity_offset_dec()
57 << ", Wavelength " << args->getWavelength()
58 << ", Time_ephem_utc " << args->getTime_ephem_utc());
59 auto ev = std::make_shared<TrackCtrEvents::Preset>(args->clone());
60 m_sm.PostEvent(ev);
61
62 return ev->GetPayload().GetReplyFuture();
63 }
64
65 elt::mal::future<std::string> UpdateTarget(const std::shared_ptr<::ccscommonif::TargetData>& args) override {
66 RAD_TRACE(GetLogger());
67
68 LOG4CPLUS_INFO(GetLogger(), "Received UpdateTarget with: Ra " << args->getRa() << ", Dec "
69 << args->getDec() << ", Epoch " << args->getEpoch()
70 << ", Rshift" << args->getRshift() << ", Radvel " << args->getRadvel()
71 << ", Parallax " << args->getParallax()
72 << ", Proper_motion_ra " << args->getProper_motion_ra()
73 << ", Proper_motion_dec " << args->getProper_motion_dec()
74 << ", Velocity_offset_ra " << args->getVelocity_offset_ra()
75 << ", Velocity_offset_dec " << args->getVelocity_offset_dec()
76 << ", Wavelength " << args->getWavelength()
77 << ", Time_ephem_utc " << args->getTime_ephem_utc());
78
79 auto ev = std::make_shared<TrackCtrEvents::UpdateTarget>(args->clone());
80 m_sm.PostEvent(ev);
81
82 return ev->GetPayload().GetReplyFuture();
83 }
84
85 elt::mal::future<std::string> SkyOffset(const std::shared_ptr<::ccscommonif::RaDec>& args) override {
86 RAD_TRACE(GetLogger());
87 LOG4CPLUS_INFO(GetLogger(), "Received SkyOffset with: Ra " << args->getRa()
88 << ", Dec " << args->getDec());
89 auto ev = std::make_shared<TrackCtrEvents::SkyOffset>(args->clone());
90 m_sm.PostEvent(ev);
91
92 return ev->GetPayload().GetReplyFuture();
93 }
94
95 elt::mal::future<std::string> VelocityOffset(const std::shared_ptr<::ccscommonif::RaDec>& args) override {
96 RAD_TRACE(GetLogger());
97 LOG4CPLUS_INFO(GetLogger(), "Received VelocityOffset with: Ra " << args->getRa()
98 << ", Dec " << args->getDec());
99 auto ev = std::make_shared<TrackCtrEvents::VelocityOffset>(args->clone());
100 m_sm.PostEvent(ev);
101
102 return ev->GetPayload().GetReplyFuture();
103 }
104
105 elt::mal::future<std::string> SetTargetAltAz(const std::shared_ptr<::ccscommonif::AltAz>& args) override {
106
107 RAD_TRACE(GetLogger());
108 LOG4CPLUS_INFO(GetLogger(), "Received SetTargetAltAz with: Alt " << args->getAlt()
109 << ", Az " << args->getAz());
110 auto ev = std::make_shared<TrackCtrEvents::SetTargetAltAz>(args->clone());
111 m_sm.PostEvent(ev);
112
113 return ev->GetPayload().GetReplyFuture();
114 }
115
116 elt::mal::future<std::string> SetPointingPosition(const std::shared_ptr<::msif::XY>& args) override {
117
118 RAD_TRACE(GetLogger());
119 LOG4CPLUS_INFO(GetLogger(), "Received SetTargetAltAz with: X " << args->getX()
120 << ", Y " << args->getY());
121 auto ev = std::make_shared<TrackCtrEvents::SetPointingPosition>(args->clone());
122 m_sm.PostEvent(ev);
123
124 return ev->GetPayload().GetReplyFuture();
125 }
126
127 elt::mal::future<std::string> SetPointingOffset(const std::shared_ptr<::msif::DeltaRaDec>& args) override {
128
129 RAD_TRACE(GetLogger());
130 LOG4CPLUS_INFO(GetLogger(), "Received SetPointingOffset with: DeltaRa " << args->getDelta_ra()
131 << ", DeltaDec " << args->getDelta_dec());
132
133 auto ev = std::make_shared<TrackCtrEvents::SetPointingOffset>(args->clone());
134 m_sm.PostEvent(ev);
135
136 return ev->GetPayload().GetReplyFuture();
137 }
138
139 [[deprecated("SetObservingWavelength is Deprecated - Use UpdateTarget")]]
140 elt::mal::future<std::string> SetObservingWavelength(double wavelenght) override {
141 RAD_TRACE(GetLogger());
142 LOG4CPLUS_INFO(GetLogger(), "Received SetObservingWavelength with: Wavelenght " << wavelenght);
143
144 auto ev = std::make_shared<TrackCtrEvents::SetObservingWavelength>(wavelenght);
145 m_sm.PostEvent(ev);
146
147 return ev->GetPayload().GetReplyFuture();
148 }
149
150 elt::mal::future<std::string> Stop() override {
151 RAD_TRACE(GetLogger());
152 LOG4CPLUS_INFO(GetLogger(), "Received Stop");
153 auto ev = std::make_shared<TrackCtrEvents::Stop>();
154 m_sm.PostEvent(ev);
155
156 return ev->GetPayload().GetReplyFuture();
157 }
158
159 /*
160 // This is probably better handels as a configuration command/(parameters)
161 elt::mal::future<std::string> SetPointingModel(const std::string& args) override {
162
163 RAD_TRACE(GetLogger());
164
165 auto ev = std::make_shared<TrackCtrEvents::SetPointingModel>(args);
166 m_sm.PostEvent(ev);
167
168 return ev->GetPayload().GetReplyFuture();
169 }
170 */
171
172private:
173 rad::SMAdapter& m_sm;
174};
175
176} // namespace trksim
177} // namespace hlcc
178
179#endif // HLCC_TRKSIM_TRACK_CMDS_IMPL_HPP
elt::mal::future< std::string > Stop() override
Definition trackCmdsImpl.hpp:150
TrackCmdsImpl(rad::SMAdapter &sm)
Definition trackCmdsImpl.hpp:28
elt::mal::future< std::string > SetTargetAltAz(const std::shared_ptr<::ccscommonif::AltAz > &args) override
Definition trackCmdsImpl.hpp:105
elt::mal::future< std::string > SkyOffset(const std::shared_ptr<::ccscommonif::RaDec > &args) override
Definition trackCmdsImpl.hpp:85
elt::mal::future< std::string > UpdateTarget(const std::shared_ptr<::ccscommonif::TargetData > &args) override
Definition trackCmdsImpl.hpp:65
elt::mal::future< std::string > SetPointingPosition(const std::shared_ptr<::msif::XY > &args) override
Definition trackCmdsImpl.hpp:116
elt::mal::future< std::string > VelocityOffset(const std::shared_ptr<::ccscommonif::RaDec > &args) override
Definition trackCmdsImpl.hpp:95
elt::mal::future< std::string > Preset(const std::shared_ptr<::ccscommonif::TargetData > &args) override
Definition trackCmdsImpl.hpp:47
elt::mal::future< std::string > SetObservingWavelength(double wavelenght) override
Definition trackCmdsImpl.hpp:140
elt::mal::future< std::string > SetPointingOffset(const std::shared_ptr<::msif::DeltaRaDec > &args) override
Definition trackCmdsImpl.hpp:127
virtual ~TrackCmdsImpl()
Definition trackCmdsImpl.hpp:43
Definition actionMgr.cpp:35
log4cplus::Logger & GetLogger()
Definition logger.cpp:21
Definition ccsinsoldb.hpp:10
Default logger name.