13#ifndef pfssimhlcc_GP_CMDS_IMPL_HPP
14#define pfssimhlcc_GP_CMDS_IMPL_HPP
16#include <pfssimhlcc/gpCtrEvents.rad.hpp>
20#include <rad/exceptions.hpp>
21#include <rad/smAdapter.hpp>
30 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::MoveGPTo>();
31 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::MoveGpToNamedPos>();
32 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::Park>();
33 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::StartControlling>();
34 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::MoveRaw>();
35 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::StartControlling>();
36 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::StopControlling>();
37 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::AssignFixTrajectory>();
38 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::AssignSkyTrajectory>();
39 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::StopFollowingTrajectory>();
40 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::SetTarget>();
41 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::UpdateTarget>();
42 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::SetHierarchy>();
49 elt::mal::future<std::string>
ForwardCommand(const ::pfsif::GpForwardedCommandId command)
override {
51 LOG4CPLUS_INFO(
GetLogger(),
"Received ForwardCommand with: command_id " << command);
52 auto ev = std::make_shared<GpCtrEvents::ForwardCommand>(command);
55 return ev->GetPayload().GetReplyFuture();
58 elt::mal::future<std::string>
MoveGpTo(
const std::shared_ptr<::pfsif::GpXY>& args)
override {
60 LOG4CPLUS_INFO(
GetLogger(),
"Received MoveGPTo with: id " << args->getId() <<
", X "
61 << args->getX() <<
", Y " << args->getY());
62 auto ev = std::make_shared<GpCtrEvents::MoveGPTo>(args->clone());
65 return ev->GetPayload().GetReplyFuture();
68 elt::mal::future<std::string>
MoveGpToNamedPos(
const std::shared_ptr<::pfsif::GpNamedPos>& args)
override {
70 LOG4CPLUS_INFO(
GetLogger(),
"Received MoveGpToNamedPos with: id " << args->getId()
71 <<
", Name " << args->getName());
73 auto ev = std::make_shared<GpCtrEvents::MoveGpToNamedPos>(args->clone());
76 return ev->GetPayload().GetReplyFuture();
79 elt::mal::future<std::string>
MoveRaw(
const std::shared_ptr<::pfsif::GpRaw>& args)
override {
81 LOG4CPLUS_INFO(
GetLogger(),
"Received MoveRaw with: id " << args->getId() <<
", Az "
82 << args->getAz() <<
", Pom " << args->getPom() <<
", Sar "
83 << args->getSar() <<
", Trom " << args->getTrom());
85 auto ev = std::make_shared<GpCtrEvents::MoveRaw>(args->clone());
88 return ev->GetPayload().GetReplyFuture();
91 elt::mal::future<std::string>
Park(const ::pfsif::GuideProbeId args)
override {
93 LOG4CPLUS_INFO(
GetLogger(),
"Receiver Park with: id " << args);
95 auto ev = std::make_shared<GpCtrEvents::Park>(args);
98 return ev->GetPayload().GetReplyFuture();
103 LOG4CPLUS_INFO(
GetLogger(),
"Received StartControlling");
104 auto ev = std::make_shared<GpCtrEvents::StartControlling>();
107 return ev->GetPayload().GetReplyFuture();
112 LOG4CPLUS_INFO(
GetLogger(),
"Received StopControlling");
114 auto ev = std::make_shared<GpCtrEvents::StopControlling>();
117 return ev->GetPayload().GetReplyFuture();
122 LOG4CPLUS_INFO(
GetLogger(),
"Received AssignFixTrajectory with: id " << args->getId()
123 <<
", X " << args->getX() <<
", Y " << args->getY());
124 auto ev = std::make_shared<GpCtrEvents::AssignFixTrajectory>(args->clone());
127 return ev->GetPayload().GetReplyFuture();
130 elt::mal::future<std::string>
AssignSkyTrajectory(
const std::shared_ptr<::pfsif::GuideStarArgs>& args)
override {
132 LOG4CPLUS_INFO(
GetLogger(),
"Received AssignSkyTrajectory with: id " << args->getId() <<
", Ra "
133 << args->getGuideStar()->getRa() <<
", Dec " << args->getGuideStar()->getDec() <<
", Epoch "
134 << args->getGuideStar()->getEpoch() <<
", Band " << args->getGuideStar()->getBand() <<
", Rshift "
135 << args->getGuideStar()->getRshift() <<
", Radvel " << args->getGuideStar()->getRadvel()
136 <<
", Magnitude " << args->getGuideStar()->getMagnitude() <<
", Parallax "
137 << args->getGuideStar()->getParallax() <<
", Proper_motion_ra " << args->getGuideStar()->getProper_motion_ra()
138 <<
", Proper_motion_dec " << args->getGuideStar()->getProper_motion_dec());
140 auto ev = std::make_shared<GpCtrEvents::AssignSkyTrajectory>(args->clone());
143 return ev->GetPayload().GetReplyFuture();
146 elt::mal::future<std::string>
AssignUserTrajectory(
const std::shared_ptr<::pfsif::GpStartTime>& args)
override {
149 auto ev = std::make_shared<GpCtrEvents::AssignUserTrajectory>(args->clone());
152 return ev->GetPayload().GetReplyFuture();
157 LOG4CPLUS_INFO(
GetLogger(),
"Received StopFollowingTrajectory with: Guide Probe Id " << args);
159 auto ev = std::make_shared<GpCtrEvents::StopFollowingTrajectory>(args);
162 return ev->GetPayload().GetReplyFuture();
165 elt::mal::future<std::string>
SetTarget(
const std::shared_ptr<::ccscommonif::TargetData>& args)
override {
167 LOG4CPLUS_INFO(
GetLogger(),
"Received SetTarget with: Ra " << args->getRa() <<
", Dec "
168 << args->getDec() <<
", Epoch " << args->getEpoch()
169 <<
", Rshift" << args->getRshift() <<
", Radvel " << args->getRadvel()
170 <<
", Parallax " << args->getParallax()
171 <<
", Proper_motion_ra " << args->getProper_motion_ra()
172 <<
", Proper_motion_dec " << args->getProper_motion_dec()
173 <<
", Velocity_offset_ra " << args->getVelocity_offset_ra()
174 <<
", Velocity_offset_dec " << args->getVelocity_offset_dec()
175 <<
", Wavelength " << args->getWavelength());
177 auto ev = std::make_shared<GpCtrEvents::SetTarget>(args->clone());
180 return ev->GetPayload().GetReplyFuture();
183 elt::mal::future<std::string>
UpdateTarget(
const std::shared_ptr<::ccscommonif::TargetData>& args)
override {
185 LOG4CPLUS_INFO(
GetLogger(),
"Received UpdateTarget with: Ra " << args->getRa() <<
", Dec "
186 << args->getDec() <<
", Epoch " << args->getEpoch()
187 <<
", Rshift" << args->getRshift() <<
", Radvel " << args->getRadvel()
188 <<
", Parallax " << args->getParallax()
189 <<
", Proper_motion_ra " << args->getProper_motion_ra()
190 <<
", Proper_motion_dec " << args->getProper_motion_dec()
191 <<
", Velocity_offset_ra " << args->getVelocity_offset_ra()
192 <<
", Velocity_offset_dec " << args->getVelocity_offset_dec()
193 <<
", Wavelength " << args->getWavelength());
195 auto ev = std::make_shared<GpCtrEvents::UpdateTarget>(args->clone());
198 return ev->GetPayload().GetReplyFuture();
201 elt::mal::future<std::string>
SetHierarchy(
const std::shared_ptr<::pfsif::GpHierarchyArgs>& args)
override {
203 LOG4CPLUS_INFO(
GetLogger(),
"Received SetHierarchy with: A " << args->getA() <<
", B "
204 << args->getB() <<
", C " << args->getC());
206 auto ev = std::make_shared<GpCtrEvents::SetHierarchy>(args->clone());
209 return ev->GetPayload().GetReplyFuture();
213 elt::mal::future<std::string>
SetPointingOrigin(
const std::shared_ptr<::pfsif::XY>& args)
override {
216 LOG4CPLUS_INFO(
GetLogger(),
"Received SetPointingOrigin with: X " << args->getX() <<
", Y "
219 auto ev = std::make_shared<GpCtrEvents::SetPointingOrigin>(args->clone());
222 return ev->GetPayload().GetReplyFuture();
227 rad::SMAdapter& m_sm;
elt::mal::future< std::string > StopControlling() override
Definition gpCmdsImpl.hpp:110
elt::mal::future< std::string > UpdateTarget(const std::shared_ptr<::ccscommonif::TargetData > &args) override
Definition gpCmdsImpl.hpp:183
elt::mal::future< std::string > SetTarget(const std::shared_ptr<::ccscommonif::TargetData > &args) override
Definition gpCmdsImpl.hpp:165
elt::mal::future< std::string > AssignFixTrajectory(const std::shared_ptr<::pfsif::GpXY > &args) override
Definition gpCmdsImpl.hpp:120
elt::mal::future< std::string > StartControlling() override
Definition gpCmdsImpl.hpp:101
elt::mal::future< std::string > ForwardCommand(const ::pfsif::GpForwardedCommandId command) override
Definition gpCmdsImpl.hpp:49
elt::mal::future< std::string > MoveRaw(const std::shared_ptr<::pfsif::GpRaw > &args) override
Definition gpCmdsImpl.hpp:79
elt::mal::future< std::string > SetPointingOrigin(const std::shared_ptr<::pfsif::XY > &args) override
Definition gpCmdsImpl.hpp:213
elt::mal::future< std::string > MoveGpToNamedPos(const std::shared_ptr<::pfsif::GpNamedPos > &args) override
Definition gpCmdsImpl.hpp:68
virtual ~GpCmdsImpl()
Definition gpCmdsImpl.hpp:45
elt::mal::future< std::string > SetHierarchy(const std::shared_ptr<::pfsif::GpHierarchyArgs > &args) override
Definition gpCmdsImpl.hpp:201
elt::mal::future< std::string > Park(const ::pfsif::GuideProbeId args) override
Definition gpCmdsImpl.hpp:91
elt::mal::future< std::string > StopFollowingTrajectory(::pfsif::GuideProbeId args) override
Definition gpCmdsImpl.hpp:155
elt::mal::future< std::string > AssignSkyTrajectory(const std::shared_ptr<::pfsif::GuideStarArgs > &args) override
Definition gpCmdsImpl.hpp:130
GpCmdsImpl(rad::SMAdapter &sm)
Definition gpCmdsImpl.hpp:27
elt::mal::future< std::string > MoveGpTo(const std::shared_ptr<::pfsif::GpXY > &args) override
Definition gpCmdsImpl.hpp:58
elt::mal::future< std::string > AssignUserTrajectory(const std::shared_ptr<::pfsif::GpStartTime > &args) override
Definition gpCmdsImpl.hpp:146
Definition actionMgr.cpp:34
log4cplus::Logger & GetLogger()
Definition logger.cpp:21