在flowforge中使用模版配置来自定义自己的node-red实例

在flowforge中使用模版配置来自定义自己的node-red实例缩略图

添加模版设置

在FlowForge中,每个项目都是从模板创建的。模板为项目定义了一组预配置的选项。这包括运行时设置- 比较常见就是 Node-RED settings.js文件中设置的值。

模板还定义了项目可以自定义哪些选项。

本篇文章就来解释一下如何向模板对象中添加新的Node-RED运行时选项,以便开发者可以为单个实例进行自定义,并传递到底层Node-RED settings.js文件。

对于简单的布尔/字符串/数字类型来说,可以直接定义。对于其他类型(对象/数组),就变得稍微复杂,目前官方也没有好的例子。

对于一般的情况,可以按照以下步骤来设置模版:

  • 更新前端
    • 为设置选择一个名称,将其添加到已知设置和所需的任何验证逻辑列表中
    • 将其添加到适当的模板部分
  • 更新运行时
    • 将其添加到已知的设置列表和任何额外的验证逻辑中
  • 更新启动器
    • 使用新属性更新用于生成settings.js的模板

更新前端

前端中有一组视图用于显示和编辑模板。它们以两种不同的方式使用:

创建/编辑模板时。所有选项都可用,有一个下拉列表,允许用户在设置上设置策略(控制项目是否允许覆盖设置)
编辑项目设置时。显示所有选项,但仅允许用户修改模板策略允许更改的选项。
这种对视图的重用节省了大量代码重复,在实现时会造成一些复杂性。

为设置选择一个名称

该名称应尝试在Node-RED settings.js文件中匹配其相应的属性。

编辑frontend/src/pages/admin/Template/utils.js
将新属性名称添加到templateFieldsdefaultTemplateValues对象中。请注意,这些名称是扁平字符串,_用作层次,分隔符…。
如果值需要任何形式的验证,请将其添加到同一文件中的templateValidators中。

1.2 – 将其添加到适当的模板部分

目前支持自定义的配置有:

编辑
调色板
环境-不太可能添加其他选项的特殊情况
这些都存在于自己的文件下 frontendfrontend/src/pages/admin/Template/sections/

选择要添加的设置(即复选框或文本输入)最匹配的现有设置,并将其条目复制到适当的位置。

确保将复制的属性名称的所有引用更新为新属性名称。

更新运行时

将其添加到已知列表中

编辑forge/db/controllers/ProjectTemplate.js,将新属性添加到已知设置列表中。

在同一文件中,使用所需的任何额外验证或数据清理来更新validateSettings函数。

更新nr-launcher

在 flowforge-nr-launcher 项目里

编辑lib/runtimeSettings.js,将新的设置包含在生成settings.js文件中。请注意,你必须处理新设置不存在的情况-要么使用合理的默认值,要么省略该值。

来源/工具信息 —— 点击展开
来源 Modbus中文网(modbus.cn) —— 国内领先的Modbus通信协议技术社区 分类 Node-RED 字数 1182 字 · 阅读约 3 分钟 更新 2023-04-05 永久链接 https://www.modbus.cn/zai-flowforge-zhong-shi-yong-mo-ban-pei-zhi-lai-zi-ding-yi-zi-ji-de-node-red-shi-li/
推荐工具:Modbus调试助手 微信小程序
Modbus中文网官方推出的Modbus调试工具,支持 Modbus RTU/TCP 实时通信调试、寄存器读写、线圈控制、数据监控和报文分析。 无需安装,微信搜索「Modbus调试助手」即可使用。 电脑端入口:https://www.modbus.cn/modbustool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 modbus.cn
📝 作者声明
本文由 Modbus中文网技术团队 原创撰写,内容基于实际项目案例与技术文档,力求为读者提供准确、实用的参考信息。
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

VIP会员专享

解锁全部Modbus技术资源

5169+工程师已加入VIP,享受无限制工具使用、专属技术文章、优先技术支持等权益

✓ 高级工具无限制使用
✓ VIP专属技术文章+视频教程
✓ 下载资源无限制
✓ 优先工单技术支持
了解VIP权益 低至¥0.3/天 | 支持微信/支付宝 | 随时取消

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注