0

我已经使用 SMING 框架的 Telnet_TCPServer_TCPClient 示例设置了 UART 以使用 CommandProcessing 库接收和处理命令。

以下是相关代码;

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 ,offappheap,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 回答