43 Jetson(BufferedSerial &UARTJetson);
48 static uint8_t
calculateLRC(
const char *data,
size_t length);
54 std::vector<std::unique_ptr<WritePacket>> write_packets_;
55 std::vector<std::unique_ptr<ReadPacket>> read_packets_;
67 int writeIO(
char *buff,
int write_size);
68 int readIO(
char *buff,
int buff_size);
71 BufferedSerial *bcJetson;
74 static constexpr unsigned long WRITE_THREAD_LOOP_DT_MS = 1;
100 get_packed_payload(write_state, &buff[1]);
123 char *buff)
override {
125 std::memcpy(&buff[0], &write_state.
game_state,
sizeof(uint8_t));
126 std::memcpy(&buff[1], &write_state.
robot_hp,
sizeof(int16_t));
139 char *buff)
override {
141 std::memcpy(&buff[0], &write_state.
yaw_angle_rads,
sizeof(
float));
144 std::memcpy(&buff[8], &write_state.
yaw_velocity,
sizeof(
float));
145 std::memcpy(&buff[12], &write_state.
pitch_velocity,
sizeof(
float));
162 char *buff)
override {
164 std::memcpy(&buff[0], &write_state.
calibration,
sizeof(uint8_t));
165 std::memcpy(&buff[1], &write_state.
activate_CV,
sizeof(uint8_t));
195 char calculated_checksum =
198 if (checksum != calculated_checksum) {
202 extract_payload(&buff[1], read_state);
224 std::memcpy(&read_state.
shoot_status, &buff[8],
sizeof(
char));
240 std::memcpy(&read_state.
desired_x_vel, &buff[0],
sizeof(
float));
241 std::memcpy(&read_state.
desired_y_vel, &buff[4],
sizeof(
float));
static char constexpr HEADER
Definition Jetson.h:230
ChassisReadPacket()
Definition Jetson.h:233
static int constexpr PAYLOAD_SIZE
Definition Jetson.h:231
void write(Jetson::WriteState &to_write)
Definition Jetson.cpp:31
Jetson::ReadState read()
Definition Jetson.cpp:23
Jetson(SPISlave &SPIJetson)
static uint8_t calculateLRC(const char *data, size_t length)
Definition Jetson.cpp:42
const char header_
Definition Jetson.h:177
ReadPacket(char header, int payload_size)
Definition Jetson.h:179
int parse_buff(char *buff, int buff_size, Jetson::ReadState &read_state)
Definition Jetson.h:185
const int payload_size_
Definition Jetson.h:178
virtual ~ReadPacket()=default
static int constexpr PAYLOAD_SIZE
Definition Jetson.h:118
static int constexpr HEADER
Definition Jetson.h:117
RefWritePacket()
Definition Jetson.h:119
static int constexpr PAYLOAD_SIZE
Definition Jetson.h:133
RobotStateWritePacket()
Definition Jetson.h:135
static int constexpr HEADER
Definition Jetson.h:132
static char constexpr HEADER
Definition Jetson.h:214
static int constexpr PAYLOAD_SIZE
Definition Jetson.h:215
TurretPacket()
Definition Jetson.h:216
const int payload_size_
Definition Jetson.h:89
const char header_
Definition Jetson.h:88
virtual ~WritePacket()=default
int write_data_to_buff(Jetson::WriteState &write_state, char *buff, int buff_size)
Definition Jetson.h:91
WritePacket(char header, int payload_size)
Definition Jetson.h:83
char localization_calibration
Definition Jetson.h:39
unsigned long long stamp_us
Definition Jetson.h:31
float desired_y_vel
Definition Jetson.h:37
float desired_angular_vel
Definition Jetson.h:38
float desired_yaw_rads
Definition Jetson.h:33
char shoot_status
Definition Jetson.h:34
float desired_x_vel
Definition Jetson.h:36
float desired_pitch_rads
Definition Jetson.h:32
float pitch_angle_rads
Definition Jetson.h:17
float pitch_velocity
Definition Jetson.h:19
float yaw_velocity
Definition Jetson.h:20
float chassis_y_velocity
Definition Jetson.h:15
uint8_t activate_CV
Definition Jetson.h:27
float yaw_angle_rads
Definition Jetson.h:18
int16_t robot_hp
Definition Jetson.h:23
float chassis_rotation
Definition Jetson.h:16
uint8_t calibration
Definition Jetson.h:26
int8_t game_state
Definition Jetson.h:22
float chassis_x_velocity
Definition Jetson.h:14