MotionLib  1.0.0
SamBuCa motion library
Trigger.hpp
1 /*
2 ** Copyright (C) 2021 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: 2022-05-25T13:58:45+02:00
21 ** Author: Sylvain Fargier <sfargier> <sylvain.fargier@cern.ch>
22 **
23 */
24 
25 #ifndef TRIGGER_HPP__
26 #define TRIGGER_HPP__
27 
28 #include <future>
29 #include <memory>
30 
31 #include "../Units.hpp"
32 #include "DeviceBase.hpp"
33 
34 namespace smc {
35 
40 class Trigger : public DeviceBase
41 {
42 public:
43  typedef std::shared_ptr<Trigger> Shared;
44 
52  Trigger(const std::string &address);
53 
59  DeviceType type() const override;
60 
66  virtual std::future<void> arm() const = 0;
67 
73  virtual std::future<void> disarm() const = 0;
74 
80  virtual std::future<bool> isArmed() const = 0;
81 
85  virtual std::future<void> trig() const = 0;
86 };
87 
89 } // namespace smc
90 
91 #endif
DeviceType type() const override
Get device type.
Definition: Trigger.cpp:35
Trigger(const std::string &address)
Construct a new Trigger Device at given location on given platform.
Definition: Trigger.cpp:33
virtual std::future< void > disarm() const =0
disarm the trigger
virtual std::future< void > trig() const =0
soft-trigger the trigger
virtual std::future< void > arm() const =0
arm the trigger
virtual std::future< bool > isArmed() const =0
check if trigger is armed
DeviceType
List of possible device types supported.
Definition: DeviceBase.hpp:52
main motion-lib namespace
Definition: Client.cpp:30