version 4.1.0

maybe fix hang on PIEthernet::interrupt()
replace piLetobe with piChangeEndian:
 * piChangeEndianBinary
 * piChangeBinary
 * piChangedBinary
PIDiagnostics::start now accept PISystemTime instead of number
add PITimer::start(PISystemTime, std::function<void()>) overload
This commit is contained in:
2024-08-28 11:56:36 +03:00
parent 33fc334077
commit e6c8714857
10 changed files with 113 additions and 66 deletions

View File

@@ -19,6 +19,7 @@
#include "pibasetransfer.h"
#include "piliterals_time.h"
#include "pitime.h"
const uint PIBaseTransfer::signature = 0x54424950;
@@ -37,7 +38,7 @@ PIBaseTransfer::PIBaseTransfer(): crc(standardCRC_16()), diag(false) {
timeout_ = 10.;
diag.setDisconnectTimeout(PISystemTime::fromSeconds(timeout_ / 10.));
diag.setName("PIBaseTransfer");
diag.start(50);
diag.start(20_Hz);
packets_count = 10;
#ifdef MICRO_PIP
setPacketSize(512);

View File

@@ -94,16 +94,14 @@ PIString PIDiagnostics::sendSpeed() const {
void PIDiagnostics::start() {
PITimer::start(10_Hz);
changeDisconnectTimeout(disconn_);
PIDiagnostics::start(10_Hz);
}
void PIDiagnostics::start(double msecs) {
if (msecs > 0.) {
PITimer::start(PISystemTime::fromMilliseconds(msecs));
changeDisconnectTimeout(disconn_);
}
void PIDiagnostics::start(PISystemTime interval) {
if (interval.isNull()) return;
PITimer::start(interval);
changeDisconnectTimeout(disconn_);
}

View File

@@ -96,7 +96,7 @@ public:
EVENT_HANDLER0(void, start);
EVENT_HANDLER1(void, start, double, msecs);
EVENT_HANDLER1(void, start, PISystemTime, interval);
EVENT_HANDLER0(void, reset);
EVENT_HANDLER1(void, received, int, size) { received(size, true); }