Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix the dependency error and some changed requested by reviewer #34764

Open
wants to merge 33 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
64583ed
* Fix the dependency error
crlonxp Aug 3, 2024
ed35403
Restyled by clang-format
restyled-commits Aug 3, 2024
4ef1c4a
Restyled by gn
restyled-commits Aug 3, 2024
5a9ea68
* Add the missing files
crlonxp Aug 3, 2024
d7fc0a2
Restyled by clang-format
restyled-commits Aug 3, 2024
6c30a68
Restyled by gn
restyled-commits Aug 3, 2024
29447ed
* Add missing wpa_supplicant mutex lock
crlonxp Aug 3, 2024
bf94ba4
Not failed to run immediately if wpa_supplicant is not ready
crlonxp Aug 3, 2024
9de1714
* Fix the error found by the building script
crlonxp Aug 4, 2024
c4aa2e9
Change by followign the review's comment
crlonxp Aug 7, 2024
1003419
Restyled by clang-format
restyled-commits Aug 7, 2024
705c448
Restyled by gn
restyled-commits Aug 7, 2024
30f4f6f
Disable WiFiPAF by default
crlonxp Aug 8, 2024
31c012f
Separate the dbus parameters to have their own type, instead of using…
crlonxp Aug 27, 2024
8dfb9ef
Restyled by clang-format
restyled-commits Aug 27, 2024
f9ee1e3
Change the dbus calling method by following the new defined api of wp…
crlonxp Oct 11, 2024
efd4a90
Fix a coredump if chip_device_config_enable_wifipaf is set, but --wif…
crlonxp Oct 16, 2024
8945202
Restart DnssdServer on connectivity change, not only on ipv4, but als…
crlonxp Oct 24, 2024
8ef0afe
Fix the compile error after rebasing to master branch
crlonxp Oct 24, 2024
db71be3
* Block the multiple indication of discovery-result
crlonxp Oct 29, 2024
3bb9610
Update src/lib/BUILD.gn
crlonxp Oct 31, 2024
298ea88
Update src/platform/Linux/BUILD.gn
crlonxp Oct 31, 2024
02abd28
* Add the unit to the time-out const
crlonxp Nov 1, 2024
b2f95e9
Add "freq" option of chip-tool to pass down the frequency of the conn…
crlonxp Nov 4, 2024
5a00867
Add a vector to management the PAF sessions
crlonxp Nov 8, 2024
907dc5e
Fix the errors found from the ci/cv
crlonxp Nov 11, 2024
a0eea8d
* Bug fix: Add the PAF session if using code-wifi
crlonxp Nov 12, 2024
5499395
Add to cancel PAF subscribe-session if user inputs ctrl+C to stop chi…
crlonxp Nov 13, 2024
77fbfcd
Add PAFTP implementation
crlonxp Jan 10, 2025
b94af01
Add the missing .h to BUILD.gn for code-lints
crlonxp Jan 12, 2025
8dc69c7
Fix the clang error
crlonxp Jan 12, 2025
4b80e86
Add to close PAF session while closing EndPoint module
crlonxp Jan 13, 2025
c4abaac
Add the re-order processing right after receiving the PAF packets
crlonxp Feb 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions examples/chip-tool/commands/pairing/PairingCommand.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ CHIP_ERROR PairingCommand::RunInternal(NodeId remoteId)
err = Unpair(remoteId);
break;
case PairingMode::Code:
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
chip::DeviceLayer::ConnectivityMgr().WiFiPafSetApFreq(
mApFreqStr.HasValue() ? static_cast<uint16_t>(std::stol(mApFreqStr.Value())) : 0);
#endif
err = PairWithCode(remoteId);
break;
case PairingMode::CodePaseOnly:
Expand All @@ -85,6 +89,8 @@ CHIP_ERROR PairingCommand::RunInternal(NodeId remoteId)
break;
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
case PairingMode::WiFiPAF:
chip::DeviceLayer::ConnectivityMgr().WiFiPafSetApFreq(
mApFreqStr.HasValue() ? static_cast<uint16_t>(std::stol(mApFreqStr.Value())) : 0);
err = Pair(remoteId, PeerAddress::WiFiPAF(remoteId));
break;
#endif
Expand Down
10 changes: 9 additions & 1 deletion examples/chip-tool/commands/pairing/PairingCommand.h
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,12 @@ class PairingCommand : public CHIPCommand,
"Version number of the Terms and Conditions that were accepted by the user. This value is sent to the "
"device during commissioning to indicate which T&C version was acknowledged");
}
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
if ((mode == PairingMode::WiFiPAF) || (mode == PairingMode::Code))
{
AddArgument("freq", &mApFreqStr, "Frequency of the connected AP. It's required if AP is not at chnl#6 of 2.4G");
}
#endif

