Skip to content

Commit 87177c3

Browse files
committed
[thread-direct] add direct CLI command group
Introduces `cli_td.cpp` with the `direct` subcommand tree.
1 parent fe130ed commit 87177c3

5 files changed

Lines changed: 360 additions & 106 deletions

File tree

src/cli/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ set(COMMON_SOURCES
5555
cli_srp_server.cpp
5656
cli_tcat.cpp
5757
cli_tcp.cpp
58+
cli_td.cpp
5859
cli_udp.cpp
5960
cli_utils.cpp
6061
)

src/cli/cli.cpp

Lines changed: 11 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
#include <openthread/radio_stats.h>
5858
#include <openthread/server.h>
5959
#include <openthread/thread.h>
60+
#include <openthread/thread_direct.h>
6061
#include <openthread/thread_ftd.h>
6162
#include <openthread/trel.h>
6263
#include <openthread/verhoeff_checksum.h>
@@ -135,6 +136,9 @@ Interpreter::Interpreter(Instance *aInstance, otCliOutputCallback aCallback, voi
135136
#if OPENTHREAD_CONFIG_BLE_TCAT_ENABLE && OPENTHREAD_CONFIG_CLI_BLE_SECURE_ENABLE
136137
, mTcat(aInstance, *this)
137138
#endif
139+
#if OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_INITIATOR_ENABLE || OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_LISTENER_ENABLE
140+
, mThreadDirect(aInstance, *this)
141+
#endif
138142
#if OPENTHREAD_CONFIG_PING_SENDER_ENABLE
139143
, mPing(aInstance, *this)
140144
#endif
@@ -222,6 +226,10 @@ void Interpreter::HandleDiagOutput(const char *aFormat, va_list aArguments)
222226
}
223227
#endif
224228

