Automatic Joiners removal in Commissioner (#1421)

* Implement automatic Joiner removal feature.

* Save some RAM in JoinerRouter class.

* Specify timeout for each Joiner separately.

* Update Windows API files.
This commit is contained in:
Robert Lubos
2017-03-08 05:19:12 -08:00
committed by Jonathan Hui
parent 6eaacdd4a4
commit 746a40a340
12 changed files with 121 additions and 23 deletions
+9 -1
View File
@@ -2327,7 +2327,15 @@ void Interpreter::ProcessCommissioner(int argc, char *argv[])
if (strcmp(argv[1], "add") == 0)
{
VerifyOrExit(argc > 3, error = kThreadError_Parse);
SuccessOrExit(error = otCommissionerAddJoiner(mInstance, addrPtr, argv[3]));
// Timeout parameter is optional - if not specified, use default value.
unsigned long timeout = kDefaultJoinerTimeout;
if (argc > 4)
{
SuccessOrExit(error = ParseUnsignedLong(argv[4], timeout));
}
SuccessOrExit(error = otCommissionerAddJoiner(mInstance, addrPtr, argv[3], static_cast<uint32_t>(timeout)));
}
else if (strcmp(argv[1], "remove") == 0)
{
+1
View File
@@ -147,6 +147,7 @@ private:
{
kMaxArgs = 32,
kMaxAutoAddresses = 8,
kDefaultJoinerTimeout = 120, ///< Default timeout for Joiners, in seconds.
};
void AppendResult(ThreadError error);