开源改变世界

用户定义的配置 #56

推推 grbl 3年前 (2023-02-05) 244次浏览
关闭
pentacular 开启了这个issue 2021 年 10 月 18 日 · 9条评论
关闭

用户定义的配置#56

pentacular 开启了这个issue 2021 年 10 月 18 日 · 9条评论

评论

用户定义的配置 #56
贡献者

请描述您希望实现的功能

在 yaml 配置中包含自定义字段的能力。

也许在某种自定义领域。

例如,

轴:
x:
自定义:
锚点:
x:-240

ETC

为什么您认为这会改进 FluidNC?

Custom/ 下的代码有时需要自定义配置。

你需要这个功能做什么?

我刚刚在 grbl esp32 中整合了壁式绘图仪自定义运动学,我想看看我是否可以将它移植过来。

作为其中的一部分,我需要能够配置锚点,这是我之前使用 #define 所做的。

看起来这应该是可配置的,但我在 wiki 中读到不支持的密钥将被删除,这听起来目前是不可能的。

我可以将这些字段直接编译到 Custom/wall_plotter.cpp 中,但这感觉有点像回归。

您知道其他需要此功能的用户吗?

不,但我可以猜测大多数 Custom/ 代码都需要某种配置支持,否则它可能不会在 Custom/ 中:)。

用户定义的配置 #56 五角星 添加了 增强 新功能或要求标签 2021 年 10 月 18 日
用户定义的配置 #56

FluidNC 的自定义代码工具尚未设计。我们在设计的时候,会有一些方法可以添加配置项。

用户定义的配置 #56
贡献者作者

我懂了。

该级别的工作是否有粗略的路线图或时间表?

我很乐意做出贡献,但如果没有自定义运动学,我目前无法使用 FluidNC 做很多事情。

用户定义的配置 #56
所有者

我们在 Trello 看板上跟踪错误和基本功能。我们还有这个 wiki 页面,其中包含一些基本的 TODO/路线图项目。我们在Discord 服务器上进行了大部分开发讨论

运动学即将推出。理想情况下,像 CoreXY 这样的许多实现都是预编译的。我们一直在讨论实施它的新方法。一种想法是拥有可以在配置文件中设置的变换矩阵选项。那将涵盖许多类型。更复杂的可能需要编译,如 Grbl_ESP32。

用户定义的配置 #56
贡献者作者

是的,我怀疑根本不同的类型需要预编译——比如 CoreXY、极坐标、壁式绘图仪等。

老实说,我对非标准运动学的重新编译没有问题。:)

我会看看我是否能弄清楚如何审查关于 discord 的讨论——谢谢。

用户定义的配置 #56

由于您看起来是一名程序员,也许最好的方法不是等待我们对运动学和其他自定义点进行模块化的努力,而只是添加它看起来合适,由 ifdefs 保护。当我们着手改进定制架构时,这将作为指导我们的信息。

FluidNC 中的 MotionControl.cpp 与 Grbl_Esp32 非常相似,除了归位之外,它被广泛重写。运动学的弱链接挂钩仍然以相同的形式和用法存在。

查看 src/Custom/oled_basic.cpp 以获取添加由 ifdef 保护的自定义代码的示例。

要添加配置部分,请查看 src/Machine/MachineConfig.cpp:MachineConfig::group() 和 src/Machine/MachineConfig.h 中的 _start 等变量

用户定义的配置 #56
贡献者作者

听起来不错。

我将打开一个特定于运动学的问题。

用户定义的配置 #56
贡献者作者

我有点不清楚如何使用 src/Custom/oled_basic.cpp 进行构建

正确的集成点不是通过 CustomCode.cpp 吗?

用户定义的配置 #56

要包含 oled_basic.cpp,请取消注释 Config.h 中的“INCLUDE_OLED_IO”和“INCLUDE_OLED_BASIC”#defines

我们在 Grbl_ESP32 中使用的自定义代码方法不适用于 platformIO,platformIO 无法检测到该文件的更改,因此需要在编辑文件时手动清理。拥有单个 CustomCode.cpp 的另一个问题是您只能拥有一个这样的文件。我认为允许多个自定义文件更好。ifdef 方法确实与运行时配置的整体 FluidNC 方法背道而驰,但自定义内容不太可能成为标准版本的一部分,至少最初不是,因此 ifdef 在 platformio 的约束下似乎是一种不错的方法。

用户定义的配置 #56
贡献者作者

好的,我想我们可以结束了。

谢谢。