diff --git a/libuavcan/include/uavcan/internal/transport/transfer_receiver.hpp b/libuavcan/include/uavcan/internal/transport/transfer_receiver.hpp index 750a2475d5..1873587faa 100644 --- a/libuavcan/include/uavcan/internal/transport/transfer_receiver.hpp +++ b/libuavcan/include/uavcan/internal/transport/transfer_receiver.hpp @@ -91,7 +91,7 @@ public: return *this; } - bool isTimedOut(uint64_t timestamp) const; + bool isTimedOut(uint64_t ts_monotonic) const; ResultCode addFrame(const RxFrame& frame); diff --git a/libuavcan/src/transport/transfer_receiver.cpp b/libuavcan/src/transport/transfer_receiver.cpp index 34c52f4365..0c7be113bf 100644 --- a/libuavcan/src/transport/transfer_receiver.cpp +++ b/libuavcan/src/transport/transfer_receiver.cpp @@ -137,13 +137,13 @@ TransferReceiver::ResultCode TransferReceiver::receive(const RxFrame& frame) return RESULT_NOT_COMPLETE; } -bool TransferReceiver::isTimedOut(uint64_t timestamp) const +bool TransferReceiver::isTimedOut(uint64_t ts_monotonic) const { static const uint64_t INTERVAL_MULT = (1 << TransferID::BITLEN) / 2 - 1; const uint64_t ts = this_transfer_ts_monotonic_; - if (timestamp <= ts) + if (ts_monotonic <= ts) return false; - return (timestamp - ts) > (uint64_t(transfer_interval_) * INTERVAL_MULT); + return (ts_monotonic - ts) > (uint64_t(transfer_interval_) * INTERVAL_MULT); } TransferReceiver::ResultCode TransferReceiver::addFrame(const RxFrame& frame)