44 Jetson(BufferedSerial &UARTJetson);
49 static uint8_t
calculateLRC(
const char *data,
size_t length);
55 std::vector<std::unique_ptr<WritePacket>> write_packets_;
56 std::vector<std::unique_ptr<ReadPacket>> read_packets_;
68 int writeIO(
char *buff,
int write_size);
69 int readIO(
char *buff,
int buff_size);
72 BufferedSerial *bcJetson;
75 static constexpr unsigned long WRITE_THREAD_LOOP_DT_MS = 1;
101 get_packed_payload(write_state, &buff[1]);
124 char *buff)
override {
126 std::memcpy(&buff[0], &write_state.
game_state,
sizeof(uint8_t));
127 std::memcpy(&buff[1], &write_state.
team_color,
sizeof(uint8_t));
128 std::memcpy(&buff[2], &write_state.
robot_hp,
sizeof(uint16_t));
141 char *buff)
override {
143 std::memcpy(&buff[0], &write_state.
yaw_angle_rads,
sizeof(
float));
146 std::memcpy(&buff[8], &write_state.
yaw_velocity,
sizeof(
float));
147 std::memcpy(&buff[12], &write_state.
pitch_velocity,
sizeof(
float));
164 char *buff)
override {
166 std::memcpy(&buff[0], &write_state.
calibration,
sizeof(uint8_t));
167 std::memcpy(&buff[1], &write_state.
activate_CV,
sizeof(uint8_t));
197 char calculated_checksum =
200 if (checksum != calculated_checksum) {
204 extract_payload(&buff[1], read_state);
226 std::memcpy(&read_state.
shoot_status, &buff[8],
sizeof(
char));
242 std::memcpy(&read_state.
desired_x_vel, &buff[0],
sizeof(
float));
243 std::memcpy(&read_state.
desired_y_vel, &buff[4],
sizeof(
float));
static char constexpr HEADER
Definition Jetson.h:232
ChassisReadPacket()
Definition Jetson.h:235
static int constexpr PAYLOAD_SIZE
Definition Jetson.h:233
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:179
ReadPacket(char header, int payload_size)
Definition Jetson.h:181
int parse_buff(char *buff, int buff_size, Jetson::ReadState &read_state)
Definition Jetson.h:187
const int payload_size_
Definition Jetson.h:180
virtual ~ReadPacket()=default
static int constexpr PAYLOAD_SIZE
Definition Jetson.h:119
static int constexpr HEADER
Definition Jetson.h:118
RefWritePacket()
Definition Jetson.h:120
static int constexpr PAYLOAD_SIZE
Definition Jetson.h:135
RobotStateWritePacket()
Definition Jetson.h:137
static int constexpr HEADER
Definition Jetson.h:134
static char constexpr HEADER
Definition Jetson.h:216
static int constexpr PAYLOAD_SIZE
Definition Jetson.h:217
TurretPacket()
Definition Jetson.h:218
const int payload_size_
Definition Jetson.h:90
const char header_
Definition Jetson.h:89
virtual ~WritePacket()=default
int write_data_to_buff(Jetson::WriteState &write_state, char *buff, int buff_size)
Definition Jetson.h:92
WritePacket(char header, int payload_size)
Definition Jetson.h:84
char localization_calibration
Definition Jetson.h:40
unsigned long long stamp_us
Definition Jetson.h:32
float desired_y_vel
Definition Jetson.h:38
float desired_angular_vel
Definition Jetson.h:39
float desired_yaw_rads
Definition Jetson.h:34
char shoot_status
Definition Jetson.h:35
float desired_x_vel
Definition Jetson.h:37
float desired_pitch_rads
Definition Jetson.h:33
uint8_t game_state
Definition Jetson.h:22
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 team_color
Definition Jetson.h:23
uint8_t activate_CV
Definition Jetson.h:28
float yaw_angle_rads
Definition Jetson.h:18
float chassis_rotation
Definition Jetson.h:16
uint8_t calibration
Definition Jetson.h:27
uint16_t robot_hp
Definition Jetson.h:24
float chassis_x_velocity
Definition Jetson.h:14