Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
etsi_its_conversion::Converter Class Reference

#include <Converter.hpp>

Inheritance diagram for etsi_its_conversion::Converter:
Inheritance graph
[legend]

Public Member Functions

 Converter (const rclcpp::NodeOptions &options)
 

Protected Member Functions

UdpPacket bufferToUdpPacketMessage (const uint8_t *buffer, const int size, const int btp_header_destination_port)
 
template<typename T_ros , typename T_struct >
bool decodeBufferToRosMessage (const uint8_t *buffer, const int size, const asn_TYPE_descriptor_t *type_descriptor, std::function< void(const T_struct &, T_ros &)> conversion_fn, T_ros &msg)
 
template<typename T_struct >
bool decodeBufferToStruct (const uint8_t *buffer, const int size, const asn_TYPE_descriptor_t *type_descriptor, T_struct *asn1_struct)
 
template<typename T_ros , typename T_struct >
bool encodeRosMessageToUdpPacketMessage (const T_ros &msg, UdpPacket &udp_msg, const asn_TYPE_descriptor_t *type_descriptor, std::function< void(const T_ros &, T_struct &)> conversion_fn, const int btp_header_destination_port)
 
template<typename T_struct >
bool encodeStructToBuffer (const T_struct &asn1_struct, const asn_TYPE_descriptor_t *type_descriptor, uint8_t *&buffer, int &size)
 
void loadParameters ()
 
bool logLevelIsDebug ()
 
template<typename T_ros , typename T_struct >
void rosCallback (const typename T_ros::UniquePtr msg, const std::string &type, const asn_TYPE_descriptor_t *type_descriptor, std::function< void(const T_ros &, T_struct &)> conversion_fn)
 
template<typename T_ros , typename T_struct >
T_struct rosMessageToStruct (const T_ros &msg, const asn_TYPE_descriptor_t *type_descriptor, std::function< void(const T_ros &, T_struct &)> conversion_fn)
 
void setup ()
 
template<typename T_ros , typename T_struct >
T_ros structToRosMessage (const T_struct &asn1_struct, const asn_TYPE_descriptor_t *type_descriptor, std::function< void(const T_struct &, T_ros &)> conversion_fn)
 
void udpCallback (const UdpPacket::UniquePtr udp_msg)
 

Protected Attributes

int btp_destination_port_offset_
 
int etsi_message_payload_offset_
 
bool has_btp_destination_port_
 
rclcpp::Publisher< cam_msgs::CAM >::SharedPtr publisher_cam_
 
rclcpp::Publisher< cam_ts_msgs::CAM >::SharedPtr publisher_cam_ts_
 
rclcpp::Publisher< cpm_ts_msgs::CollectivePerceptionMessage >::SharedPtr publisher_cpm_ts_
 
rclcpp::Publisher< denm_msgs::DENM >::SharedPtr publisher_denm_
 
rclcpp::Publisher< denm_ts_msgs::DENM >::SharedPtr publisher_denm_ts_
 
rclcpp::Publisher< mapem_ts_msgs::MAPEM >::SharedPtr publisher_mapem_ts_
 
rclcpp::Publisher< mcm_uulm_msgs::MCM >::SharedPtr publisher_mcm_uulm_
 
int publisher_queue_size_
 
rclcpp::Publisher< spatem_ts_msgs::SPATEM >::SharedPtr publisher_spatem_ts_
 
rclcpp::Publisher< UdpPacket >::SharedPtr publisher_udp_
 
rclcpp::Publisher< vam_ts_msgs::VAM >::SharedPtr publisher_vam_ts_
 
std::vector< std::string > ros2udp_etsi_types_
 
int subscriber_queue_size_
 
rclcpp::Subscription< UdpPacket >::SharedPtr subscriber_udp_
 
std::unordered_map< std::string, rclcpp::SubscriptionBase::SharedPtr > subscribers_
 
std::vector< std::string > udp2ros_etsi_types_
 

Static Protected Attributes

