27using ::apollo::drivers::canbus::Byte;
36 static const uint32_t PERIOD = 20 * 1000;
41 set_p_ignore_overrides(data, ignore_overrides_);
42 set_p_enable(data, enable_);
43 set_p_clear_override(data, clear_override_);
44 set_p_clear_faults(data, clear_faults_);
45 set_p_accel_cmd(data, accel_cmd_);
50 ignore_overrides_ =
false;
52 clear_override_ =
false;
53 clear_faults_ =
false;
58 ignore_overrides_ = ignore_overrides;
65void Accelcmd100::set_p_ignore_overrides(uint8_t* data,
bool ignore_overrides) {
66 uint8_t x = ignore_overrides;
68 Byte to_set(data + 0);
69 to_set.set_value(
static_cast<uint8_t
>(x), 1, 1);
80void Accelcmd100::set_p_enable(uint8_t* data,
bool enable) {
83 Byte to_set(data + 0);
84 to_set.set_value(
static_cast<uint8_t
>(x), 0, 1);
88 clear_override_ = clear_override;
95void Accelcmd100::set_p_clear_override(uint8_t* data,
bool clear_override) {
96 uint8_t x = clear_override;
98 Byte to_set(data + 0);
99 to_set.set_value(
static_cast<uint8_t
>(x), 2, 1);
103 clear_faults_ = clear_faults;
110void Accelcmd100::set_p_clear_faults(uint8_t* data,
bool clear_faults) {
111 uint8_t x = clear_faults;
113 Byte to_set(data + 0);
114 to_set.set_value(
static_cast<uint8_t
>(x), 3, 1);
118 accel_cmd_ = accel_cmd;
125void Accelcmd100::set_p_accel_cmd(uint8_t* data,
double accel_cmd) {
126 const double scaling_bias = 0.0;
127 const double scaling_gain = 1.20;
128 accel_cmd = std::max(0.0, (accel_cmd - scaling_bias) / (scaling_gain * 100));
129 accel_cmd = ProtocolData::BoundedValue(0.0, 1.0, accel_cmd);
131 int x =
static_cast<int>(accel_cmd / 0.001000);
134 t =
static_cast<uint8_t
>(x & 0xFF);
135 Byte to_set0(data + 2);
136 to_set0.set_value(t, 0, 8);
139 t =
static_cast<uint8_t
>(x & 0xFF);
140 Byte to_set1(data + 1);
141 to_set1.set_value(t, 0, 8);
Accelcmd100 * set_ignore_overrides(bool ignore_overrides)
Accelcmd100 * set_accel_cmd(double accel_cmd)
uint32_t GetPeriod() const override
Accelcmd100 * set_enable(bool enable)
Accelcmd100 * set_clear_override(bool clear_override)
void UpdateData(uint8_t *data) override
Accelcmd100 * set_clear_faults(bool clear_faults)