注释
|
也许这样的配置选项应该在机器配置文件中。机器配置文件也可以指串行端口和控制器。您可以连接到一台机器,而不是直接在连接小部件中选择串行端口,然后机器会打开相应的串行端口。从用户界面的角度来看,这似乎更好,因为机器才是用户关注的真正焦点,而串行端口和控制器类型是“幕后”细节。 工作区配置也可以从属于机器,因为不同的机器具有不同的功能,因此需要不同的小部件集。 |
|
如果我们要发布 1.9 的修补程序版本,我建议将它放在所有控制器共享的控制器部分的相同位置,以对配置进行最少的更改。对于像 1.10 这样的未来版本,我更喜欢你的第二种方法,即根据机器配置文件实现创建串行或套接字连接的想法。 基于机器的配置是配置机器配置文件和工作区设置的好方法,我将开始弄清楚如何到达那里。另外,如果你能帮忙找到一些提供类似UI流程的产品或服务以供参考,那就太好了。 |
|
@cheton这听起来是个不错的方法——目前是控制器通用的,以后会转向更以机器为中心的配置方法。 我用于保留行号的测试版本运行良好。我昨天运行了一大批零件,同步完美无缺。我会在接下来的几天整理代码并发布 PR。 |
|
我怀疑很难找到能够体现多机工作流程的程序,因为除了 CNCjs 之外,很少有 UI 能够同时支持多台机器。常见的情况是一台计算机处理一台机器,因此有关配置的所有内容都集中在一种情况下。 我设想的 UI 流程类似于挂件示例,其中初始条目是连接屏幕,但不是选择端口,而是选择一台机器,并根据配置连接到具有特定控制器类型的端口那台机器。如果已选择该机器进行自动连接,则会绕过该屏幕并自动连接。 当然,最初存在设置机器配置的问题。如果没有机器,或者如果你想添加一台机器,我们需要一种创建机器的方法。也许它可以类似于现有流程,增加“将此设置另存为新机器”功能。 创建机器配置文件后,对连接、控制台和控制器特定小部件的日常需求将大大减少。它们对于调试目的仍然有用,但对于正常使用,可以从工作区中省略它们以使其整洁。 在理想的世界中,一旦设置正确,用户就不必关心正在使用哪个端口以及哪个控制器正在驱动它等。UI 应该尽可能专注于机器。 |


我最近在 cncjs-shopfloor-table 中添加了一个功能来突出显示当前在机器上执行的 GCode 行。它适用于 g2core。我不确定是否可以在其他控制器上准确实施,但我打算尝试一下。
为了使此功能正常运行,我不得不禁用省略空行的代码,以便行数跟踪原始源代码。空行往往很少出现并且占用很少的缓冲区空间,因此它们通常不会导致线路带宽问题。
我打算为这个改变做一个 PR,但是有一个设计决定需要讨论。使它可配置似乎是明智的,也许使用名为 sendEmptyLines 的选项。问题是将选项放在哪里。它适合与 exception.ignoreErrors 一起放在控制器部分,但这提出了一个问题,即 sendEmptyLines 和 exception.ignoreErrors 是否真的应该同样适用于所有控制器。理想情况下,连接到服务器的每台机器都有这样一个变量,因为不同机器的最佳设置可能不同。
在大多数情况下,这没有什么区别,因为大多数设置每台服务器只有一台机器。我只是想想想它应该如何真正工作,因为我正在考虑将三台机器连接到同一台服务器 – 一台 GRBL 激光雕刻机、一台 GRBL 铣床和一台 Marlin 3D 打印机。
想法?