7#include <fastcdr/Cdr.h>
8#include <fastcdr/FastBuffer.h>
9#include <fastcdr/exceptions/BadParamException.h>
10#include <fastcdr/exceptions/Exception.h>
90 eprosima::fastcdr::Cdr& cdr,
const msg::Time& m) {
96 eprosima::fastcdr::Cdr& cdr,
msg::Time& m) {
138 eprosima::fastcdr::Cdr& cdr,
const msg::Point& m) {
271 eprosima::fastcdr::Cdr& cdr,
const msg::Header& m) {
347 eprosima::fastcdr::Cdr& cdr,
const msg::Twist& m) {
375 eprosima::fastcdr::Cdr& cdr,
const msg::Pose& m) {
381 eprosima::fastcdr::Cdr& cdr,
msg::Pose& m) {
389 eprosima::fastcdr::Cdr& cdr,
const msg::Clock& m) {
401 eprosima::fastcdr::Cdr& cdr,
const msg::String& m) {
541 eprosima::fastcdr::Cdr& cdr,
const msg::Engage& m) {
697 eprosima::fastcdr::Cdr& cdr,
const msg::Imu& m) {
708 eprosima::fastcdr::Cdr& cdr,
msg::Imu& m) {
779 eprosima::fastcdr::Cdr& cdr,
const msg::Image& m) {
843 cdr << static_cast<uint32_t>(m.
fields.size());
844 for (
const auto& f : m.
fields) {
859 uint32_t fields_size{0u};
862 throw eprosima::fastcdr::exception::BadParamException(
863 "PointCloud2::fields length exceeds sane CDR sequence cap");
865 m.
fields.resize(
static_cast<size_t>(fields_size));
866 for (
auto& f : m.
fields) {
883 cdr << static_cast<uint32_t>(m.
transforms.size());
891 uint32_t transforms_size{0u};
892 cdr >> transforms_size;
894 throw eprosima::fastcdr::exception::BadParamException(
895 "TFMessage::transforms length exceeds sane CDR sequence cap");
897 m.
transforms.resize(
static_cast<size_t>(transforms_size));
915 eprosima::fastcdr::FastBuffer fb;
919 eprosima::fastcdr::Cdr cdr{
921 eprosima::fastcdr::Cdr::LITTLE_ENDIANNESS,
922 eprosima::fastcdr::CdrVersion::XCDRv1};
924 cdr.serialize_encapsulation();
926 }
catch (
const eprosima::fastcdr::exception::Exception&) {
927 return std::vector<uint8_t>{};
929 const char* buf{fb.getBuffer()};
930 const size_t len{cdr.get_serialized_data_length()};
931 return std::vector<uint8_t>{
932 reinterpret_cast<const uint8_t*
>(buf),
933 reinterpret_cast<const uint8_t*
>(buf) + len};
943 eprosima::fastcdr::FastBuffer fb;
944 eprosima::fastcdr::Cdr cdr{
946 eprosima::fastcdr::Cdr::LITTLE_ENDIANNESS,
947 eprosima::fastcdr::CdrVersion::XCDRv1};
948 cdr.serialize_encapsulation();
950 return static_cast<uint32_t
>(cdr.get_serialized_data_length());
960 const uint8_t* data,
size_t size, T& msg) {
961 eprosima::fastcdr::FastBuffer fb{
963 reinterpret_cast<char*
>(
const_cast<uint8_t*
>(data)),
965 eprosima::fastcdr::Cdr cdr{
967 eprosima::fastcdr::Cdr::LITTLE_ENDIANNESS,
968 eprosima::fastcdr::CdrVersion::XCDRv1};
970 cdr.read_encapsulation();
972 }
catch (
const eprosima::fastcdr::exception::Exception&) {
static constexpr uint32_t kMaxCdrSequenceElements
Sanity cap for the length field of a CDR sequence read from the wire.
std::vector< uint8_t > serialize_to_cdr(const T &msg)
Serialize a msg::X to a CDR byte buffer including the DDS encapsulation header (Classic CDR,...
uint32_t cdr_serialized_size(const T &msg)
Return the exact CDR-serialized size in bytes for a message instance, including the 4-byte DDS encaps...
bool deserialize_from_cdr(const uint8_t *data, size_t size, T &msg)
Deserialize a msg::X from a CDR byte buffer that was produced by serialize_to_cdr() or by any ROS2-co...
void deserialize_cdr(eprosima::fastcdr::Cdr &cdr, msg::Time &m)
void serialize_cdr(eprosima::fastcdr::Cdr &cdr, const msg::Time &m)
This file contains definitions of common data structures used in traffic manager.
float steering_angle_velocity
std::array< double, 12 > p
std::array< double, 9 > r
std::string distortion_model
std::array< double, 9 > k
std::vector< int32_t > crossed_lane_markings
autoware_control_msgs/msg/Control
Longitudinal longitudinal
std::vector< uint8_t > data
std::array< double, 9 > linear_acceleration_covariance
std::array< double, 9 > angular_velocity_covariance
Vector3 linear_acceleration
std::array< double, 9 > orientation_covariance
autoware_control_msgs/msg/Lateral
float steering_tire_angle
bool is_defined_steering_tire_rotation_rate
float steering_tire_rotation_rate
autoware_control_msgs/msg/Longitudinal
bool is_defined_acceleration
uint8_t position_covariance_type
std::array< double, 9 > position_covariance
TwistWithCovariance twist
std::string child_frame_id
std::vector< PointField > fields
std::vector< uint8_t > data
std::array< double, 36 > covariance
float steering_tire_angle
std::vector< TransformStamped > transforms
std::array< double, 36 > covariance
float longitudinal_velocity