Apollo 10.0
自动驾驶开放平台
adc_motioncontrol1_10.h
浏览该文件的文档.
1/******************************************************************************
2 * Copyright 2018 The Apollo Authors. All Rights Reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *****************************************************************************/
16
17#pragma once
18
19#include "modules/canbus_vehicle/transit/proto/transit.pb.h"
21
22#include "gtest/gtest_prod.h"
23
24namespace apollo {
25namespace canbus {
26namespace transit {
27
29 ::apollo::canbus::Transit> {
30 public:
31 static const int32_t ID;
32
34
35 uint32_t GetPeriod() const override;
36
37 void UpdateData(uint8_t* data) override;
38
39 void Reset() override;
40
41 // config detail: {'description': 'Setpoint for steering wheel angle. Positive
42 // for CW', 'offset': 0.0, 'precision': -0.05, 'len': 16, 'name':
43 // 'ADC_CMD_SteerWheelAngle', 'is_signed_var': True, 'physical_range':
44 // '[-1638.4|1638.35]', 'bit': 27, 'type': 'double', 'order': 'intel',
45 // 'physical_unit': 'deg'}
47 double adc_cmd_steerwheelangle);
48
49 // config detail: {'description': 'Select steering control mode', 'enum': {0:
50 // 'ADC_CMD_STEERINGCONTROLMODE_NONE', 1: 'ADC_CMD_STEERINGCONTROLMODE_ANGLE',
51 // 2: 'ADC_CMD_STEERINGCONTROLMODE_RESERVED_CURVATURE', 3:
52 // 'ADC_CMD_STEERINGCONTROLMODE_RESERVED'}, 'precision': 1.0, 'len': 2,
53 // 'name': 'ADC_CMD_SteeringControlMode', 'is_signed_var': False, 'offset':
54 // 0.0, 'physical_range': '[0|3]', 'bit': 4, 'type': 'enum', 'order': 'intel',
55 // 'physical_unit': ''}
58 adc_cmd_steeringcontrolmode);
59
60 // config detail: {'description': '(Reserved) Control parking brake',
61 // 'offset': 0.0, 'precision': 1.0, 'len': 1, 'name': 'ADC_CMD_ParkingBrake',
62 // 'is_signed_var': False, 'physical_range': '[0|1]', 'bit': 53, 'type':
63 // 'bool', 'order': 'intel', 'physical_unit': 'T/F'}
64 Adcmotioncontrol110* set_adc_cmd_parkingbrake(bool adc_cmd_parkingbrake);
65
66 // config detail: {'description': 'Transmission control - only used in direct
67 // longitudinal control', 'enum': {0: 'ADC_CMD_GEAR_P_PARK', 1:
68 // 'ADC_CMD_GEAR_D_DRIVE', 2: 'ADC_CMD_GEAR_N_NEUTRAL', 3:
69 // 'ADC_CMD_GEAR_R_REVERSE'}, 'precision': 1.0, 'len': 3, 'name':
70 // 'ADC_CMD_Gear', 'is_signed_var': False, 'offset': 0.0, 'physical_range':
71 // '[0|7]', 'bit': 50, 'type': 'enum', 'order': 'intel', 'physical_unit': ''}
74
75 // config detail: {'description': 'Motion Control 1 checksum', 'offset': 0.0,
76 // 'precision': 1.0, 'len': 8, 'name': 'ADC_MotionControl1_Checksum',
77 // 'is_signed_var': False, 'physical_range': '[0|255]', 'bit': 56, 'type':
78 // 'int', 'order': 'intel', 'physical_unit': ''}
80 int adc_motioncontrol1_checksum);
81
82 // config detail: {'description': 'Brake pressure for direct longitudinal
83 // control', 'offset': 0.0, 'precision': 0.0556, 'len': 11, 'name':
84 // 'ADC_CMD_BrakePercentage', 'is_signed_var': False, 'physical_range':
85 // '[0|113.8132]', 'bit': 6, 'type': 'double', 'order': 'intel',
86 // 'physical_unit': '%'}
88 double adc_cmd_brakepercentage);
89
90 // config detail: {'description': 'Throttle pedal position percentage for
91 // direct longitudinal control', 'offset': 0.0, 'precision': 0.1, 'len': 10,
92 // 'name': 'ADC_CMD_ThrottlePosition', 'is_signed_var': False,
93 // 'physical_range': '[0|100]', 'bit': 17, 'type': 'double', 'order': 'intel',
94 // 'physical_unit': '%'}
96 double adc_cmd_throttleposition);
97
98 // config detail: {'description': 'Motion control 1 Heartbeat counter',
99 // 'offset': 0.0, 'precision': 1.0, 'len': 2, 'name':
100 // 'ADC_MotionControl1_Counter', 'is_signed_var': False, 'physical_range':
101 // '[0|3]', 'bit': 54, 'type': 'int', 'order': 'intel', 'physical_unit': ''}
103 int adc_motioncontrol1_counter);
104
105 // config detail: {'description': 'Request from ADC to LLC for autonomy',
106 // 'enum': {0: 'ADC_CMD_AUTONOMYREQUEST_AUTONOMY_NOT_REQUESTED', 1:
107 // 'ADC_CMD_AUTONOMYREQUEST_AUTONOMY_REQUESTED', 2:
108 // 'ADC_CMD_AUTONOMYREQUEST_RESERVED0', 3:
109 // 'ADC_CMD_AUTONOMYREQUEST_RESERVED1'}, 'precision': 1.0, 'len': 2, 'name':
110 // 'ADC_CMD_AutonomyRequest', 'is_signed_var': False, 'offset': 0.0,
111 // 'physical_range': '[0|3]', 'bit': 0, 'type': 'enum', 'order': 'intel',
112 // 'physical_unit': ''}
115 adc_cmd_autonomyrequest);
116
117 // config detail: {'description': 'Select longitudinal control mode', 'enum':
118 // {0: 'ADC_CMD_LONGITUDINALCONTROLMODE_NONE', 1:
119 // 'ADC_CMD_LONGITUDINALCONTROLMODE_RESERVED_VELOCITY_AND_ACCELERATION', 2:
120 // 'ADC_CMD_LONGITUDINALCONTROLMODE_RESERVED_FORCE', 3:
121 // 'ADC_CMD_LONGITUDINALCONTROLMODE_DIRECT_THROTTLE_BRAKE'}, 'precision': 1.0,
122 // 'len': 2, 'name': 'ADC_CMD_LongitudinalControlMode', 'is_signed_var':
123 // False, 'offset': 0.0, 'physical_range': '[0|3]', 'bit': 2, 'type': 'enum',
124 // 'order': 'intel', 'physical_unit': ''}
127 adc_cmd_longitudinalcontrolmode);
128
129 FRIEND_TEST(adc_motioncontrol1_10Test, part1);
130 FRIEND_TEST(adc_motioncontrol1_10Test, part2);
131 FRIEND_TEST(adc_motioncontrol1_10Test, part3);
132 FRIEND_TEST(adc_motioncontrol1_10Test, part4);
133
134 private:
135 // config detail: {'description': 'Setpoint for steering wheel angle. Positive
136 // for CW', 'offset': 0.0, 'precision': -0.05, 'len': 16, 'name':
137 // 'ADC_CMD_SteerWheelAngle', 'is_signed_var': True, 'physical_range':
138 // '[-1638.4|1638.35]', 'bit': 27, 'type': 'double', 'order': 'intel',
139 // 'physical_unit': 'deg'}
140 void set_p_adc_cmd_steerwheelangle(uint8_t* data,
141 double adc_cmd_steerwheelangle);
142
143 // config detail: {'description': 'Select steering control mode', 'enum': {0:
144 // 'ADC_CMD_STEERINGCONTROLMODE_NONE', 1: 'ADC_CMD_STEERINGCONTROLMODE_ANGLE',
145 // 2: 'ADC_CMD_STEERINGCONTROLMODE_RESERVED_CURVATURE', 3:
146 // 'ADC_CMD_STEERINGCONTROLMODE_RESERVED'}, 'precision': 1.0, 'len': 2,
147 // 'name': 'ADC_CMD_SteeringControlMode', 'is_signed_var': False, 'offset':
148 // 0.0, 'physical_range': '[0|3]', 'bit': 4, 'type': 'enum', 'order': 'intel',
149 // 'physical_unit': ''}
150 void set_p_adc_cmd_steeringcontrolmode(
152 adc_cmd_steeringcontrolmode);
153
154 // config detail: {'description': '(Reserved) Control parking brake',
155 // 'offset': 0.0, 'precision': 1.0, 'len': 1, 'name': 'ADC_CMD_ParkingBrake',
156 // 'is_signed_var': False, 'physical_range': '[0|1]', 'bit': 53, 'type':
157 // 'bool', 'order': 'intel', 'physical_unit': 'T/F'}
158 void set_p_adc_cmd_parkingbrake(uint8_t* data, bool adc_cmd_parkingbrake);
159
160 // config detail: {'description': 'Transmission control - only used in direct
161 // longitudinal control', 'enum': {0: 'ADC_CMD_GEAR_P_PARK', 1:
162 // 'ADC_CMD_GEAR_D_DRIVE', 2: 'ADC_CMD_GEAR_N_NEUTRAL', 3:
163 // 'ADC_CMD_GEAR_R_REVERSE'}, 'precision': 1.0, 'len': 3, 'name':
164 // 'ADC_CMD_Gear', 'is_signed_var': False, 'offset': 0.0, 'physical_range':
165 // '[0|7]', 'bit': 50, 'type': 'enum', 'order': 'intel', 'physical_unit': ''}
166 void set_p_adc_cmd_gear(uint8_t* data,
168
169 // config detail: {'description': 'Motion Control 1 checksum', 'offset': 0.0,
170 // 'precision': 1.0, 'len': 8, 'name': 'ADC_MotionControl1_Checksum',
171 // 'is_signed_var': False, 'physical_range': '[0|255]', 'bit': 56, 'type':
172 // 'int', 'order': 'intel', 'physical_unit': ''}
173 void set_p_adc_motioncontrol1_checksum(uint8_t* data,
174 int adc_motioncontrol1_checksum);
175
176 // config detail: {'description': 'Brake pressure for direct longitudinal
177 // control', 'offset': 0.0, 'precision': 0.0556, 'len': 11, 'name':
178 // 'ADC_CMD_BrakePercentage', 'is_signed_var': False, 'physical_range':
179 // '[0|113.8132]', 'bit': 6, 'type': 'double', 'order': 'intel',
180 // 'physical_unit': '%'}
181 void set_p_adc_cmd_brakepercentage(uint8_t* data,
182 double adc_cmd_brakepercentage);
183
184 // config detail: {'description': 'Throttle pedal position percentage for
185 // direct longitudinal control', 'offset': 0.0, 'precision': 0.1, 'len': 10,
186 // 'name': 'ADC_CMD_ThrottlePosition', 'is_signed_var': False,
187 // 'physical_range': '[0|100]', 'bit': 17, 'type': 'double', 'order': 'intel',
188 // 'physical_unit': '%'}
189 void set_p_adc_cmd_throttleposition(uint8_t* data,
190 double adc_cmd_throttleposition);
191
192 // config detail: {'description': 'Motion control 1 Heartbeat counter',
193 // 'offset': 0.0, 'precision': 1.0, 'len': 2, 'name':
194 // 'ADC_MotionControl1_Counter', 'is_signed_var': False, 'physical_range':
195 // '[0|3]', 'bit': 54, 'type': 'int', 'order': 'intel', 'physical_unit': ''}
196 void set_p_adc_motioncontrol1_counter(uint8_t* data,
197 int adc_motioncontrol1_counter);
198
199 // config detail: {'description': 'Request from ADC to LLC for autonomy',
200 // 'enum': {0: 'ADC_CMD_AUTONOMYREQUEST_AUTONOMY_NOT_REQUESTED', 1:
201 // 'ADC_CMD_AUTONOMYREQUEST_AUTONOMY_REQUESTED', 2:
202 // 'ADC_CMD_AUTONOMYREQUEST_RESERVED0', 3:
203 // 'ADC_CMD_AUTONOMYREQUEST_RESERVED1'}, 'precision': 1.0, 'len': 2, 'name':
204 // 'ADC_CMD_AutonomyRequest', 'is_signed_var': False, 'offset': 0.0,
205 // 'physical_range': '[0|3]', 'bit': 0, 'type': 'enum', 'order': 'intel',
206 // 'physical_unit': ''}
207 void set_p_adc_cmd_autonomyrequest(
209 adc_cmd_autonomyrequest);
210
211 // config detail: {'description': 'Select longitudinal control mode', 'enum':
212 // {0: 'ADC_CMD_LONGITUDINALCONTROLMODE_NONE', 1:
213 // 'ADC_CMD_LONGITUDINALCONTROLMODE_RESERVED_VELOCITY_AND_ACCELERATION', 2:
214 // 'ADC_CMD_LONGITUDINALCONTROLMODE_RESERVED_FORCE', 3:
215 // 'ADC_CMD_LONGITUDINALCONTROLMODE_DIRECT_THROTTLE_BRAKE'}, 'precision': 1.0,
216 // 'len': 2, 'name': 'ADC_CMD_LongitudinalControlMode', 'is_signed_var':
217 // False, 'offset': 0.0, 'physical_range': '[0|3]', 'bit': 2, 'type': 'enum',
218 // 'order': 'intel', 'physical_unit': ''}
219 void set_p_adc_cmd_longitudinalcontrolmode(
221 adc_cmd_longitudinalcontrolmode);
222
223 private:
224 double adc_cmd_steerwheelangle_;
226 adc_cmd_steeringcontrolmode_;
227 bool adc_cmd_parkingbrake_;
229 int adc_motioncontrol1_checksum_;
230 double adc_cmd_brakepercentage_;
231 double adc_cmd_throttleposition_;
232 int adc_motioncontrol1_counter_;
235 adc_cmd_longitudinalcontrolmode_;
236};
237
238} // namespace transit
239} // namespace canbus
240} // namespace apollo
Adcmotioncontrol110 * set_adc_cmd_gear(Adc_motioncontrol1_10::Adc_cmd_gearType adc_cmd_gear)
Adcmotioncontrol110 * set_adc_cmd_brakepercentage(double adc_cmd_brakepercentage)
FRIEND_TEST(adc_motioncontrol1_10Test, part4)
Adcmotioncontrol110 * set_adc_cmd_throttleposition(double adc_cmd_throttleposition)
FRIEND_TEST(adc_motioncontrol1_10Test, part3)
Adcmotioncontrol110 * set_adc_cmd_parkingbrake(bool adc_cmd_parkingbrake)
Adcmotioncontrol110 * set_adc_cmd_longitudinalcontrolmode(Adc_motioncontrol1_10::Adc_cmd_longitudinalcontrolmodeType adc_cmd_longitudinalcontrolmode)
Adcmotioncontrol110 * set_adc_cmd_autonomyrequest(Adc_motioncontrol1_10::Adc_cmd_autonomyrequestType adc_cmd_autonomyrequest)
Adcmotioncontrol110 * set_adc_motioncontrol1_checksum(int adc_motioncontrol1_checksum)
Adcmotioncontrol110 * set_adc_cmd_steerwheelangle(double adc_cmd_steerwheelangle)
Adcmotioncontrol110 * set_adc_cmd_steeringcontrolmode(Adc_motioncontrol1_10::Adc_cmd_steeringcontrolmodeType adc_cmd_steeringcontrolmode)
FRIEND_TEST(adc_motioncontrol1_10Test, part2)
Adcmotioncontrol110 * set_adc_motioncontrol1_counter(int adc_motioncontrol1_counter)
FRIEND_TEST(adc_motioncontrol1_10Test, part1)
This is the base class of protocol data.
class register implement
Definition arena_queue.h:37
The class of ProtocolData