9#include <sertial/sertial.hpp>
10#include <sertial/containers/fixed_vector.hpp>
11#include <sertial/containers/fixed_string.hpp>
32 constexpr auto name = std::string_view{__PRETTY_FUNCTION__};
33 uint32_t hash = 2166136261u;
35 hash ^=
static_cast<uint32_t
>(c);
46template<
typename PayloadT>
57template<
typename PayloadT>
171auto serialize(T& message) ->
typename sertial::Message<T>::Result {
172 static_assert(is_commrat_message_v<T>,
"T must be a CommRaT message type");
175 if constexpr (
requires { T::message_type; }) {
177 message.header.msg_type =
static_cast<uint32_t
>(T::message_type);
182 auto result = sertial::Message<T>::serialize(message);
185 message.header.msg_size =
static_cast<uint32_t
>(result.size);
192auto deserialize(std::span<const std::byte> data) -> sertial::DeserializeResult<T> {
193 static_assert(is_commrat_message_v<T>,
"T must be a CommRaT message type");
196 return sertial::Message<T>::deserialize(data);
201auto deserialize(
const uint8_t* data,
size_t size) -> sertial::DeserializeResult<T> {
203 auto byte_span = std::span<const std::byte>(
reinterpret_cast<const std::byte*
>(data), size);
204 return deserialize<T>(byte_span);
215 return deserialize<T>(data);
220 return deserialize<T>(data, size);
CommRaT - Modern C++ Real-Time Communication Framework.
constexpr size_t packed_message_size_v
constexpr MessageType type_hash()
auto serialize_message(T &message) -> typename sertial::Message< T >::Result
auto serialize(T &message) -> typename sertial::Message< T >::Result
auto deserialize_message(std::span< const std::byte > data) -> sertial::DeserializeResult< T >
typename message_payload< T >::type message_payload_t
constexpr bool is_commrat_message_v
constexpr size_t max_message_buffer_size_v
constexpr bool message_has_padding_v
auto deserialize(std::span< const std::byte > data) -> sertial::DeserializeResult< T >
uint32_t acked_seq_number
sertial::fixed_vector< uint8_t, 64 > parameters
sertial::fixed_string< 128 > error_text
struct commrat::RobotStatePayload::Velocity velocity
struct commrat::RobotStatePayload::Pose pose
sertial::fixed_string< 32 > status
sertial::fixed_vector< float, 16 > additional_readings
sertial::fixed_string< 64 > description
static constexpr MessageType value