static const std::string kBtpDestinationPortOffsetParam {"btp_destination_port_offset"}
 
static const int kBtpDestinationPortOffsetParamDefault {8}
 
static const std::string kCheckConstraintsBeforeEncodingParam
 
static const bool kCheckConstraintsBeforeEncodingParamDefault {false}
 
static const std::string kEtsiMessagePayloadOffsetParam {"etsi_message_payload_offset"}
 
static const int kEtsiMessagePayloadOffsetParamDefault {78}
 
static const std::vector< std::string > kEtsiTypesParamSupportedOptions {"cam", "cam_ts", "cpm_ts", "denm", "denm_ts", "mapem_ts", "mcm_uulm", "spatem_ts", "vam_ts"}
 
static const std::string kHasBtpDestinationPortParam {"has_btp_destination_port"}
 
static const bool kHasBtpDestinationPortParamDefault {true}
 
static const std::string kInputTopicCam {"~/cam/in"}
 
static const std::string kInputTopicCamTs {"~/cam_ts/in"}
 
static const std::string kInputTopicCpmTs {"~/cpm_ts/in"}
 
static const std::string kInputTopicDenm {"~/denm/in"}
 
static const std::string kInputTopicDenmTs {"~/denm_ts/in"}
 
static const std::string kInputTopicMapemTs {"~/mapem_ts/in"}
 
static const std::string kInputTopicMcmUulm {"~/mcm_uulm/in"}
 
static const std::string kInputTopicSpatemTs {"~/spatem_ts/in"}
 
static const std::string kInputTopicUdp {"~/udp/in"}
 
static const std::string kInputTopicVamTs {"~/vam_ts/in"}
 
static const std::string kOutputTopicCam {"~/cam/out"}
 
static const std::string kOutputTopicCamTs {"~/cam_ts/out"}
 
static const std::string kOutputTopicCpmTs {"~/cpm_ts/out"}
 
static const std::string kOutputTopicDenm {"~/denm/out"}
 
static const std::string kOutputTopicDenmTs {"~/denm_ts/out"}
 
static const std::string kOutputTopicMapemTs {"~/mapem_ts/out"}
 
static const std::string kOutputTopicMcmUulm {"~/mcm_uulm/out"}
 
static const std::string kOutputTopicSpatemTs {"~/spatem_ts/out"}
 
static const std::string kOutputTopicUdp {"~/udp/out"}
 
static const std::string kOutputTopicVamTs {"~/vam_ts/out"}
 
static const std::string kPublisherQueueSizeParam {"publisher_queue_size"}
 
static const int kPublisherQueueSizeParamDefault {10}
 
static const std::string kRos2UdpEtsiTypesParam {"ros2udp_etsi_types"}
 
static const std::vector< std::string > kRos2UdpEtsiTypesParamDefault = Converter::kEtsiTypesParamSupportedOptions
 
static const std::string kSubscriberQueueSizeParam {"subscriber_queue_size"}
 
static const int kSubscriberQueueSizeParamDefault {10}
 
static const std::string kUdp2RosEtsiTypesParam {"udp2ros_etsi_types"}
 
static const std::vector< std::string > kUdp2RosEtsiTypesParamDefault {"cam", "cpm_ts", "denm", "mapem_ts", "mcm_uulm", "spatem_ts", "vam_ts"}
 

Detailed Description

Definition at line 99 of file Converter.hpp.

Constructor & Destructor Documentation

◆ Converter()

etsi_its_conversion::Converter::Converter ( const rclcpp::NodeOptions &  options)
explicit

Definition at line 148 of file Converter.cpp.

Member Function Documentation

◆ bufferToUdpPacketMessage()

UdpPacket etsi_its_conversion::Converter::bufferToUdpPacketMessage ( const uint8_t *  buffer,
const int  size,
const int  btp_header_destination_port 
)
protected

Definition at line 550 of file Converter.cpp.

◆ decodeBufferToRosMessage()

