52
52
#include " pigweed/rpc_services/Locking.h"
53
53
#endif // defined(PW_RPC_LOCKING_SERVICE) && PW_RPC_LOCKING_SERVICE
54
54
55
+ #if defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE
56
+ #include " pw_trace/trace.h"
57
+ #include " pw_trace_tokenized/trace_rpc_service_nanopb.h"
58
+
59
+ // Define trace time for pw_trace
60
+ PW_TRACE_TIME_TYPE pw_trace_GetTraceTime ()
61
+ {
62
+ return (PW_TRACE_TIME_TYPE) chip::System::SystemClock ().GetMonotonicMicroseconds64 ().count ();
63
+ }
64
+ // Microsecond time source
65
+ size_t pw_trace_GetTraceTimeTicksPerSecond ()
66
+ {
67
+ return 1000000 ;
68
+ }
69
+
70
+ #endif // defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE
71
+
55
72
namespace chip {
56
73
namespace rpc {
57
74
@@ -122,6 +139,10 @@ Lighting lighting_service;
122
139
Locking locking;
123
140
#endif // defined(PW_RPC_LOCKING_SERVICE) && PW_RPC_LOCKING_SERVICE
124
141
142
+ #if defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE
143
+ pw::trace::TraceService trace_service;
144
+ #endif // defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE
145
+
125
146
void RegisterServices (pw::rpc::Server & server)
126
147
{
127
148
#if defined(PW_RPC_ATTRIBUTE_SERVICE) && PW_RPC_ATTRIBUTE_SERVICE
@@ -143,6 +164,10 @@ void RegisterServices(pw::rpc::Server & server)
143
164
#if defined(PW_RPC_LOCKING_SERVICE) && PW_RPC_LOCKING_SERVICE
144
165
server.RegisterService (locking);
145
166
#endif // defined(PW_RPC_LOCKING_SERVICE) && PW_RPC_LOCKING_SERVICE
167
+
168
+ #if defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE
169
+ server.RegisterService (trace_service);
170
+ #endif // defined(PW_RPC_TRACING_SERVICE) && PW_RPC_TRACING_SERVICE
146
171
}
147
172
148
173
} // namespace
0 commit comments