开源改变世界!!

插件 – 架构 #232

推推 grbl 2年前 (2023-01-26) 248次浏览
关闭
rugbymauri 打开了这个问题 2015 年 2 月 25 日 · 9条评论
关闭

插件 – 架构#232

rugbymauri 打开了这个问题 2015 年 2 月 25 日 · 9条评论

注释

插件 - 架构 #232
贡献者

该项目的一大改进是插件架构。

通过将 jar 放在插件文件夹中,您可以扩展 UGS。

插件接口应该提供以下接口:

  • 控制器,用于直接发送G代码
  • 发送前修改 G 代码的能力
  • 捕捉控制器响应的能力
  • 扩展标准菜单
  • 添加新菜单
  • 添加新的选项卡/窗口(取决于新的 GUI)
插件 - 架构 #232
所有者

现在这是一个有趣的想法。许多 UGS 已经使用观察者来交流信息,新的 GUI 模型对象非常适合在插件之间共享程序状态。

你做过这样的事吗?我需要阅读 java 插件。

将 GUI 作为插件也将为诸如 Android 端口之类的东西打开大门。

插件 - 架构 #232 绕线器 添加了 建议 标签 2015 年 2 月 25 日
插件 - 架构 #232
贡献者作者

是的,我已经在 .NET 中做了类似的事情。方法是一样的。

DIY版本:
插件必须实现一个接口类,它附加了模型和gui(例如主窗口),当然模型和gui-elment也应该实现一个接口。然后你需要一个“Plugin-Loader”扫描*,目录中的jar并加载它们,然后将模型和gui连接到插件。

框架!
其他方式是使用富客户端框架,例如:

  • 来自 Eclipse 的 RCP(学习曲线),Eclipse 是使用 RCP 构建的
  • RCP Netbeans https://netbeans.org/features/platform/
    这些框架已经提供了 Pluing-Arichtecture 等等,但它们非常庞大,而且还可以执行。我也不知道这些框架在诸如 RasperyPi 之类的 Boads 上是否流畅

我不是 JAVA 专家,但我(几年前)用 JAVA 编写了一些小应用程序,并且做过一次 Ecplise RCP 教程。但我认为,如果您打算重新设计 USG,我会选择 RCP-Frameworkm (Netbeans)。

我认为 GUI 不能是 pluing。总是有提供 GUI 接口的主程序,然后您可以加载“UGS”模型,主程序还提供插件机制。如果您有主程序,插件可以为 ex 提供。将包含在主 GUI 中的面板或菜单。
因此,对于 Android,唯一可重复使用的部分将是 UGS 模型……如果……
您认为世界真的需要用 Android 控制 CNC 机器吗?我不!

插件 - 架构 #232
所有者
插件 - 架构 #232
贡献者作者

我使用 Netbean RCP 快速构建了一个 GUI 模型

https://dl.dropboxusercontent.com/u/2710560/ugs2.zip

插件 - 架构 #232
所有者

我一直在阅读 Netbeans RCP,并进行试验。它激发了很多想法。在 Netbeand 库包装器模块中包装 UGS.jar 文件很简单,而且效果很好。一个烦恼是每次都需要手动更新 jar 文件。也许可以修改 UGS.jar 构建脚本以将 jar 复制到 Netbeans 平台项目中。

还有几个问题需要我进一步调查:

  1. 应该如何在 git 中组织项目?我想将“核心”保留在一个单独的 Netbeans 项目中,但仍然将所有内容都放在一个 git 存储库中。
  2. 构建将如何进行?它需要以某种方式构建 UGS.jar,将其复制到 Netbeans RCP 项目中,然后构建 Netbeans RCP 项目。这里可能有很多选项。
  3. 最终的应用程序将如何部署?看起来单个可执行 jar 不再可能了。至少我希望所有平台都有一个安装程序,这似乎不是默认功能。这里有很多选项,比如“IzPack”。其中一些似乎还安装了兼容的 JRE,这将是一个不错的功能。
插件 - 架构 #232
所有者

我仍在考虑 (3),但我已将 Netbeans 平台项目提交给 git,并且该构建现在正在 CI 服务器上运行。代码已集成到可以连接到 GRBL、发送一些点动命令并监视控制台状态的程度。可视化工具有点像,但有一些初始化故障。

http://bit.ly/18xC2UQ

插件 - 架构 #232
贡献者作者

我查看了 UGS 平台。好的!
(3)勾选“Project Properties”->“Installer”,然后Project(鼠标右键)->Package as->installer
:-)安装
完成后,Net Beans的“Check for Updates”就可以使用了,

插件 - 架构 #232
贡献者作者

我在非平台-UGS 插件架构上工作,
请参阅我的 UGS 分支:rugbymauri/Universal-G-Code-Sender
这里还有一个示例插件:rugbymauri/UGS-Plugin
只需将插件 JAR 放在插件目录中

基本上我实现了以下教程(抱歉是德语)http://www.java-blog-buch.de/d-plugin-entwicklung-in-java/

插件 - 架构 #232
所有者

@rugbymauri真的很有趣,你能够实现一个插件系统。我现在对 RCP 方法非常满意。