Skip to content

Commit 051423e

Browse files
committed
Add bridge_enable_pw_rpc build flag
1 parent a208dd2 commit 051423e

File tree

6 files changed

+55
-38
lines changed

6 files changed

+55
-38
lines changed

examples/fabric-admin/BUILD.gn

+2-4
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ config("config") {
4545
defines += [ "CONFIG_USE_LOCAL_STORAGE" ]
4646
}
4747

48+
cflags = [ "-Wconversion" ]
49+
4850
if (chip_enable_pw_rpc) {
4951
defines += [ "PW_RPC_ENABLED" ]
5052
}
@@ -135,10 +137,6 @@ static_library("fabric-admin-utils") {
135137
]
136138

137139
deps += pw_build_LINK_DEPS
138-
} else {
139-
# The system_rpc_server.cc file is in pigweed and doesn't compile with
140-
# -Wconversion, remove check for RPC build only.
141-
cflags = [ "-Wconversion" ]
142140
}
143141

144142
if (chip_enable_transport_trace) {

examples/fabric-admin/commands/fabric-sync/FabricSyncCommand.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class FabricSyncAddDeviceCommand : public CHIPCommand
3131
/////////// CHIPCommand Interface /////////
3232
CHIP_ERROR RunCommand() override { return RunCommand(mNodeId); }
3333

34-
chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(30); }
34+
chip::System::Clock::Timeout GetWaitDuration() const override { return chip::System::Clock::Seconds16(1); }
3535

3636
private:
3737
chip::NodeId mNodeId;

