25using ::apollo::drivers::canbus::Byte;
34 static const uint32_t PERIOD = 20 * 1000;
39 Demo* chassis)
const {
40 chassis->mutable_brake_command_101()->set_heartbeat_101(
41 heartbeat_101(bytes, length));
42 chassis->mutable_brake_command_101()->set_aeb_en_ctrl(
43 aeb_en_ctrl(bytes, length));
44 chassis->mutable_brake_command_101()->set_brake_dec(brake_dec(bytes, length));
45 chassis->mutable_brake_command_101()->set_checksum_101(
46 checksum_101(bytes, length));
47 chassis->mutable_brake_command_101()->set_brake_pedal_target(
48 brake_pedal_target(bytes, length));
49 chassis->mutable_brake_command_101()->set_brake_en_ctrl(
50 brake_en_ctrl(bytes, length));
56 heartbeat_101_ = (heartbeat_101_) % 16;
57 set_p_heartbeat_101(data, heartbeat_101_);
59 data[0] ^ data[1] ^ data[2] ^ data[3] ^ data[4] ^ data[5] ^ data[6];
60 set_p_checksum_101(data, checksum_101_);
64 set_p_aeb_en_ctrl(data, aeb_en_ctrl_);
65 set_p_brake_dec(data, brake_dec_);
66 set_p_brake_pedal_target(data, brake_pedal_target_);
67 set_p_brake_en_ctrl(data, brake_en_ctrl_);
76 brake_pedal_target_ = 0.0;
81 heartbeat_101_ = heartbeat_101;
88void Brakecommand101::set_p_heartbeat_101(uint8_t* data,
int heartbeat_101) {
89 heartbeat_101 = ProtocolData::BoundedValue(0, 15, heartbeat_101);
90 int x = heartbeat_101;
92 Byte to_set(data + 0);
93 to_set.set_value(x, 4, 4);
98 aeb_en_ctrl_ = aeb_en_ctrl;
106void Brakecommand101::set_p_aeb_en_ctrl(
110 Byte to_set(data + 0);
111 to_set.set_value(x, 1, 1);
115 brake_dec_ = brake_dec;
122void Brakecommand101::set_p_brake_dec(uint8_t* data,
double brake_dec) {
123 brake_dec = ProtocolData::BoundedValue(0.0, 10.0, brake_dec);
124 int x = brake_dec / 0.010000;
128 Byte to_set0(data + 2);
129 to_set0.set_value(t, 6, 2);
133 Byte to_set1(data + 1);
134 to_set1.set_value(t, 0, 8);
138 checksum_101_ = checksum_101;
145void Brakecommand101::set_p_checksum_101(uint8_t* data,
int checksum_101) {
146 checksum_101 = ProtocolData::BoundedValue(0, 255, checksum_101);
147 int x = checksum_101;
149 Byte to_set(data + 7);
150 to_set.set_value(x, 0, 8);
154 double brake_pedal_target) {
155 brake_pedal_target_ = brake_pedal_target;
163void Brakecommand101::set_p_brake_pedal_target(uint8_t* data,
164 double brake_pedal_target) {
166 ProtocolData::BoundedValue(0.0, 100.0, brake_pedal_target);
167 int x = brake_pedal_target / 0.100000;
171 Byte to_set0(data + 4);
172 to_set0.set_value(t, 0, 8);
176 Byte to_set1(data + 3);
177 to_set1.set_value(t, 0, 8);
182 brake_en_ctrl_ = brake_en_ctrl;
192void Brakecommand101::set_p_brake_en_ctrl(
194 int x = brake_en_ctrl;
196 Byte to_set(data + 0);
197 to_set.set_value(x, 0, 1);
200int Brakecommand101::heartbeat_101(
const std::uint8_t* bytes,
201 int32_t length)
const {
203 int32_t x = t0.get_byte(4, 4);
210 const std::uint8_t* bytes, int32_t length)
const {
212 int32_t x = t0.get_byte(1, 1);
219double Brakecommand101::brake_dec(
const std::uint8_t* bytes,
220 int32_t length)
const {
222 int32_t x = t0.get_byte(0, 8);
225 int32_t t = t1.get_byte(6, 2);
229 double ret = x * 0.010000;
233int Brakecommand101::checksum_101(
const std::uint8_t* bytes,
234 int32_t length)
const {
236 int32_t x = t0.get_byte(0, 8);
242double Brakecommand101::brake_pedal_target(
const std::uint8_t* bytes,
243 int32_t length)
const {
245 int32_t x = t0.get_byte(0, 8);
248 int32_t t = t1.get_byte(0, 8);
252 double ret = x * 0.100000;
257 const std::uint8_t* bytes, int32_t length)
const {
259 int32_t x = t0.get_byte(0, 1);
Brakecommand101 * set_checksum_101(int checksum_101)
Brakecommand101 * set_brake_en_ctrl(Brake_command_101::Brake_en_ctrlType brake_en_ctrl)
void UpdateData_Heartbeat(uint8_t *data) override
void UpdateData(uint8_t *data) override
Brakecommand101 * set_heartbeat_101(int heartbeat_101)
void Parse(const std::uint8_t *bytes, int32_t length, Demo *chassis) const override
uint32_t GetPeriod() const override
Brakecommand101 * set_brake_dec(double brake_dec)
Brakecommand101 * set_aeb_en_ctrl(Brake_command_101::Aeb_en_ctrlType aeb_en_ctrl)
Brakecommand101 * set_brake_pedal_target(double brake_pedal_target)
@ AEB_EN_CTRL_DISABLE_AEB