diff --git a/src/core/diags/README.md b/src/core/diags/README.md index 9ec39c2cfedb..27c7e4e47e1f 100644 --- a/src/core/diags/README.md +++ b/src/core/diags/README.md @@ -222,6 +222,26 @@ Return the state of the radio. sleep ``` +### diag radio enable + +Enable radio interface and put it in receive mode. + +```bash +> diag radio enable +Radio link started. +sleep +``` + +### diag radio disable + +Disable radio interface. + +```bash +> diag radio disable +Radio link stopped. +sleep +``` + ### diag rawpowersetting Show the raw power setting for diagnostics module. diff --git a/src/core/diags/factory_diags.cpp b/src/core/diags/factory_diags.cpp index c879f8628873..a432dfef6492 100644 --- a/src/core/diags/factory_diags.cpp +++ b/src/core/diags/factory_diags.cpp @@ -577,6 +577,16 @@ Error Diags::ProcessRadio(uint8_t aArgsLength, char *aArgs[]) break; } } + else if (StringMatch(aArgs[0], "enable")) + { + SuccessOrExit(error = Get().Enable()); + Output("Radio link started.\r\n"); + } + else if (StringMatch(aArgs[0], "disable")) + { + SuccessOrExit(error = Get().Disable()); + Output("Radio link stopped.\r\n"); + } exit: AppendErrorResult(error); diff --git a/src/core/diags/factory_diags.hpp b/src/core/diags/factory_diags.hpp index a538edf93fea..7f90ab8ce8c5 100644 --- a/src/core/diags/factory_diags.hpp +++ b/src/core/diags/factory_diags.hpp @@ -184,6 +184,9 @@ class Diags : public InstanceLocator, private NonCopyable Error ProcessGpio(uint8_t aArgsLength, char *aArgs[]); Error ProcessPower(uint8_t aArgsLength, char *aArgs[]); Error ProcessRadio(uint8_t aArgsLength, char *aArgs[]); +#if !OPENTHREAD_RADIO + Error ProcessLinkRaw(uint8_t aArgsLength, char *aArgs[]); +#endif Error ProcessRepeat(uint8_t aArgsLength, char *aArgs[]); Error ProcessPowerSettings(uint8_t aArgsLength, char *aArgs[]); Error ProcessRawPowerSetting(uint8_t aArgsLength, char *aArgs[]);