18#ifndef __FPSDK_COMMON_ROS1_HPP__
19#define __FPSDK_COMMON_ROS1_HPP__
26#include <nlohmann/json.hpp>
29#pragma GCC diagnostic push
30#pragma GCC diagnostic ignored "-Wpedantic"
31#pragma GCC diagnostic ignored "-Wunused-parameter"
32#pragma GCC diagnostic ignored "-Wshadow"
33#pragma GCC diagnostic ignored "-Wunused-function"
35#include <nav_msgs/Odometry.h>
36#include <sensor_msgs/Image.h>
37#include <sensor_msgs/Imu.h>
38#include <sensor_msgs/Temperature.h>
39#include <tf2_msgs/TFMessage.h>
41#include <ros/serialization.h>
43#pragma GCC diagnostic pop
61 ConstBuffer(
const std::vector<uint8_t>& buf)
62 : data_{ buf.data() }, end_{ buf.data() +
static_cast<uint32_t
>(buf.size()) }
65 ConstBuffer(
const uint8_t* data,
size_t size) : data_(data), end_(data +
static_cast<uint32_t
>(size))
69 static const ros::serialization::StreamType stream_type = ros::serialization::stream_types::Input;
70 inline const uint8_t* getData()
74 inline const uint8_t* advance(uint32_t len)
76 const uint8_t* old_data = data_;
79 ros::serialization::throwStreamOverrun();
83 inline uint32_t getLength()
85 return static_cast<uint32_t
>(end_ - data_);
89 inline void next(T& t)
91 ros::serialization::deserialize(*
this, t);
95 inline ConstBuffer& operator>>(T& t)
97 ros::serialization::deserialize(*
this, t);
102 const uint8_t* data_;
114template <
typename RosMsgT>
118 ros::serialization::IStream s((uint8_t*)buf.data(),
static_cast<uint32_t
>(buf.size()));
119 ros::serialization::deserialize(s, msg);
122 ros::serialization::Serializer<RosMsgT>::read(m, msg);
void DeserializeMessage(const std::vector< uint8_t > &buf, RosMsgT &msg)
Deserialise ROS1 message.
Fixposition SDK: Common library.