25using ::apollo::drivers::canbus::Byte;
34 static const uint32_t PERIOD = 20 * 1000;
40 chassis->mutable_steering_command_102()->set_steer_en_ctrl(
41 steer_en_ctrl(bytes, length));
42 chassis->mutable_steering_command_102() ->set_steer_angle_target(
43 steer_angle_target(bytes, length));
44 chassis->mutable_steering_command_102()->set_steer_angle_spd_target(
45 steer_angle_spd_target(bytes, length));
46 chassis->mutable_steering_command_102()->set_checksum_102(
47 checksum_102(bytes, length));
51 set_p_steer_en_ctrl(data, steer_en_ctrl_);
52 set_p_steer_angle_target(data, steer_angle_target_);
53 set_p_steer_angle_spd_target(data, steer_angle_spd_target_);
55 data[0] ^ data[1] ^ data[2] ^ data[3] ^ data[4] ^ data[5] ^ data[6];
56 set_p_checksum_102(data, checksum_102_);
62 steer_angle_target_ = 0;
63 steer_angle_spd_target_ = 0;
69 steer_en_ctrl_ = steer_en_ctrl;
77void Steeringcommand102::set_p_steer_en_ctrl(
79 int x = steer_en_ctrl;
81 Byte to_set(data + 0);
82 to_set.set_value(x, 0, 1);
86 int steer_angle_target) {
87 steer_angle_target_ = steer_angle_target;
95void Steeringcommand102::set_p_steer_angle_target(uint8_t* data,
96 int steer_angle_target) {
98 ProtocolData::BoundedValue(-500, 500, steer_angle_target);
99 int x = (steer_angle_target - -500.000000);
103 Byte to_set0(data + 4);
104 to_set0.set_value(t, 0, 8);
108 Byte to_set1(data + 3);
109 to_set1.set_value(t, 0, 8);
113 int steer_angle_spd_target) {
114 steer_angle_spd_target_ = steer_angle_spd_target;
122void Steeringcommand102::set_p_steer_angle_spd_target(
123 uint8_t* data,
int steer_angle_spd_target) {
124 steer_angle_spd_target =
125 ProtocolData::BoundedValue(0, 250, steer_angle_spd_target);
126 int x = steer_angle_spd_target;
128 Byte to_set(data + 1);
129 to_set.set_value(x, 0, 8);
133 checksum_102_ = checksum_102;
140void Steeringcommand102::set_p_checksum_102(uint8_t* data,
int checksum_102) {
141 checksum_102 = ProtocolData::BoundedValue(0, 255, checksum_102);
142 int x = checksum_102;
144 Byte to_set(data + 7);
145 to_set.set_value(x, 0, 8);
149 const std::uint8_t* bytes, int32_t length)
const {
151 int32_t x = t0.get_byte(0, 1);
158double Steeringcommand102::steer_angle_target(
const std::uint8_t* bytes,
159 int32_t length)
const {
161 int32_t x = t0.get_byte(0, 8);
164 int32_t t = t1.get_byte(0, 8);
168 double ret = x * 1 + -500.000000;
172double Steeringcommand102::steer_angle_spd_target(
const std::uint8_t* bytes,
173 int32_t length)
const {
175 int32_t x = t0.get_byte(0, 8);
181int Steeringcommand102::checksum_102(
const std::uint8_t* bytes,
182 int32_t length)
const {
184 int32_t x = t0.get_byte(0, 8);
Steeringcommand102 * set_steer_angle_spd_target(int steer_angle_spd_target)
Steeringcommand102 * set_checksum_102(int checksum_102)
uint32_t GetPeriod() const override
void UpdateData(uint8_t *data) override
void Parse(const std::uint8_t *bytes, int32_t length, Devkit *chassis) const override
Steeringcommand102 * set_steer_en_ctrl(Steering_command_102::Steer_en_ctrlType steer_en_ctrl)
Steeringcommand102 * set_steer_angle_target(int steer_angle_target)