diff --git a/src/core/border_router/routing_manager.cpp b/src/core/border_router/routing_manager.cpp index 0526668c5..169018ab0 100644 --- a/src/core/border_router/routing_manager.cpp +++ b/src/core/border_router/routing_manager.cpp @@ -1084,7 +1084,7 @@ RoutingManager::NetDataPeerBrTracker::NetDataPeerBrTracker(Instance &aInstance) uint16_t RoutingManager::NetDataPeerBrTracker::CountPeerBrs(uint32_t &aMinAge) const { - uint32_t uptime = Uptime::MsecToSec(Get().GetUptime()); + uint32_t uptime = Get().GetUptimeInSeconds(); uint16_t count = 0; aMinAge = NumericLimits::kMax; @@ -1147,7 +1147,7 @@ void RoutingManager::NetDataPeerBrTracker::HandleNotifierEvents(Events aEvents) VerifyOrExit(newEntry != nullptr, LogWarn("Failed to allocate `PeerBr` entry")); newEntry->mRloc16 = rloc16; - newEntry->mDiscoverTime = Uptime::MsecToSec(Get().GetUptime()); + newEntry->mDiscoverTime = Get().GetUptimeInSeconds(); mPeerBrs.Push(*newEntry); } @@ -1211,7 +1211,7 @@ void RoutingManager::RxRaTracker::ProcessRouterAdvertMessage(const RouterAdvert: router = newEntry; router->Clear(); - router->mDiscoverTime = Uptime::MsecToSec(Get().GetUptime()); + router->mDiscoverTime = Get().GetUptimeInSeconds(); router->mAddress = aSrcAddress; mRouters.Push(*newEntry); @@ -2019,7 +2019,7 @@ exit: void RoutingManager::RxRaTracker::InitIterator(PrefixTableIterator &aIterator) const { - static_cast(aIterator).Init(mRouters.GetHead(), Uptime::MsecToSec(Get().GetUptime())); + static_cast(aIterator).Init(mRouters.GetHead(), Get().GetUptimeInSeconds()); } Error RoutingManager::RxRaTracker::GetNextEntry(PrefixTableIterator &aIterator, PrefixTableEntry &aEntry) const diff --git a/src/core/common/uptime.cpp b/src/core/common/uptime.cpp index ca544c316..e809c95b8 100644 --- a/src/core/common/uptime.cpp +++ b/src/core/common/uptime.cpp @@ -85,6 +85,8 @@ void Uptime::GetUptime(char *aBuffer, uint16_t aSize) const UptimeToString(GetUptime(), writer, /* aIncludeMsec */ true); } +uint32_t Uptime::GetUptimeInSeconds(void) const { return MsecToSec(GetUptime()); } + void Uptime::HandleTimer(void) { if (mTimer.GetFireTime() == mStartTime) diff --git a/src/core/common/uptime.hpp b/src/core/common/uptime.hpp index 3b74a66c1..4b7550039 100644 --- a/src/core/common/uptime.hpp +++ b/src/core/common/uptime.hpp @@ -101,6 +101,13 @@ public: */ static void UptimeToString(uint64_t aUptime, StringWriter &aWriter, bool aIncludeMsec); + /** + * Returns the current device uptime in seconds. + * + * @returns The uptime in seconds. + */ + uint32_t GetUptimeInSeconds(void) const; + /** * Converts a given uptime as number of milliseconds to number of seconds. * diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index 22a0acf2d..235b6d82a 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -256,7 +256,7 @@ void Mle::ResetCounters(void) uint32_t Mle::GetCurrentAttachDuration(void) const { - return IsAttached() ? Uptime::MsecToSec(Get().GetUptime()) - mLastAttachTime : 0; + return IsAttached() ? Get().GetUptimeInSeconds() - mLastAttachTime : 0; } void Mle::UpdateRoleTimeCounters(DeviceRole aRole) @@ -298,7 +298,7 @@ void Mle::SetRole(DeviceRole aRole) if ((oldRole == kRoleDetached) && IsAttached()) { - mLastAttachTime = Uptime::MsecToSec(Get().GetUptime()); + mLastAttachTime = Get().GetUptimeInSeconds(); } UpdateRoleTimeCounters(oldRole); diff --git a/src/core/thread/neighbor.cpp b/src/core/thread/neighbor.cpp index 98c513c5b..d325eb9d7 100644 --- a/src/core/thread/neighbor.cpp +++ b/src/core/thread/neighbor.cpp @@ -44,7 +44,7 @@ void Neighbor::SetState(State aState) if (mState == kStateValid) { - mConnectionStart = Uptime::MsecToSec(Get().GetUptime()); + mConnectionStart = Get().GetUptimeInSeconds(); } exit: @@ -53,7 +53,7 @@ exit: uint32_t Neighbor::GetConnectionTime(void) const { - return IsStateValid() ? Uptime::MsecToSec(Get().GetUptime()) - mConnectionStart : 0; + return IsStateValid() ? Get().GetUptimeInSeconds() - mConnectionStart : 0; } bool Neighbor::AddressMatcher::Matches(const Neighbor &aNeighbor) const