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::MoveRaw>();
33 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::StartControlling>();
34 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::StopControlling>();
35 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::AssignFixTrajectory>();
36 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::AssignSkyTrajectory>();
37 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::StopFollowingTrajectory>();
38 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::SetTarget>();
39 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::SetHierarchy>();
46 elt::mal::future<std::string>
ForwardCommand(
const std::shared_ptr<::pfsif::GpForwardCommand>& command)
override {
48 LOG4CPLUS_INFO(
GetLogger(),
"Received ForwardCommand with: command_id " << command->getCommand_id()
49 <<
", command " << command->getArgs());
50 auto ev = std::make_shared<GpCtrEvents::ForwardCommand>(command->clone());
53 return ev->GetPayload().GetReplyFuture();
56 elt::mal::future<std::string>
MoveGPTo(
const std::shared_ptr<::pfsif::GpXY>& args)
override {
58 LOG4CPLUS_INFO(
GetLogger(),
"Received MoveGPTo with: id " << args->getId() <<
", X "
59 << args->getX() <<
", Y " << args->getY());
60 auto ev = std::make_shared<GpCtrEvents::MoveGPTo>(args->clone());
63 return ev->GetPayload().GetReplyFuture();
66 elt::mal::future<std::string>
MoveGpToNamedPos(
const std::shared_ptr<::pfsif::GpNamedPos>& args)
override {
68 LOG4CPLUS_INFO(
GetLogger(),
"Received MoveGpToNamedPos with: id " << args->getId()
69 <<
", Name " << args->getName());
71 auto ev = std::make_shared<GpCtrEvents::MoveGpToNamedPos>(args->clone());
74 return ev->GetPayload().GetReplyFuture();
77 elt::mal::future<std::string>
MoveRaw(
const std::shared_ptr<::pfsif::GpRaw>& args)
override {
79 LOG4CPLUS_INFO(
GetLogger(),
"Received MoveRaw with: id " << args->getId() <<
", Az "
80 << args->getAz() <<
", Pom " << args->getPom() <<
", Sar "
81 << args->getSar() <<
", Trom " << args->getTrom());
83 auto ev = std::make_shared<GpCtrEvents::MoveRaw>(args->clone());
86 return ev->GetPayload().GetReplyFuture();
91 LOG4CPLUS_INFO(
GetLogger(),
"Received StartControlling");
92 auto ev = std::make_shared<GpCtrEvents::StartControlling>();
95 return ev->GetPayload().GetReplyFuture();
100 LOG4CPLUS_INFO(
GetLogger(),
"Received StopControlling");
102 auto ev = std::make_shared<GpCtrEvents::StopControlling>();
105 return ev->GetPayload().GetReplyFuture();
110 LOG4CPLUS_INFO(
GetLogger(),
"Received AssignFixTrajectory with: id " << args->getId()
111 <<
", X " << args->getX() <<
", Y " << args->getY());
112 auto ev = std::make_shared<GpCtrEvents::AssignFixTrajectory>(args->clone());
115 return ev->GetPayload().GetReplyFuture();
118 elt::mal::future<std::string>
AssignSkyTrajectory(
const std::shared_ptr<::pfsif::GuideStarArgs>& args)
override {
120 LOG4CPLUS_INFO(
GetLogger(),
"Received AssignSkyTrajectory with: id " << args->getId() <<
", Ra "
121 << args->getRa() <<
", Dec " << args->getDec() <<
", Epoch "
122 << args->getEpoch() <<
", Band " << args->getBand() <<
", Rshift "
123 << args->getRshift() <<
", Radvel " << args->getRadvel()
124 <<
", Magnitude " << args->getMagnitude() <<
", Parallax "
125 << args->getParallax() <<
", Proper_motion_ra " << args->getProper_motion_ra()
126 <<
", Proper_motion_dec " << args->getProper_motion_dec());
128 auto ev = std::make_shared<GpCtrEvents::AssignSkyTrajectory>(args->clone());
131 return ev->GetPayload().GetReplyFuture();
136 LOG4CPLUS_INFO(
GetLogger(),
"Received StopFollowingTrajectory with: Guide Probe Id " << args);
138 auto ev = std::make_shared<GpCtrEvents::StopFollowingTrajectory>(args);
141 return ev->GetPayload().GetReplyFuture();
144 elt::mal::future<std::string>
SetTarget(
const std::shared_ptr<::pfsif::TargetArgs>& args)
override {
146 LOG4CPLUS_INFO(
GetLogger(),
"Received SetTarget with: Ra " << args->getRa() <<
", Dec "
147 << args->getDec() <<
", Epoch " << args->getEpoch()
148 <<
", Rshift" << args->getRshift() <<
", Radvel " << args->getRadvel()
149 <<
", Parallax " << args->getParallax()
150 <<
", Proper_motion_ra " << args->getProper_motion_ra()
151 <<
", Proper_motion_dec " << args->getProper_motion_dec()
152 <<
", Velocity_offset_ra " << args->getVelocity_offset_ra()
153 <<
", Velocity_offset_dec " << args->getVelocity_offset_dec());
155 auto ev = std::make_shared<GpCtrEvents::SetTarget>(args->clone());
158 return ev->GetPayload().GetReplyFuture();
161 elt::mal::future<std::string>
SetHierarchy(
const std::shared_ptr<::pfsif::GpHierarchyArgs>& args)
override {
163 LOG4CPLUS_INFO(
GetLogger(),
"Received SetHierarchy with: A " << args->getA() <<
", B "
164 << args->getB() <<
", C " << args->getC());
166 auto ev = std::make_shared<GpCtrEvents::SetHierarchy>(args->clone());
169 return ev->GetPayload().GetReplyFuture();
173 elt::mal::future<std::string>
SetPointingOrigin(
const std::shared_ptr<::pfsif::XY>& args)
override {
176 LOG4CPLUS_INFO(
GetLogger(),
"Received SetPointingOrigin with: X " << args->getX() <<
", Y "
179 auto ev = std::make_shared<GpCtrEvents::SetPointingOrigin>(args->clone());
182 return ev->GetPayload().GetReplyFuture();
187 rad::SMAdapter& m_sm;
Definition gpCmdsImpl.hpp:25
elt::mal::future< std::string > SetTarget(const std::shared_ptr<::pfsif::TargetArgs > &args) override
Definition gpCmdsImpl.hpp:144
elt::mal::future< std::string > StopControlling() override
Definition gpCmdsImpl.hpp:98
elt::mal::future< std::string > MoveGPTo(const std::shared_ptr<::pfsif::GpXY > &args) override
Definition gpCmdsImpl.hpp:56
elt::mal::future< std::string > AssignFixTrajectory(const std::shared_ptr<::pfsif::GpXY > &args) override
Definition gpCmdsImpl.hpp:108
elt::mal::future< std::string > StartControlling() override
Definition gpCmdsImpl.hpp:89
elt::mal::future< std::string > MoveRaw(const std::shared_ptr<::pfsif::GpRaw > &args) override
Definition gpCmdsImpl.hpp:77
elt::mal::future< std::string > SetPointingOrigin(const std::shared_ptr<::pfsif::XY > &args) override
Definition gpCmdsImpl.hpp:173
elt::mal::future< std::string > MoveGpToNamedPos(const std::shared_ptr<::pfsif::GpNamedPos > &args) override
Definition gpCmdsImpl.hpp:66
virtual ~GpCmdsImpl()
Definition gpCmdsImpl.hpp:42
elt::mal::future< std::string > SetHierarchy(const std::shared_ptr<::pfsif::GpHierarchyArgs > &args) override
Definition gpCmdsImpl.hpp:161
elt::mal::future< std::string > StopFollowingTrajectory(::pfsif::GuideProbeId args) override
Definition gpCmdsImpl.hpp:134
elt::mal::future< std::string > AssignSkyTrajectory(const std::shared_ptr<::pfsif::GuideStarArgs > &args) override
Definition gpCmdsImpl.hpp:118
GpCmdsImpl(rad::SMAdapter &sm)
Definition gpCmdsImpl.hpp:27
elt::mal::future< std::string > ForwardCommand(const std::shared_ptr<::pfsif::GpForwardCommand > &command) override
Definition gpCmdsImpl.hpp:46
Definition actionMgr.cpp:34
log4cplus::Logger & GetLogger()
Definition logger.cpp:21