Skip to content

Commit 2937577

Browse files
sharadb-amazonbzbarsky-apple
authored andcommitted
AppDelegate updates: new callback and docs (#28240)
* Adding OnCommissioningSessionEstablishmentError(err) to AppDelegate * Removed error param from OnCommissioningSessionStopped and added docs for all of AppDelegate * Addressing feedback from tcarmelveilleux@ * Revert "Addressing feedback from tcarmelveilleux@" This reverts commit 494bbc9. * Addressing feedback from bzbarsky-apple@ * Update src/app/server/AppDelegate.h Co-authored-by: Boris Zbarsky <bzbarsky@apple.com> * Restyled --------- Co-authored-by: Boris Zbarsky <bzbarsky@apple.com>
1 parent 58d9deb commit 2937577

File tree

5 files changed

+37
-7
lines changed

5 files changed

+37
-7
lines changed

examples/all-clusters-app/esp32/main/main.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class AppCallbacks : public AppDelegate
8787
public:
8888
void OnCommissioningSessionEstablishmentStarted() {}
8989
void OnCommissioningSessionStarted() override { bluetoothLED.Set(true); }
90-
void OnCommissioningSessionStopped(CHIP_ERROR err) override
90+
void OnCommissioningSessionStopped() override
9191
{
9292
bluetoothLED.Set(false);
9393
pairingWindowLED.Set(false);

examples/all-clusters-minimal-app/esp32/main/main.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class AppCallbacks : public AppDelegate
8686
public:
8787
void OnCommissioningSessionEstablishmentStarted() {}
8888
void OnCommissioningSessionStarted() override { bluetoothLED.Set(true); }
89-
void OnCommissioningSessionStopped(CHIP_ERROR err) override
89+
void OnCommissioningSessionStopped() override
9090
{
9191
bluetoothLED.Set(false);
9292
pairingWindowLED.Set(false);

examples/platform/telink/common/src/AppTaskCommon.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ class AppCallbacks : public AppDelegate
140140
public:
141141
void OnCommissioningSessionEstablishmentStarted() {}
142142
void OnCommissioningSessionStarted() override { isComissioningStarted = true; }
143-
void OnCommissioningSessionStopped(CHIP_ERROR err) override { isComissioningStarted = false; }
143+
void OnCommissioningSessionStopped() override { isComissioningStarted = false; }
144144
void OnCommissioningWindowClosed() override
145145
{
146146
if (!isComissioningStarted)

src/app/server/AppDelegate.h

+26-3
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,43 @@ class AppDelegate
2929
public:
3030
virtual ~AppDelegate() {}
3131
/**
32-
* This is called on start of session establishment process
32+
* This is called when the PBKDFParamRequest is received and indicates the start of the session establishment process
3333
*/
3434
virtual void OnCommissioningSessionEstablishmentStarted() {}
35+
36+
/**
37+
* This is called when the commissioning session has been established
38+
*/
3539
virtual void OnCommissioningSessionStarted() {}
36-
virtual void OnCommissioningSessionStopped(CHIP_ERROR err) {}
40+
41+
/**
42+
* This is called when the PASE establishment failed (such as, when an invalid passcode is provided) or PASE was established
43+
* fine but then the fail-safe expired (including being expired by the commissioner)
44+
*
45+
* @param err CHIP_ERROR indicating the error that occurred during session establishment or the error accompanying the fail-safe
46+
* timeout.
47+
*/
48+
virtual void OnCommissioningSessionEstablishmentError(CHIP_ERROR err) {}
49+
50+
/**
51+
* This is called when the PASE establishment failed or PASE was established fine but then the fail-safe expired (including
52+
* being expired by the commissioner) AND the commissioning window is closed. The window may be closed because the commissioning
53+
* attempts limit was reached or advertising/listening for PASE failed.
54+
*/
55+
virtual void OnCommissioningSessionStopped() {}
3756

3857
/*
39-
* This is called anytime a basic or enhanced commissioning window is opened.
58+
* This is called any time a basic or enhanced commissioning window is opened.
4059
*
4160
* The type of the window can be retrieved by calling
4261
* CommissioningWindowManager::CommissioningWindowStatusForCluster(), but
4362
* being careful about how to handle the None status when a window is in
4463
* fact open.
4564
*/
4665
virtual void OnCommissioningWindowOpened() {}
66+
67+
/*
68+
* This is called any time a basic or enhanced commissioning window is closed.
69+
*/
4770
virtual void OnCommissioningWindowClosed() {}
4871
};

src/app/server/CommissioningWindowManager.cpp

+8-1
Original file line numberDiff line numberDiff line change
@@ -152,13 +152,20 @@ void CommissioningWindowManager::HandleFailedAttempt(CHIP_ERROR err)
152152
#if CONFIG_NETWORK_LAYER_BLE
153153
mServer->GetBleLayerObject()->CloseAllBleConnections();
154154
#endif
155+
156+
CHIP_ERROR prevErr = err;
155157
if (mFailedCommissioningAttempts < kMaxFailedCommissioningAttempts)
156158
{
157159
// If the number of commissioning attempts has not exceeded maximum
158160
// retries, let's start listening for commissioning connections again.
159161
err = AdvertiseAndListenForPASE();
160162
}
161163

164+
if (mAppDelegate != nullptr)
165+
{
166+
mAppDelegate->OnCommissioningSessionEstablishmentError(prevErr);
167+
}
168+
162169
if (err != CHIP_NO_ERROR)
163170
{
164171
// The commissioning attempts limit was exceeded, or listening for
@@ -167,7 +174,7 @@ void CommissioningWindowManager::HandleFailedAttempt(CHIP_ERROR err)
167174

168175
if (mAppDelegate != nullptr)
169176
{
170-
mAppDelegate->OnCommissioningSessionStopped(err);
177+
mAppDelegate->OnCommissioningSessionStopped();
171178
}
172179
}
173180
}

0 commit comments

Comments
 (0)