AddArgument("timeout", 0, UINT16_MAX, &mTimeout);
}
Expand Down Expand Up @@ -283,7 +289,9 @@ class PairingCommand : public CHIPCommand,
chip::app::DataModel::List<chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::Type> mDSTOffsetList;
TypedComplexArgument<chip::app::DataModel::List<chip::app::Clusters::TimeSynchronization::Structs::DSTOffsetStruct::Type>>
mComplex_DSTOffsets;

#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
chip::Optional<char *> mApFreqStr;
#endif
uint16_t mRemotePort = 0;
// mDiscriminator is only used for some situations, but in those situations
// it's mandatory. Track whether we're actually using it; the cases that do
Expand Down
56 changes: 50 additions & 6 deletions examples/platform/linux/AppMain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -377,6 +377,40 @@ class SampleTestEventTriggerHandler : public TestEventTriggerHandler
}
};

#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
/*
Get the freq_list from args.
Format:
"freq_list=[freq#1],[freq#2]...[freq#n]"
[freq#1] - [freq#n]: frequence number, separated by ','
*/
static uint16_t WiFiPAFGet_FreqList(const char * args, std::unique_ptr<uint16_t[]> & freq_list)
{
const char hdstr[] = "freq_list=";
std::vector<uint16_t> freq_vect;
const std::string argstrn(args);
auto pos = argstrn.find(hdstr);
if (pos == std::string::npos)
{
return 0;
}
std::string nums = argstrn.substr(pos + strlen(hdstr));
std::stringstream ss(nums);
std::string item;
while (std::getline(ss, item, ','))
{
freq_vect.push_back(std::stoi(item));
}
uint16_t freq_size = freq_vect.size();
freq_list = std::make_unique<uint16_t[]>(freq_size);
for (int i = 0; i < freq_size; i++)
{
freq_list.get()[i] = freq_vect[i];
}
return freq_size;
}
#endif

int ChipLinuxAppInit(int argc, char * const argv[], OptionSet * customOptions,
const Optional<EndpointId> secondaryNetworkCommissioningEndpoint)
{
Expand Down Expand Up @@ -504,16 +538,18 @@ int ChipLinuxAppInit(int argc, char * const argv[], OptionSet * customOptions,
}
#endif // CHIP_DEVICE_CONFIG_ENABLE_WPA
#if CHIP_DEVICE_CONFIG_ENABLE_WPA && CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
ChipLogProgress(NotSpecified, "WiFi-PAF: initialzing");
if (LinuxDeviceOptions::GetInstance().mWiFi)
if (LinuxDeviceOptions::GetInstance().mWiFi && LinuxDeviceOptions::GetInstance().mWiFiPAF)
{
ChipLogProgress(WiFiPAF, "WiFi-PAF: initialzing");
if (EnsureWiFiIsStarted())
{
ChipLogProgress(NotSpecified, "Wi-Fi Management started");
ChipLogProgress(WiFiPAF, "Wi-Fi Management started");
DeviceLayer::ConnectivityManager::WiFiPAFAdvertiseParam args;
args.enable = LinuxDeviceOptions::GetInstance().mWiFiPAF;
args.ExtCmds = LinuxDeviceOptions::GetInstance().mWiFiPAFExtCmds;
DeviceLayer::ConnectivityMgr().SetWiFiPAFAdvertisingEnabled(args);

args.enable = LinuxDeviceOptions::GetInstance().mWiFiPAF;
args.freq_list_len = WiFiPAFGet_FreqList(LinuxDeviceOptions::GetInstance().mWiFiPAFExtCmds, args.freq_list);
DeviceLayer::ConnectivityMgr().WiFiPAFPublish(args);
LinuxDeviceOptions::GetInstance().mPublishId = args.publish_id;
}
}
#endif
Expand Down Expand Up @@ -674,6 +710,14 @@ void ChipLinuxAppMainLoop(AppMainLoopImplementation * impl)
exampleAccessRestrictionProvider->SetEntries(1, LinuxDeviceOptions::GetInstance().arlEntries.Value());
}
#endif
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
if (Server::GetInstance().GetFabricTable().FabricCount() != 0)
{
ChipLogProgress(AppServer, "Fabric already commissioned. Canceling publishing");
DeviceLayer::ConnectivityMgr().WiFiPAFShutdown(LinuxDeviceOptions::GetInstance().mPublishId,
chip::WiFiPAF::WiFiPafRole::kWiFiPafRole_Publisher);
}
#endif

