25using ::apollo::drivers::canbus::Byte;
34 static const uint32_t PERIOD = 20 * 1000;
39 set_p_position_value(data, position_value_);
40 set_p_speed_limit(data, speed_limit_);
45 position_value_ = 0.0;
50 position_value_ = position_value;
58void Steeringcmd6d::set_p_position_value(uint8_t* data,
double position_value) {
60 ProtocolData::BoundedValue(-2147483.648, 2147483.647, position_value);
61 int x =
static_cast<int>(position_value / 0.001000);
64 t =
static_cast<uint8_t
>(x & 0xFF);
65 Byte to_set0(data + 3);
66 to_set0.set_value(t, 0, 8);
69 t =
static_cast<uint8_t
>(x & 0xFF);
70 Byte to_set1(data + 2);
71 to_set1.set_value(t, 0, 8);
74 t =
static_cast<uint8_t
>(x & 0xFF);
75 Byte to_set2(data + 1);
76 to_set2.set_value(t, 0, 8);
79 t =
static_cast<uint8_t
>(x & 0xFF);
80 Byte to_set3(data + 0);
81 to_set3.set_value(t, 0, 8);
85 speed_limit_ = speed_limit;
92void Steeringcmd6d::set_p_speed_limit(uint8_t* data,
double speed_limit) {
93 speed_limit = ProtocolData::BoundedValue(0.0, 65.535, speed_limit);
94 int x =
static_cast<int>(speed_limit / 0.001000);
97 t =
static_cast<uint8_t
>(x & 0xFF);
98 Byte to_set0(data + 7);
99 to_set0.set_value(t, 0, 8);
102 t =
static_cast<uint8_t
>(x & 0xFF);
103 Byte to_set1(data + 6);
104 to_set1.set_value(t, 0, 8);
107 t =
static_cast<uint8_t
>(x & 0xFF);
108 Byte to_set2(data + 5);
109 to_set2.set_value(t, 0, 8);
112 t =
static_cast<uint8_t
>(x & 0xFF);
113 Byte to_set3(data + 4);
114 to_set3.set_value(t, 0, 8);
uint32_t GetPeriod() const override
void UpdateData(uint8_t *data) override
Steeringcmd6d * set_position_value(double position_value)
Steeringcmd6d * set_speed_limit(double speed_limit)