注释
|
你能提供你的测试文件 test.ngc 吗? |
|
好的,解释器发出“行已更改”信号,其中包含与当前文件对应的行,如果是外部子例程,它指向该文件但仍显示初始文件。 所以这里有两种可能性:
@robEllenberg @snowgoer540可能想在这里发表评论? |
|
它困扰了很多人,但没有人抽出时间来解决它。:-) 在某种程度上,这真的无关紧要。 但是,在执行其他文件的同时,只坐在子程序调用行或重新映射的 G 代码上会更优雅。 我认为解决这个问题的部分原因是它需要为每个 GUI 单独修复。 |
处理这些信号似乎是一个很大的障碍……
如果子例程在外部文件中,也许是。但是如果是在同一个文件里,不跳到那一行就很奇怪了。
很可能是。但理想情况下不会,因为他们已经对这个信号做出反应。 |
|
这是一个已知的并且在某种程度上可以解决的问题。 # Only update file if call level is 0, which
# means we are not executing a subroutine/remap
# This avoids emitting signals for bogus file names below
if self.stat.call_level == 0:
self.old['file'] = self.stat.file
我想我们可以为行号添加类似的内容。 正确的修复肯定需要一些思考。 |
我发现使用带有重新映射的 M6 的轴有问题,并希望它能做到这一点。 |
|
所以期望的行为是
此外,仅在运动命令上更新行号的问题也与此有关。 我认为我们不能一直推迟。我会自愿深入研究这个问题,但我需要一些帮助。谁能支持我?至少让我知道口译员从哪里开始等等。 |
|
不确定这有多相关,但它似乎说明了这个问题有多复杂:http ://wiki.linuxcnc.org/cgi-bin/wiki.pl?LineNumbers |
|
这有点解释了为什么一直推迟? |


以下是我重现该问题所遵循的步骤:
1.Extract attached nc_files.zip to [DISPLAY] PROGRAM_PREFIX
2.run test.ngc 3.observe
program line counter
这是我期望发生的事情:
程序行计数器应该停留在子例程调用上,或者子例程应该加载到 UI 中并进行计数。
这是发生了什么:
计数器正在计算错误文件上的程序行数,它并没有真正执行 UI 代码预览中显示的行。
在此之前它工作正常:
绝不
有关我的硬件和软件的信息:
lsb_release -a):Debian 10 Busteruname -a):4.19.0-20-amd64scripts/get-version-from-git):2.9.0-pre0-6210-g28d82b0a7更多的是功能请求而不是错误。有兴趣知道这样的改变会有多难。我快速查看了代码,据我所知(不多),要获得正确的行为似乎相当复杂。