18#ifndef __FPSDK_ROS1_BAGWRITER_HPP__
19#define __FPSDK_ROS1_BAGWRITER_HPP__
28#include "fpsdk_ros1/ext/ros_time.hpp"
29#include "fpsdk_ros1/ext/rosbag_bag.hpp"
62 bool Open(
const std::string& path,
const int compress = 0);
80 bool WriteMessage(
const T& msg,
const std::string& topic,
const ros::Time& time)
85 bag_->write(topic, time, msg);
87 }
catch (
const rosbag::BagException& ex) {
88 WARNING(
"BagWriter: write fail: %s", ex.what());
104 template <
typename T>
131 std::unique_ptr<rosbag::Bag> bag_;
132 std::map<std::string, boost::shared_ptr<ros::M_string>> msg_defs_;
bool WriteMessage(const T &msg, const std::string &topic, const ros::Time &time)
Write a message to the bag.
void AddMsgDef(const common::fpl::RosMsgDef &rosmsgdef)
Add ROS message definition from .fpl.
bool Open(const std::string &path, const int compress=0)
Open bag for writing.
bool WriteMessage(const common::fpl::RosMsgBin &rosmsgbin)
Write message from .fpl.
bool WriteMessage(const T &msg, const std::string &topic, const common::time::RosTime &time={})
Write a message to the bag.
Fixposition SDK: .fpl utilities.
#define WARNING(...)
Print a warning message.
Fixposition SDK: ROS1 library.
Helper for extracting a serialised ROS message.
Helper for extracting ROS message definition (the relevant fields from the "connection header")
Minimal ros::Time() / rplcpp::Time implementation (that doesn't throw)
Fixposition SDK: Time utilities.