diff --git a/src/core/mac/sub_mac.cpp b/src/core/mac/sub_mac.cpp index c345dc3cc..eb7c064db 100644 --- a/src/core/mac/sub_mac.cpp +++ b/src/core/mac/sub_mac.cpp @@ -1165,18 +1165,19 @@ void SubMac::HandleCslTimer(void) } Get().UpdateCslSampleTime(mCslSampleTime.GetValue()); - if (mState == kStateCslSample) + + if (RadioSupportsReceiveTiming()) { - if (RadioSupportsReceiveTiming()) + if (mState != kStateDisabled && mCslChannel) { IgnoreError(Get().ReceiveAt(mCslChannel, mCslSampleTime.GetValue() - periodUs - timeAhead, timeAhead + timeAfter)); } - else - { - IgnoreError(Get().Receive(mCslChannel)); - LogDebg("CSL sample %u, duration %u", mCslTimer.GetNow().GetValue(), timeAhead + timeAfter); - } + } + else if (mState == kStateCslSample) + { + IgnoreError(Get().Receive(mCslChannel)); + LogDebg("CSL sample %u, duration %u", mCslTimer.GetNow().GetValue(), timeAhead + timeAfter); } break;