MotionLib  1.0.0
SamBuCa motion library
MGrblTrigger.hpp
1 /*
2 ** Copyright (C) 2025 CERN
3 **
4 ** This software is provided 'as-is', without any express or implied
5 ** warranty. In no event will the authors be held liable for any damages
6 ** arising from the use of this software.
7 **
8 ** Permission is granted to anyone to use this software for any purpose,
9 ** including commercial applications, and to alter it and redistribute it
10 ** freely, subject to the following restrictions:
11 **
12 ** 1. The origin of this software must not be misrepresented; you must not
13 ** claim that you wrote the original software. If you use this software
14 ** in a product, an acknowledgment in the product documentation would be
15 ** appreciated but is not required.
16 ** 2. Altered source versions must be plainly marked as such, and must not be
17 ** misrepresented as being the original software.
18 ** 3. This notice may not be removed or altered from any source distribution.
19 **
20 ** Created on: 2025-04-17T11:08:16
21 ** Author: Sylvain Fargier <sylvain.fargier@cern.ch>
22 */
23 
24 #ifndef MGRBLTRIGGER_HPP__
25 #define MGRBLTRIGGER_HPP__
26 #include <memory>
27 
28 #include "platform/specialized/GrblPlatform/GrblTrigger.hpp"
29 
30 namespace smc {
31 namespace internal {
32 
33 class MGrblPlatform;
34 
35 class MGrblTrigger : public GrblTrigger
36 {
37 public:
38  typedef std::shared_ptr<MGrblTrigger> Shared;
39 
40  MGrblTrigger(const std::string &uid,
41  const std::shared_ptr<MGrblPlatform> &mgrbl,
42  const std::shared_ptr<GrblPlatform> &grbl);
43 
44  std::future<void> arm() const override;
45 
46  std::future<void> disarm() const override;
47 
48  std::future<bool> isArmed() const override;
49 
50  std::future<void> trig() const override;
51 
52 protected:
53  friend class MGrblPlatform;
54 
55  std::weak_ptr<MGrblPlatform> m_mgrbl;
56 };
57 
58 } // namespace internal
59 
60 } // namespace smc
61 
62 #endif
DeviceId uid() const
Get the address of device.
Definition: DeviceBase.cpp:76
std::future< void > trig() const override
soft-trigger the trigger
std::future< void > arm() const override
arm the trigger
std::future< void > disarm() const override
disarm the trigger
std::future< bool > isArmed() const override
check if trigger is armed
main motion-lib namespace
Definition: Client.cpp:30