Skip to content

Commit

Permalink
support std_msgs/Empty (fix #924)
Browse files Browse the repository at this point in the history
  • Loading branch information
facontidavide committed Jan 26, 2024
1 parent 0931800 commit d6f18b0
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 11 deletions.
5 changes: 0 additions & 5 deletions plotjuggler_plugins/ParserROS/ros1_parser.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,6 @@ class ParserFactoryROS1 : public ParserFactoryPlugin
const std::string& type_name, const std::string& schema,
PlotDataMapRef& data) override
{
if (schema.empty())
{
throw std::runtime_error("ParserFactoryROS1 requires a schema (message "
"definition)");
}
return std::make_shared<ParserROS>(topic_name, type_name, schema,
new RosMsgParser::ROS_Deserializer(), data);
}
Expand Down
5 changes: 0 additions & 5 deletions plotjuggler_plugins/ParserROS/ros2_parser.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,6 @@ class ParserFactoryROS2 : public ParserFactoryPlugin
const std::string& type_name, const std::string& schema,
PlotDataMapRef& data) override
{
if (schema.empty())
{
throw std::runtime_error("ParserFactoryROS2 requires a schema (message "
"definition)");
}
std::string msg_type =
QString::fromStdString(type_name).replace("/msg/", "/").toStdString();

Expand Down
11 changes: 10 additions & 1 deletion plotjuggler_plugins/ParserROS/ros_parser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,11 @@ ParserROS::ParserROS(const std::string& topic_name, const std::string& type_name

using std::placeholders::_1;
using std::placeholders::_2;
if (Msg::DiagnosticArray::id() == type_name)
if(Msg::Empty::id() == type_name)
{
_customized_parser = std::bind(&ParserROS::parseEmpty, this, _1, _2);
}
else if (Msg::DiagnosticArray::id() == type_name)
{
_customized_parser = std::bind(&ParserROS::parseDiagnosticMsg, this, _1, _2);
}
Expand Down Expand Up @@ -174,6 +178,11 @@ void ParserROS::parseHeader(const std::string& prefix, double& timestamp)
}
}

void ParserROS::parseEmpty(const std::string &prefix, double &timestamp)
{
getSeries(prefix).pushBack({ timestamp, 0 });
}


void ParserROS::parseVector3(const std::string& prefix, double& timestamp)
{
Expand Down
1 change: 1 addition & 0 deletions plotjuggler_plugins/ParserROS/ros_parser.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ class ParserROS : public PJ::MessageParser

PJ::Msg::Header readHeader(double& timestamp);
void parseHeader(const std::string& prefix, double& timestamp);
void parseEmpty(const std::string& prefix, double& timestamp);

template <size_t N>
void parseCovariance(const std::string& prefix, double& timestamp);
Expand Down
6 changes: 6 additions & 0 deletions plotjuggler_plugins/ParserROS/special_messages.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ struct Header
PJ::Msg::Time stamp;
std::string frame_id;
};

struct Empty
{
static const char* id() { return "std_msgs/Empty"; }
};

//--------------------
struct DiagnosticStatus
{
Expand Down

0 comments on commit d6f18b0

Please sign in to comment.