From 99f5790a49f916285767d242e1a1c97f66dfaea1 Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Mon, 22 Apr 2019 10:04:54 -0700 Subject: [PATCH] [ncp] add spinel_meshcop_joiner_state_t enumeration (#3774) This commit defines an enumeration in spinel for Joiner state which is related to property `SPINEL_PROP_MESHCOP_JOINER_STATE`. --- src/ncp/ncp_base_mtd.cpp | 26 +++++++++++++++++++++++++- src/ncp/spinel.h | 13 ++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/ncp/ncp_base_mtd.cpp b/src/ncp/ncp_base_mtd.cpp index 60bbf4a9c..5f2708fe4 100644 --- a/src/ncp/ncp_base_mtd.cpp +++ b/src/ncp/ncp_base_mtd.cpp @@ -1441,7 +1441,31 @@ exit: #if OPENTHREAD_ENABLE_JOINER template <> otError NcpBase::HandlePropertyGet(void) { - return mEncoder.WriteUint8(static_cast(otJoinerGetState(mInstance))); + spinel_meshcop_joiner_state_t state = SPINEL_MESHCOP_JOINER_STATE_IDLE; + + switch (otJoinerGetState(mInstance)) + { + case OT_JOINER_STATE_IDLE: + state = SPINEL_MESHCOP_JOINER_STATE_IDLE; + break; + case OT_JOINER_STATE_DISCOVER: + state = SPINEL_MESHCOP_JOINER_STATE_DISCOVER; + break; + case OT_JOINER_STATE_CONNECT: + state = SPINEL_MESHCOP_JOINER_STATE_CONNECTING; + break; + case OT_JOINER_STATE_CONNECTED: + state = SPINEL_MESHCOP_JOINER_STATE_CONNECTED; + break; + case OT_JOINER_STATE_ENTRUST: + state = SPINEL_MESHCOP_JOINER_STATE_ENTRUST; + break; + case OT_JOINER_STATE_JOINED: + state = SPINEL_MESHCOP_JOINER_STATE_JOINED; + break; + } + + return mEncoder.WriteUint8(state); } template <> otError NcpBase::HandlePropertySet(void) diff --git a/src/ncp/spinel.h b/src/ncp/spinel.h index a77f95df8..7a68c1151 100644 --- a/src/ncp/spinel.h +++ b/src/ncp/spinel.h @@ -259,6 +259,16 @@ typedef enum SPINEL_HOST_POWER_STATE_ONLINE = 4, } spinel_host_power_state_t; +typedef enum +{ + SPINEL_MESHCOP_JOINER_STATE_IDLE = 0, + SPINEL_MESHCOP_JOINER_STATE_DISCOVER = 1, + SPINEL_MESHCOP_JOINER_STATE_CONNECTING = 2, + SPINEL_MESHCOP_JOINER_STATE_CONNECTED = 3, + SPINEL_MESHCOP_JOINER_STATE_ENTRUST = 4, + SPINEL_MESHCOP_JOINER_STATE_JOINED = 5, +} spinel_meshcop_joiner_state_t; + enum { SPINEL_NET_FLAG_ON_MESH = (1 << 0), @@ -2632,7 +2642,8 @@ typedef enum * * Required capability: SPINEL_CAP_THREAD_JOINER * - * The valid values are specified by SPINEL_MESHCOP_COMMISIONER_STATE_ enumeration. + * The valid values are specified by `spinel_meshcop_joiner_state_t` (`SPINEL_MESHCOP_JOINER_STATE_`) + * enumeration. * */ SPINEL_PROP_MESHCOP_JOINER_STATE = SPINEL_PROP_MESHCOP__BEGIN + 0, ///<[C]