From 63c5e26eb61fca4f21bfbf83621409440ace296f Mon Sep 17 00:00:00 2001 From: Diego Serrapio Date: Wed, 8 Oct 2025 11:51:23 +0200 Subject: [PATCH 1/2] Fixes data reporting --- tm_driver/src/tm_robot_state.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tm_driver/src/tm_robot_state.cpp b/tm_driver/src/tm_robot_state.cpp index b133462..a10d392 100755 --- a/tm_driver/src/tm_robot_state.cpp +++ b/tm_driver/src/tm_robot_state.cpp @@ -27,12 +27,12 @@ class TmDataTable }; private: std::map _item_map; - + const TmRobotStateData *_rsd; public: TmDataTable(TmRobotState *rs) { print_debug("Create DataTable"); - + _rsd = &rs->tmRobotStateDataFromEthernet; _item_map.clear(); //_item_map[""] = { Item:, &rs- }; _item_map["Robot_Link" ] = { &rs->tmRobotStateDataFromEthernet.is_linked }; @@ -110,6 +110,7 @@ class TmDataTable std::map & get() { return _item_map; } std::map::iterator find(const std::string &name) { return _item_map.find(name); } std::map::iterator end() { return _item_map.end(); } + const TmRobotStateData* get_rsd() { return _rsd; } }; TmRobotState::TmRobotState() @@ -305,7 +306,7 @@ size_t TmRobotState::_deserialize(const char *data, size_t size) } multiThreadCache.set_catch_data(tmRobotStateDataFromEthernet); - + tmRobotStateDataToPublish = *_data_table->get_rsd(); if (boffset > size) { } return boffset; From 100b1f56a6a61b29a9d5caa50a96ab08bb8811e7 Mon Sep 17 00:00:00 2001 From: "Jakub (from KSB robot)" Date: Mon, 13 Oct 2025 12:39:40 +0200 Subject: [PATCH 2/2] Fix to speed rounding --- tm_driver/src/tm_command.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tm_driver/src/tm_command.cpp b/tm_driver/src/tm_command.cpp index d7d0299..a3eb00e 100644 --- a/tm_driver/src/tm_command.cpp +++ b/tm_driver/src/tm_command.cpp @@ -1,3 +1,4 @@ +#include #ifdef NO_INCLUDE_DIR #include "tm_command.h" #else @@ -80,8 +81,8 @@ std::string TmCommand::set_tool_pose_Line(const std::vector &pose, double vel, double acc_time, int blend_percent, bool fine_goal, int precision) { auto pose_mmdeg = mmdeg_pose(pose); - int vel_mm = int(1000.0 * vel); - int acct_ms = int(1000.0 * acc_time); + int vel_mm = static_cast( std::round(1000.0 * vel)); + int acct_ms = static_cast( std::round(1000.0 * acc_time)); std::stringstream ss; ss << std::fixed << std::setprecision(precision); ss << "Line(\"CAP\","; @@ -202,7 +203,9 @@ std::string TmCommand::set_vel_mode_target(VelMode mode, const std::vector