diff --git a/CMakeLists.txt b/CMakeLists.txt index c4363d2..6f8402b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ if ("x${CMAKE_MODULE_PATH}" STREQUAL "x") set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") endif() -find_package(PIP REQUIRED) +find_package(PIP 4.0 REQUIRED) find_package(QAD) include(SHSTKMacros) shstk_begin_project(CD) diff --git a/libs/core/cdutils_core.cpp b/libs/core/cdutils_core.cpp index e51f6cb..e546c54 100644 --- a/libs/core/cdutils_core.cpp +++ b/libs/core/cdutils_core.cpp @@ -4,6 +4,7 @@ #include "piconfig.h" #include "piiobytearray.h" #include "piiostring.h" +#include "piliterals_time.h" using namespace CDUtils; @@ -90,10 +91,10 @@ CDCore::CDCore() { CDCore::~CDCore() { - x_timer.stop(); + x_timer.stopAndWait(); datatr.stop(); sendt.stop(); - sendt.waitForFinish(10); + sendt.waitForFinish(100_ms); connection.stop(); } @@ -213,7 +214,7 @@ void CDCore::init(const PIString & configuration, bool pult) { void CDCore::stop() { - x_timer.stop(); + x_timer.stopAndWait(); connection.stop(); } @@ -226,12 +227,12 @@ void CDCore::release() { void CDCore::startX(double freq) { // piCout << "start x" << x_timer.isRunning() << freq; - if (!x_timer.isRunning()) x_timer.start(1000. / piMaxd(freq, 0.01)); + if (!x_timer.isRunning()) x_timer.start(piMax(PISystemTime::Frequency::fromHertz(freq), 0.01_Hz)); } void CDCore::stopX() { - x_timer.stop(); + x_timer.stopAndWait(); } diff --git a/libs/core/cdutilstest.cpp b/libs/core/cdutilstest.cpp index 99ec397..69eb32e 100644 --- a/libs/core/cdutilstest.cpp +++ b/libs/core/cdutilstest.cpp @@ -5,6 +5,7 @@ #include "cdutils_m.h" #include "cdutils_x.h" #include "k_description.h" +#include "piliterals_time.h" #include "pip.h" using namespace CDUtils; @@ -68,7 +69,7 @@ public: } EVENT_HANDLER(void, xrecv) { piCout << "received x"; - if (!timer.isRunning()) timer.start(10); + if (!timer.isRunning()) timer.start(100_Hz); X.start(); } EVENT_HANDLER(void, timerDone) { test(); }