diff --git a/src/core/mac/sub_mac.cpp b/src/core/mac/sub_mac.cpp index 5f9ddfdaf..aacef704b 100644 --- a/src/core/mac/sub_mac.cpp +++ b/src/core/mac/sub_mac.cpp @@ -1131,20 +1131,13 @@ void SubMac::HandleCslTimer(void) void SubMac::GetCslWindowEdges(uint32_t &ahead, uint32_t &after) { uint32_t semiPeriod = mCslPeriod * kUsPerTenSymbols / 2; - uint64_t curTime = otPlatRadioGetNow(&GetInstance()); - uint64_t elapsed; + uint32_t curTime = static_cast(otPlatRadioGetNow(&GetInstance())); + uint32_t elapsed; uint32_t semiWindow; - if (mCslLastSync.GetValue() > curTime) - { - elapsed = UINT64_MAX - mCslLastSync.GetValue() + curTime; - } - else - { - elapsed = curTime - mCslLastSync.GetValue(); - } + elapsed = curTime - mCslLastSync.GetValue(); - semiWindow = static_cast(elapsed * (Get().GetCslAccuracy() + mCslParentAccuracy) / 1000000); + semiWindow = elapsed * (Get().GetCslAccuracy() + mCslParentAccuracy) / 1000000; semiWindow += mCslParentUncert * kUsPerUncertUnit; ahead = (semiWindow + kCslReceiveTimeAhead > semiPeriod) ? semiPeriod : semiWindow + kCslReceiveTimeAhead;