21#include <boost/asio.hpp>
22#include <boost/asio/posix/stream_descriptor.hpp>
25#include <std_msgs/msg/u_int16.hpp>
30template <
typename TSource,
typename TOrthogonal>
35template <
typename TSource,
typename TOrthogonal>
40template <
typename TSource,
typename TOrthogonal>
45template <
typename TSource,
typename TOrthogonal>
50template <
typename TSource,
typename TOrthogonal>
55template <
typename TSource,
typename TOrthogonal>
60template <
typename TSource,
typename TOrthogonal>
65template <
typename TSource,
typename TOrthogonal>
70template <
typename TSource,
typename TOrthogonal>
75template <
typename TSource,
typename TOrthogonal>
80template <
typename TSource,
typename TOrthogonal>
85template <
typename TSource,
typename TOrthogonal>
90template <
typename TSource,
typename TOrthogonal>
95template <
typename TSource,
typename TOrthogonal>
100template <
typename TSource,
typename TOrthogonal>
105template <
typename TSource,
typename TOrthogonal>
110template <
typename TSource,
typename TOrthogonal>
115template <
typename TSource,
typename TOrthogonal>
120template <
typename TSource,
typename TOrthogonal>
125template <
typename TSource,
typename TOrthogonal>
130template <
typename TSource,
typename TOrthogonal>
135template <
typename TSource,
typename TOrthogonal>
140template <
typename TSource,
typename TOrthogonal>
145template <
typename TSource,
typename TOrthogonal>
150template <
typename TSource,
typename TOrthogonal>
155template <
typename TSource,
typename TOrthogonal>
171 template <
typename T>
172 void OnKeyPress(
void (T::*callback)(
char keypress), T *
object)
180 template <
typename TOrthogonal,
typename TSourceObject>
185 TOrthogonal, TSourceObject>();
189 char character = (char)unicode_keychar.data;
190 RCLCPP_WARN(
getLogger(),
"detected keyboard: %c", character);
192 if (character ==
'a')
194 else if (character ==
'b')
196 else if (character ==
'c')
198 else if (character ==
'd')
200 else if (character ==
'e')
202 else if (character ==
'f')
204 else if (character ==
'g')
206 else if (character ==
'h')
208 else if (character ==
'y')
210 else if (character ==
'j')
212 else if (character ==
'k')
214 else if (character ==
'l')
216 else if (character ==
'm')
218 else if (character ==
'n')
220 else if (character ==
'o')
222 else if (character ==
'p')
224 else if (character ==
'q')
226 else if (character ==
'r')
228 else if (character ==
's')
230 else if (character ==
't')
232 else if (character ==
'u')
234 else if (character ==
'v')
236 else if (character ==
'w')
238 else if (character ==
'x')
240 else if (character ==
'y')
242 else if (character ==
'z')
250 template <
typename TEv>
std::function< void(std_msgs::msg::UInt16)> postEventKeyPress
smacc2::SmaccSignal< void(char keypress)> OnKeyPress_
void onOrthogonalAllocation()
void onKeyboardMessage(const std_msgs::msg::UInt16 &unicode_keychar)
virtual void onInitialize() override
void OnKeyPress(void(T::*callback)(char keypress), T *object)
ISmaccStateMachine * getStateMachine()
rclcpp::Logger getLogger()
boost::signals2::connection createSignalConnection(TSmaccSignal &signal, TMemberFunctionPrototype callback, TSmaccObjectType *object)
std::string demangleSymbol()