面板产品:“#370

推推 grbl 3年前 (2023-02-05) 288次浏览
关闭
Noobman 打开了这个问题 2013 年 1 月 26 日 · 3条评论
关闭

面板产品:“#define feature 与”#define product 的优势#370

Noobman 打开了这个问题 2013 年 1 月 26 日 · 3条评论

评论

面板产品:“#370

首先:尊重,感谢你们所有人的这个固件。

我环顾 LCD 的东西,有很多“#define 用于产品,例如 ultipanel、ultimakercontroller、reprapdiscountcontroller、gadgets3d_panel 等。用户界面是通用电子产品中最多样化和最丰富的部分,例如创意主题。例如随着时间的推移,这样的产品数量只会呈指数增长。虽然今天定义了一些产品,但从长远来看很可能无法保持这种状态。此外,固件开发人员的工作真的是为每个产品打扰吗特征或者它的市场份额是否足以将其包含在固件中?

我建议考虑让“#define 围绕抽象特征本身,让产品所有者设置引脚定义和进一步的特征。如果产品在最基本的特征上被破坏,那么任何复杂的产品,现有的或未来的可能会被建模为那个结构。

例如,将随机面板产品分解为 LCD_support、Encoder_support、Keypad_type_support 等,并简单地让 pins.h 板部件处理每种情况。从长远来看,我认为这可以使事情变得更简单,并为更多黑客选项打开大门,例如 ps2 键盘或 1 adc pin 键盘。重要的是功能,例如,如果有 LCD 以及连接到哪些引脚,除此之外,面板/产品/实现的类型是相当不相关的。毕竟,有可能其中一些没有其他,如果这些是开放的,那么它是一种比只有聚合产品的自助餐更好的开放式酒吧自助餐。

谢谢你,干杯。

面板产品:“#370
成员

Marlin 中的一些代码旨在对新手更友好,他们可能不完全了解功能但知道他们使用的是什么产品。一般来说,即使对于开发人员来说,它也不是一个糟糕的额外层,因为它允许在为新硬件重新编译时进行快速切换。并且在更具体的级别上仍然支持功能。例如,如果您#define G3D_PANEL 这会激活一系列更具体地与功能相关的#define,当您到达定义和管理更精细功能的特定标题时,依此类推。但我同意,当您进入代码的更具体区域时,使用#if FEATURE_DEFINED 比使用产品定义更好。我认为大部分代码(例如,依赖于 pins.h 的代码)都试图遵循该原则。

面板产品:“#370
贡献者

这个是大约一年前创建的,有很多变化,请下载最新的 marlin 副本,看看问题是否仍然存在。您还可以使用最新的 arduino IDE 来刷新 marlin 固件。如果您的板文件等只能在旧的 ide 下工作,请先升级它们,以便它们在最新的 IDE 下工作。

如果您为不在https://github.com/ErikZalm/Marlin/tree/Marlin_v1/ArduinoAddons中的硬件创建板文件,请 fork marlin 并添加文件,然后创建一个拉取请求,以便我们可以获得硬件支持的。这也将使人们了解人们正在使用什么硬件。