BLEProthesisInterface.h
Go to the documentation of this file.
1#pragma once
2
3#include <atomic>
4#include <memory>
5#include <string>
6
9
11{
12public:
32
33public:
34 BLEProthesisInterface(const std::string& mac,
37
38 std::int64_t getThumbPWM() const;
39 std::int64_t getThumbPos() const;
40 std::int64_t getFingerPWM() const;
41 std::int64_t getFingerPos() const;
42
43 State getState() const;
44
45 void sendRaw(const std::string& cmd);
46
47 void sendGrasp(std::uint64_t n);
48 void sendThumbPWM(std::uint64_t v, std::uint64_t maxPWM, std::uint64_t pos);
49 void sendFingerPWM(std::uint64_t v, std::uint64_t maxPWM, std::uint64_t pos);
50
51 void verboseReceive(bool b = true);
52 void verboseSend(bool b = true);
53
54private:
56 //sensor values
57 std::atomic_int64_t _thumbPWM{0};
58 std::atomic_int64_t _thumbPos{0};
59 std::atomic_int64_t _fingerPWM{0};
60 std::atomic_int64_t _fingerPos{0};
61
62 //management
63 std::unique_ptr<BLEProthesisInterfaceQtWorkerThread> _worker;
64 std::atomic<State> _state{State::Created};
65 std::atomic_bool _verboseReceive{false};
66 std::atomic_bool _verboseSend{true};
67 SensorValueProtocol _protocol;
68
69public:
70 static constexpr std::uint64_t
72 {
73 return 8;
74 }
75
76 static constexpr std::uint64_t
78 {
79 return 10;
80 }
81
82 static constexpr std::uint64_t
84 {
85 return 200;
86 }
87
88 static constexpr std::uint64_t
90 {
91 return 2999;
92 }
93
94 static constexpr std::uint64_t
96 {
97 return 100'000;
98 }
99
100 static constexpr std::uint64_t
102 {
103 return 200'000;
104 }
105};
106
std::string to_string(BLEProthesisInterface::State s)
static constexpr std::uint64_t getMaxV()
void sendThumbPWM(std::uint64_t v, std::uint64_t maxPWM, std::uint64_t pos)
std::int64_t getFingerPos() const
std::int64_t getThumbPos() const
std::int64_t getThumbPWM() const
friend class BLEProthesisInterfaceQtWorker
void sendGrasp(std::uint64_t n)
static constexpr std::uint64_t getMaxPosThumb()
std::int64_t getFingerPWM() const
static constexpr std::uint64_t getMaxPosFingers()
BLEProthesisInterface(const std::string &mac, SensorValueProtocol protocol=SensorValueProtocol::mx_pos_pwm)
static constexpr std::uint64_t getMinV()
void sendFingerPWM(std::uint64_t v, std::uint64_t maxPWM, std::uint64_t pos)
static constexpr std::uint64_t getMaxPWM()
static constexpr std::uint64_t getMaxG()
void sendRaw(const std::string &cmd)