25using ::apollo::drivers::canbus::Byte;
34 static const uint32_t PERIOD = 20 * 1000;
39 set_p_ignore_overrides(data, ignore_overrides_);
40 set_p_enable(data, enable_);
41 set_p_clear_override(data, clear_override_);
42 set_p_clear_faults(data, clear_faults_);
43 set_p_position(data, position_);
44 set_p_rotation_rate(data, rotation_rate_);
49 ignore_overrides_ =
false;
51 clear_override_ =
false;
52 clear_faults_ =
false;
58 ignore_overrides_ = ignore_overrides;
65void Steeringcmd12c::set_p_ignore_overrides(uint8_t* data,
66 bool ignore_overrides) {
67 uint8_t x = ignore_overrides;
69 Byte to_set(data + 0);
70 to_set.set_value(
static_cast<uint8_t
>(x), 1, 1);
81void Steeringcmd12c::set_p_enable(uint8_t* data,
bool enable) {
84 Byte to_set(data + 0);
85 to_set.set_value(
static_cast<uint8_t
>(x), 0, 1);
89 clear_override_ = clear_override;
96void Steeringcmd12c::set_p_clear_override(uint8_t* data,
bool clear_override) {
97 uint8_t x = clear_override;
99 Byte to_set(data + 0);
100 to_set.set_value(
static_cast<uint8_t
>(x), 2, 1);
104 clear_faults_ = clear_faults;
111void Steeringcmd12c::set_p_clear_faults(uint8_t* data,
bool clear_faults) {
112 uint8_t x = clear_faults;
114 Byte to_set(data + 0);
115 to_set.set_value(
static_cast<uint8_t
>(x), 3, 1);
120 position_ = position;
127void Steeringcmd12c::set_p_position(uint8_t* data,
double position) {
128 position = ProtocolData::BoundedValue(-32.768, 32.767, position);
129 int x =
static_cast<int>(position / -0.001000);
132 t =
static_cast<uint8_t
>(x & 0xFF);
133 Byte to_set0(data + 2);
134 to_set0.set_value(t, 0, 8);
137 t =
static_cast<uint8_t
>(x & 0xFF);
138 Byte to_set1(data + 1);
139 to_set1.set_value(t, 0, 8);
143 rotation_rate_ = rotation_rate;
150void Steeringcmd12c::set_p_rotation_rate(uint8_t* data,
double rotation_rate) {
151 rotation_rate = ProtocolData::BoundedValue(0.0, 65.535, rotation_rate);
152 int x =
static_cast<int>(rotation_rate / 0.001000);
155 t =
static_cast<uint8_t
>(x & 0xFF);
156 Byte to_set0(data + 4);
157 to_set0.set_value(t, 0, 8);
160 t =
static_cast<uint8_t
>(x & 0xFF);
161 Byte to_set1(data + 3);
162 to_set1.set_value(t, 0, 8);
uint32_t GetPeriod() const override
void UpdateData(uint8_t *data) override
Steeringcmd12c * set_clear_override(bool clear_override)
Steeringcmd12c * set_ignore_overrides(bool ignore_overrides)
Steeringcmd12c * set_enable(bool enable)
Steeringcmd12c * set_position(double position)
Steeringcmd12c * set_clear_faults(bool clear_faults)
Steeringcmd12c * set_rotation_rate(double rotation_rate)