25using ::apollo::drivers::canbus::Byte;
34 static const uint32_t PERIOD = 20 * 1000;
40 chassis->mutable_ads_brake_command_46()->set_drive_enable(
41 drive_enable(bytes, length));
42 chassis->mutable_ads_brake_command_46()->set_auto_brake_command(
43 auto_brake_command(bytes, length));
44 chassis->mutable_ads_brake_command_46()->set_auto_parking_command(
45 auto_parking_command(bytes, length));
49 set_p_drive_enable(data, drive_enable_);
50 set_p_auto_brake_command(data, auto_brake_command_);
51 set_p_auto_parking_command(data, auto_parking_command_);
52 set_p_epb_rampauxiliarycommand(data, epb_rampauxiliarycommand_);
53 ++auto_drivercmd_alivecounter_;
54 auto_drivercmd_alivecounter_ = (auto_drivercmd_alivecounter_) % 16;
55 set_p_auto_drivercmd_alivecounter(data, auto_drivercmd_alivecounter_);
56 auto_drivercmd_checksum_ =
57 data[0] ^ data[1] ^ data[2] ^ data[3] ^ data[4] ^ data[5] ^ data[6];
58 set_p_auto_drivercmd_checksum(data, auto_drivercmd_checksum_);
63 drive_enable_ =
false;
64 auto_brake_command_ = 0;
65 auto_parking_command_ =
false;
66 epb_rampauxiliarycommand_ =
false;
67 auto_drivercmd_alivecounter_ = 0;
68 auto_drivercmd_checksum_ = 0;
72 drive_enable_ = drive_enable;
80void Adsbrakecommand46::set_p_drive_enable(uint8_t* data,
bool drive_enable) {
83 Byte to_set(data + 0);
84 to_set.set_value(x, 0, 1);
87bool Adsbrakecommand46::drive_enable(
const std::uint8_t* bytes,
88 int32_t length)
const {
90 int32_t x = t0.get_byte(0, 1);
97 int auto_brake_command) {
98 auto_brake_command_ = auto_brake_command;
105void Adsbrakecommand46::set_p_auto_brake_command(uint8_t* data,
106 int auto_brake_command) {
107 auto_brake_command = ProtocolData::BoundedValue(0, 100, auto_brake_command);
108 int x = auto_brake_command;
110 Byte to_set(data + 2);
111 to_set.set_value(x, 0, 8);
114int32_t Adsbrakecommand46::auto_brake_command(
const std::uint8_t* bytes,
115 int32_t length)
const {
117 int32_t x = t0.get_byte(0, 8);
124 bool auto_parking_command) {
125 auto_parking_command_ = auto_parking_command;
133void Adsbrakecommand46::set_p_auto_parking_command(uint8_t* data,
134 bool auto_parking_command) {
135 int x = auto_parking_command;
137 Byte to_set(data + 3);
138 to_set.set_value(x, 0, 1);
141bool Adsbrakecommand46::auto_parking_command(
const std::uint8_t* bytes,
142 int32_t length)
const {
144 int32_t x = t0.get_byte(0, 1);
151 bool epb_rampauxiliarycommand) {
152 epb_rampauxiliarycommand_ = epb_rampauxiliarycommand;
160void Adsbrakecommand46::set_p_epb_rampauxiliarycommand(
161 uint8_t* data,
bool epb_rampauxiliarycommand) {
162 int x = epb_rampauxiliarycommand;
164 Byte to_set(data + 3);
165 to_set.set_value(x, 1, 1);
169 int auto_drivercmd_alivecounter) {
170 auto_drivercmd_alivecounter_ = auto_drivercmd_alivecounter;
177void Adsbrakecommand46::set_p_auto_drivercmd_alivecounter(
178 uint8_t* data,
int auto_drivercmd_alivecounter) {
179 auto_drivercmd_alivecounter =
180 ProtocolData::BoundedValue(0, 15, auto_drivercmd_alivecounter);
181 int x = auto_drivercmd_alivecounter;
183 Byte to_set(data + 6);
184 to_set.set_value(x, 0, 4);
188 int auto_drivercmd_checksum) {
189 auto_drivercmd_checksum_ = auto_drivercmd_checksum;
196void Adsbrakecommand46::set_p_auto_drivercmd_checksum(
197 uint8_t* data,
int auto_drivercmd_checksum) {
198 auto_drivercmd_checksum =
199 ProtocolData::BoundedValue(0, 255, auto_drivercmd_checksum);
200 int x = auto_drivercmd_checksum;
202 Byte to_set(data + 7);
203 to_set.set_value(x, 0, 8);
Adsbrakecommand46 * set_auto_drivercmd_alivecounter(int auto_drivercmd_alivecounter)
void UpdateData(uint8_t *data) override
Adsbrakecommand46 * set_auto_brake_command(int auto_brake_command)
Adsbrakecommand46 * set_epb_rampauxiliarycommand(bool epb_rampauxiliarycommand)
Adsbrakecommand46 * set_drive_enable(bool drive_enable)
Adsbrakecommand46 * set_auto_parking_command(bool auto_parking_command)
void Parse(const std::uint8_t *bytes, int32_t length, Neolix_edu *chassis) const override
uint32_t GetPeriod() const override
Adsbrakecommand46 * set_auto_drivercmd_checksum(int auto_drivercmd_checksum)