diff --git a/foxglove_bridge_base/include/foxglove_bridge/websocket_client.hpp b/foxglove_bridge_base/include/foxglove_bridge/websocket_client.hpp index 3400533..74e11c3 100644 --- a/foxglove_bridge_base/include/foxglove_bridge/websocket_client.hpp +++ b/foxglove_bridge_base/include/foxglove_bridge/websocket_client.hpp @@ -16,6 +16,13 @@ namespace foxglove { +inline void to_json(nlohmann::json& j, const ClientAdvertisement& p) { + j = nlohmann::json{{"id", p.channelId}, + {"topic", p.topic}, + {"encoding", p.encoding}, + {"schemaName", p.schemaName}}; +} + using TextMessageHandler = std::function; using BinaryMessageHandler = std::function; using OpCode = websocketpp::frame::opcode::value; @@ -197,11 +204,4 @@ class Client : public ClientInterface { BinaryMessageHandler _binaryMessageHandler; }; -inline void to_json(nlohmann::json& j, const ClientAdvertisement& p) { - j = nlohmann::json{{"id", p.channelId}, - {"topic", p.topic}, - {"encoding", p.encoding}, - {"schemaName", p.schemaName}}; -} - } // namespace foxglove diff --git a/foxglove_bridge_base/include/foxglove_bridge/websocket_server.hpp b/foxglove_bridge_base/include/foxglove_bridge/websocket_server.hpp index 66d99f9..2fd7a5f 100644 --- a/foxglove_bridge_base/include/foxglove_bridge/websocket_server.hpp +++ b/foxglove_bridge_base/include/foxglove_bridge/websocket_server.hpp @@ -34,7 +34,7 @@ static const websocketpp::log::level RECOVERABLE = websocketpp::log::elevel::rer constexpr uint32_t Integer(const std::string_view str) { uint32_t result = 0x811C9DC5; // FNV-1a 32-bit algorithm for (char c : str) { - result = (c ^ result) * 0x01000193; + result = (static_cast(c) ^ result) * 0x01000193; } return result; } @@ -127,6 +127,7 @@ class ServerInterface { using ClientMessageHandler = std::function; public: + virtual ~ServerInterface() {} virtual void start(const std::string& host, uint16_t port) = 0; virtual void stop() = 0; @@ -700,9 +701,9 @@ inline void Server::handleTextMessage(ConnHandle hdl, const template inline void Server::handleBinaryMessage(ConnHandle hdl, const uint8_t* msg, size_t length) { - const uint64_t timestamp = std::chrono::duration_cast( - std::chrono::high_resolution_clock::now().time_since_epoch()) - .count(); + const auto timestamp = std::chrono::duration_cast( + std::chrono::high_resolution_clock::now().time_since_epoch()) + .count(); if (length < 1) { sendStatus(hdl, StatusLevel::Error, "Received an empty binary message"); @@ -737,8 +738,12 @@ inline void Server::handleBinaryMessage(ConnHandle hdl, con if (_clientMessageHandler) { const auto& advertisement = channelIt->second; const uint32_t sequence = 0; - const ClientMessage clientMessage{timestamp, timestamp, sequence, - advertisement, length, msg}; + const ClientMessage clientMessage{static_cast(timestamp), + static_cast(timestamp), + sequence, + advertisement, + length, + msg}; _clientMessageHandler(clientMessage, hdl); } } break; diff --git a/ros2_foxglove_bridge/src/ros2_foxglove_bridge.cpp b/ros2_foxglove_bridge/src/ros2_foxglove_bridge.cpp index c59b819..3cf277c 100644 --- a/ros2_foxglove_bridge/src/ros2_foxglove_bridge.cpp +++ b/ros2_foxglove_bridge/src/ros2_foxglove_bridge.cpp @@ -153,7 +153,7 @@ class FoxgloveBridge : public rclcpp::Node { this->set_parameter(rclcpp::Parameter{"port", listeningPort}); } - _maxQosDepth = this->get_parameter("max_qos_depth").as_int(); + _maxQosDepth = static_cast(this->get_parameter("max_qos_depth").as_int()); // Start the thread polling for rosgraph changes _rosgraphPollThread = diff --git a/ros2_foxglove_bridge/src/ros2_foxglove_bridge_node.cpp b/ros2_foxglove_bridge/src/ros2_foxglove_bridge_node.cpp index 4902478..b3fdd99 100644 --- a/ros2_foxglove_bridge/src/ros2_foxglove_bridge_node.cpp +++ b/ros2_foxglove_bridge/src/ros2_foxglove_bridge_node.cpp @@ -25,7 +25,6 @@ int main(int argc, char* argv[]) { rclcpp_components::ComponentManager componentManager(executor, "ComponentManager"); const auto componentResources = componentManager.get_component_resources("foxglove_bridge"); - RCLCPP_INFO(componentManager.get_logger(), std::to_string(numThreads).c_str()); if (componentResources.empty()) { RCLCPP_INFO(componentManager.get_logger(), "No loadable resources found"); diff --git a/ros2_foxglove_bridge/tests/smoke_test.cpp b/ros2_foxglove_bridge/tests/smoke_test.cpp index 9d64953..698305d 100644 --- a/ros2_foxglove_bridge/tests/smoke_test.cpp +++ b/ros2_foxglove_bridge/tests/smoke_test.cpp @@ -85,7 +85,7 @@ TEST(SmokeTest, testPublishing) { auto msgFuture = msgPromise.get_future(); auto node = rclcpp::Node::make_shared("tester"); auto sub = node->create_subscription( - advertisement.topic, 10, [&msgPromise, &node](const std_msgs::msg::String::SharedPtr msg) { + advertisement.topic, 10, [&msgPromise](const std_msgs::msg::String::SharedPtr msg) { msgPromise.set_value(msg->data); }); rclcpp::executors::SingleThreadedExecutor executor;