template<typename T_ros , typename T_struct >
bool etsi_its_conversion::Converter::decodeBufferToRosMessage ( const uint8_t *  buffer,
const int  size,
const asn_TYPE_descriptor_t type_descriptor,
std::function< void(const T_struct &, T_ros &)>  conversion_fn,
T_ros &  msg 
)
protected

Definition at line 504 of file Converter.cpp.

◆ decodeBufferToStruct()

template<typename T_struct >
bool etsi_its_conversion::Converter::decodeBufferToStruct ( const uint8_t *  buffer,
const int  size,
const asn_TYPE_descriptor_t type_descriptor,
T_struct *  asn1_struct 
)
protected

Definition at line 480 of file Converter.cpp.

◆ encodeRosMessageToUdpPacketMessage()

template<typename T_ros , typename T_struct >
bool etsi_its_conversion::Converter::encodeRosMessageToUdpPacketMessage ( const T_ros &  msg,
UdpPacket &  udp_msg,
const asn_TYPE_descriptor_t type_descriptor,
std::function< void(const T_ros &, T_struct &)>  conversion_fn,
const int  btp_header_destination_port 
)
protected

Definition at line 573 of file Converter.cpp.

◆ encodeStructToBuffer()

template<typename T_struct >
bool etsi_its_conversion::Converter::encodeStructToBuffer ( const T_struct &  asn1_struct,
const asn_TYPE_descriptor_t type_descriptor,
uint8_t *&  buffer,
int &  size 
)
protected

Definition at line 527 of file Converter.cpp.

◆ loadParameters()

void etsi_its_conversion::Converter::loadParameters ( )
protected

Definition at line 156 of file Converter.cpp.

◆ logLevelIsDebug()

bool etsi_its_conversion::Converter::logLevelIsDebug ( )
protected

Definition at line 120 of file Converter.cpp.

◆ rosCallback()

template<typename T_ros , typename T_struct >
void etsi_its_conversion::Converter::rosCallback ( const typename T_ros::UniquePtr  msg,
const std::string &  type,
const asn_TYPE_descriptor_t type_descriptor,
std::function< void(const T_ros &, T_struct &)>  conversion_fn 
)
protected

Definition at line 753 of file Converter.cpp.

◆ rosMessageToStruct()

template<typename T_ros , typename T_struct >
T_struct etsi_its_conversion::Converter::rosMessageToStruct ( const T_ros &  msg,
const asn_TYPE_descriptor_t type_descriptor,
std::function< void(const T_ros &, T_struct &)>  conversion_fn 
)
protected

Definition at line 516 of file Converter.cpp.

◆ setup()

void etsi_its_conversion::Converter::setup ( )
protected

Definition at line 278 of file Converter.cpp.

◆ structToRosMessage()

template<typename T_ros , typename T_struct >
T_ros etsi_its_conversion::Converter::structToRosMessage ( const T_struct &  asn1_struct,
const asn_TYPE_descriptor_t type_descriptor,
std::function< void(const T_struct &, T_ros &)>  conversion_fn 
)
protected

Definition at line 494 of file Converter.cpp.

◆ udpCallback()

void etsi_its_conversion::Converter::udpCallback ( const UdpPacket::UniquePtr  udp_msg)
protected

Definition at line 598 of file Converter.cpp.

Member Data Documentation

◆ btp_destination_port_offset_

int etsi_its_conversion::Converter::btp_destination_port_offset_
protected

Definition at line 194 of file Converter.hpp.

◆ etsi_message_payload_offset_

int etsi_its_conversion::Converter::etsi_message_payload_offset_
protected

Definition at line 195 of file Converter.hpp.

◆ has_btp_destination_port_

bool etsi_its_conversion::Converter::has_btp_destination_port_
protected

Definition at line 193 of file Converter.hpp.

◆ kBtpDestinationPortOffsetParam

const std::string etsi_its_conversion::Converter::kBtpDestinationPortOffsetParam {"btp_destination_port_offset"}
staticprotected

