38 Jetson(BufferedSerial &UARTJetson);
43 static uint8_t
calculateLRC(
const char *data,
size_t length);
49 std::vector<std::unique_ptr<WritePacket>> write_packets_;
50 std::vector<std::unique_ptr<ReadPacket>> read_packets_;
62 int writeIO(
char *buff,
int write_size);
63 int readIO(
char *buff,
int buff_size);
66 BufferedSerial *bcJetson;
69 static constexpr unsigned long WRITE_THREAD_LOOP_DT_MS = 1;
95 get_packed_payload(write_state, &buff[1]);
118 char *buff)
override {
120 std::memcpy(&buff[0], &write_state.
game_state,
sizeof(uint8_t));
121 std::memcpy(&buff[1], &write_state.
robot_hp,
sizeof(int16_t));
134 char *buff)
override {
136 std::memcpy(&buff[0], &write_state.
yaw_angle_rads,
sizeof(
float));
139 std::memcpy(&buff[8], &write_state.
yaw_velocity,
sizeof(
float));
140 std::memcpy(&buff[12], &write_state.
pitch_velocity,
sizeof(
float));
172 char calculated_checksum =
175 if (checksum != calculated_checksum) {
179 extract_payload(&buff[1], read_state);
201 std::memcpy(&read_state.
shoot_status, &buff[8],
sizeof(
char));
217 std::memcpy(&read_state.
desired_x_vel, &buff[0],
sizeof(
float));
218 std::memcpy(&read_state.
desired_y_vel, &buff[4],
sizeof(
float));
static char constexpr HEADER
Definition Jetson.h:207
ChassisReadPacket()
Definition Jetson.h:210
static int constexpr PAYLOAD_SIZE
Definition Jetson.h:208
void write(Jetson::WriteState &to_write)
Definition Jetson.cpp:30
Jetson::ReadState read()
Definition Jetson.cpp:22
Jetson(SPISlave &SPIJetson)
static uint8_t calculateLRC(const char *data, size_t length)
Definition Jetson.cpp:41
const char header_
Definition Jetson.h:154
ReadPacket(char header, int payload_size)
Definition Jetson.h:156
int parse_buff(char *buff, int buff_size, Jetson::ReadState &read_state)
Definition Jetson.h:162
const int payload_size_
Definition Jetson.h:155
virtual ~ReadPacket()=default
static int constexpr PAYLOAD_SIZE
Definition Jetson.h:113
static int constexpr HEADER
Definition Jetson.h:112
RefWritePacket()
Definition Jetson.h:114
static int constexpr PAYLOAD_SIZE
Definition Jetson.h:128
RobotStateWritePacket()
Definition Jetson.h:130
static int constexpr HEADER
Definition Jetson.h:127
static char constexpr HEADER
Definition Jetson.h:191
static int constexpr PAYLOAD_SIZE
Definition Jetson.h:192
TurretPacket()
Definition Jetson.h:193
const int payload_size_
Definition Jetson.h:84
const char header_
Definition Jetson.h:83
virtual ~WritePacket()=default
int write_data_to_buff(Jetson::WriteState &write_state, char *buff, int buff_size)
Definition Jetson.h:86
WritePacket(char header, int payload_size)
Definition Jetson.h:78
char localization_calibration
Definition Jetson.h:34
unsigned long long stamp_us
Definition Jetson.h:26
float desired_y_vel
Definition Jetson.h:32
float desired_angular_vel
Definition Jetson.h:33
float desired_yaw_rads
Definition Jetson.h:28
char shoot_status
Definition Jetson.h:29
float desired_x_vel
Definition Jetson.h:31
float desired_pitch_rads
Definition Jetson.h:27
float pitch_angle_rads
Definition Jetson.h:16
float pitch_velocity
Definition Jetson.h:18
float yaw_velocity
Definition Jetson.h:19
float chassis_y_velocity
Definition Jetson.h:14
float yaw_angle_rads
Definition Jetson.h:17
int16_t robot_hp
Definition Jetson.h:22
float chassis_rotation
Definition Jetson.h:15
int8_t game_state
Definition Jetson.h:21
float chassis_x_velocity
Definition Jetson.h:13