CommRaT 2.0.0
C++20 Real-Time Messaging Framework
Loading...
Searching...
No Matches
messages.hpp File Reference
#include <cstdint>
#include <type_traits>
#include <span>
#include <cstring>
#include <sertial/sertial.hpp>
#include <sertial/containers/fixed_vector.hpp>
#include <sertial/containers/fixed_string.hpp>

Go to the source code of this file.

Classes

struct  commrat::TimsHeader
 
struct  commrat::message_type_for< PayloadT >
 
struct  commrat::TimsMessage< PayloadT >
 
struct  commrat::CommandPayload
 
struct  commrat::StatusPayload
 
struct  commrat::ErrorPayload
 
struct  commrat::AckPayload
 
struct  commrat::SensorPayload
 
struct  commrat::RobotStatePayload
 
struct  commrat::RobotStatePayload::Pose
 
struct  commrat::RobotStatePayload::Velocity
 
struct  commrat::is_commrat_message< T >
 
struct  commrat::is_commrat_message< TimsMessage< P > >
 
struct  commrat::message_payload< TimsMessage< P > >
 

Namespaces

namespace  commrat
 CommRaT - Modern C++ Real-Time Communication Framework.
 

Typedefs

using commrat::MessageType = uint32_t
 
using commrat::CommandMessage = TimsMessage< CommandPayload >
 
using commrat::StatusMessage = TimsMessage< StatusPayload >
 
using commrat::ErrorMessage = TimsMessage< ErrorPayload >
 
using commrat::AckMessage = TimsMessage< AckPayload >
 
using commrat::SensorMessage = TimsMessage< SensorPayload >
 
using commrat::RobotStateMessage = TimsMessage< RobotStatePayload >
 
template<typename T >
using commrat::DataMessage = TimsMessage< T >
 
template<typename T >
using commrat::message_payload_t = typename message_payload< T >::type
 

Functions

template<typename T >
constexpr MessageType commrat::type_hash ()
 
template<typename T >
auto commrat::serialize (T &message) -> typename sertial::Message< T >::Result
 
template<typename T >
auto commrat::deserialize (std::span< const std::byte > data) -> sertial::DeserializeResult< T >
 
template<typename T >
auto commrat::deserialize (const uint8_t *data, size_t size) -> sertial::DeserializeResult< T >
 
template<typename T >
auto commrat::serialize_message (T &message) -> typename sertial::Message< T >::Result
 
template<typename T >
auto commrat::deserialize_message (std::span< const std::byte > data) -> sertial::DeserializeResult< T >
 
template<typename T >
auto commrat::deserialize_message (const uint8_t *data, size_t size) -> sertial::DeserializeResult< T >
 

Variables

template<typename T >
constexpr bool commrat::is_commrat_message_v = is_commrat_message<T>::value
 
template<typename T >
constexpr size_t commrat::max_message_buffer_size_v = sertial::Message<T>::max_buffer_size
 
template<typename T >
constexpr size_t commrat::packed_message_size_v = sertial::Message<T>::packed_size
 
template<typename T >
constexpr bool commrat::message_has_padding_v = sertial::Message<T>::has_padding