Definition at line 177 of file Converter.hpp.

◆ kBtpDestinationPortOffsetParamDefault

const int etsi_its_conversion::Converter::kBtpDestinationPortOffsetParamDefault {8}
staticprotected

Definition at line 178 of file Converter.hpp.

◆ kCheckConstraintsBeforeEncodingParam

const std::string etsi_its_conversion::Converter::kCheckConstraintsBeforeEncodingParam
staticprotected

Definition at line 190 of file Converter.hpp.

◆ kCheckConstraintsBeforeEncodingParamDefault

const bool etsi_its_conversion::Converter::kCheckConstraintsBeforeEncodingParamDefault {false}
staticprotected

Definition at line 191 of file Converter.hpp.

◆ kEtsiMessagePayloadOffsetParam

const std::string etsi_its_conversion::Converter::kEtsiMessagePayloadOffsetParam {"etsi_message_payload_offset"}
staticprotected

Definition at line 179 of file Converter.hpp.

◆ kEtsiMessagePayloadOffsetParamDefault

const int etsi_its_conversion::Converter::kEtsiMessagePayloadOffsetParamDefault {78}
staticprotected

Definition at line 180 of file Converter.hpp.

◆ kEtsiTypesParamSupportedOptions

const std::vector< std::string > etsi_its_conversion::Converter::kEtsiTypesParamSupportedOptions {"cam", "cam_ts", "cpm_ts", "denm", "denm_ts", "mapem_ts", "mcm_uulm", "spatem_ts", "vam_ts"}
staticprotected

Definition at line 183 of file Converter.hpp.

◆ kHasBtpDestinationPortParam

const std::string etsi_its_conversion::Converter::kHasBtpDestinationPortParam {"has_btp_destination_port"}
staticprotected

Definition at line 175 of file Converter.hpp.

◆ kHasBtpDestinationPortParamDefault

const bool etsi_its_conversion::Converter::kHasBtpDestinationPortParamDefault {true}
staticprotected

Definition at line 176 of file Converter.hpp.

◆ kInputTopicCam

const std::string etsi_its_conversion::Converter::kInputTopicCam {"~/cam/in"}
staticprotected

Definition at line 156 of file Converter.hpp.

◆ kInputTopicCamTs

const std::string etsi_its_conversion::Converter::kInputTopicCamTs {"~/cam_ts/in"}
staticprotected

Definition at line 158 of file Converter.hpp.

◆ kInputTopicCpmTs

const std::string etsi_its_conversion::Converter::kInputTopicCpmTs {"~/cpm_ts/in"}
staticprotected

Definition at line 160 of file Converter.hpp.

◆ kInputTopicDenm

const std::string etsi_its_conversion::Converter::kInputTopicDenm {"~/denm/in"}
staticprotected

Definition at line 162 of file Converter.hpp.

◆ kInputTopicDenmTs

const std::string etsi_its_conversion::Converter::kInputTopicDenmTs {"~/denm_ts/in"}
staticprotected

Definition at line 164 of file Converter.hpp.

◆ kInputTopicMapemTs

const std::string etsi_its_conversion::Converter::kInputTopicMapemTs {"~/mapem_ts/in"}
staticprotected

Definition at line 166 of file Converter.hpp.

◆ kInputTopicMcmUulm

const std::string etsi_its_conversion::Converter::kInputTopicMcmUulm {"~/mcm_uulm/in"}
staticprotected

Definition at line 168 of file Converter.hpp.

◆ kInputTopicSpatemTs

const std::string etsi_its_conversion::Converter::kInputTopicSpatemTs {"~/spatem_ts/in"}
staticprotected

Definition at line 170 of file Converter.hpp.

◆ kInputTopicUdp

const std::string etsi_its_conversion::Converter::kInputTopicUdp {"~/udp/in"}
staticprotected

Definition at line 154 of file Converter.hpp.

◆ kInputTopicVamTs

const std::string etsi_its_conversion::Converter::kInputTopicVamTs {"~/vam_ts/in"}
staticprotected

Definition at line 172 of file Converter.hpp.

◆ kOutputTopicCam

const std::string etsi_its_conversion::Converter::kOutputTopicCam {"~/cam/out"}
staticprotected

Definition at line 157 of file Converter.hpp.

◆ kOutputTopicCamTs

const std::string etsi_its_conversion::Converter::kOutputTopicCamTs {"~/cam_ts/out"}
staticprotected

Definition at line 159 of file Converter.hpp.

◆ kOutputTopicCpmTs

const std::string etsi_its_conversion::Converter::kOutputTopicCpmTs {"~/cpm_ts/out"}
staticprotected

Definition at line 161 of file Converter.hpp.

◆ kOutputTopicDenm

const std::string etsi_its_conversion::Converter::kOutputTopicDenm {"~/denm/out"}
staticprotected

Definition at line 163 of file Converter.hpp.

◆ kOutputTopicDenmTs

const std::string etsi_its_conversion::Converter::kOutputTopicDenmTs {"~/denm_ts/out"}
staticprotected

Definition at line 165 of file Converter.hpp.

◆ kOutputTopicMapemTs

const std::string etsi_its_conversion::Converter::kOutputTopicMapemTs {"~/mapem_ts/out"}
staticprotected

Definition at line 167 of file Converter.hpp.

◆ kOutputTopicMcmUulm

const std::string etsi_its_conversion::Converter::kOutputTopicMcmUulm {"~/mcm_uulm/out"}
staticprotected

Definition at line 169 of file Converter.hpp.

◆ kOutputTopicSpatemTs

const std::string etsi_its_conversion::Converter::kOutputTopicSpatemTs {"~/spatem_ts/out"}
staticprotected

Definition at line 171 of file Converter.hpp.

◆ kOutputTopicUdp

const std::string etsi_its_conversion::Converter::kOutputTopicUdp {"~/udp/out"}
staticprotected

Definition at line 155 of file Converter.hpp.

◆ kOutputTopicVamTs

const std::string etsi_its_conversion::Converter::kOutputTopicVamTs {"~/vam_ts/out"}
staticprotected

Definition at line 173 of file Converter.hpp.

◆ kPublisherQueueSizeParam

const std::string etsi_its_conversion::Converter::kPublisherQueueSizeParam {"publisher_queue_size"}
staticprotected

Definition at line 188 of file Converter.hpp.

◆ kPublisherQueueSizeParamDefault

const int etsi_its_conversion::Converter::kPublisherQueueSizeParamDefault {10}
staticprotected

Definition at line 189 of file Converter.hpp.

◆ kRos2UdpEtsiTypesParam

const std::string etsi_its_conversion::Converter::kRos2UdpEtsiTypesParam {"ros2udp_etsi_types"}
staticprotected

Definition at line 181 of file Converter.hpp.

◆ kRos2UdpEtsiTypesParamDefault

const std::vector< std::string > etsi_its_conversion::Converter::kRos2UdpEtsiTypesParamDefault = Converter::kEtsiTypesParamSupportedOptions
staticprotected

Definition at line 184 of file Converter.hpp.

◆ kSubscriberQueueSizeParam

const std::string etsi_its_conversion::Converter::kSubscriberQueueSizeParam {"subscriber_queue_size"}
staticprotected

Definition at line 186 of file Converter.hpp.

◆ kSubscriberQueueSizeParamDefault

const int etsi_its_conversion::Converter::kSubscriberQueueSizeParamDefault {10}
staticprotected

Definition at line 187 of file Converter.hpp.

◆ kUdp2RosEtsiTypesParam

const std::string etsi_its_conversion::Converter::kUdp2RosEtsiTypesParam {"udp2ros_etsi_types"}
staticprotected

Definition at line 182 of file Converter.hpp.

◆ kUdp2RosEtsiTypesParamDefault

