注释
似乎没有办法在该库中使用密码。 |
还有这个bug。您可以通过一次发送更长的字符串而不是字节来缓解错误。这将需要大量重写报告。 |
我正在运行的一些测试看起来不错。我还没有通过手机运行过工作,但我正在手动敲打。 BlueToothSerial 库的主要问题是您不能使用 SerialBT.write(…) 来写入大量字符。少至 7 次后,您将不知不觉地开始丢失它们。最好将要发送的所有内容收集在一个字符串中并使用 SerialBT.print(…)。这意味着我必须完全重写 report.cpp 和 print.cpp。现在所有传出数据都通过此代码….
如果 SerialBT.hasClient(),现有的 serial_read() 函数现在也可以查找 BT 数据, Grbl 有一个 $I 特性,你可以使用 “$I=xxxxx” 保存一些构建信息。我用它来存储蓝牙名称。如果它不为空,则启动蓝牙。这使得测试更容易而无需重写 settings.cpp 目前还没有密码功能,但上游代码现在有,所以这个库可能很快就会有。 |
这是我使用蓝牙的视频。 https://www.youtube.com/watch?v=TmBBf-_LJpA 在推送代码之前,我还想解决一些问题。Grbl 控制器在 G21 和 G90 之类的东西之前注入一些 G4 P0.05 命令,这偶尔会停止流式传输。不知道为什么 Grbl Controller 会那样做,但固件不应该在意。 |
出色的工作! |
这些问题需要一段时间才能解决,但我认为现在已经相当稳定了。我认为该库在所有功能真正稳定之前存在一些问题,但我已经通过 BT 毫无问题地发送了大约 20 个具有 100k 行 gcode 的作业。库中还没有密码保护,这真的很糟糕,但很快就会改变。 请参阅代码的 ESP32_Grbl_Bluetooth 分支。 |
添加此功能的最简单方法可能是使用此库。
https://github.com/espressif/arduino-esp32/tree/master/libraries/BluetoothSerial
我不确定如何处理多个通信渠道。我认为最好只是回应所有通信渠道上的所有流量。来自 Grbl 的所有消息都将发送到串行和蓝牙。通过蓝牙或串行发送的消息将被执行。
这将使您无需更改设置或重新编译即可使用。用户是否尝试同时从两者流式传输取决于用户。
这样你就不会被锁定在频道之外,比如如果你将控制设置为串行,你需要串行控制台将其更改为蓝牙吗?这听起来像个问题。