MotionLib  1.0.0
SamBuCa motion library
MockPositionSensor.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-16T13:35:41
21 ** Author: Sylvain Fargier <sylvain.fargier@cern.ch>
22 */
23 
24 #ifndef MOCKPOSITIONSENSOR_HPP__
25 #define MOCKPOSITIONSENSOR_HPP__
26 
27 #include <memory>
28 
29 #include "device/PositionSensor.hpp"
30 
31 namespace smc {
32 namespace internal {
33 
34 class MockPlatform;
35 
37 {
38 public:
39  MockPositionSensor(const std::string &uid,
40  const std::shared_ptr<MockPlatform> &mock);
41 
42  std::future<units::value_t> getPosition(units::unit_t unit) const override;
43 
44  std::future<void> setActualPosition(
45  const units::value_t &value) const override;
46 
47  units::value_t lastPosition(units::unit_t unit) const override;
48 
49 protected:
50  std::weak_ptr<MockPlatform> m_mock;
51 };
52 
53 } // namespace internal
54 } // namespace smc
55 
56 #endif
DeviceId uid() const
Get the address of device.
Definition: DeviceBase.cpp:76
units::value_t lastPosition(units::unit_t unit) const override
Get last known position.
std::future< void > setActualPosition(const units::value_t &value) const override
Set the current position value.
std::future< units::value_t > getPosition(units::unit_t unit) const override
Get current position value.
main motion-lib namespace
Definition: Client.cpp:30