UMRT Arm Firmware Library
arduino_communication_test.hpp
1 //
2 // Created by Noah on 2024-06-13.
3 //
4 
5 #ifndef UMRT_ARM_FIRMWARE_LIB_ARDUINO_COMMUNICATION_TEST_HPP
6 #define UMRT_ARM_FIRMWARE_LIB_ARDUINO_COMMUNICATION_TEST_HPP
7 
8 #include "arduino_stepper_controller.hpp"
9 #include "utils.hpp"
10 #include <string>
11 #include <thread>
12 
13 #include <vector>
14 
15 // TODO: Could use some docs, would be nice if we could get some sample output
17 public:
18  ArduinoCommunicationTest(const std::string& device, const int baud, const std::vector<uint8_t>& motor_ids);
19 
20  void update();
21 
22  void sendTestRoutine();
23 
24 protected:
26  std::thread test_thread;
27  const std::vector<uint8_t> motor_ids;
28 
29  void onSetup();
30 
31  void onString(const std::string& str);
32 
33  void onEcho(const std::vector<uint8_t>& payload);
34 
35  void onEchoText(const std::vector<uint8_t>& payload);
36 
37  void onEchoInt32(const std::vector<uint8_t>& payload);
38 
39  void onEchoRaw(const std::vector<uint8_t>& payload);
40 
41  void onSetSpeed(const uint8_t motor, const int16_t speed);
42 
43  void onGetSpeed(const uint8_t motor, const int16_t speed);
44 
45  void onSendStep(const uint8_t motor, const uint16_t steps, const int16_t speed);
46 
47  void onSeekPosition(const uint8_t motor, const int32_t position, const int16_t speed);
48 
49  void onGetPosition(const uint8_t motor, const int32_t position);
50 
51 private:
52  std::function<void(const std::vector<uint8_t>&)> processPayload;
53 };
54 
55 
56 #endif //UMRT_ARM_FIRMWARE_LIB_ARDUINO_COMMUNICATION_TEST_HPP
Definition: arduino_communication_test.hpp:16
Manages the Firmata connection to an Arduino running the Stepper Controller program.
Definition: arduino_stepper_controller.hpp:18
A collection of helper functions related to encoding/decoding data for communication over a Firmata l...