25using ::apollo::drivers::canbus::Byte;
34 static const uint32_t PERIOD = 20 * 1000;
39 Demo* chassis)
const {
40 chassis->mutable_steering_command_102()->set_heartbeat_102(
41 heartbeat_102(bytes, length));
42 chassis->mutable_steering_command_102()->set_steer_en_ctrl(
43 steer_en_ctrl(bytes, length));
44 chassis->mutable_steering_command_102()->set_steer_angle_target(
45 steer_angle_target(bytes, length));
46 chassis->mutable_steering_command_102()->set_steer_angle_spd_target(
47 steer_angle_spd_target(bytes, length));
48 chassis->mutable_steering_command_102()->set_checksum_102(
49 checksum_102(bytes, length));
55 heartbeat_102_ = (heartbeat_102_) % 16;
56 set_p_heartbeat_102(data, heartbeat_102_);
58 data[0] ^ data[1] ^ data[2] ^ data[3] ^ data[4] ^ data[5] ^ data[6];
59 set_p_checksum_102(data, checksum_102_);
63 set_p_steer_en_ctrl(data, steer_en_ctrl_);
64 set_p_steer_angle_target(data, steer_angle_target_);
65 set_p_steer_angle_spd_target(data, steer_angle_spd_target_);
72 steer_angle_target_ = 0;
73 steer_angle_spd_target_ = 0;
78 heartbeat_102_ = heartbeat_102;
85void Steeringcommand102::set_p_heartbeat_102(uint8_t* data,
int heartbeat_102) {
86 heartbeat_102 = ProtocolData::BoundedValue(0, 15, heartbeat_102);
87 int x = heartbeat_102;
89 Byte to_set(data + 0);
90 to_set.set_value(x, 4, 4);
95 steer_en_ctrl_ = steer_en_ctrl;
105void Steeringcommand102::set_p_steer_en_ctrl(
107 int x = steer_en_ctrl;
109 Byte to_set(data + 0);
110 to_set.set_value(x, 0, 1);
114 int steer_angle_target) {
115 steer_angle_target_ = steer_angle_target;
123void Steeringcommand102::set_p_steer_angle_target(uint8_t* data,
124 int steer_angle_target) {
126 ProtocolData::BoundedValue(-500, 500, steer_angle_target);
127 int x = (steer_angle_target - -500.000000);
131 Byte to_set0(data + 4);
132 to_set0.set_value(t, 0, 8);
136 Byte to_set1(data + 3);
137 to_set1.set_value(t, 0, 8);
141 int steer_angle_spd_target) {
142 steer_angle_spd_target_ = steer_angle_spd_target;
150void Steeringcommand102::set_p_steer_angle_spd_target(
151 uint8_t* data,
int steer_angle_spd_target) {
152 steer_angle_spd_target =
153 ProtocolData::BoundedValue(0, 250, steer_angle_spd_target);
154 int x = steer_angle_spd_target;
156 Byte to_set(data + 1);
157 to_set.set_value(x, 0, 8);
161 checksum_102_ = checksum_102;
168void Steeringcommand102::set_p_checksum_102(uint8_t* data,
int checksum_102) {
169 checksum_102 = ProtocolData::BoundedValue(0, 255, checksum_102);
170 int x = checksum_102;
172 Byte to_set(data + 7);
173 to_set.set_value(x, 0, 8);
176int Steeringcommand102::heartbeat_102(
const std::uint8_t* bytes,
177 int32_t length)
const {
179 int32_t x = t0.get_byte(4, 4);
186 const std::uint8_t* bytes, int32_t length)
const {
188 int32_t x = t0.get_byte(0, 1);
195int Steeringcommand102::steer_angle_target(
const std::uint8_t* bytes,
196 int32_t length)
const {
198 int32_t x = t0.get_byte(0, 8);
201 int32_t t = t1.get_byte(0, 8);
205 int ret = x + -500.000000;
209int Steeringcommand102::steer_angle_spd_target(
const std::uint8_t* bytes,
210 int32_t length)
const {
212 int32_t x = t0.get_byte(0, 8);
218int Steeringcommand102::checksum_102(
const std::uint8_t* bytes,
219 int32_t length)
const {
221 int32_t x = t0.get_byte(0, 8);
Steeringcommand102 * set_steer_angle_target(int steer_angle_target)
void UpdateData_Heartbeat(uint8_t *data) override
Steeringcommand102 * set_checksum_102(int checksum_102)
Steeringcommand102 * set_steer_angle_spd_target(int steer_angle_spd_target)
Steeringcommand102 * set_heartbeat_102(int heartbeat_102)
void Parse(const std::uint8_t *bytes, int32_t length, Demo *chassis) const override
Steeringcommand102 * set_steer_en_ctrl(Steering_command_102::Steer_en_ctrlType steer_en_ctrl)
uint32_t GetPeriod() const override
void UpdateData(uint8_t *data) override