mirror of
https://github.com/espressif/openthread.git
synced 2026-07-27 22:37:45 +00:00
Thread Commissioning. (#399)
This commit is contained in:
+57
-3
@@ -37,6 +37,8 @@
|
||||
|
||||
#include <openthread.h>
|
||||
#include <openthread-diag.h>
|
||||
#include <commissioning/commissioner.h>
|
||||
#include <commissioning/joiner.h>
|
||||
|
||||
#include "cli.hpp"
|
||||
#include "cli_dataset.hpp"
|
||||
@@ -63,15 +65,24 @@ const struct Command Interpreter::sCommands[] =
|
||||
{ "child", &ProcessChild },
|
||||
{ "childmax", &ProcessChildMax },
|
||||
{ "childtimeout", &ProcessChildTimeout },
|
||||
#if OPENTHREAD_ENABLE_COMMISSIONER
|
||||
{ "commissioner", &ProcessCommissioner },
|
||||
#endif
|
||||
{ "contextreusedelay", &ProcessContextIdReuseDelay },
|
||||
{ "counter", &ProcessCounters },
|
||||
{ "dataset", &ProcessDataset },
|
||||
#if OPENTHREAD_ENABLE_DIAG
|
||||
{ "diag", &ProcessDiag },
|
||||
#endif
|
||||
{ "discover", &ProcessDiscover },
|
||||
{ "eidcache", &ProcessEidCache },
|
||||
{ "extaddr", &ProcessExtAddress },
|
||||
{ "extpanid", &ProcessExtPanId },
|
||||
{ "ifconfig", &ProcessIfconfig },
|
||||
{ "ipaddr", &ProcessIpAddr },
|
||||
#if OPENTHREAD_ENABLE_JOINER
|
||||
{ "joiner", &ProcessJoiner },
|
||||
#endif
|
||||
{ "keysequence", &ProcessKeySequence },
|
||||
{ "leaderdata", &ProcessLeaderData },
|
||||
{ "leaderpartitionid", &ProcessLeaderPartitionId },
|
||||
@@ -101,9 +112,6 @@ const struct Command Interpreter::sCommands[] =
|
||||
{ "thread", &ProcessThread },
|
||||
{ "version", &ProcessVersion },
|
||||
{ "whitelist", &ProcessWhitelist },
|
||||
#if OPENTHREAD_ENABLE_DIAG
|
||||
{ "diag", &ProcessDiag },
|
||||
#endif
|
||||
};
|
||||
|
||||
static otDEFINE_ALIGNED_VAR(sPingTimerBuf, sizeof(Timer), uint64_t);
|
||||
@@ -1818,6 +1826,52 @@ void Interpreter::ProcessVersion(int argc, char *argv[])
|
||||
(void)argv;
|
||||
}
|
||||
|
||||
#if OPENTHREAD_ENABLE_COMMISSIONER
|
||||
|
||||
void Interpreter::ProcessCommissioner(int argc, char *argv[])
|
||||
{
|
||||
ThreadError error = kThreadError_None;
|
||||
|
||||
VerifyOrExit(argc > 0, error = kThreadError_Parse);
|
||||
|
||||
if (strcmp(argv[0], "start") == 0)
|
||||
{
|
||||
otCommissionerStart();
|
||||
}
|
||||
else if (strcmp(argv[0], "stop") == 0)
|
||||
{
|
||||
otCommissionerStop();
|
||||
}
|
||||
|
||||
exit:
|
||||
AppendResult(error);
|
||||
}
|
||||
|
||||
#endif // OPENTHREAD_ENABLE_COMMISSIONER
|
||||
|
||||
#if OPENTHREAD_ENABLE_JOINER
|
||||
|
||||
void Interpreter::ProcessJoiner(int argc, char *argv[])
|
||||
{
|
||||
ThreadError error = kThreadError_None;
|
||||
|
||||
VerifyOrExit(argc > 0, error = kThreadError_Parse);
|
||||
|
||||
if (strcmp(argv[0], "start") == 0)
|
||||
{
|
||||
otJoinerStart();
|
||||
}
|
||||
else if (strcmp(argv[0], "stop") == 0)
|
||||
{
|
||||
otJoinerStop();
|
||||
}
|
||||
|
||||
exit:
|
||||
AppendResult(error);
|
||||
}
|
||||
|
||||
#endif // OPENTHREAD_ENABLE_JOINER
|
||||
|
||||
void Interpreter::ProcessWhitelist(int argc, char *argv[])
|
||||
{
|
||||
ThreadError error = kThreadError_None;
|
||||
|
||||
+11
-5
@@ -36,10 +36,11 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
#include <openthread-config.h>
|
||||
|
||||
#include <cli/cli_server.hpp>
|
||||
#include <net/icmp6.hpp>
|
||||
#include <common/timer.hpp>
|
||||
#include <openthread-config.h>
|
||||
|
||||
namespace Thread {
|
||||
|
||||
@@ -135,9 +136,15 @@ private:
|
||||
static void ProcessChild(int argc, char *argv[]);
|
||||
static void ProcessChildTimeout(int argc, char *argv[]);
|
||||
static void ProcessChildMax(int argc, char *argv[]);
|
||||
#if OPENTHREAD_ENABLE_COMMISSIONER
|
||||
static void ProcessCommissioner(int argc, char *argv[]);
|
||||
#endif // OPENTHREAD_ENABLE_COMMISSIONER
|
||||
static void ProcessContextIdReuseDelay(int argc, char *argv[]);
|
||||
static void ProcessCounters(int argc, char *argv[]);
|
||||
static void ProcessDataset(int argc, char *argv[]);
|
||||
#if OPENTHREAD_ENABLE_DIAG
|
||||
static void ProcessDiag(int argc, char *argv[]);
|
||||
#endif // OPENTHREAD_ENABLE_DIAG
|
||||
static void ProcessDiscover(int argc, char *argv[]);
|
||||
static void ProcessEidCache(int argc, char *argv[]);
|
||||
static void ProcessExtAddress(int argc, char *argv[]);
|
||||
@@ -146,6 +153,9 @@ private:
|
||||
static void ProcessIpAddr(int argc, char *argv[]);
|
||||
static ThreadError ProcessIpAddrAdd(int argc, char *argv[]);
|
||||
static ThreadError ProcessIpAddrDel(int argc, char *argv[]);
|
||||
#if OPENTHREAD_ENABLE_JOINER
|
||||
static void ProcessJoiner(int argc, char *argv[]);
|
||||
#endif // OPENTHREAD_ENABLE_JOINER
|
||||
static void ProcessKeySequence(int argc, char *argv[]);
|
||||
static void ProcessLeaderData(int argc, char *argv[]);
|
||||
static void ProcessLeaderPartitionId(int argc, char *argv[]);
|
||||
@@ -181,10 +191,6 @@ private:
|
||||
static void ProcessVersion(int argc, char *argv[]);
|
||||
static void ProcessWhitelist(int argc, char *argv[]);
|
||||
|
||||
#if OPENTHREAD_ENABLE_DIAG
|
||||
static void ProcessDiag(int argc, char *argv[]);
|
||||
#endif
|
||||
|
||||
static void HandleEchoResponse(void *aContext, Message &aMessage, const Ip6::MessageInfo &aMessageInfo);
|
||||
static void HandlePingTimer(void *aContext);
|
||||
static void HandleActiveScanResult(otActiveScanResult *aResult, void *aContext);
|
||||
|
||||
@@ -507,7 +507,7 @@ ThreadError Dataset::ProcessMgmtGetCommand(int argc, char *argv[])
|
||||
}
|
||||
else if (strcmp(argv[index], "localprefix") == 0)
|
||||
{
|
||||
tlvs[length++] = OT_MESHCOP_TLV_LOCALPREFIX;
|
||||
tlvs[length++] = OT_MESHCOP_TLV_MESHLOCALPREFIX;
|
||||
}
|
||||
else if (strcmp(argv[index], "delaytimer") == 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user