13#ifndef HLCC_TELIF_TELIF_COMMANDSIMPL_HPP
14#define HLCC_TELIF_TELIF_COMMANDSIMPL_HPP
18#include <rad/exceptions.hpp>
19#include <rad/smAdapter.hpp>
21#include "telif/commands.rad.hpp"
56 virtual elt::mal::future<std::string>
Preset(
const std::shared_ptr<ccsinsif::PresetArgs>& preset_args)
override {
58 LOG4CPLUS_INFO(
GetLogger(),
"Preset command received with PresetData - Ra "
59 << preset_args->getPreset_data()->getRa() <<
", Dec " << preset_args->getPreset_data()->getDec()
60 <<
", Epoch " << preset_args->getPreset_data()->getEpoch() <<
" , Parallax " << preset_args->getPreset_data()->getParallax()
61 <<
", Object_name " << preset_args->getPreset_data()->getObject_name()
62 <<
", Proper_motion_ra " << preset_args->getPreset_data()->getProper_motion_ra()
63 <<
", Proper_motion_dec " << preset_args->getPreset_data()->getProper_motion_dec()
64 <<
", Radvel " << preset_args->getPreset_data()->getRadvel()
65 <<
", Rshift " << preset_args->getPreset_data()->getRshift()
66 <<
", System " << preset_args->getPreset_data()->getSystem()
67 <<
", Velocity_offset_ra " << preset_args->getPreset_data()->getVelocity_offset_ra()
68 <<
", Velocity_offset_dec " << preset_args->getPreset_data()->getVelocity_offset_dec());
70 auto ev = std::make_shared<TelifCommands::Preset>(preset_args->clone());
72 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::Preset>();
75 return ev->GetPayload().GetReplyFuture();
79 virtual elt::mal::future<std::string>
PresetEphem(
const std::shared_ptr<ccsinsif::PresetEphemArgs>& preset_args)
override {
81 LOG4CPLUS_INFO(
GetLogger(),
"Received PresetEphem with: Command " << preset_args->getCommand()
82 <<
", PresetEphemArgs " << preset_args->getPreset_data());
83 auto ev = std::make_shared<TelifCommands::PresetEphem>(preset_args->clone());
84 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::PresetEphem>();
86 return ev->GetPayload().GetReplyFuture();
89 virtual elt::mal::future<std::string>
RequestControl(ccsinsif::ControlMode control_mode)
override {
91 LOG4CPLUS_INFO(
GetLogger(),
"Received RequestControl with: Control_mode " << control_mode);
92 auto ev = std::make_shared<TelifCommands::RequestControl>(control_mode);
93 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::RequestControl>();
96 return ev->GetPayload().GetReplyFuture();
101 LOG4CPLUS_INFO(
GetLogger(),
"Received ReleaseControl");
102 auto ev = std::make_shared<TelifCommands::ReleaseControl>();
103 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::ReleaseControl>();
106 return ev->GetPayload().GetReplyFuture();
109 virtual elt::mal::future<std::string>
GetConfig()
override {
111 LOG4CPLUS_INFO(
GetLogger(),
"Received GetConfig");
113 auto ev = std::make_shared<EventsApp::GetConfig>(
"");
114 m_sm.RegisterDefaultRequestRejectHandler<EventsApp::GetConfig>();
117 return ev->GetPayload().GetReplyFuture();
122 LOG4CPLUS_INFO(
GetLogger(),
"Received SetObservingWavelength with: Wavelength " << wavelength);
124 auto ev = std::make_shared<TelifCommands::SetObservingWavelength>(wavelength);
125 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::SetObservingWavelength>();
128 return ev->GetPayload().GetReplyFuture();
131 virtual elt::mal::future<std::string>
SetVelocityOffset(
const std::shared_ptr<ccsinsif::VelocityOffset>& offset)
override {
133 LOG4CPLUS_INFO(
GetLogger(),
"Received SetVelocityOffset with: Ra " << offset->getRa()
134 <<
", Dec " << offset->getDec());
136 auto ev = std::make_shared<TelifCommands::SetVelocityOffset>(offset->clone());
137 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::SetVelocityOffset>();
140 return ev->GetPayload().GetReplyFuture();
143 virtual elt::mal::future<std::string>
SkyOffset(
const std::shared_ptr<ccsinsif::OffsetSkyArgs>& offset_args)
override {
145 LOG4CPLUS_INFO(
GetLogger(),
"Received SkyOffset with: Ra " << offset_args->getRa()
146 <<
", Dec " << offset_args->getDec() <<
", Field_stabilization "
147 << offset_args->getField_stabilization()
148 <<
", Guide_star_param " << offset_args->getGuide_star_param());
149 auto ev = std::make_shared<TelifCommands::SkyOffset>(offset_args->clone());
150 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::SkyOffset>();
153 return ev->GetPayload().GetReplyFuture();
156 virtual elt::mal::future<std::string>
OffsetSetFocalPlane(
const std::shared_ptr<ccsinsif::OffsetFocalPlaneArgs>& offset_args)
override {
158 LOG4CPLUS_INFO(
GetLogger(),
"Received OffsetSetFocalPlane with: X " << offset_args->getX()
159 <<
", Y " << offset_args->getY() <<
", Field_stabilization "
160 << offset_args->getField_stabilization()
161 <<
", Guide_star_param " << offset_args->getGuide_star_param());
162 auto ev = std::make_shared<TelifCommands::OffsetSetFocalPlane>(offset_args->clone());
165 stdif::ExceptionErr icd_ex {
"NOT IMPLEMENTED", 0};
166 ev->GetPayload().SetException(icd_ex);
168 return ev->GetPayload().GetReplyFuture();
173 LOG4CPLUS_INFO(
GetLogger(),
"Received SetReferenceFocus with: Offset " << offset);
175 auto ev = std::make_shared<TelifCommands::SetReferenceFocus>(offset);
176 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::SetReferenceFocus>();
179 return ev->GetPayload().GetReplyFuture();
182 virtual elt::mal::future<std::string>
SetReferenceAberration(
const elt::mal::shared_vector<const double>& aberration_offset)
override {
184 LOG4CPLUS_INFO(
GetLogger(),
"Received SetReferenceAberration with: Aberration_offset " << aberration_offset);
188 elt::mal::shared_vector<const double> aberration_offset_temp(aberration_offset);
192 aberration_offset_temp.make_unique();
194 auto ev = std::make_shared<TelifCommands::SetReferenceAberration>(aberration_offset_temp);
196 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::SetReferenceAberration>();
200 return ev->GetPayload().GetReplyFuture();
203 virtual elt::mal::future<std::string>
RousConfig(ccsinsif::RousMode mode)
override {
205 LOG4CPLUS_INFO(
GetLogger(),
"Received RousConfig with: Mode " << mode);
207 auto ev = std::make_shared<TelifCommands::RousConfig>(mode);
208 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::RousConfig>();
211 return ev->GetPayload().GetReplyFuture();
216 LOG4CPLUS_INFO(
GetLogger(),
"Received RousExecute");
218 auto ev = std::make_shared<TelifCommands::RousExecute>();
219 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::RousExecute>();
222 return ev->GetPayload().GetReplyFuture();
226 rad::SMAdapter& m_sm;
Definition commandsImpl.hpp:27
virtual elt::mal::future< std::string > SetReferenceFocus(double offset) override
Definition commandsImpl.hpp:171
virtual elt::mal::future< std::string > SetVelocityOffset(const std::shared_ptr< ccsinsif::VelocityOffset > &offset) override
Definition commandsImpl.hpp:131
virtual elt::mal::future< std::string > SkyOffset(const std::shared_ptr< ccsinsif::OffsetSkyArgs > &offset_args) override
Definition commandsImpl.hpp:143
virtual elt::mal::future< std::string > SetObservingWavelength(double wavelength) override
Definition commandsImpl.hpp:120
virtual elt::mal::future< std::string > RousConfig(ccsinsif::RousMode mode) override
Definition commandsImpl.hpp:203
CommandsImpl(rad::SMAdapter &sm)
Definition commandsImpl.hpp:29
virtual elt::mal::future< std::string > OffsetSetFocalPlane(const std::shared_ptr< ccsinsif::OffsetFocalPlaneArgs > &offset_args) override
Definition commandsImpl.hpp:156
virtual elt::mal::future< std::string > RequestControl(ccsinsif::ControlMode control_mode) override
Definition commandsImpl.hpp:89
virtual elt::mal::future< std::string > SetReferenceAberration(const elt::mal::shared_vector< const double > &aberration_offset) override
Definition commandsImpl.hpp:182
virtual elt::mal::future< std::string > GetConfig() override
Definition commandsImpl.hpp:109
virtual elt::mal::future< std::string > PresetEphem(const std::shared_ptr< ccsinsif::PresetEphemArgs > &preset_args) override
Definition commandsImpl.hpp:79
virtual elt::mal::future< std::string > Preset(const std::shared_ptr< ccsinsif::PresetArgs > &preset_args) override
Definition commandsImpl.hpp:56
virtual elt::mal::future< std::string > ReleaseControl() override
Definition commandsImpl.hpp:99
virtual ~CommandsImpl()
Definition commandsImpl.hpp:52
virtual elt::mal::future< std::string > RousExecute() override
Definition commandsImpl.hpp:214
Definition configTest.cpp:22
log4cplus::Logger & GetLogger()
Definition logger.cpp:21