0

SMING フレームワークの Telnet_TCPServer_TCPClient の例を使用して、CommandProcessing ライブラリを使用してコマンドを受信および処理するように UART をセットアップしました。

関連するコードは次のとおりです。

void init()
{
    Serial.begin(SERIAL_BAUD_RATE); 
    Serial.commandProcessing(true);
    commandHandler.registerCommand(CommandDelegate("appheap","Usage appheap on/off/now for heapdisplay\r\n","testGroup", appheapCommand));
    memoryTimer.initializeMs(250,checkHeap).start();
}

void appheapCommand(String commandLine  ,CommandOutput* commandOutput)
{
    Vector<String> commandToken;
    int numToken = splitString(commandLine, ',' , commandToken);
        //The rest are same as inside sample code.
}

この文字列appheap ,offを UART に送信すると、コマンドは適切に解析されます。

ただし、この文字列appheap,offを UART に送信すると、コマンドが正しく解析されません。返されるメッセージはCommand not found, cmd = 'appheap,off'.

うまくいっていれば、文字列appheap ,offと文字列の両方が正常にappheap,off動作するはずです。

4

1 に答える 1

1

コマンド処理ライブラリは、コンマを含むコマンドを検出できません。スペースのあるコマンドを検出します。でコマンド リストを作成しますCommandDelegate("command_name","Usage", ...)

あなたのコンテキストでappheap,offは、スペースがないため、メッセージが表示されますCommand not found, cmd = 'appheap,off'。コマンドを呼び出す正しい方法はappheap off.

于 2015-12-14T11:59:03.010 に答える