CARLA
 
载入中...
搜索中...
未找到
CarlaEgoVehicleControl.cpp
浏览该文件的文档.
1// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15/*!
16 * @file CarlaEgoCarlaEgoVehicleControl.cpp
17 * This source file contains the definition of the described types in the IDL file.
18 *
19 * This file was generated by the tool gen.
20 */
21
22#ifdef _WIN32
23// Remove linker warning LNK4221 on Visual Studio
24// 解决 Visual Studio 中的链接器警告 LNK4221
25namespace {
26char dummy;
27} // namespace
28#endif // _WIN32
29
31#include <fastcdr/Cdr.h>// 用于序列化和反序列化
32
33#include <fastcdr/exceptions/BadParamException.h>
34using namespace eprosima::fastcdr::exception;
35
36#include <utility>
37// 定义序列化时不同数据类型的最大对齐大小
38#define builtin_interfaces_msg_Time_max_cdr_typesize 8ULL;
39#define std_msgs_msg_Header_max_cdr_typesize 268ULL;
40#define carla_msgs_msg_CarlaEgoVehicleControl_max_cdr_typesize 289ULL;
41#define builtin_interfaces_msg_Time_max_key_cdr_typesize 0ULL;
42#define std_msgs_msg_Header_max_key_cdr_typesize 0ULL;
43#define carla_msgs_msg_CarlaEgoVehicleControl_max_key_cdr_typesize 0ULL;
44// **构造函数**:初始化类的成员变量
46{
47 // std_msgs::msg::Header m_header
48
49 // float m_throttle
50 m_throttle = 0.0; // 油门值,初始为0
51 // float m_steer
52 m_steer = 0.0; // 转向值,初始为0
53 // float m_brake
54 m_brake = 0.0; // 刹车值
55 // boolean m_hand_brake
56 m_hand_brake = false; // 手刹状态
57 // boolean m_reverse
58 m_reverse = false; // 倒车状态
59 // long m_gear
60 m_gear = 0; // 挡位
61 // boolean m_manual_gear_shift
62 m_manual_gear_shift = false; // 是否手动换挡,初始为false
63
64}
65
66// **析构函数**
70
71// **拷贝构造函数**:基于已有对象 x 初始化当前对象
74{
75 m_header = x.m_header;
76 m_throttle = x.m_throttle;
77 m_steer = x.m_steer;
78 m_brake = x.m_brake;
79 m_hand_brake = x.m_hand_brake;
80 m_reverse = x.m_reverse;
81 m_gear = x.m_gear;
82 m_manual_gear_shift = x.m_manual_gear_shift;
83}
84
85// **移动构造函数**:基于已有对象 x(临时对象)移动资源到当前对象
87 CarlaEgoVehicleControl&& x) noexcept
88{
89 m_header = std::move(x.m_header); // 使用 std::move 移动 m_header
90 m_throttle = x.m_throttle;
91 m_steer = x.m_steer;
92 m_brake = x.m_brake;
93 m_hand_brake = x.m_hand_brake;
94 m_reverse = x.m_reverse;
95 m_gear = x.m_gear;
96 m_manual_gear_shift = x.m_manual_gear_shift;
97}
98
99// **拷贝赋值运算符**:将对象 x 的值赋给当前对象
101 const CarlaEgoVehicleControl& x)
102{
103 m_header = x.m_header;
104 m_throttle = x.m_throttle;
105 m_steer = x.m_steer;
106 m_brake = x.m_brake;
107 m_hand_brake = x.m_hand_brake;
108 m_reverse = x.m_reverse;
109 m_gear = x.m_gear;
110 m_manual_gear_shift = x.m_manual_gear_shift;
111
112 return *this; // 返回当前对象的引用
113}
114
115
116// **移动赋值运算符**:将临时对象 x 的值移动到当前对象
118 CarlaEgoVehicleControl&& x) noexcept
119{
120 m_header = std::move(x.m_header);
121 m_throttle = x.m_throttle;
122 m_steer = x.m_steer;
123 m_brake = x.m_brake;
124 m_hand_brake = x.m_hand_brake;
125 m_reverse = x.m_reverse;
126 m_gear = x.m_gear;
127 m_manual_gear_shift = x.m_manual_gear_shift;
128
129 return *this;// 返回当前对象的引用
130}
131
132
133// **比较运算符**:判断两个对象是否相等
134
136 const CarlaEgoVehicleControl& x) const
137{
138 return (m_header == x.m_header && m_throttle == x.m_throttle && m_steer == x.m_steer && m_brake == x.m_brake && m_hand_brake == x.m_hand_brake && m_reverse == x.m_reverse && m_gear == x.m_gear && m_manual_gear_shift == x.m_manual_gear_shift);
139}
140
141
142// **不等运算符**:判断两个对象是否不相等
144 const CarlaEgoVehicleControl& x) const
145{
146 return !(*this == x);
147}
148
149// **获取最大序列化大小**:返回最大序列化所需的空间大小
156
157// **计算当前对象的序列化大小**:基于当前对齐值
158
161 size_t current_alignment)
162{
164 current_alignment += std_msgs::msg::Header::getCdrSerializedSize(data.header(), current_alignment);
165 current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);// throttle
166 current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);// steer
167 current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);// brake
168 current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);// hand_brake
169 current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);// reverse
170 current_alignment += 4 + eprosima::fastcdr::Cdr::alignment(current_alignment, 4);// gear
171 current_alignment += 1 + eprosima::fastcdr::Cdr::alignment(current_alignment, 1);// manual_gear_shift
172 return current_alignment - initial_alignment;// 返回序列化大小
173}
174
175// **序列化函数**:将对象数据写入 CDR 流
177 eprosima::fastcdr::Cdr& scdr) const
178{
179 scdr << m_header;
180 scdr << m_throttle;
181 scdr << m_steer;
182 scdr << m_brake;
183 scdr << m_hand_brake;
184 scdr << m_reverse;
185 scdr << m_gear;
186 scdr << m_manual_gear_shift;
187}
188
189// **反序列化函数**:从 CDR 流中读取数据到对象
190
192 eprosima::fastcdr::Cdr& dcdr)
193{
194 dcdr >> m_header;
195 dcdr >> m_throttle;
196 dcdr >> m_steer;
197 dcdr >> m_brake;
198 dcdr >> m_hand_brake;
199 dcdr >> m_reverse;
200 dcdr >> m_gear;
201 dcdr >> m_manual_gear_shift;
202}
203
204/*!
205 * @brief This function copies the value in member header
206 * @param _header New value to be copied in member header
207 */
208// **设置 header 值**
210 const std_msgs::msg::Header& _header)
211{
212 m_header = _header;
213}
214
215/*!
216 * @brief This function moves the value in member header
217 * @param _header New value to be moved in member header
218 */
219/*
220 * @brief 通过移动语义设置header成员的值,减少拷贝,提高性能
221 * @param _header 待移动的std_msgs::msg::Header对象
222*/
224 std_msgs::msg::Header&& _header)
225{
226 m_header = std::move(_header);
227}
228
229/*!
230 * @brief This function returns a constant reference to member header(返回header成员的常量引用,用于只读访问)
231 * @return Constant reference to member header(return header的常量引用)
232 */
233const std_msgs::msg::Header& carla_msgs::msg::CarlaEgoVehicleControl::header() const
234{
235 return m_header;
236}
237
238/*!
239 * @brief This function returns a reference to member header(返回header成员的引用,用于修改header的值)
240 * @return Reference to member header()
241 */
243{
244 return m_header;
245}
246/*!
247 * @brief This function sets a value in member throttle(设置throttle成员的值(油门))
248 * @param _throttle New value for member throttle(param _throttle 新的油门值,范围通常在0.0到1.0之间)
249 */
251 float _throttle)
252{
253 m_throttle = _throttle;
254}
255
256/*!
257 * @brief This function returns the value of member throttle
258 * @return Value of member throttle
259 */
260//返回throttle的值
262{
263 return m_throttle;
264}
265
266/*!
267 * @brief This function returns a reference to member throttle(用于修改油门值)
268 * @return Reference to member throttle
269 */
271{
272 return m_throttle;
273}
274
275/*!
276 * @brief This function sets a value in member steer(设置转向角度)
277 * @param _steer New value for member steer(新的转向值,范围通常在-1.0到1.0之间)
278 */
280 float _steer)
281{
282 m_steer = _steer;
283}
284
285/*!
286 * @brief This function returns the value of member steer(返回steer的值)
287 * @return Value of member steer(当前转向的值)
288 */
290{
291 return m_steer;
292}
293
294/*!
295 * @brief This function returns a reference to member steer(返回steer的引用,用于修改转向值)
296 * @return Reference to member steer
297 */
299{
300 return m_steer;
301}
302
303/*!
304 * @brief This function sets a value in member brake(设置break成员的值,也就是刹车力度)
305 * @param _brake New value for member brake(新的刹车值,范围在0到1之间)
306 */
308 float _brake)
309{
310 m_brake = _brake;
311}
312
313/*!
314 * @brief This function returns the value of member brake(返回break的值)
315 * @return Value of member brake
316 */
318{
319 return m_brake;
320}
321
322/*!
323 * @brief This function returns a reference to member brake(刹车值的修改)
324 * @return Reference to member brake
325 */
327{
328 return m_brake;
329}
330
331/*!
332 * @brief This function sets a value in member hand_brake(设置手刹的状态)
333 * @param _hand_brake New value for member hand_brake(true是使用手刹)
334 */
336 bool _hand_brake)
337{
338 m_hand_brake = _hand_brake;
339}
340
341/*!
342 * @brief This function returns the value of member hand_brake(返回手刹的值,用于修改手刹的状态)
343 * @return Value of member hand_brake
344 */
346{
347 return m_hand_brake;
348}
349
350/*!
351 * @brief This function returns a reference to member hand_brake(修改修改手刹状态)
352 * @return Reference to member hand_brake
353 */
355{
356 return m_hand_brake;
357}
358
359/*!
360 * @brief This function sets a value in member reverse(倒车状态)
361 * @param _reverse New value for member reverse(布尔值,true表示车辆处于倒车状态)
362 */
364 bool _reverse)
365{
366 m_reverse = _reverse;
367}
368
369/*!
370 * @brief This function returns the value of member reverse(返回reverse的值)
371 * @return Value of member reverse(当前倒车状态,true表示正在倒车)
372 */
374{
375 return m_reverse;
376}
377
378/*!
379 * @brief This function returns a reference to member reverse(返回reverse的引用,用于修改倒车状态)
380 * @return Reference to member reverse
381 */
383{
384 return m_reverse;
385}
386
387/*!
388 * @brief This function sets a value in member gear(档位的修改)
389 * @param _gear New value for member gear(整数型,表示当前状态下是几档)
390 */
392 int32_t _gear)
393{
394 m_gear = _gear;
395}
396
397/*!
398 * @brief This function returns the value of member gear(返回gear的值)
399 * @return Value of member gear(当前档位的值)
400 */
402{
403 return m_gear;
404}
405
406/*!
407 * @brief This function returns a reference to member gear(返回gear的引用,用于修改档位值)
408 * @return Reference to member gear( gear的引用)
409 */
411{
412 return m_gear;
413}
414
415/*!
416 * @brief This function sets a value in member manual_gear_shift(设置manual_gear_shift成员的值(手动换挡状态))
417 * @param _manual_gear_shift New value for member manual_gear_shift(布尔值,true表示启用手动换挡)
418 */
420 bool _manual_gear_shift)
421{
422 m_manual_gear_shift = _manual_gear_shift;
423}
424
425/*!
426 * @brief This function returns the value of member manual_gear_shift(返回manual_gear_shift的值)
427 * @return Value of member manual_gear_shift(当前手动换挡状态,true表示启用手动换挡)
428 */
430{
431 return m_manual_gear_shift;
432}
433
434/*!
435 * @brief This function returns a reference to member manual_gear_shift(返回manual_gear_shift的引用,用于修改手动换挡状态)
436 * @return Reference to member manual_gear_shift
437 */
439{
440 return m_manual_gear_shift;
441}
442
449
454
456 eprosima::fastcdr::Cdr& scdr) const
457{
458 (void) scdr;
459}
#define carla_msgs_msg_CarlaEgoVehicleControl_max_key_cdr_typesize
#define carla_msgs_msg_CarlaEgoVehicleControl_max_cdr_typesize
return current_alignment initial_alignment
该类表示用户在 IDL 文件中定义的结构 CarlaEgoVehicleControl。 <>
static eProsima_user_DllExport size_t getCdrSerializedSize(const carla_msgs::msg::CarlaEgoVehicleControl &data, size_t current_alignment=0)
该函数返回数据的序列化大小,取决于缓冲区对齐方式。
eProsima_user_DllExport float brake() const
该函数返回成员 brake 的值。
eProsima_user_DllExport float steer() const
该函数返回成员 steer 的值。
eProsima_user_DllExport ~CarlaEgoVehicleControl()
默认析构函数。
eProsima_user_DllExport void serialize(eprosima::fastcdr::Cdr &cdr) const
该函数使用 CDR 序列化序列化一个对象。
eProsima_user_DllExport int32_t gear() const
该函数返回成员 gear 的值。
eProsima_user_DllExport bool operator==(const CarlaEgoVehicleControl &x) const
比较运算符。
eProsima_user_DllExport bool hand_brake() const
该函数返回成员 hand_brake 的值。
eProsima_user_DllExport CarlaEgoVehicleControl & operator=(const CarlaEgoVehicleControl &x)
复制赋值运算符。
eProsima_user_DllExport CarlaEgoVehicleControl()
默认构造函数。
eProsima_user_DllExport const std_msgs::msg::Header & header() const
该函数返回对成员 header 的常量引用。
eProsima_user_DllExport float throttle() const
该函数返回成员 throttle 的值。
eProsima_user_DllExport bool reverse() const
该函数返回成员 reverse 的值。
static eProsima_user_DllExport size_t getMaxCdrSerializedSize(size_t current_alignment=0)
该函数返回对象的最大序列化大小,取决于缓冲区对齐方式。
eProsima_user_DllExport void serializeKey(eprosima::fastcdr::Cdr &cdr) const
该函数使用 CDR 序列化序列化对象的键成员。
eProsima_user_DllExport bool operator!=(const CarlaEgoVehicleControl &x) const
比较运算符。
eProsima_user_DllExport void deserialize(eprosima::fastcdr::Cdr &cdr)
该函数使用 CDR 序列化反序列化一个对象。
static eProsima_user_DllExport bool isKeyDefined()
该函数告诉您此类型的键是否已定义。
eProsima_user_DllExport bool manual_gear_shift() const
该函数返回成员 manual_gear_shift 的值。
eProsima_user_DllExport void header(const std_msgs::msg::Header &_header)
该函数复制成员 header 的值。
static eProsima_user_DllExport size_t getKeyMaxCdrSerializedSize(size_t current_alignment=0)
该函数返回对象键的最大序列化大小,取决于缓冲区对齐方式。