Skip to content
This repository was archived by the owner on Dec 20, 2023. It is now read-only.

Commit 84910ba

Browse files
committed
Initialize Network Telemetry Manager during weave stack initialization
-- This enables Network Telemetry Manager to upload Thread/Wifi/Tunnel telemetry data periodically.
1 parent 509ff10 commit 84910ba

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

src/adaptations/device-layer/NetworkTelemetryManager.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
using namespace nl::Weave::DeviceLayer;
4343
using namespace nl::Weave::DeviceLayer::Internal;
4444

45+
NetworkTelemetryManager NetworkTelemetryManager::sInstance;
46+
4547
WeaveTelemetryBase::WeaveTelemetryBase()
4648
{
4749
}

src/adaptations/device-layer/include/Weave/DeviceLayer/NetworkTelemetryManager.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,21 @@ class NetworkTelemetryManager
138138
#if WEAVE_DEVICE_CONFIG_ENABLE_TUNNEL_TELEMETRY
139139
TunnelTelemetry mTunnelTelemetry;
140140
#endif
141+
142+
private:
143+
friend NetworkTelemetryManager & NetworkTelemetryMgr(void);
144+
145+
static NetworkTelemetryManager sInstance;
141146
};
142147

148+
/**
149+
* Returns a reference to the NetworkTelemetryManager singleton object.
150+
*/
151+
inline NetworkTelemetryManager & NetworkTelemetryMgr(void)
152+
{
153+
return NetworkTelemetryManager::sInstance;
154+
}
155+
143156
} // namespace Internal
144157
} // namespace DeviceLayer
145158
} // namespace Weave

src/adaptations/device-layer/include/Weave/DeviceLayer/internal/GenericPlatformManagerImpl.ipp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,13 @@
2727
#define GENERIC_PLATFORM_MANAGER_IMPL_IPP
2828

2929
#include <Weave/DeviceLayer/internal/WeaveDeviceLayerInternal.h>
30+
#include <Weave/DeviceLayer/NetworkTelemetryManager.h>
3031
#include <Weave/DeviceLayer/PlatformManager.h>
3132
#include <Weave/DeviceLayer/internal/GenericPlatformManagerImpl.h>
3233
#include <Weave/DeviceLayer/internal/DeviceControlServer.h>
3334
#include <Weave/DeviceLayer/internal/DeviceDescriptionServer.h>
34-
#include <Weave/DeviceLayer/internal/NetworkProvisioningServer.h>
3535
#include <Weave/DeviceLayer/internal/FabricProvisioningServer.h>
36+
#include <Weave/DeviceLayer/internal/NetworkProvisioningServer.h>
3637
#include <Weave/DeviceLayer/internal/ServiceProvisioningServer.h>
3738
#include <Weave/DeviceLayer/internal/ServiceDirectoryManager.h>
3839
#include <Weave/DeviceLayer/internal/EchoServer.h>
@@ -278,6 +279,15 @@ WEAVE_ERROR GenericPlatformManagerImpl<ImplClass>::_InitWeaveStack(void)
278279
SuccessOrExit(err);
279280
#endif // WEAVE_DEVICE_CONFIG_ENABLE_SOFTWARE_UPDATE_MANAGER
280281

282+
#if WEAVE_DEVICE_CONFIG_ENABLE_NETWORK_TELEMETRY
283+
err = NetworkTelemetryMgr().Init();
284+
if (err != WEAVE_NO_ERROR)
285+
{
286+
WeaveLogError(DeviceLayer, "Network Telemetry Manager initialization failed: %s", ErrorStr(err));
287+
}
288+
SuccessOrExit(err);
289+
#endif // WEAVE_DEVICE_CONFIG_ENABLE_NETWORK_TELEMETRY
290+
281291
exit:
282292
return err;
283293
}

0 commit comments

Comments
 (0)