-
Notifications
You must be signed in to change notification settings - Fork 7.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
OpenThread Example Improvement (#10299)
* feat(openthread): add extended example Creates a new example that mixes different APIs * feat(openthread): create cj.json file Adds neessary CI file * feat(openthread): improve the example Update ExtendedRoterNode.ino with more use of API * feat(openthread): improve the example Adds OpenThread Native calls to the example * feat(openthread): improve the example Update LeaderNode.ino example to add OpenThread Native calls. * fix(openthread): bad formatting using space Update keywords.txt to use TAB instead of SPACE in order to recognize correctly the keywords. * fix(openthread): bad example file name - typo Changed ExtendedRoterNode to ExtendedRouterNode - Typo error. * feat(openthread): add extended example ci.json file Added CI file to the example. * fix(openthread): deleted bad file names in the example Delete libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRoterNode directory * fix(openthread): typo in commentaries * fix(openthread): typo in commentaries * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
- Loading branch information
1 parent
532d5f2
commit cbe0f2f
Showing
5 changed files
with
198 additions
and
24 deletions.
There are no files selected for viewing
65 changes: 65 additions & 0 deletions
65
libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ExtendedRouterNode.ino
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
#include "OThreadCLI.h" | ||
#include "OThreadCLI_Util.h" | ||
|
||
// Leader node shall use the same Network Key and channel | ||
#define CLI_NETWORK_KEY "00112233445566778899aabbccddeeff" | ||
#define CLI_NETWORK_CHANEL "24" | ||
bool otStatus = true; | ||
|
||
void setup() { | ||
Serial.begin(115200); | ||
OThreadCLI.begin(false); // No AutoStart - fresh start | ||
Serial.println("Setting up OpenThread Node as Router/Child"); | ||
Serial.println("Make sure the Leader Node is already running"); | ||
|
||
otStatus &= otExecCommand("dataset", "clear"); | ||
otStatus &= otExecCommand("dataset networkkey", CLI_NETWORK_KEY); | ||
otStatus &= otExecCommand("dataset channel", CLI_NETWORK_CHANEL); | ||
otStatus &= otExecCommand("dataset", "commit active"); | ||
otStatus &= otExecCommand("ifconfig", "up"); | ||
otStatus &= otExecCommand("thread", "start"); | ||
|
||
if (!otStatus) { | ||
Serial.println("\r\n\t===> Failed starting Thread Network!"); | ||
return; | ||
} | ||
// wait for the node to enter in the router state | ||
uint32_t timeout = millis() + 90000; // waits 90 seconds to | ||
while (otGetDeviceRole() != OT_ROLE_CHILD && otGetDeviceRole() != OT_ROLE_ROUTER) { | ||
Serial.print("."); | ||
if (millis() > timeout) { | ||
Serial.println("\r\n\t===> Timeout! Failed."); | ||
otStatus = false; | ||
break; | ||
} | ||
delay(500); | ||
} | ||
|
||
if (otStatus) { | ||
// print the PanID using 2 methods | ||
|
||
// CLI | ||
char resp[256]; | ||
if (otGetRespCmd("panid", resp)) { | ||
Serial.printf("\r\nPanID[using CLI]: %s\r\n", resp); | ||
} else { | ||
Serial.printf("\r\nPanID[using CLI]: FAILED!\r\n"); | ||
} | ||
|
||
// OpenThread API | ||
Serial.printf("PanID[using OT API]: 0x%x\r\n", (uint16_t)otLinkGetPanId(esp_openthread_get_instance())); | ||
} | ||
Serial.println("\r\n"); | ||
} | ||
|
||
void loop() { | ||
if (otStatus) { | ||
Serial.println("Thread NetworkInformation: "); | ||
Serial.println("---------------------------"); | ||
otPrintNetworkInformation(Serial); | ||
Serial.println("---------------------------"); | ||
} else { | ||
Serial.println("Some OpenThread operation has failed..."); | ||
} | ||
delay(10000); | ||
} |
9 changes: 9 additions & 0 deletions
9
libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ci.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{ | ||
"targets": { | ||
"esp32": false, | ||
"esp32c2": false, | ||
"esp32c3": false, | ||
"esp32s2": false, | ||
"esp32s3": false | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters