Skip to content

Commit 335ae19

Browse files
Add some better logging around PASE session setup in Matter.framework. (#33231)
Log the device ID being used.
1 parent 3062e91 commit 335ae19

File tree

4 files changed

+40
-1
lines changed

4 files changed

+40
-1
lines changed

src/darwin/Framework/CHIP/MTRDeviceController.mm

+8-1
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,8 @@ - (BOOL)setupCommissioningSessionWithPayload:(MTRSetupPayload *)payload
616616
newNodeID:(NSNumber *)newNodeID
617617
error:(NSError * __autoreleasing *)error
618618
{
619+
MTR_LOG_DEFAULT("Setting up commissioning session for device ID 0x%016llX with setup payload %@", newNodeID.unsignedLongLongValue, payload);
620+
619621
[[MTRMetricsCollector sharedInstance] resetMetrics];
620622

621623
// Track overall commissioning
@@ -663,6 +665,8 @@ - (BOOL)setupCommissioningSessionWithDiscoveredDevice:(MTRCommissionableBrowserR
663665
newNodeID:(NSNumber *)newNodeID
664666
error:(NSError * __autoreleasing *)error
665667
{
668+
MTR_LOG_DEFAULT("Setting up commissioning session for already-discovered device %@ and device ID 0x%016llX with setup payload %@", discoveredDevice, newNodeID.unsignedLongLongValue, payload);
669+
666670
[[MTRMetricsCollector sharedInstance] resetMetrics];
667671

668672
// Track overall commissioning
@@ -912,7 +916,10 @@ - (MTRBaseDevice *)deviceBeingCommissionedWithNodeID:(NSNumber *)nodeID error:(N
912916
return [[MTRBaseDevice alloc] initWithPASEDevice:deviceProxy controller:self];
913917
};
914918

915-
return [self syncRunOnWorkQueueWithReturnValue:block error:error];
919+
MTRBaseDevice * device = [self syncRunOnWorkQueueWithReturnValue:block error:error];
920+
MTR_LOG_DEFAULT("Getting device being commissioned with node ID 0x%016llX: %@ (error: %@)",
921+
nodeID.unsignedLongLongValue, device, (error ? *error : nil));
922+
return device;
916923
}
917924

918925
- (MTRBaseDevice *)baseDeviceForNodeID:(NSNumber *)nodeID

src/darwin/Framework/CHIP/MTRSetupPayload.h

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ typedef NS_OPTIONS(NSUInteger, MTRDiscoveryCapabilities) {
2828
MTRDiscoveryCapabilitiesBLE = 1 << 1, // Device supports BLE
2929
MTRDiscoveryCapabilitiesOnNetwork = 1 << 2, // Device supports On Network setup
3030

31+
// If new values are added here, update the "description" method to include them.
32+
3133
MTRDiscoveryCapabilitiesAllMask
3234
= MTRDiscoveryCapabilitiesSoftAP | MTRDiscoveryCapabilitiesBLE | MTRDiscoveryCapabilitiesOnNetwork,
3335
};

src/darwin/Framework/CHIP/MTRSetupPayload.mm

+20
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,26 @@ + (MTRSetupPayload * _Nullable)setupPayloadWithOnboardingPayload:(NSString *)onb
246246
return payload;
247247
}
248248

249+
- (NSString *)description
250+
{
251+
NSMutableArray<NSString *> * capabilities = [NSMutableArray array];
252+
if (self.discoveryCapabilities & MTRDiscoveryCapabilitiesSoftAP) {
253+
[capabilities addObject:@"SoftAP"];
254+
}
255+
if (self.discoveryCapabilities & MTRDiscoveryCapabilitiesBLE) {
256+
[capabilities addObject:@"BLE"];
257+
}
258+
if (self.discoveryCapabilities & MTRDiscoveryCapabilitiesOnNetwork) {
259+
[capabilities addObject:@"OnNetwork"];
260+
}
261+
if (capabilities.count == 0) {
262+
[capabilities addObject:@"Unknown"];
263+
}
264+
265+
return [NSString stringWithFormat:@"<MTRSetupPayload: discriminator=0x%x hasShortDiscriminator=%@ discoveryCapabilities=%@>",
266+
self.discriminator.unsignedIntValue, self.hasShortDiscriminator ? @"YES" : @"NO", [capabilities componentsJoinedByString:@"|"]];
267+
}
268+
249269
#pragma mark - NSSecureCoding
250270

251271
static NSString * const MTRSetupPayloadCodingKeyVersion = @"MTRSP.ck.version";

src/darwin/Framework/CHIPTests/MTRDeviceTests.m

+10
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,16 @@ - (void)controller:(MTRDeviceController *)controller commissioningSessionEstabli
9595
{
9696
XCTAssertEqual(error.code, 0);
9797

98+
NSError * getDeviceError = nil;
99+
__auto_type * device = [controller deviceBeingCommissionedWithNodeID:@(kDeviceId) error:&getDeviceError];
100+
XCTAssertNil(getDeviceError);
101+
XCTAssertNotNil(device);
102+
103+
// Now check that getting with some other random id fails.
104+
device = [controller deviceBeingCommissionedWithNodeID:@(kDeviceId + 1) error:&getDeviceError];
105+
XCTAssertNil(device);
106+
XCTAssertNotNil(getDeviceError);
107+
98108
__auto_type * params = [[MTRCommissioningParameters alloc] init];
99109
params.countryCode = @("au");
100110

0 commit comments

Comments
 (0)