const std::vector< std::string > etsi_its_conversion::Converter::kUdp2RosEtsiTypesParamDefault {"cam", "cpm_ts", "denm", "mapem_ts", "mcm_uulm", "spatem_ts", "vam_ts"}
staticprotected

Definition at line 185 of file Converter.hpp.

◆ publisher_cam_

rclcpp::Publisher<cam_msgs::CAM>::SharedPtr etsi_its_conversion::Converter::publisher_cam_
protected

Definition at line 210 of file Converter.hpp.

◆ publisher_cam_ts_

rclcpp::Publisher<cam_ts_msgs::CAM>::SharedPtr etsi_its_conversion::Converter::publisher_cam_ts_
protected

Definition at line 211 of file Converter.hpp.

◆ publisher_cpm_ts_

rclcpp::Publisher<cpm_ts_msgs::CollectivePerceptionMessage>::SharedPtr etsi_its_conversion::Converter::publisher_cpm_ts_
protected

Definition at line 212 of file Converter.hpp.

◆ publisher_denm_

rclcpp::Publisher<denm_msgs::DENM>::SharedPtr etsi_its_conversion::Converter::publisher_denm_
protected

Definition at line 213 of file Converter.hpp.

◆ publisher_denm_ts_

rclcpp::Publisher<denm_ts_msgs::DENM>::SharedPtr etsi_its_conversion::Converter::publisher_denm_ts_
protected

Definition at line 214 of file Converter.hpp.

◆ publisher_mapem_ts_

rclcpp::Publisher<mapem_ts_msgs::MAPEM>::SharedPtr etsi_its_conversion::Converter::publisher_mapem_ts_
protected

Definition at line 215 of file Converter.hpp.

◆ publisher_mcm_uulm_

rclcpp::Publisher<mcm_uulm_msgs::MCM>::SharedPtr etsi_its_conversion::Converter::publisher_mcm_uulm_
protected

Definition at line 216 of file Converter.hpp.

◆ publisher_queue_size_

int etsi_its_conversion::Converter::publisher_queue_size_
protected

Definition at line 199 of file Converter.hpp.

◆ publisher_spatem_ts_

rclcpp::Publisher<spatem_ts_msgs::SPATEM>::SharedPtr etsi_its_conversion::Converter::publisher_spatem_ts_
protected

Definition at line 217 of file Converter.hpp.

◆ publisher_udp_

rclcpp::Publisher<UdpPacket>::SharedPtr etsi_its_conversion::Converter::publisher_udp_
protected

Definition at line 219 of file Converter.hpp.

◆ publisher_vam_ts_

rclcpp::Publisher<vam_ts_msgs::VAM>::SharedPtr etsi_its_conversion::Converter::publisher_vam_ts_
protected

Definition at line 218 of file Converter.hpp.

◆ ros2udp_etsi_types_

std::vector<std::string> etsi_its_conversion::Converter::ros2udp_etsi_types_
protected

Definition at line 196 of file Converter.hpp.

◆ subscriber_queue_size_

int etsi_its_conversion::Converter::subscriber_queue_size_
protected

Definition at line 198 of file Converter.hpp.

◆ subscriber_udp_

rclcpp::Subscription<UdpPacket>::SharedPtr etsi_its_conversion::Converter::subscriber_udp_
protected

Definition at line 208 of file Converter.hpp.

◆ subscribers_

std::unordered_map<std::string, rclcpp::SubscriptionBase::SharedPtr> etsi_its_conversion::Converter::subscribers_
protected

Definition at line 209 of file Converter.hpp.

◆ udp2ros_etsi_types_

std::vector<std::string> etsi_its_conversion::Converter::udp2ros_etsi_types_
protected

Definition at line 197 of file Converter.hpp.


The documentation for this class was generated from the following files:


etsi_its_conversion
Author(s): Jean-Pierre Busch , Guido Küppers , Lennart Reiher
autogenerated on Sun May 18 2025 02:32:28