注释
我实际上还没有测试过 2.8 – 只有 master |
可能与#588有关吗? |
是的,我确定是的。这是一个纯 python 重映射,但过程肯定是相似的。 |
这是一个 DEBUG = 0x7FFFFFFF(全部) 在 std_glue (master) 中使用新的重映射 tool_probe_m6 发出 EMC_TASK_PLAN_EXECUTE — ( +509,+280, +12,t1m6\n,) *** 等待手动换刀确认 发行EMC_TRAJ_LINEAR_MOVE-( +220, +208, +0,-10.000000,-10.0000,0000,0000,0000,0000000000,0000,0000,0000,0000,0000000000,0000,0000,0000,0000,0000,0000,000000,00000000,0000,0000,0000, **** 探测 — 然后失败 G38.2 移动完成但没有接触。 *** 过程完成 |
yield 在重映射中用于等待 linuxcnc 执行一些代码。即等待探测完成。
如果执行的代码成功,这就可以正常工作。
如果不是,则 linuxcnc 不会返回到屈服点,从而无法进行错误处理。
在 tool_probe_m6 重映射的情况下,系统将停留在 G90 并且可能是错误的单位 (G21/20)。
从文档中我不清楚这是重新映射的不足还是只是一个错误。
linuxcnc 中有一个显示问题的重映射:nc_files/remap_lib/python-stdglue/tool_probe_m6
如果探测在实际触发之前结束,重映射将以一种奇怪的状态被放弃。
interp_python.cc pycall() 似乎控制着 python 生成器/yield 过程。
我的 C++ 几乎不存在。
如果有人可以提供帮助 – 我会尽力解决这个问题。