#if CONFIG_BUILD_FOR_HOST_UNIT_TEST
// Set ReadHandler Capacity for Subscriptions
Expand Down
1 change: 1 addition & 0 deletions examples/platform/linux/Options.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ struct LinuxDeviceOptions
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
bool mWiFiPAF = false;
const char * mWiFiPAFExtCmds = nullptr;
uint32_t mPublishId = 0;
#endif
#if CHIP_DEVICE_CONFIG_ENABLE_BOTH_COMMISSIONER_AND_COMMISSIONEE || CHIP_DEVICE_ENABLE_PORT_PARAMS
uint16_t securedDevicePort = CHIP_PORT;
Expand Down
2 changes: 2 additions & 0 deletions scripts/tools/check_includes_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -188,4 +188,6 @@
'src/controller/CHIPDeviceController.cpp': {'string'},
'src/qrcodetool/setup_payload_commands.cpp': {'string'},
'src/access/AccessRestrictionProvider.h': {'vector', 'map'},

'src/wifipaf/WiFiPAFLayer.h': {'vector'},
}
6 changes: 2 additions & 4 deletions src/app/server/CommissioningWindowManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,8 @@ void CommissioningWindowManager::OnPlatformEvent(const DeviceLayer::ChipDeviceEv
mServer->GetBleLayerObject()->CloseAllBleConnections();
#endif
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
DeviceLayer::ConnectivityManager::WiFiPAFAdvertiseParam args;
args.enable = false;
args.ExtCmds = nullptr;
DeviceLayer::ConnectivityMgr().SetWiFiPAFAdvertisingEnabled(args);
chip::WiFiPAF::WiFiPAFLayer::GetWiFiPAFLayer()->Shutdown(
[](uint32_t id, WiFiPAF::WiFiPafRole role) { DeviceLayer::ConnectivityMgr().WiFiPAFShutdown(id, role); });
#endif
}
else if (event->Type == DeviceLayer::DeviceEventType::kFailSafeTimerExpired)
Expand Down
3 changes: 2 additions & 1 deletion src/app/server/Server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,8 @@ CHIP_ERROR Server::Init(const ServerInitParams & initParams)
#endif
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
,
Transport::WiFiPAFListenParameters(DeviceLayer::ConnectivityMgr().GetWiFiPAF())
Transport::WiFiPAFListenParameters(static_cast<Transport::WiFiPAFBase *>(
DeviceLayer::ConnectivityMgr().GetWiFiPAF()->mWiFiPAFTransport))
#endif
);

Expand Down
49 changes: 36 additions & 13 deletions src/controller/CHIPDeviceController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -476,13 +476,6 @@ DeviceCommissioner::DeviceCommissioner() :
mDeviceNOCChainCallback(OnDeviceNOCChainGeneration, this), mSetUpCodePairer(this)
{}

DeviceCommissioner::~DeviceCommissioner()
{
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
DeviceLayer::ConnectivityMgr().WiFiPAFCancelConnect();
#endif
}

CHIP_ERROR DeviceCommissioner::Init(CommissionerInitParams params)
{
VerifyOrReturnError(params.operationalCredentialsDelegate != nullptr, CHIP_ERROR_INVALID_ARGUMENT);
Expand Down Expand Up @@ -578,6 +571,10 @@ void DeviceCommissioner::Shutdown()
mUdcServer = nullptr;
}
#endif // CHIP_DEVICE_CONFIG_ENABLE_COMMISSIONER_DISCOVERY
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
WiFiPAF::WiFiPAFLayer::GetWiFiPAFLayer()->Shutdown(
[](uint32_t id, WiFiPAF::WiFiPafRole role) { DeviceLayer::ConnectivityMgr().WiFiPAFShutdown(id, role); });
#endif

// Release everything from the commissionee device pool here.
// Make sure to use ReleaseCommissioneeDevice so we don't keep dangling
Expand Down Expand Up @@ -710,6 +707,23 @@ CHIP_ERROR DeviceCommissioner::EstablishPASEConnection(NodeId remoteDeviceId, co
resolutionData);
}

