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 {
59 LOG4CPLUS_INFO_FMT(
GetLogger(),
"Preset command received with PresetData - Ra %1.15f, "
60 "Dec %1.15f, Epoch %s, Parallax %1.15f, Object_name %s, "
61 "Proper_motion_ra %1.15f, Proper_motion_dec %1.15f, Radvel %1.15f, "
62 "Rshift %1.15f, Velocity_offset_ra %1.15f, "
63 "Velocity_offset_dec %1.15f, Time_ephem_utc %1.15f",
64 preset_args->getPreset_data()->getTarget_data()->getRa(), preset_args->getPreset_data()->getTarget_data()->getDec(),
65 preset_args->getPreset_data()->getTarget_data()->getEpoch().c_str(),
66 preset_args->getPreset_data()->getTarget_data()->getParallax(), preset_args->getPreset_data()->getTarget_data()->getObject_name().c_str(),
67 preset_args->getPreset_data()->getTarget_data()->getProper_motion_ra(),
68 preset_args->getPreset_data()->getTarget_data()->getProper_motion_dec(),
69 preset_args->getPreset_data()->getTarget_data()->getRadvel(), preset_args->getPreset_data()->getTarget_data()->getRshift(),
70 preset_args->getPreset_data()->getTarget_data()->getVelocity_offset_ra(),
71 preset_args->getPreset_data()->getTarget_data()->getVelocity_offset_dec(),
72 preset_args->getPreset_data()->getTarget_data()->getTime_ephem_utc());
74 auto ev = std::make_shared<TelifCommands::Preset>(preset_args->clone());
76 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::Preset>();
79 return ev->GetPayload().GetReplyFuture();
83 virtual elt::mal::future<std::string>
UpdateTarget(
const std::string& preset_args)
override {
86 auto ev = std::make_shared<TelifCommands::UpdateTarget>(preset_args);
87 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::UpdateTarget>();
89 return ev->GetPayload().GetReplyFuture();
92 virtual elt::mal::future<std::string>
RequestControl(ccsinsif::ControlMode control_mode)
override {
94 LOG4CPLUS_INFO(
GetLogger(),
"Received RequestControl with: Control_mode " << control_mode);
95 auto ev = std::make_shared<TelifCommands::RequestControl>(control_mode);
96 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::RequestControl>();
99 return ev->GetPayload().GetReplyFuture();
104 LOG4CPLUS_INFO(
GetLogger(),
"Received ReleaseControl");
105 auto ev = std::make_shared<TelifCommands::ReleaseControl>();
106 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::ReleaseControl>();
109 return ev->GetPayload().GetReplyFuture();
112 virtual elt::mal::future<std::string>
GetConfig()
override {
114 LOG4CPLUS_INFO(
GetLogger(),
"Received GetConfig");
116 auto ev = std::make_shared<EventsApp::GetConfig>(
"");
117 m_sm.RegisterDefaultRequestRejectHandler<EventsApp::GetConfig>();
120 return ev->GetPayload().GetReplyFuture();
123 [[deprecated(
"SetObservingWavelength is Deprecated - Use UpdateTarget")]]
126 LOG4CPLUS_INFO(
GetLogger(),
"Received SetObservingWavelength with: Wavelength " << wavelength);
128 auto ev = std::make_shared<TelifCommands::SetObservingWavelength>(wavelength);
129 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::SetObservingWavelength>();
132 return ev->GetPayload().GetReplyFuture();
135 virtual elt::mal::future<std::string>
SetVelocityOffset(
const std::shared_ptr<ccsinsif::VelocityOffset>& offset)
override {
137 LOG4CPLUS_INFO(
GetLogger(),
"Received SetVelocityOffset with: Ra " << offset->getRa()
138 <<
", Dec " << offset->getDec());
140 auto ev = std::make_shared<TelifCommands::SetVelocityOffset>(offset->clone());
141 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::SetVelocityOffset>();
144 return ev->GetPayload().GetReplyFuture();
147 virtual elt::mal::future<std::string>
SkyOffset(
const std::shared_ptr<ccsinsif::OffsetSkyArgs>& offset_args)
override {
149 LOG4CPLUS_INFO(
GetLogger(),
"Received SkyOffset with: Ra " << offset_args->getRa()
150 <<
", Dec " << offset_args->getDec() <<
", Field_stabilization "
151 << offset_args->getField_stabilization()
152 <<
", Guide_star_param " << offset_args->getGuide_star_param());
153 auto ev = std::make_shared<TelifCommands::SkyOffset>(offset_args->clone());
154 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::SkyOffset>();
157 return ev->GetPayload().GetReplyFuture();
160 virtual elt::mal::future<std::string>
OffsetSetFocalPlane(
const std::shared_ptr<ccsinsif::OffsetFocalPlaneArgs>& offset_args)
override {
162 LOG4CPLUS_INFO(
GetLogger(),
"Received OffsetSetFocalPlane with: X " << offset_args->getX()
163 <<
", Y " << offset_args->getY() <<
", Field_stabilization "
164 << offset_args->getField_stabilization()
165 <<
", Guide_star_param " << offset_args->getGuide_star_param());
166 auto ev = std::make_shared<TelifCommands::OffsetSetFocalPlane>(offset_args->clone());
169 stdif::ExceptionErr icd_ex {
"NOT IMPLEMENTED", 0};
170 ev->GetPayload().SetException(icd_ex);
172 return ev->GetPayload().GetReplyFuture();
177 LOG4CPLUS_INFO(
GetLogger(),
"Received SetReferenceFocus with: Offset " << offset);
179 auto ev = std::make_shared<TelifCommands::SetReferenceFocus>(offset);
180 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::SetReferenceFocus>();
183 return ev->GetPayload().GetReplyFuture();
186 virtual elt::mal::future<std::string>
SetReferenceAberration(
const elt::mal::shared_vector<const double>& aberration_offset)
override {
188 LOG4CPLUS_INFO(
GetLogger(),
"Received SetReferenceAberration with: Aberration_offset " << aberration_offset);
192 elt::mal::shared_vector<const double> aberration_offset_temp(aberration_offset);
196 aberration_offset_temp.make_unique();
198 auto ev = std::make_shared<TelifCommands::SetReferenceAberration>(aberration_offset_temp);
200 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::SetReferenceAberration>();
204 return ev->GetPayload().GetReplyFuture();
207 virtual elt::mal::future<std::string>
RousConfig(ccsinsif::RousMode mode)
override {
209 LOG4CPLUS_INFO(
GetLogger(),
"Received RousConfig with: Mode " << mode);
211 auto ev = std::make_shared<TelifCommands::RousConfig>(mode);
212 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::RousConfig>();
215 return ev->GetPayload().GetReplyFuture();
220 LOG4CPLUS_INFO(
GetLogger(),
"Received RousExecute");
222 auto ev = std::make_shared<TelifCommands::RousExecute>();
223 m_sm.RegisterDefaultRequestRejectHandler<TelifCommands::RousExecute>();
226 return ev->GetPayload().GetReplyFuture();
230 rad::SMAdapter& m_sm;
virtual elt::mal::future< std::string > SetReferenceFocus(double offset) override
Definition commandsImpl.hpp:175
virtual elt::mal::future< std::string > SetVelocityOffset(const std::shared_ptr< ccsinsif::VelocityOffset > &offset) override
Definition commandsImpl.hpp:135
virtual elt::mal::future< std::string > UpdateTarget(const std::string &preset_args) override
Definition commandsImpl.hpp:83
virtual elt::mal::future< std::string > SkyOffset(const std::shared_ptr< ccsinsif::OffsetSkyArgs > &offset_args) override
Definition commandsImpl.hpp:147
virtual elt::mal::future< std::string > SetObservingWavelength(double wavelength) override
Definition commandsImpl.hpp:124
virtual elt::mal::future< std::string > RousConfig(ccsinsif::RousMode mode) override
Definition commandsImpl.hpp:207
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:160
virtual elt::mal::future< std::string > RequestControl(ccsinsif::ControlMode control_mode) override
Definition commandsImpl.hpp:92
virtual elt::mal::future< std::string > SetReferenceAberration(const elt::mal::shared_vector< const double > &aberration_offset) override
Definition commandsImpl.hpp:186
virtual elt::mal::future< std::string > GetConfig() override
Definition commandsImpl.hpp:112
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:102
virtual ~CommandsImpl()
Definition commandsImpl.hpp:52
virtual elt::mal::future< std::string > RousExecute() override
Definition commandsImpl.hpp:218
Definition configTest.cpp:22
log4cplus::Logger & GetLogger()
Definition logger.cpp:21