开源改变世界

python remap:如果等待时出现错误,yield 不会返回。 #1012

推推 grbl 3年前 (2023-01-30) 168次浏览
打开
c-morley 打开了这个问题 2020 年 12 月 28 日 · 4条评论
打开

python remap:如果等待时出现错误,yield 不会返回。#1012

c-morley 打开了这个问题 2020 年 12 月 28 日 · 4条评论

注释

python remap:如果等待时出现错误,yield 不会返回。 #1012
合作者

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++ 几乎不存在。
如果有人可以提供帮助 – 我会尽力解决这个问题。

python remap:如果等待时出现错误,yield 不会返回。 #1012 c-莫利 补充道 影响2.8 影响主人 并删除 影响2.8 标签 2020 年 12 月 28 日
python remap:如果等待时出现错误,yield 不会返回。 #1012
合作者作者

我实际上还没有测试过 2.8 – 只有 master

python remap:如果等待时出现错误,yield 不会返回。 #1012
合作者

可能与#588有关吗?

python remap:如果等待时出现错误,yield 不会返回。 #1012
合作者作者

是的,我确定是的。这是一个纯 python 重映射,但过程肯定是相似的。
我会看看我是否可以确认这一点。
感谢您指出。
那我应该关闭这个吗?

python remap:如果等待时出现错误,yield 不会返回。 #1012
合作者作者

这是一个 DEBUG = 0x7FFFFFFF(全部)
并且在 ini {PYTHON} LOG_LEVEL=1000 中的示例

在 std_glue (master) 中使用新的重映射 tool_probe_m6
`
**** 在 MDI 中发布 t1m6

发出 EMC_TASK_PLAN_EXECUTE — ( +509,+280, +12,t1m6\n,)
emcTaskPlanLevel() 返回 0
NML_INTERP_LIST(0x90bde0)::append(nml_msg_ptr{size=24,type=EMC_TOOL_PREPARE}) : list_size=1, line_number= 0
is_callable(oword.tool_probe_m6) = FALSE
NML_INTERP_LIST(0x90bde0)::append(nml_msg_ptr{size=168,type=EMC_TRAJ_SET_OFFSET}) : list_size=2, line_number=0
NML_INTERP_LIST(0x90bde0)::append(nml_msg_ptr{size=208,类型=EMC_TRAJ_LINEAR_MOVE}):list_size=3,line_number=0
NML_INTERP_LIST(0x90bde0)::append(nml_msg_ptr{size=24,type=EMC_TOOL_LOAD}):list_size=4,line_number=0
NML_INTERP_LIST(0x90bde0)::append(nml_msg_ptr{ size=208,type=EMC_TRAJ_LINEAR_MOVE}) : list_size=5, line_number=0
NML_INTERP_LIST(0x90bde0)::append(nml_msg_ptr{size=208,type=EMC_TRAJ_LINEAR_MOVE}): list_size=6, line_number=0
NML_INTERP_LIST(0x90bde0)::append(nml_msg_ptr{size=96,type=EMC_TRAJ_CLEAR_PROBE_TRIPPED:list_FLAG=})7 , line_number=0
NML_INTERP_LIST(0x90bde0)::append(nml_msg_ptr{size=208,type=EMC_TRAJ_PROBE}) : list_size=8, line_number=0
emcTaskPlanExecute(t1m6
) 返回 2
emcTaskPlanLevel() 返回 1
emcTaskPlanSetWait() 调用
NML_INTERP_bde0) ::append(nml_msg_ptr{size=24,type=EMC_TASK_PLAN_SYNCH}) : list_size=9, line_number=0
NML_INTERP_LIST(0x90bde0)::get(): {size=24, type=EMC_TOOL_PREPARE}, list_size=8
emcTaskPlanLevel() 返回1
发出 EMC_TOOL_PREPARE — ( +1104,+24, +0, +1,)
NML_INTERP_LIST(0x90bde0)::get(): {size=168, type=EMC_TRAJ_SET_OFFSET}, list_size=7 emcTaskPlanLevel
() 返回 1
0.000000,0.000000,0.000000,0.000000,0.000000,)
NML_INTERP_LIST(0x90bde0)::get(): {size=208, type=EMC_TRAJ_LINEAR_MOVE}, list_size=6
emcTaskPlanLevel() 返回 1
发出 EMC_TRAJ_LINEAR_MOVE,0,–22 ( +22 +0,10.0000,8.0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0.000000,000000000000000000000000,0000, +4,397584,6.397584,63.97584,63.975838
, 24, type=EMC_TOOL_LOAD}, list_size=5
emcTaskPlanLevel() 返回 1
发出 EMC_TOOL_LOAD — ( +1105,+24, +0,)
NML_INTERP_LIST(0x90bde0)::get(): {size=208, type=EMC_TRAJ_LINEAR_MOVE}, list_size=4
emcTaskPlanLevel() 返回 1

*** 等待手动换刀确认

发行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,
NML_INTERP_LIST(0x90bde0)::get(): {size=208, type=EMC_TRAJ_LINEAR_MOVE}, list_size=3
emcTaskPlanLevel() 返回 1
发出 EMC_TRAJ_LINEAR_MOVE — ( +220,+208, +0,-10.000000,-10.000000,0.110000, 0.000000,0.000000,0.000000,0.000000,0.000000,0.000000, +1,5.000000,5.000000,50.000000, +0, -1,)
NML_INTERP_LIST(0x90bde0)::get(): {大小=96, 类型=TRAJ_CLEARMC_Size} 2
emcTaskPlanLevel() 返回 1
发出 EMC_TRAJ_CLEAR_PROBE_TRIPPED_FLAG — ( +228,+96, +0,)
NML_INTERP_LIST(0x90bde0)::get(): {size=208, type=EMC_TRAJ_PROBE}, list_size=1 emcTaskPlanLevel
() 返回 1
,0.0000,00,0000,0000,0000,0000,0000,0000,0000,0000,0000000000000000,0000, +5,1.000000,5.0000,0000,50.000000,0000,0000,\ 000,\ 000,)
NML_INTERP_LIST(0x90BDE0
) () 返回 1

**** 探测 — 然后失败

G38.2 移动完成但没有接触。
NML_INTERP_LIST(0x90bde0)::clear(): 丢弃 0 个项目
NML_INTERP_LIST(0x90bde0)::append(nml_msg_ptr{size=24,type=EMC_TASK_PLAN_SYNCH}) : list_size=1, line_number=0
NML_INTERP_LIST(0x681aa0)::clear():丢弃 0 个项目
NML_INTERP_LIST(0x90bde0)::clear(): 丢弃 1 个项目
NML_INTERP_LIST(0x90bde0)::append(nml_msg_ptr{size=24,type=EMC_TASK_PLAN_SYNCH}) : list_size=1, line_number=0
task: main loop toked 0.019002 seconds
NML_INTERP_LIST(0x90bde0)::get(): {size=24, type=EMC_TASK_PLAN_SYNCH}, list_size=0
emcTaskPlanLevel() 返回 0
发出 EMC_TASK_PLAN_SYNCH — ( +516,+24, +0,)
emcTaskPlanSynch() 返回 0

*** 过程完成
`

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
项目

还没有

发展

没有分支机构或拉取请求

2名参加者
python remap:如果等待时出现错误,yield 不会返回。 #1012python remap:如果等待时出现错误,yield 不会返回。 #1012

喜欢 (0)