我在这里建立一个基于Socket-IO-client的项目https://github.com/timum-viw/socket.io-client
我需要关闭所有正在打印的串行数据,除了我发送到串口的数据。我已经尝试删除#define USE_SERIAL并删除或更改USE_SERIAL以使用Serial1端口也编辑了SocketIOClient.cpp来删除那里的调试语句但仍然有很多这样的...
[WS][0][sendFrame] sending Frame Done (4506us).
[WS][0][handleWebsocketWaitFor] size: 2 cWsRXsize: 0
[readCb] n: 2 t: 597463
[WS][0][handleWebsocketWaitFor][readCb] size: 2 ok: 1
[WS][0][handleWebsocket] ------- read massage frame -------
[WS][0][handleWebsocket] fin: 1 rsv1: 0 rsv2: 0 rsv3 0 opCode: 1
[WS][0][handleWebsocket] mask: 0 payloadLen: 1
[readCb] n: 1 t: 597478
[WS][0][handleWebsocket] text: 3
我想收到一个websocket消息并打印到串口,因此arduino mega可以读取传递给它的串行消息。我不想解析所有正在打印的序列以找到我真正需要的消息。
我使用的是基本nodemcu esp8266 12E模块,使用arduino ide 1.8.5进行编码。我确信我有一些容易丢失的东西。
答案 0 :(得分:0)
实际上非常简单。在socketIoClient.h中,你有一个如下的定义:
#define SOCKETIOCLIENT_DEBUG(...) Serial.print(__VA_ARGS__);
您可以将其更改为:
#define SOCKETIOCLIENT_DEBUG(...) do{} while(0);
或简单地说:
#define SOCKETIOCLIENT_DEBUG(...)
这应该可以摆脱调试消息,但我认为esp8266本身也会在某些特殊事件(如连接或断开连接到AP)时向UART输出一些调试消息。您可能需要遵循espressif的API参考:
uart_init中的os_printf被OS用作默认打印功能以及许多应用程序。 Arduino的串口lib应该直接使用uart0而不是os_printf,所以做上述操作只会让你无法获得操作系统产生的消息。
答案 1 :(得分:0)
我知道这很简单,我忽略了一些东西。 Solomons的回答很有意义,但我在检查Stack Overflow和看到他的帖子之前就解决了。解决方案是他的答案或评论.cpp文件中的调试语句的组合,但也需要进入Arduino IDE工具菜单并将DEBUG PORT设置为" disabled"和DEBUG LEVEL到"无"。我之前已经尝试过,但是我的代码中的一个错误让我认为关闭了所有的串行通信。但重新审视使用新代码产生了只打印我的
的预期结果Serial.print();
声明感谢您的帮助。