From 9e59982344644d0e911ee0d60c646d6b895740cc Mon Sep 17 00:00:00 2001 From: flipflip Date: Tue, 4 Mar 2025 22:10:40 +0100 Subject: [PATCH 1/3] update SDK --- fixposition-sdk | 2 +- .../fixposition_driver_lib/fixposition_driver.hpp | 2 +- fixposition_driver_lib/src/fixposition_driver.cpp | 12 ++++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/fixposition-sdk b/fixposition-sdk index 4822a88f..54966953 160000 --- a/fixposition-sdk +++ b/fixposition-sdk @@ -1 +1 @@ -Subproject commit 4822a88faef16af298794be3c9d3af4f62712fd5 +Subproject commit 54966953a541230bb62522738bc6e98e1b60299e diff --git a/fixposition_driver_lib/include/fixposition_driver_lib/fixposition_driver.hpp b/fixposition_driver_lib/include/fixposition_driver_lib/fixposition_driver.hpp index f3142e8e..482edf26 100644 --- a/fixposition_driver_lib/include/fixposition_driver_lib/fixposition_driver.hpp +++ b/fixposition_driver_lib/include/fixposition_driver_lib/fixposition_driver.hpp @@ -221,7 +221,7 @@ class FixpositionDriver : private boost::noncopyable { // Worker thread fpsdk::common::parser::Parser parser_; //!< Protocol parser for incoming messages fpsdk::common::thread::Thread worker_; //!< Worker thread handle - void Worker(void* arg); //!< Worker thread + bool Worker(); //!< Worker thread // Observers for received messages std::unordered_map> fpa_observers_; //!< FP_A message observers diff --git a/fixposition_driver_lib/src/fixposition_driver.cpp b/fixposition_driver_lib/src/fixposition_driver.cpp index 08bf6ab2..269b9fd1 100644 --- a/fixposition_driver_lib/src/fixposition_driver.cpp +++ b/fixposition_driver_lib/src/fixposition_driver.cpp @@ -35,11 +35,12 @@ namespace fixposition { using namespace fpsdk::common; using namespace fpsdk::common::parser; +using namespace fpsdk::common::thread; FixpositionDriver::FixpositionDriver(const DriverParams& params) : /* clang-format off */ params_ { params }, - worker_ { "driver", std::bind(&FixpositionDriver::Worker, this, std::placeholders::_1) } // clang-format on + worker_ { "driver", std::bind(&FixpositionDriver::Worker, this) } // clang-format on {} FixpositionDriver::~FixpositionDriver() { StopDriver(); } @@ -260,11 +261,13 @@ bool FixpositionDriver::Write(const uint8_t* buf, const std::size_t size) { bool FixpositionDriver::StartDriver() { return Connect() && worker_.Start(); } void FixpositionDriver::StopDriver() { - worker_.Stop(); + if (worker_.GetStatus() == worker_.Status::RUNNING) { + worker_.Stop(); + } Disconnect(); } -void FixpositionDriver::Worker(void* /*arg*/) { +bool FixpositionDriver::Worker() { INFO("Driver running..."); while (!worker_.ShouldAbort()) { @@ -311,12 +314,13 @@ void FixpositionDriver::Worker(void* /*arg*/) { // Reconnect after some time... else { INFO("Reconnecting in %.1f seconds...", params_.reconnect_delay_); - if (worker_.Sleep(params_.reconnect_delay_ * 1000)) { + if (worker_.Sleep(params_.reconnect_delay_ * 1000) == WaitRes::WOKEN) { break; } Connect(); } } + return true; } // --------------------------------------------------------------------------------------------------------------------- From ebe82f9a69e49ef7338d99f55f9ebb9050500497 Mon Sep 17 00:00:00 2001 From: flipflip Date: Mon, 10 Mar 2025 11:18:58 +0100 Subject: [PATCH 2/3] update --- fixposition-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fixposition-sdk b/fixposition-sdk index 54966953..e7910a71 160000 --- a/fixposition-sdk +++ b/fixposition-sdk @@ -1 +1 @@ -Subproject commit 54966953a541230bb62522738bc6e98e1b60299e +Subproject commit e7910a71bd63ae0a426b635ee6f396bc32bf6d72 From d30df95876a73e3afdde44e3a4b6e40f12826c57 Mon Sep 17 00:00:00 2001 From: flipflip Date: Mon, 17 Mar 2025 17:54:20 +0100 Subject: [PATCH 3/3] add colcon option to not build tests, update sdk again --- create_ros_ws.sh | 14 ++++++-------- fixposition-sdk | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/create_ros_ws.sh b/create_ros_ws.sh index b0a34c9e..c8d2992c 100755 --- a/create_ros_ws.sh +++ b/create_ros_ws.sh @@ -138,15 +138,13 @@ function main catkin config --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Release fi else - if [ ${dev} -gt 0 ]; then - echo 'build:' > ${abspath}/colcon_defaults.yaml - echo ' event-handlers: [ "console_direct+" ]' >> ${abspath}/colcon_defaults.yaml - echo ' cmake-args: [ "-DCMAKE_BUILD_TYPE=Debug", "-DCMAKE_EXPORT_COMPILE_COMMANDS=ON" ]' >> ${abspath}/colcon_defaults.yaml - else - echo 'build:' > ${abspath}/colcon_defaults.yaml - echo '# event-handlers: [ "console_direct+" ]' >> ${abspath}/colcon_defaults.yaml - echo ' cmake-args: [ "-DCMAKE_BUILD_TYPE=Release", "-DCMAKE_EXPORT_COMPILE_COMMANDS=ON" ]' >> ${abspath}/colcon_defaults.yaml + echo 'build:' > ${abspath}/colcon_defaults.yaml + if [ ${dev} -eq 0 ]; then + echo -n '#' >> ${abspath}/colcon_defaults.yaml fi + echo ' event-handlers: [ "console_direct+" ]' >> ${abspath}/colcon_defaults.yaml + echo ' cmake-args: [ "-DCMAKE_BUILD_TYPE=Release", "-DCMAKE_EXPORT_COMPILE_COMMANDS=ON", "-DFPSDK_BUILD_TESTING=OFF" ]' \ + >> ${abspath}/colcon_defaults.yaml fi # Happy? diff --git a/fixposition-sdk b/fixposition-sdk index e7910a71..e7b00fea 160000 --- a/fixposition-sdk +++ b/fixposition-sdk @@ -1 +1 @@ -Subproject commit e7910a71bd63ae0a426b635ee6f396bc32bf6d72 +Subproject commit e7b00fea2d1be2ea7bab9b2ce8215f0738c999b4