开源改变世界

报警模式阻止字符回显和响应。 #317

推推 grbl 3年前 (2023-02-05) 326次浏览
关闭
bdring 打开了这个问题 2022 年 2 月 26 日 · 2 条评论
关闭

报警模式阻止字符回显和响应。#317

bdring 打开了这个问题 2022 年 2 月 26 日 · 2 条评论

评论

报警模式阻止字符回显和响应。 #317
所有者

当您处于警报模式时,该字符不再在串行终端回显。一旦警报被清除,这些字符就会随响应一起回显。

这是一个示例会话..

[MSG:INFO: '$H'|'$X' to unlock]
$H
ok
G0 X1000
[MSG:INFO: Soft limit on X target:1000.000]
ALARM:2
[MSG:INFO: Reset to continue]

这里我在这里发送 G91 和 G0X10 没有回音或响应。
然后我发送 ^X 来清除警报。

[Reset]
ok

Grbl 3.3 [FluidNC v3.3.0 (FeedholdAfterSoftLimit-2505156) (wifi) '$' for help]
[MSG:INFO: '$H'|'$X' to unlock]
ok
G91
error:9

ok
G0 x10
error:9
报警模式阻止字符回显和响应。 #317 bdring 将此 添加到 开发中的愿望清单 2022 年 2 月 26 日
报警模式阻止字符回显和响应。 #317 bdring 添加了 漏洞 仅供开发者使用标签 2022 年 2 月 26 日
报警模式阻止字符回显和响应。 #317
贡献者

你好,

同样的问题在这里。
在未连接到机器时安装和测试时或在工作期间击中限位开关时,这很烦人……
Lightburn 无法再与 GRBL 通信

已经有固定日期了吗?

感谢您的出色工作!

报警模式阻止字符回显和响应。 #317
贡献者
阿凡达120 评论了 2022 年 4 月 13 日  

你好,

它是在代码中按目的完成的(参见下面的 do/while)
`
static void protocol_do_alarm() {

switch (rtAlarm) {
    case ExecAlarm::None:
        return;
    // System alarm. Everything has shutdown by something that has gone severely wrong. Report
    case ExecAlarm::HardLimit:
    case ExecAlarm::SoftLimit:
        sys.state = State::Alarm;  // Set system alarm state
        alarm_msg(rtAlarm);
        report_feedback_message(Message::CriticalEvent);
        protocol_disable_steppers();
        rtReset = false;  // Disable any existing reset
        do {
            // Block everything except reset and status reports until user issues reset or power
            // cycles. Hard limits typically occur while unattended or not paying attention. Gives
            // the user and a GUI time to do what is needed before resetting, like killing the
            // incoming stream. The same could be said about soft limits. While the position is not
            // lost, continued streaming could cause a serious crash if by chance it gets executed.
            pollChannels();  // Handle ^X realtime RESET command
        } while (!rtReset);
        break;
    default:
        sys.state = State::Alarm;  // Set system alarm state
        alarm_msg(rtAlarm);
        break;
}
rtAlarm = ExecAlarm::None;

}
`
我修改了文件以触发 ESP32 重置 –> 它适用于我的使用。
但是,我不知道我修改的所有后果……:)