Skip to content

Add example for erasing the network configuration via library api #20

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

Merged
merged 2 commits into from
Aug 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions .github/workflows/compile-examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ jobs:
- name: Arduino_KVStore
SKETCH_PATHS: |
- examples/NetworkConfiguratorDemo
- examples/utility/DeleteConfiguration
SKETCHES_REPORTS_PATH: sketches-reports
strategy:
fail-fast: false
Expand Down
87 changes: 87 additions & 0 deletions examples/utility/DeleteConfiguration/DeleteConfiguration.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
/*
Copyright (c) 2025 Arduino SA

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/

/*
* This sketch wipes out the stored network configuration
* using the NetworkConfigurator library.
* This sketch doesn't use the reconfiguration procedure.
*/

#include <Arduino_ConnectionHandler.h>
#include <GenericConnectionHandler.h>
#include <Arduino_KVStore.h>
#include <Arduino_NetworkConfigurator.h>
#include <configuratorAgents/agents/BLEAgent.h>
#include <configuratorAgents/agents/SerialAgent.h>

KVStore kvstore;
BLEAgentClass BLEAgent;
SerialAgentClass SerialAgent;
GenericConnectionHandler conMan;
NetworkConfiguratorClass NetworkConfigurator(conMan);

bool waitResponse() {
bool confirmation = false;
bool proceed = false;
while (confirmation == false) {
if (Serial.available()) {
char choice = Serial.read();
switch (choice) {
case 'y':
case 'Y':
confirmation = true;
proceed = true;
break;
case 'n':
case 'N':
confirmation = true;
proceed = false;
break;
default:
continue;
}
}
}
return proceed;
}

void setup() {
/* Initialize serial debug port and wait up to 5 seconds for port to open */
Serial.begin(9600);

/* Set the debug message level:
* - DBG_ERROR: Only show error messages
* - DBG_WARNING: Show warning and error messages
* - DBG_INFO: Show info, warning, and error messages
* - DBG_DEBUG: Show debug, info, warning, and error messages
* - DBG_VERBOSE: Show all messages
*/
setDebugMessageLevel(DBG_INFO);

while (!Serial);

/* Set the KVStore */
NetworkConfigurator.setStorage(kvstore);

Serial.println("\nWARNING! Running the sketch the stored network configuration will be erased.");
Serial.println("Do you want to proceed? Y/[n]");

if (true == waitResponse()) {
/* Wipe out the network configuration */
if (NetworkConfigurator.resetStoredConfiguration()) {
Serial.println("Network configuration reset successfully.");
} else {
Serial.println("Failed to reset network configuration.");
}
} else {
Serial.println("Aborted.");
}
}

void loop() {
}
Loading