关闭 dresco 打开了这个问题 2022 年 2 月 28 日 · 3条评论 关闭 支持从插件代码解锁#121 dresco 打开了这个问题 2022 年 2 月 28 日 · 3条评论 评论 贡献者 德雷斯科 评论了 2022 年 2 月 28 日 当处于警报状态时,系统可以由发送者($X)解锁,但不能由插件解锁——因为 protocol_enqueue_gcode() 目前在 STATE_ALARM 中删除命令——有人反对允许这样做吗? (我希望能够从我的控制面板插件解锁,因为 VFD 的启动速度比控制器慢,因此当第一个 modbus 消息未被确认时 GRBL 会发出警报)。 核心/协议.c 第 67 至 72 行 4ff8f1c //添加 gcode 以执行不是源自普通输入流 bool protocol_enqueue_gcode ( char *gcode) { bool ok = xcommand[ 0 ] == ‘ \0 ‘ && ( state_get () == STATE_IDLE || ( state_get () & (STATE_JOG|STATE_TOOL_CHANGE))) && bit_isfalse ( sys.rt_exec_state , EXEC_MOTION_CANCEL); 贡献者 terjeio 评论了 2022 年 3 月 1 日 有反对意见吗? 不确定要回答什么 – 最好保持现在的状态?在警报状态下,您可以$X直接向系统命令解析器发送: 核心/系统.c 第 299 至 300 行 4ff8f1c //注意:调用 system_execute_line() 的代码需要提供至少 LINE_BUFFER_SIZE 的行缓冲区 status_code_t system_execute_line ( char *line) 我自己在 HPGL 插件中直接调用了这个函数: static void go_home (void) { char cmd[LINE_BUFFER_SIZE] = "$H"; plan_line_data_t plan_data = {0}; process = wait; hal.stream.write = hal.stream.write_all = stream_write_null; system_execute_line(cmd); plan_data.feed_rate = 4000.0f; target.values[X_AXIS] = settings.axis[X_AXIS].max_travel; // target.values[Y_AXIS] = 0.0f; process = mc_line(target.values, &plan_data) ? await_homed : NULL; } 贡献者作者 德雷斯科 评论了 2022 年 3 月 1 日 在报警状态下可以$X直接发送给系统命令解析器 哦,太棒了,不知道那个功能 – 会尝试那样做……谢谢! 贡献者作者 德雷斯科 评论了 2022 年 3 月 1 日 谢谢,那很好用.. dresco已完成 关闭 2022 年 3 月 1 日 喜欢 (0) Arduino Due CNC Protoneer v3 #120 警报 6 #122 2.8inch_ESP32-2432S028R无法获取任何菜单 #56 2.8inch_ESP32-2432S028R显示屏支持 #55 编译错误 #54 文本部分超出了板中的可用空间 #53 2.8inch_ESP32-2432S028R无法获取任何菜单 #562.8inch_ESP32-2432S028R显示屏支持 #55编译错误 #54文本部分超出了板中的可用空间 #53编译失败:SdFat.h:没有那个文件或目录 #50esp32c3支持吗? #49慢跑算法 #48启用 WiFi 后,STA & AP 模式会暂停发送 G 代码。 #46
当处于警报状态时,系统可以由发送者($X)解锁,但不能由插件解锁——因为 protocol_enqueue_gcode() 目前在 STATE_ALARM 中删除命令——有人反对允许这样做吗?
(我希望能够从我的控制面板插件解锁,因为 VFD 的启动速度比控制器慢,因此当第一个 modbus 消息未被确认时 GRBL 会发出警报)。
核心/协议.c
第 67 至 72 行 4ff8f1c