注释
|
@OldETC: report_status_message() 应该始终至少打印“ok”或“error:”。也没有调用此函数没有未指定的错误号。 我怀疑是其他原因导致了这个问题。过去,我发现它通常是由 UI、Arduino 和 UI 之间的某些东西(如 USB 协议)或运行 UI 的系统引起的。或者它也可能是外部来源(如电噪声)造成的数据损坏。一般而言,如果代码编写正确,Arduino 上的 AVR CPU 非常强大。它是裸机编程,几乎没有影响其操作的因素。 你能描述一下你的设置以及你如何流式传输到 Grbl 吗?在您注意到类似超时的错误之前,程序大约需要运行多长时间?它是一致的还是不稳定的? |
|
在 2014-01-03 星期五 14:24 -0800,Sonny Jeon 写道:
OK,脉搏也不稳定。我创建了一个 感谢您的快速回复。 |
|
@OldETC: 好听!感谢更新。 |


目前,我正在获取一个文件,并且在程序运行一段时间后,已知良好的命令没有获得“OK”状态。查看 report_status_message 的代码,我注意到未指定的错误编号将不打印任何内容,除非
在 switch 语句后的最后一行中定义,它只打印 PSTR(“\r\n”)。
因此,执行但返回除已定义数字之外的任何数字的位将无法正常运行,也不会出现任何错误指示。我建议
添加一个 switch default 语句,它将打印传递到 report_status_message 例程中的数字,以便可以跟踪和修复错误。
(我不擅长这种形式的 cpp,所以请考虑这是一个伪代码示例)
default
printPgmString(PSTR(“%d\r\n”,status_code); break;