From 3ad47ed5483eb1add73621224e5421139a6bc8c0 Mon Sep 17 00:00:00 2001 From: Matthew Foran Date: Mon, 7 Oct 2024 13:56:04 -0400 Subject: [PATCH 1/7] handle time source exception --- .../displays/image/image_transport_display.hpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp index 4cb0933c3..45dfc88c1 100644 --- a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp +++ b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp @@ -175,11 +175,19 @@ class ImageTransportDisplay : public rviz_common::_RosTopicDisplay std::shared_ptr node_interface = rviz_ros_node_.lock(); if (node_interface != nullptr) { - const double duration = - (node_interface->get_raw_node()->now() - subscription_start_time_).seconds(); - const double subscription_frequency = - static_cast(messages_received_) / duration; - topic_str += " at " + QString::number(subscription_frequency, 'f', 1) + " hz."; + try{ + const double duration = + (node_interface->get_raw_node()->now() - subscription_start_time_).seconds(); + const double subscription_frequency = + static_cast(messages_received_) / duration; + topic_str += " at " + QString::number(subscription_frequency, 'f', 1) + " hz."; + } + catch (const std::runtime_error &e){ + if (std::string(e.what()).find("can't subtract times with different time sources") != std::string::npos) + topic_str += " at ?? hz."; + else + throw; + } } setStatus( rviz_common::properties::StatusProperty::Ok, From ab01e9923242cfac678c0f9a2e153ec160f5c3c7 Mon Sep 17 00:00:00 2001 From: Matthew Foran Date: Mon, 7 Oct 2024 14:14:55 -0400 Subject: [PATCH 2/7] add warning --- .../displays/image/image_transport_display.hpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp index 45dfc88c1..c94944044 100644 --- a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp +++ b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp @@ -171,6 +171,7 @@ class ImageTransportDisplay : public rviz_common::_RosTopicDisplay ++messages_received_; QString topic_str = QString::number(messages_received_) + " messages received"; + rviz_common::properties::StatusProperty::Level topic_status_level = rviz_common::properties::StatusProperty::Ok; // Append topic subscription frequency if we can lock rviz_ros_node_. std::shared_ptr node_interface = rviz_ros_node_.lock(); @@ -183,14 +184,17 @@ class ImageTransportDisplay : public rviz_common::_RosTopicDisplay topic_str += " at " + QString::number(subscription_frequency, 'f', 1) + " hz."; } catch (const std::runtime_error &e){ - if (std::string(e.what()).find("can't subtract times with different time sources") != std::string::npos) - topic_str += " at ?? hz."; + if (std::string(e.what()).find("can't subtract times with different time sources") != std::string::npos){ + topic_status_level = rviz_common::properties::StatusProperty::Warn; + topic_str += ". "; + topic_str += e.what(); + } else throw; } } setStatus( - rviz_common::properties::StatusProperty::Ok, + topic_status_level, "Topic", topic_str); From 972fb9162b8d5f8cec5a0a00c58149b269e6fa2b Mon Sep 17 00:00:00 2001 From: Matthew Foran Date: Tue, 8 Oct 2024 11:31:01 -0400 Subject: [PATCH 3/7] lint --- .../displays/image/image_transport_display.hpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp index c94944044..1d894f1f9 100644 --- a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp +++ b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp @@ -34,6 +34,7 @@ #define RVIZ_DEFAULT_PLUGINS__DISPLAYS__IMAGE__IMAGE_TRANSPORT_DISPLAY_HPP_ #include +#include #include "get_transport_from_topic.hpp" #include "image_transport/image_transport.hpp" @@ -171,7 +172,8 @@ class ImageTransportDisplay : public rviz_common::_RosTopicDisplay ++messages_received_; QString topic_str = QString::number(messages_received_) + " messages received"; - rviz_common::properties::StatusProperty::Level topic_status_level = rviz_common::properties::StatusProperty::Ok; + rviz_common::properties::StatusProperty::Level topic_status_level = + rviz_common::properties::StatusProperty::Ok; // Append topic subscription frequency if we can lock rviz_ros_node_. std::shared_ptr node_interface = rviz_ros_node_.lock(); @@ -184,12 +186,12 @@ class ImageTransportDisplay : public rviz_common::_RosTopicDisplay topic_str += " at " + QString::number(subscription_frequency, 'f', 1) + " hz."; } catch (const std::runtime_error &e){ - if (std::string(e.what()).find("can't subtract times with different time sources") != std::string::npos){ + if (std::string(e.what()).find("can't subtract times with different time sources") != + std::string::npos){ topic_status_level = rviz_common::properties::StatusProperty::Warn; topic_str += ". "; topic_str += e.what(); - } - else + } else throw; } } From 56eac2416259e6eab0778bdc6a5980e3d1e4a378 Mon Sep 17 00:00:00 2001 From: Matthew Foran Date: Tue, 8 Oct 2024 13:07:16 -0400 Subject: [PATCH 4/7] lint --- .../displays/image/image_transport_display.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp index 1d894f1f9..cf4a1a397 100644 --- a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp +++ b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp @@ -191,8 +191,9 @@ class ImageTransportDisplay : public rviz_common::_RosTopicDisplay topic_status_level = rviz_common::properties::StatusProperty::Warn; topic_str += ". "; topic_str += e.what(); - } else + } else { throw; + } } } setStatus( From fc28cde4ca52f6b1dd81bb3e19375c7cd70277b0 Mon Sep 17 00:00:00 2001 From: Matthew Foran Date: Tue, 8 Oct 2024 14:56:09 -0400 Subject: [PATCH 5/7] lint --- .../displays/image/image_transport_display.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp index cf4a1a397..f93b1cf37 100644 --- a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp +++ b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp @@ -178,16 +178,16 @@ class ImageTransportDisplay : public rviz_common::_RosTopicDisplay std::shared_ptr node_interface = rviz_ros_node_.lock(); if (node_interface != nullptr) { - try{ + try { const double duration = (node_interface->get_raw_node()->now() - subscription_start_time_).seconds(); const double subscription_frequency = static_cast(messages_received_) / duration; topic_str += " at " + QString::number(subscription_frequency, 'f', 1) + " hz."; - } - catch (const std::runtime_error &e){ + } catch (const std::runtime_error &e){ if (std::string(e.what()).find("can't subtract times with different time sources") != - std::string::npos){ + std::string::npos) + { topic_status_level = rviz_common::properties::StatusProperty::Warn; topic_str += ". "; topic_str += e.what(); From 42f78e83a9f8356f9eb2a8983054c031add854ef Mon Sep 17 00:00:00 2001 From: Matthew Foran Date: Wed, 9 Oct 2024 07:40:48 -0400 Subject: [PATCH 6/7] lint --- .../displays/image/image_transport_display.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp index f93b1cf37..159c3f160 100644 --- a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp +++ b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp @@ -184,7 +184,7 @@ class ImageTransportDisplay : public rviz_common::_RosTopicDisplay const double subscription_frequency = static_cast(messages_received_) / duration; topic_str += " at " + QString::number(subscription_frequency, 'f', 1) + " hz."; - } catch (const std::runtime_error &e){ + } catch (const std::runtime_error &e) { if (std::string(e.what()).find("can't subtract times with different time sources") != std::string::npos) { From baa6d11ea4d1db58db1929852b5c370a06a3dfd5 Mon Sep 17 00:00:00 2001 From: Matthew Foran Date: Wed, 9 Oct 2024 09:17:53 -0400 Subject: [PATCH 7/7] lint --- .../displays/image/image_transport_display.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp index 159c3f160..791ce3472 100644 --- a/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp +++ b/rviz_default_plugins/include/rviz_default_plugins/displays/image/image_transport_display.hpp @@ -184,7 +184,7 @@ class ImageTransportDisplay : public rviz_common::_RosTopicDisplay const double subscription_frequency = static_cast(messages_received_) / duration; topic_str += " at " + QString::number(subscription_frequency, 'f', 1) + " hz."; - } catch (const std::runtime_error &e) { + } catch (const std::runtime_error & e) { if (std::string(e.what()).find("can't subtract times with different time sources") != std::string::npos) {