mirror of
https://github.com/espressif/openthread.git
synced 2026-09-17 06:30:10 +00:00
[commissioner] add 'state' CLI command (#5317)
This commit is contained in:
@@ -47,7 +47,7 @@ const struct Commissioner::Command Commissioner::sCommands[] = {
|
||||
{"mgmtget", &Commissioner::ProcessMgmtGet}, {"mgmtset", &Commissioner::ProcessMgmtSet},
|
||||
{"panid", &Commissioner::ProcessPanId}, {"provisioningurl", &Commissioner::ProcessProvisioningUrl},
|
||||
{"sessionid", &Commissioner::ProcessSessionId}, {"start", &Commissioner::ProcessStart},
|
||||
{"stop", &Commissioner::ProcessStop},
|
||||
{"state", &Commissioner::ProcessState}, {"stop", &Commissioner::ProcessStop},
|
||||
};
|
||||
|
||||
otError Commissioner::ProcessHelp(uint8_t aArgsLength, char *aArgs[])
|
||||
@@ -344,20 +344,27 @@ void Commissioner::HandleStateChanged(otCommissionerState aState, void *aContext
|
||||
|
||||
void Commissioner::HandleStateChanged(otCommissionerState aState)
|
||||
{
|
||||
mInterpreter.mServer->OutputFormat("Commissioner: ");
|
||||
mInterpreter.mServer->OutputFormat("Commissioner: %s\r\n", StateToString(aState));
|
||||
}
|
||||
|
||||
const char *Commissioner::StateToString(otCommissionerState aState)
|
||||
{
|
||||
const char *rval = "unknown";
|
||||
|
||||
switch (aState)
|
||||
{
|
||||
case OT_COMMISSIONER_STATE_DISABLED:
|
||||
mInterpreter.mServer->OutputFormat("disabled\r\n");
|
||||
rval = "disabled";
|
||||
break;
|
||||
case OT_COMMISSIONER_STATE_PETITION:
|
||||
mInterpreter.mServer->OutputFormat("petitioning\r\n");
|
||||
rval = "petitioning";
|
||||
break;
|
||||
case OT_COMMISSIONER_STATE_ACTIVE:
|
||||
mInterpreter.mServer->OutputFormat("active\r\n");
|
||||
rval = "active";
|
||||
break;
|
||||
}
|
||||
|
||||
return rval;
|
||||
}
|
||||
|
||||
void Commissioner::HandleJoinerEvent(otCommissionerJoinerEvent aEvent,
|
||||
@@ -411,6 +418,16 @@ otError Commissioner::ProcessStop(uint8_t aArgsLength, char *aArgs[])
|
||||
return otCommissionerStop(mInterpreter.mInstance);
|
||||
}
|
||||
|
||||
otError Commissioner::ProcessState(uint8_t aArgsLength, char *aArgs[])
|
||||
{
|
||||
OT_UNUSED_VARIABLE(aArgsLength);
|
||||
OT_UNUSED_VARIABLE(aArgs);
|
||||
|
||||
mInterpreter.mServer->OutputFormat("%s\r\n", StateToString(otCommissionerGetState(mInterpreter.mInstance)));
|
||||
|
||||
return OT_ERROR_NONE;
|
||||
}
|
||||
|
||||
otError Commissioner::Process(uint8_t aArgsLength, char *aArgs[])
|
||||
{
|
||||
otError error = OT_ERROR_INVALID_COMMAND;
|
||||
|
||||
@@ -94,6 +94,7 @@ private:
|
||||
otError ProcessProvisioningUrl(uint8_t aArgsLength, char *aArgs[]);
|
||||
otError ProcessSessionId(uint8_t aArgsLength, char *aArgs[]);
|
||||
otError ProcessStart(uint8_t aArgsLength, char *aArgs[]);
|
||||
otError ProcessState(uint8_t aArgsLength, char *aArgs[]);
|
||||
otError ProcessStop(uint8_t aArgsLength, char *aArgs[]);
|
||||
|
||||
static void HandleStateChanged(otCommissionerState aState, void *aContext);
|
||||
@@ -116,6 +117,8 @@ private:
|
||||
static void HandlePanIdConflict(uint16_t aPanId, uint32_t aChannelMask, void *aContext);
|
||||
void HandlePanIdConflict(uint16_t aPanId, uint32_t aChannelMask);
|
||||
|
||||
static const char *StateToString(otCommissionerState aState);
|
||||
|
||||
static const Command sCommands[];
|
||||
Interpreter & mInterpreter;
|
||||
};
|
||||
|
||||
@@ -33,9 +33,15 @@ source "tests/scripts/expect/_multinode.exp"
|
||||
setup_nodes
|
||||
|
||||
set spawn_id $spawn_2
|
||||
send "commissioner state\n"
|
||||
expect "disabled"
|
||||
expect "Done"
|
||||
send "commissioner start\n"
|
||||
expect "Done"
|
||||
expect "Commissioner: active"
|
||||
send "commissioner state\n"
|
||||
expect "active"
|
||||
expect "Done"
|
||||
send "commissioner provisioningurl openthread.io\n"
|
||||
expect "Done"
|
||||
send "commissioner joiner add * J01NME 1\n"
|
||||
@@ -55,6 +61,9 @@ expect "Done"
|
||||
send "commissioner stop\n"
|
||||
expect "Commissioner: disabled"
|
||||
expect "Done"
|
||||
send "commissioner state\n"
|
||||
expect "disabled"
|
||||
expect "Done"
|
||||
send "commissioner help\n"
|
||||
expect "Done"
|
||||
send "commissioner joiner something_invalid\n"
|
||||
|
||||
Reference in New Issue
Block a user