mirror of
https://github.com/espressif/openthread.git
synced 2026-07-08 13:20:25 +00:00
[radio] add radio coex control api (#4158)
This commit is contained in:
committed by
Jonathan Hui
parent
87ef3b1d51
commit
c0ef327664
+48
-29
@@ -105,7 +105,7 @@ const struct Command Interpreter::sCommands[] = {
|
||||
#if OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE
|
||||
{"coaps", &Interpreter::ProcessCoapSecure},
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_METRICS_ENABLE
|
||||
#if OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE
|
||||
{"coex", &Interpreter::ProcessCoexMetrics},
|
||||
#endif
|
||||
#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD
|
||||
@@ -786,43 +786,62 @@ void Interpreter::ProcessCoapSecure(int argc, char *argv[])
|
||||
|
||||
#endif // OPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE
|
||||
|
||||
#if OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_METRICS_ENABLE
|
||||
#if OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE
|
||||
void Interpreter::ProcessCoexMetrics(int argc, char *argv[])
|
||||
{
|
||||
OT_UNUSED_VARIABLE(argc);
|
||||
OT_UNUSED_VARIABLE(argv);
|
||||
otError error = OT_ERROR_NONE;
|
||||
|
||||
otRadioCoexMetrics metrics;
|
||||
otError error = otPlatRadioGetCoexMetrics(mInstance, &metrics);
|
||||
if (argc == 0)
|
||||
{
|
||||
mServer->OutputFormat("%s\r\n", otPlatRadioIsCoexEnabled(mInstance) ? "Enabled" : "Disabled");
|
||||
}
|
||||
else if (strcmp(argv[0], "enable") == 0)
|
||||
{
|
||||
error = otPlatRadioSetCoexEnabled(mInstance, true);
|
||||
}
|
||||
else if (strcmp(argv[0], "disable") == 0)
|
||||
{
|
||||
error = otPlatRadioSetCoexEnabled(mInstance, false);
|
||||
}
|
||||
else if (strcmp(argv[0], "metrics") == 0)
|
||||
{
|
||||
otRadioCoexMetrics metrics;
|
||||
|
||||
SuccessOrExit(error);
|
||||
SuccessOrExit(error = otPlatRadioGetCoexMetrics(mInstance, &metrics));
|
||||
|
||||
mServer->OutputFormat("Stopped: %s\r\n", metrics.mStopped ? "true" : "false");
|
||||
mServer->OutputFormat("Grant Glitch: %u\r\n", metrics.mNumGrantGlitch);
|
||||
mServer->OutputFormat("Transmit metrics\r\n");
|
||||
mServer->OutputFormat(" Request: %u\r\n", metrics.mNumTxRequest);
|
||||
mServer->OutputFormat(" Grant Immediate: %u\r\n", metrics.mNumTxGrantImmediate);
|
||||
mServer->OutputFormat(" Grant Wait: %u\r\n", metrics.mNumTxGrantWait);
|
||||
mServer->OutputFormat(" Grant Wait Activated: %u\r\n", metrics.mNumTxGrantWaitActivated);
|
||||
mServer->OutputFormat(" Grant Wait Timeout: %u\r\n", metrics.mNumTxGrantWaitTimeout);
|
||||
mServer->OutputFormat(" Grant Deactivated During Request: %u\r\n", metrics.mNumTxGrantDeactivatedDuringRequest);
|
||||
mServer->OutputFormat(" Delayed Grant: %u\r\n", metrics.mNumTxDelayedGrant);
|
||||
mServer->OutputFormat(" Average Request To Grant Time: %u\r\n", metrics.mAvgTxRequestToGrantTime);
|
||||
mServer->OutputFormat("Receive metrics\r\n");
|
||||
mServer->OutputFormat(" Request: %u\r\n", metrics.mNumRxRequest);
|
||||
mServer->OutputFormat(" Grant Immediate: %u\r\n", metrics.mNumRxGrantImmediate);
|
||||
mServer->OutputFormat(" Grant Wait: %u\r\n", metrics.mNumRxGrantWait);
|
||||
mServer->OutputFormat(" Grant Wait Activated: %u\r\n", metrics.mNumRxGrantWaitActivated);
|
||||
mServer->OutputFormat(" Grant Wait Timeout: %u\r\n", metrics.mNumRxGrantWaitTimeout);
|
||||
mServer->OutputFormat(" Grant Deactivated During Request: %u\r\n", metrics.mNumRxGrantDeactivatedDuringRequest);
|
||||
mServer->OutputFormat(" Delayed Grant: %u\r\n", metrics.mNumRxDelayedGrant);
|
||||
mServer->OutputFormat(" Average Request To Grant Time: %u\r\n", metrics.mAvgRxRequestToGrantTime);
|
||||
mServer->OutputFormat(" Grant None: %u\r\n", metrics.mNumRxGrantNone);
|
||||
mServer->OutputFormat("Stopped: %s\r\n", metrics.mStopped ? "true" : "false");
|
||||
mServer->OutputFormat("Grant Glitch: %u\r\n", metrics.mNumGrantGlitch);
|
||||
mServer->OutputFormat("Transmit metrics\r\n");
|
||||
mServer->OutputFormat(" Request: %u\r\n", metrics.mNumTxRequest);
|
||||
mServer->OutputFormat(" Grant Immediate: %u\r\n", metrics.mNumTxGrantImmediate);
|
||||
mServer->OutputFormat(" Grant Wait: %u\r\n", metrics.mNumTxGrantWait);
|
||||
mServer->OutputFormat(" Grant Wait Activated: %u\r\n", metrics.mNumTxGrantWaitActivated);
|
||||
mServer->OutputFormat(" Grant Wait Timeout: %u\r\n", metrics.mNumTxGrantWaitTimeout);
|
||||
mServer->OutputFormat(" Grant Deactivated During Request: %u\r\n",
|
||||
metrics.mNumTxGrantDeactivatedDuringRequest);
|
||||
mServer->OutputFormat(" Delayed Grant: %u\r\n", metrics.mNumTxDelayedGrant);
|
||||
mServer->OutputFormat(" Average Request To Grant Time: %u\r\n", metrics.mAvgTxRequestToGrantTime);
|
||||
mServer->OutputFormat("Receive metrics\r\n");
|
||||
mServer->OutputFormat(" Request: %u\r\n", metrics.mNumRxRequest);
|
||||
mServer->OutputFormat(" Grant Immediate: %u\r\n", metrics.mNumRxGrantImmediate);
|
||||
mServer->OutputFormat(" Grant Wait: %u\r\n", metrics.mNumRxGrantWait);
|
||||
mServer->OutputFormat(" Grant Wait Activated: %u\r\n", metrics.mNumRxGrantWaitActivated);
|
||||
mServer->OutputFormat(" Grant Wait Timeout: %u\r\n", metrics.mNumRxGrantWaitTimeout);
|
||||
mServer->OutputFormat(" Grant Deactivated During Request: %u\r\n",
|
||||
metrics.mNumRxGrantDeactivatedDuringRequest);
|
||||
mServer->OutputFormat(" Delayed Grant: %u\r\n", metrics.mNumRxDelayedGrant);
|
||||
mServer->OutputFormat(" Average Request To Grant Time: %u\r\n", metrics.mAvgRxRequestToGrantTime);
|
||||
mServer->OutputFormat(" Grant None: %u\r\n", metrics.mNumRxGrantNone);
|
||||
}
|
||||
else
|
||||
{
|
||||
ExitNow(error = OT_ERROR_INVALID_ARGS);
|
||||
}
|
||||
|
||||
exit:
|
||||
AppendResult(error);
|
||||
}
|
||||
#endif // OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_METRICS_ENABLE
|
||||
#endif // OPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE
|
||||
|
||||
#if OPENTHREAD_FTD
|
||||
void Interpreter::ProcessContextIdReuseDelay(int argc, char *argv[])
|
||||
|
||||
Reference in New Issue
Block a user