Serial library for Ususama

Dependents:   ususama_serial_demo WRS2021_mecanum_driver

Committer:
sgrsn
Date:
Mon Aug 23 17:02:24 2021 +0000
Revision:
1:33d6c6f43306
Child:
2:92e2ae1b1886
one

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sgrsn 1:33d6c6f43306 1 #ifndef USUSAMA_PROTOCOL_H
sgrsn 1:33d6c6f43306 2 #define USUSAMA_PROTOCOL_H
sgrsn 1:33d6c6f43306 3
sgrsn 1:33d6c6f43306 4 #include "mecanum_controller.hpp"
sgrsn 1:33d6c6f43306 5 //#include <vector>
sgrsn 1:33d6c6f43306 6 //#include <optional>
sgrsn 1:33d6c6f43306 7
sgrsn 1:33d6c6f43306 8 static class UsusamaProtocol
sgrsn 1:33d6c6f43306 9 {
sgrsn 1:33d6c6f43306 10 public:
sgrsn 1:33d6c6f43306 11 struct MoveCommand_t
sgrsn 1:33d6c6f43306 12 {
sgrsn 1:33d6c6f43306 13 int x;
sgrsn 1:33d6c6f43306 14 int y;
sgrsn 1:33d6c6f43306 15 int theta;
sgrsn 1:33d6c6f43306 16 bool enable;
sgrsn 1:33d6c6f43306 17 };
sgrsn 1:33d6c6f43306 18 struct MoveReply_t
sgrsn 1:33d6c6f43306 19 {
sgrsn 1:33d6c6f43306 20 bool valid;
sgrsn 1:33d6c6f43306 21 };
sgrsn 1:33d6c6f43306 22 struct StopCommand_t
sgrsn 1:33d6c6f43306 23 {
sgrsn 1:33d6c6f43306 24 bool stop;
sgrsn 1:33d6c6f43306 25 };
sgrsn 1:33d6c6f43306 26 struct StopReply_t
sgrsn 1:33d6c6f43306 27 {
sgrsn 1:33d6c6f43306 28 Pose2D pose;
sgrsn 1:33d6c6f43306 29 bool is_stop;
sgrsn 1:33d6c6f43306 30 };
sgrsn 1:33d6c6f43306 31
sgrsn 1:33d6c6f43306 32 UsusamaProtocol()
sgrsn 1:33d6c6f43306 33 {
sgrsn 1:33d6c6f43306 34 }
sgrsn 1:33d6c6f43306 35
sgrsn 1:33d6c6f43306 36 static int encode_float2int(float val)
sgrsn 1:33d6c6f43306 37 {
sgrsn 1:33d6c6f43306 38 return (int)(val * 1000);
sgrsn 1:33d6c6f43306 39 }
sgrsn 1:33d6c6f43306 40 static float decode_int2float(int val)
sgrsn 1:33d6c6f43306 41 {
sgrsn 1:33d6c6f43306 42 return (float)val / 1000;
sgrsn 1:33d6c6f43306 43 }
sgrsn 1:33d6c6f43306 44
sgrsn 1:33d6c6f43306 45 public:
sgrsn 1:33d6c6f43306 46 static const uint8_t COMMAND_MOVE = 0x04;
sgrsn 1:33d6c6f43306 47 static const uint8_t COMMAND_POSE_X = 0x05;
sgrsn 1:33d6c6f43306 48 static const uint8_t COMMAND_POSE_Y = 0x06;
sgrsn 1:33d6c6f43306 49 static const uint8_t COMMAND_POSE_THETA = 0x07;
sgrsn 1:33d6c6f43306 50
sgrsn 1:33d6c6f43306 51 static const uint8_t COMMAND_STOP = 0x08;
sgrsn 1:33d6c6f43306 52
sgrsn 1:33d6c6f43306 53 static const uint8_t REPLY_MOVE = 0x04;
sgrsn 1:33d6c6f43306 54 static const uint8_t REPLY_POSE_X = 0x05;
sgrsn 1:33d6c6f43306 55 static const uint8_t REPLY_POSE_Y = 0x06;
sgrsn 1:33d6c6f43306 56 static const uint8_t REPLY_POSE_THETA = 0x07;
sgrsn 1:33d6c6f43306 57 static const uint8_t REPLY_STOP = 0x08;
sgrsn 1:33d6c6f43306 58 static const uint8_t REPLY_STATE_X = 0x010;
sgrsn 1:33d6c6f43306 59 static const uint8_t REPLY_STATE_Y = 0x011;
sgrsn 1:33d6c6f43306 60 static const uint8_t REPLY_STATE_THETA = 0x12;
sgrsn 1:33d6c6f43306 61 };
sgrsn 1:33d6c6f43306 62
sgrsn 1:33d6c6f43306 63 #endif