hlcc 2.0.0-beta2+pre1
Loading...
Searching...
No Matches
gpCmdsImpl.hpp
Go to the documentation of this file.
1
9#ifndef pfssimhlcc_GP_CMDS_IMPL_HPP
10#define pfssimhlcc_GP_CMDS_IMPL_HPP
11
12#include <pfssimhlcc/gpCtrEvents.rad.hpp>
13
14#include <pfssimhlcc/logger.hpp>
15
16#include <rad/exceptions.hpp>
17#include <rad/smAdapter.hpp>
18
19namespace hlcc::pfssimhlcc {
20
21class GpCmdsImpl : public pfsif::AsyncGpCmds {
22public:
23 explicit GpCmdsImpl(rad::SMAdapter& sm) : m_sm(sm) {
24 RAD_TRACE(GetLogger());
25
26 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::Preset>();
27 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::MoveGPTo>();
28 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::MoveRaw>();
29 m_sm.RegisterDefaultRequestRejectHandler<GpCtrEvents::SetTarget>();
30 }
31
32 virtual ~GpCmdsImpl() {
33 RAD_TRACE(GetLogger());
34 }
35
36 elt::mal::future<std::string> MoveGPTo(const std::shared_ptr<::pfsif::GpXY>& args) override {
37 RAD_TRACE(GetLogger());
38
39 auto ev = std::make_shared<GpCtrEvents::MoveGPTo>(args->clone());
40 m_sm.PostEvent(ev);
41
42 return ev->GetPayload().GetReplyFuture();
43 }
44
45 elt::mal::future<std::string> MoveGpToNamedPos(const std::shared_ptr<::pfsif::GpNamedPos>& args) override {
46 RAD_TRACE(GetLogger());
47
48 auto ev = std::make_shared<GpCtrEvents::MoveGpToNamedPos>(args->clone());
49 m_sm.PostEvent(ev);
50
51 return ev->GetPayload().GetReplyFuture();
52 }
53
54 elt::mal::future<std::string> MoveRaw(const std::shared_ptr<::pfsif::GpRaw>& args) override {
55 RAD_TRACE(GetLogger());
56
57 auto ev = std::make_shared<GpCtrEvents::MoveRaw>(args->clone());
58 m_sm.PostEvent(ev);
59
60 return ev->GetPayload().GetReplyFuture();
61 }
62
63 elt::mal::future<std::string> StartControlling() override {
64 RAD_TRACE(GetLogger());
65
66 auto ev = std::make_shared<GpCtrEvents::StartControlling>();
67 m_sm.PostEvent(ev);
68
69 return ev->GetPayload().GetReplyFuture();
70 }
71
72 elt::mal::future<std::string> StopControlling() override {
73 RAD_TRACE(GetLogger());
74
75 auto ev = std::make_shared<GpCtrEvents::StopControlling>();
76 m_sm.PostEvent(ev);
77
78 return ev->GetPayload().GetReplyFuture();
79 }
80
81 elt::mal::future<std::string> AssignFixTrajectory(const std::shared_ptr<::pfsif::GpXY>& args) override {
82 RAD_TRACE(GetLogger());
83
84 auto ev = std::make_shared<GpCtrEvents::AssignFixTrajectory>(args->clone());
85 m_sm.PostEvent(ev);
86
87 return ev->GetPayload().GetReplyFuture();
88 }
89
90 elt::mal::future<std::string> Preset(const std::shared_ptr<::pfsif::GuideStarArgs>& args) override {
91 RAD_TRACE(GetLogger());
92
93 auto ev = std::make_shared<GpCtrEvents::Preset>(args->clone());
94 m_sm.PostEvent(ev);
95
96 return ev->GetPayload().GetReplyFuture();
97 }
98
99 elt::mal::future<std::string> StopFollowingTrajectory(::pfsif::GuideProbeId args) override {
100 RAD_TRACE(GetLogger());
101
102 auto ev = std::make_shared<GpCtrEvents::StopFollowingTrajectory>(args);
103 m_sm.PostEvent(ev);
104
105 return ev->GetPayload().GetReplyFuture();
106 }
107
108 elt::mal::future<std::string> SetTarget(const std::shared_ptr<::pfsif::TargetArgs>& args) override {
109 RAD_TRACE(GetLogger());
110
111 auto ev = std::make_shared<GpCtrEvents::SetTarget>(args->clone());
112 m_sm.PostEvent(ev);
113
114 return ev->GetPayload().GetReplyFuture();
115 }
116
117 elt::mal::future<std::string> SetHierarchy(const std::shared_ptr<::pfsif::GpHierarchyArgs>& args) override {
118 RAD_TRACE(GetLogger());
119
120 auto ev = std::make_shared<GpCtrEvents::SetHierarchy>(args->clone());
121 m_sm.PostEvent(ev);
122
123 return ev->GetPayload().GetReplyFuture();
124 }
125
126
127private:
128 rad::SMAdapter& m_sm;
129};
130
131
132} // namespace hlcc::pfssimhlcc
133
134#endif // pfssimhlcc_GP_CMDS_IMPL_HPP
Definition: gpCmdsImpl.hpp:21
elt::mal::future< std::string > SetTarget(const std::shared_ptr<::pfsif::TargetArgs > &args) override
Definition: gpCmdsImpl.hpp:108
elt::mal::future< std::string > StopControlling() override
Definition: gpCmdsImpl.hpp:72
elt::mal::future< std::string > MoveGPTo(const std::shared_ptr<::pfsif::GpXY > &args) override
Definition: gpCmdsImpl.hpp:36
elt::mal::future< std::string > AssignFixTrajectory(const std::shared_ptr<::pfsif::GpXY > &args) override
Definition: gpCmdsImpl.hpp:81
elt::mal::future< std::string > StartControlling() override
Definition: gpCmdsImpl.hpp:63
elt::mal::future< std::string > MoveRaw(const std::shared_ptr<::pfsif::GpRaw > &args) override
Definition: gpCmdsImpl.hpp:54
elt::mal::future< std::string > MoveGpToNamedPos(const std::shared_ptr<::pfsif::GpNamedPos > &args) override
Definition: gpCmdsImpl.hpp:45
virtual ~GpCmdsImpl()
Definition: gpCmdsImpl.hpp:32
elt::mal::future< std::string > SetHierarchy(const std::shared_ptr<::pfsif::GpHierarchyArgs > &args) override
Definition: gpCmdsImpl.hpp:117
elt::mal::future< std::string > StopFollowingTrajectory(::pfsif::GuideProbeId args) override
Definition: gpCmdsImpl.hpp:99
GpCmdsImpl(rad::SMAdapter &sm)
Definition: gpCmdsImpl.hpp:23
elt::mal::future< std::string > Preset(const std::shared_ptr<::pfsif::GuideStarArgs > &args) override
Definition: gpCmdsImpl.hpp:90
Definition: actionMgr.cpp:31
log4cplus::Logger & GetLogger()
Definition: logger.cpp:17
Default logger name.