评论
更多信息?截图/照片? |
以下是一些照片: 首先,我可以从我的主机软件交互式地输入命令:https ://lh6.googleusercontent.com/-LkQ1Vp7NXdI/UKMAeC5WhaI/AAAAAAAAAUo/PYc-RMvoEgQ/s640/DSC00368.JPG 但是,如果我将 M117 命令嵌入到 gcode 文件中 – 如下所示:https ://lh3.googleusercontent.com/-NsEOj-6bR_w/UKMAeEpvFKI/AAAAAAAAAUk/RHuSTHmn8yQ/s640/DSC00370.JPG 然后开始打印,可以看到事件的先后顺序: 然后是驻留命令:https ://lh5.googleusercontent.com/–DxoHqSh87s/UKMAh-eit4I/AAAAAAAAAU0/5FZ_VQ9Ao04/s640/DSC00373.JPG 最后是 M117 命令: https ://lh3.googleusercontent.com/-Ezgor6G-8Ec/UKMAiVWexMI/AAAAAAAAVE/F0mszrYguyA/s640/DSC00374.JPG 我相信您在那里看到的 117 实际上是命令的一部分,而我相信 *58 是 printcore 计算的校验和。 |
*68 确实是校验和的一部分。 我认为这会解决它:
|
(我在那里的 gcode 解析器中看到了一些更奇怪的东西,但我现在没有时间测试这些东西,而且我不会在没有测试的情况下向主树添加补丁) |
我愿意在我的机器上本地进行此更改并尝试一下,但在不查看那里的代码的情况下,在我看来,这似乎只解决了校验和的显示问题。117呢?那是 M117 命令的最后 3 个字符,也不应该在那里。看起来代码只是显示从字节偏移量 5 开始的所有内容,它可以很好地交互工作,但在代码文件中不考虑序列号。 |
哦,我错过了 117,它必须在 M117 中解决,很可能它只是跳过了前 4 个字符。 |
是的,这正是它正在做的。这是 M117 代码的全部: +5 将它带到“M117”之后的第一个字符。当然,如果命令前面有序列号,则此偏移量不起作用(至少 printcore 就是这种情况) |
我通过用以下代码替换当前的 M117 代码,在我的系统上修复了这个问题。不优雅,但它完成了工作。第一个 if 语句的 else 情况永远不会发生,但如果发生,我只是保持原始逻辑不变,但这可能会被安全地删除。 case 117: // M117 显示消息 |
这个是大约一年前创建的,有很多变化,请下载最新的 marlin 副本,看看问题是否仍然存在。您还可以使用最新的 arduino IDE 来刷新 marlin 固件。如果您的板文件等只能在旧的 ide 下工作,请先升级它们,以便它们在最新的 IDE 下工作。 如果您为不在https://github.com/ErikZalm/Marlin/tree/Marlin_v1/ArduinoAddons中的硬件创建板文件,请 fork marlin 并添加文件,然后创建一个拉取请求,以便我们可以获得硬件支持的。这也将使人们了解人们正在使用什么硬件。 |
使用 pronterface/printcore 时。如果我以交互方式输入 m117 命令,一切正常。但是,如果我将 M117 命令放入 gcode 文件中,屏幕上就会出现垃圾。看起来它忘记了 printcore 插入的序列号和校验和。