#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
static void StopSignalHandler(int signum)
{
WiFiPAF::WiFiPAFLayer::GetWiFiPAFLayer()->Shutdown([](uint32_t id, WiFiPAF::WiFiPafRole role) {
switch (role)
{
case WiFiPAF::WiFiPafRole::kWiFiPafRole_Publisher:
DeviceLayer::ConnectivityMgr().WiFiPAFCancelPublish(id);
break;
case WiFiPAF::WiFiPafRole::kWiFiPafRole_Subscriber:
DeviceLayer::ConnectivityMgr().WiFiPAFCancelSubscribe(id);
break;
}
});
}
#endif

CHIP_ERROR DeviceCommissioner::EstablishPASEConnection(NodeId remoteDeviceId, RendezvousParameters & params)
{
MATTER_TRACE_SCOPE("EstablishPASEConnection", "DeviceCommissioner");
Expand Down Expand Up @@ -831,17 +845,26 @@ CHIP_ERROR DeviceCommissioner::EstablishPASEConnection(NodeId remoteDeviceId, Re
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
if (params.GetPeerAddress().GetTransportType() == Transport::Type::kWiFiPAF)
{
if (DeviceLayer::ConnectivityMgr().GetWiFiPAF()->GetWiFiPAFState() != Transport::WiFiPAFBase::State::kConnected)
if (DeviceLayer::ConnectivityMgr().GetWiFiPAF()->GetWiFiPAFState() != WiFiPAF::State::kConnected)
{
ChipLogProgress(Controller, "WiFi-PAF: Subscribing the NAN-USD devices");
ChipLogProgress(Controller, "WiFi-PAF: Subscribing to the NAN-USD devices, nodeId: %lu",
params.GetPeerAddress().GetRemoteId());
if (!DeviceLayer::ConnectivityMgrImpl().IsWiFiManagementStarted())
{
ChipLogError(Controller, "Wi-Fi Management should have be started now.");
ChipLogError(Controller, "Wi-Fi Management should have been started now.");
ExitNow(CHIP_ERROR_INTERNAL);
}
mRendezvousParametersForDeviceDiscoveredOverWiFiPAF = params;
DeviceLayer::ConnectivityMgr().WiFiPAFConnect(params.GetSetupDiscriminator().value(), (void *) this,
OnWiFiPAFSubscribeComplete, OnWiFiPAFSubscribeError);
auto nodeId = params.GetPeerAddress().GetRemoteId();
const SetupDiscriminator connDiscriminator(params.GetSetupDiscriminator().value());
uint16_t discriminator =
connDiscriminator.IsShortDiscriminator() ? connDiscriminator.GetShortValue() : connDiscriminator.GetLongValue();
DeviceLayer::ConnectivityMgr().GetWiFiPAF()->AddPafSession(nodeId, discriminator);
DeviceLayer::ConnectivityMgr().WiFiPAFSubscribe(params.GetSetupDiscriminator().value(), reinterpret_cast<void *>(this),
OnWiFiPAFSubscribeComplete, OnWiFiPAFSubscribeError);
signal(SIGINT, StopSignalHandler);
signal(SIGTERM, StopSignalHandler);

ExitNow(CHIP_NO_ERROR);
}
}
Expand Down Expand Up @@ -916,7 +939,7 @@ void DeviceCommissioner::OnDiscoveredDeviceOverBleError(void * appState, CHIP_ER
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
void DeviceCommissioner::OnWiFiPAFSubscribeComplete(void * appState)
{
auto self = (DeviceCommissioner *) appState;
auto self = reinterpret_cast<DeviceCommissioner *>(appState);
auto device = self->mDeviceInPASEEstablishment;

if (nullptr != device && device->GetDeviceTransportType() == Transport::Type::kWiFiPAF)
Expand Down
3 changes: 2 additions & 1 deletion src/controller/CHIPDeviceController.h
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,7 @@ class DLL_EXPORT DeviceCommissioner : public DeviceController,
{
public:
DeviceCommissioner();
~DeviceCommissioner() override;
~DeviceCommissioner() override {}

#if CHIP_DEVICE_CONFIG_ENABLE_COMMISSIONER_DISCOVERY // make this commissioner discoverable
/**
Expand Down Expand Up @@ -730,6 +730,7 @@ class DLL_EXPORT DeviceCommissioner : public DeviceController,
*/
void CloseBleConnection();
#endif

/**
* @brief
* Discover all devices advertising as commissionable.
Expand Down
2 changes: 1 addition & 1 deletion src/controller/CHIPDeviceControllerFactory.h
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ struct FactoryInitParams
Ble::BleLayer * bleLayer = nullptr;
#endif
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
Transport::WiFiPAFLayer * wifipaf_layer = nullptr;
WiFiPAF::WiFiPAFLayer * wifipaf_layer = nullptr;
#endif

//
Expand Down
2 changes: 1 addition & 1 deletion src/controller/CHIPDeviceControllerSystemState.h
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ struct DeviceControllerSystemStateParams
Ble::BleLayer * bleLayer = nullptr;
#endif
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
Transport::WiFiPAFLayer * wifipaf_layer = nullptr;
WiFiPAF::WiFiPAFLayer * wifipaf_layer = nullptr;
#endif
Credentials::GroupDataProvider * groupDataProvider = nullptr;
Crypto::SessionKeystore * sessionKeystore = nullptr;
Expand Down
23 changes: 12 additions & 11 deletions src/controller/SetUpCodePairer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,6 @@ CHIP_ERROR GetPayload(const char * setUpCode, SetupPayload & payload)
}
} // namespace

SetUpCodePairer::~SetUpCodePairer()
{
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
DeviceLayer::ConnectivityMgr().WiFiPAFCancelConnect();
#endif
}

CHIP_ERROR SetUpCodePairer::PairDevice(NodeId remoteId, const char * setUpCode, SetupCodePairerBehaviour commission,
DiscoveryType discoveryType, Optional<Dnssd::CommonResolutionData> resolutionData)
{
Expand Down Expand Up @@ -266,8 +259,13 @@ CHIP_ERROR SetUpCodePairer::StartDiscoverOverWiFiPAF(SetupPayload & payload)
ChipLogProgress(Controller, "Starting commissioning discovery over WiFiPAF");
VerifyOrReturnError(mCommissioner != nullptr, CHIP_ERROR_INCORRECT_STATE);
mWaitingForDiscovery[kWiFiPAFTransport] = true;
CHIP_ERROR err = DeviceLayer::ConnectivityMgr().WiFiPAFConnect(payload.discriminator, (void *) this, OnWiFiPAFSubscribeComplete,
OnWiFiPAFSubscribeError);

const SetupDiscriminator connDiscriminator(payload.discriminator);
uint16_t discriminator =
connDiscriminator.IsShortDiscriminator() ? connDiscriminator.GetShortValue() : connDiscriminator.GetLongValue();
DeviceLayer::ConnectivityMgr().GetWiFiPAF()->AddPafSession(mRemoteId, discriminator);
CHIP_ERROR err = DeviceLayer::ConnectivityMgr().WiFiPAFSubscribe(payload.discriminator, (void *) this,
OnWiFiPAFSubscribeComplete, OnWiFiPAFSubscribeError);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Controller, "Commissioning discovery over WiFiPAF failed, err = %" CHIP_ERROR_FORMAT, err.Format());
Expand All @@ -282,6 +280,9 @@ CHIP_ERROR SetUpCodePairer::StartDiscoverOverWiFiPAF(SetupPayload & payload)
CHIP_ERROR SetUpCodePairer::StopConnectOverWiFiPAF()
{
mWaitingForDiscovery[kWiFiPAFTransport] = false;
#if CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF
DeviceLayer::ConnectivityMgr().WiFiPAFCancelIncompleteSubscribe();
#endif
return CHIP_NO_ERROR;
}

Expand Down Expand Up @@ -397,13 +398,13 @@ void SetUpCodePairer::OnWifiPAFDiscoveryError(CHIP_ERROR err)

void SetUpCodePairer::OnWiFiPAFSubscribeComplete(void * appState)
{
auto self = (SetUpCodePairer *) appState;
auto self = reinterpret_cast<SetUpCodePairer *>(appState);
self->OnDiscoveredDeviceOverWifiPAF();
}

void SetUpCodePairer::OnWiFiPAFSubscribeError(void * appState, CHIP_ERROR err)
{
auto self = (SetUpCodePairer *) appState;
auto self = reinterpret_cast<SetUpCodePairer *>(appState);
self->OnWifiPAFDiscoveryError(err);
}
#endif
Expand Down
2 changes: 1 addition & 1 deletion src/controller/SetUpCodePairer.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ class DLL_EXPORT SetUpCodePairer : public DevicePairingDelegate
{
public:
SetUpCodePairer(DeviceCommissioner * commissioner) : mCommissioner(commissioner) {}
~SetUpCodePairer();
virtual ~SetUpCodePairer() {}

CHIP_ERROR PairDevice(chip::NodeId remoteId, const char * setUpCode,
SetupCodePairerBehaviour connectionType = SetupCodePairerBehaviour::kCommission,
Expand Down
Loading
Loading