229+
#if OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_INITIATOR_ENABLE || OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_LISTENER_ENABLE
230+
template <> otError Interpreter::Process<Cmd("direct")>(Arg aArgs[]) { return mThreadDirect.Process(aArgs); }
231+
#endif
232+
225233
template <> otError Interpreter::Process<Cmd("version")>(Arg aArgs[])
226234
{
227235
otError error = OT_ERROR_NONE;
@@ -8213,107 +8221,6 @@ template <> otError Interpreter::Process<Cmd("verhoeff")>(Arg aArgs[])
82138221

82148222
#endif // OPENTHREAD_CONFIG_VERHOEFF_CHECKSUM_ENABLE
82158223

8216-
#if OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_INITIATOR_ENABLE || OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_LISTENER_ENABLE
8217-
template <> otError Interpreter::Process<Cmd("wakeup")>(Arg aArgs[])
8218-
{
8219-
otError error = OT_ERROR_NONE;
8220-
8221-
/**
8222-
* @cli wakeup channel (get,set)
8223-
* @code
8224-
* wakeup channel
8225-
* 12
8226-
* Done
8227-
* @endcode
8228-
* @code
8229-
* wakeup channel 12
8230-
* Done
8231-
* @endcode
8232-
* @cparam wakeup channel [@ca{channel}]
8233-
* Use `channel` to set the wake-up channel.
8234-
* @par
8235-
* Gets or sets the wake-up channel value.
8236-
* @sa otLinkGetWakeupChannel
8237-
* @sa otLinkSetWakeupChannel
8238-
*/
8239-
if (aArgs[0] == "channel")
8240-
{
8241-
error = ProcessGetSet(aArgs + 1, otLinkGetWakeupChannel, otLinkSetWakeupChannel);
8242-
}
8243-
#if OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_LISTENER_ENABLE
8244-
/**
8245-
* @cli wakeup parameters (get,set)
8246-
* @code
8247-
* wakeup parameters
8248-
* interval: 1000000us
8249-
* duration: 8000us
8250-
* Done
8251-
* @endcode
8252-
* @code
8253-
* wakeup parameters 1000000 8000
8254-
* Done
8255-
* @endcode
8256-
* @cparam wakeup parameters @ca{interval} @ca{duration}
8257-
* @par
8258-
* Gets or sets the wake-up listen interval and wake-up listen duration values.
8259-
* @sa otLinkGetWakeUpListenParameters
8260-
* @sa otLinkSetWakeUpListenParameters
8261-
*/
8262-
else if (aArgs[0] == "parameters")
8263-
{
8264-
uint32_t interval;
8265-
uint32_t duration;
8266-
8267-
if (aArgs[1].IsEmpty())
8268-
{
8269-
otLinkGetWakeupListenParameters(GetInstancePtr(), &interval, &duration);
8270-
OutputLine("interval: %luus", ToUlong(interval));
8271-
OutputLine("duration: %luus", ToUlong(duration));
8272-
}
8273-
else
8274-
{
8275-
SuccessOrExit(error = aArgs[1].ParseAsUint32(interval));
8276-
SuccessOrExit(error = aArgs[2].ParseAsUint32(duration));
8277-
error = otLinkSetWakeupListenParameters(GetInstancePtr(), interval, duration);
8278-
}
8279-
}
8280-
/**
8281-
* @cli wakeup listen (enable,disable)
8282-
* @code
8283-
* wakeup listen
8284-
* disabled
8285-
* Done
8286-
* @endcode
8287-
* @code
8288-
* wakeup listen enable
8289-
* Done
8290-
* @endcode
8291-
* @code
8292-
* wakeup listen
8293-
* enabled
8294-
* Done
8295-
* @endcode
8296-
* @cparam wakeup listen @ca{enable}
8297-
* @par
8298-
* Gets or sets current wake-up listening link state.
8299-
* @sa otLinkIsWakeupListenEnabled
8300-
* @sa otLinkSetWakeUpListenEnabled
8301-
*/
8302-
else if (aArgs[0] == "listen")
8303-
{
8304-
error = ProcessEnableDisable(aArgs + 1, otLinkIsWakeupListenEnabled, otLinkSetWakeUpListenEnabled);
8305-
}
8306-
#endif // OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_LISTENER_ENABLE
8307-
else
8308-
{
8309-
ExitNow(error = OT_ERROR_INVALID_ARGS);
8310-
}
8311-
8312-
exit:
8313-
return error;
8314-
}
8315-
#endif // OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_INITIATOR_ENABLE || OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_LISTENER_ENABLE
8316-
83178224
#endif // OPENTHREAD_FTD || OPENTHREAD_MTD
83188225

83198226
size_t Interpreter::GetSize(void) { return sizeof(Interpreter); }
@@ -8473,6 +8380,9 @@ otError Interpreter::ProcessCommand(Arg aArgs[])
84738380
#if OPENTHREAD_CONFIG_DIAG_ENABLE
84748381
CmdEntry("diag"),
84758382
#endif
8383+
#if OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_INITIATOR_ENABLE || OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_LISTENER_ENABLE
8384+
CmdEntry("direct"),
8385+
#endif
84768386
#if OPENTHREAD_FTD || OPENTHREAD_MTD
84778387
CmdEntry("discover"),
84788388
#if OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE || OPENTHREAD_CONFIG_DNSSD_SERVER_ENABLE || \
@@ -8665,11 +8575,6 @@ otError Interpreter::ProcessCommand(Arg aArgs[])
86658575
#endif
86668576
#endif // OPENTHREAD_FTD || OPENTHREAD_MTD
86678577
CmdEntry("version"),
8668-
#if OPENTHREAD_FTD || OPENTHREAD_MTD
8669-
#if OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_INITIATOR_ENABLE || OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_LISTENER_ENABLE
8670-
CmdEntry("wakeup"),
8671-
#endif
8672-
#endif // OPENTHREAD_FTD || OPENTHREAD_MTD
86738578
};
86748579

86758580
#undef CmdEntry

src/cli/cli.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
#include "cli/cli_srp_server.hpp"
7878
#include "cli/cli_tcat.hpp"
7979
#include "cli/cli_tcp.hpp"
80+
#include "cli/cli_td.hpp"
8081
#include "cli/cli_udp.hpp"
8182
#include "cli/cli_utils.hpp"
8283

@@ -124,6 +125,7 @@ class Interpreter : public otCliInterpreter, public OutputImplementer, public Ut
124125
friend class PingSender;
125126
friend class SrpClient;
126127
friend class SrpServer;
128+
friend class ThreadDirect;
127129
#endif
128130
friend class Utils;
129131

@@ -463,6 +465,9 @@ class Interpreter : public otCliInterpreter, public OutputImplementer, public Ut
463465
#if OPENTHREAD_CONFIG_BLE_TCAT_ENABLE && OPENTHREAD_CONFIG_CLI_BLE_SECURE_ENABLE
464466
Tcat mTcat;
465467
#endif
468+
#if OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_INITIATOR_ENABLE || OPENTHREAD_CONFIG_THREAD_DIRECT_WAKE_LISTENER_ENABLE
469+
ThreadDirect mThreadDirect;
470+
#endif
466471
#if OPENTHREAD_CONFIG_PING_SENDER_ENABLE
467472
PingSender mPing;
468473
#endif

0 commit comments

Comments
 (0)