examples/fabric-admin/rpc/RpcServer.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class FabricAdmin final : public chip::rpc::FabricAdmin
3636
pw::Status OpenCommissioningWindow(const chip_rpc_DeviceInfo & request, chip_rpc_OperationStatus & response) override
3737
{
3838
chip::NodeId nodeId = request.node_id;
39-
printf("Received OpenCommissioningWindow request: 0x%" PRIx64 "\n", nodeId);
39+
printf("Received OpenCommissioningWindow request: 0x%llx\n", nodeId);
4040
response.success = false;
4141

4242
return pw::OkStatus();

examples/fabric-bridge-app/linux/BUILD.gn

+44-32
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,25 @@ import("//build_overrides/chip.gni")
1616

1717
import("${chip_root}/build/chip/tools.gni")
1818

19+
import("//with_pw_rpc.gni")
20+
1921
assert(chip_build_tools)
2022

21-
import("//build_overrides/pigweed.gni")
22-
import("$dir_pw_build/target_types.gni")
23-
import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
23+
declare_args() {
24+
bridge_enable_pw_rpc = false
25+
}
26+
27+
if (bridge_enable_pw_rpc) {
28+
import("//build_overrides/pigweed.gni")
29+
import("$dir_pw_build/target_types.gni")
30+
import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
31+
}
2432

2533
executable("fabric-bridge-app") {
2634
sources = [
2735
"${chip_root}/examples/fabric-bridge-app/fabric-bridge-common/include/CHIPProjectAppConfig.h",
2836
"Device.cpp",
29-
"RpcClient.cpp",
30-
"RpcServer.cpp",
3137
"include/Device.h",
32-
"include/RpcClient.h",
33-
"include/RpcServer.h",
3438
"main.cpp",
3539
]
3640

@@ -44,31 +48,39 @@ executable("fabric-bridge-app") {
4448

4549
include_dirs = [ "include" ]
4650

47-
defines = [
48-
"PW_RPC_FABRIC_ADMIN_SERVICE=1",
49-
"PW_RPC_FABRIC_BRIDGE_SERVICE=1",
50-
]
51-
52-
sources += [ "${chip_root}/examples/platform/linux/system_rpc_server.cc" ]
53-
54-
deps += [
55-
"$dir_pw_hdlc:default_addresses",
56-
"$dir_pw_hdlc:rpc_channel_output",
57-
"$dir_pw_log",
58-
"$dir_pw_rpc:server",
59-
"$dir_pw_rpc/system_server:facade",
60-
"$dir_pw_rpc/system_server:socket",
61-
"$dir_pw_stream:socket_stream",
62-
"$dir_pw_sync:mutex",
63-
"${chip_root}/config/linux/lib/pw_rpc:pw_rpc",
64-
"${chip_root}/examples/common/pigweed:fabric_admin_service.nanopb_rpc",
65-
"${chip_root}/examples/common/pigweed:fabric_bridge_service.nanopb_rpc",
66-
"${chip_root}/examples/common/pigweed:rpc_services",
67-
]
68-
69-
deps += pw_build_LINK_DEPS
70-
71-
include_dirs += [ "${chip_root}/examples/common" ]
51+
if (bridge_enable_pw_rpc) {
52+
defines = [
53+
"PW_RPC_FABRIC_ADMIN_SERVICE=1",
54+
"PW_RPC_FABRIC_BRIDGE_SERVICE=1",
55+
]
56+
57+
sources += [
58+
"${chip_root}/examples/platform/linux/system_rpc_server.cc",
59+
"RpcClient.cpp",
60+
"RpcServer.cpp",
61+
"include/RpcClient.h",
62+
"include/RpcServer.h",
63+
]
64+
65+
deps += [
66+
"$dir_pw_hdlc:default_addresses",
67+
"$dir_pw_hdlc:rpc_channel_output",
68+
"$dir_pw_log",
69+
"$dir_pw_rpc:server",
70+
"$dir_pw_rpc/system_server:facade",
71+
"$dir_pw_rpc/system_server:socket",
72+
"$dir_pw_stream:socket_stream",
73+
"$dir_pw_sync:mutex",
74+
"${chip_root}/config/linux/lib/pw_rpc:pw_rpc",
75+
"${chip_root}/examples/common/pigweed:fabric_admin_service.nanopb_rpc",
76+
"${chip_root}/examples/common/pigweed:fabric_bridge_service.nanopb_rpc",
77+
"${chip_root}/examples/common/pigweed:rpc_services",
78+
]
79+
80+
deps += pw_build_LINK_DEPS
81+
82+
include_dirs += [ "${chip_root}/examples/common" ]
83+
}
7284

7385
output_dir = root_out_dir
7486
}

examples/fabric-bridge-app/linux/main.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,10 @@
4242

4343
#include "CommissionableInit.h"
4444
#include "Device.h"
45+
#if defined(PW_RPC_FABRIC_BRIDGE_SERVICE)
4546
#include "RpcClient.h"
4647
#include "RpcServer.h"
48+
#endif
4749

4850
#include <cassert>
4951
#include <chrono>
@@ -88,13 +90,15 @@ void BridgePollingThread()
8890
ChipLogProgress(NotSpecified, "Exiting.....");
8991
exit(0);
9092
}
93+
#if defined(PW_RPC_FABRIC_BRIDGE_SERVICE)
9194
else if (ch == 'o')
9295
{
9396
if (OpenCommissioningWindow(0x1234) != CHIP_NO_ERROR)
9497
{
9598
ChipLogError(NotSpecified, "Failed to call OpenCommissioningWindow RPC");
9699
}
97100
}
101+
#endif
98102
continue;
99103
}
100104

@@ -295,6 +299,7 @@ void ApplicationInit()
295299
static_cast<int>(emberAfEndpointFromIndex(static_cast<uint16_t>(emberAfFixedEndpointCount() - 1))) + 1);
296300
gCurrentEndpointId = gFirstDynamicEndpointId;
297301

302+
#if defined(PW_RPC_FABRIC_BRIDGE_SERVICE)
298303
InitRpcServer(kFabricBridgeServerPort);
299304

300305
while (true)
@@ -308,6 +313,7 @@ void ApplicationInit()
308313
ChipLogError(NotSpecified, "Failed to connect to Fabric-Admin, retry in %d seconds....", RETRY_INTERVAL_S);
309314
std::this_thread::sleep_for(std::chrono::seconds(RETRY_INTERVAL_S));
310315
}
316+
#endif
311317

312318
// Start a thread for bridge polling
313319
std::thread pollingThread(BridgePollingThread);

examples/fabric-bridge-app/linux/with_pw_rpc.gni

+1
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,4 @@ pw_build_LINK_DEPS = [
3939
]
4040

4141
chip_use_pw_logging = true
42+
bridge_enable_pw_rpc = true

0 commit comments

Comments
 (0)