Niagara基于javascript的控件开发

本文详细介绍使用Niagara平台进行控件开发的全过程,包括环境搭建、软件安装、工程构建及具体实施步骤。通过实例演示如何添加自定义属性、绑定动态数据,并分享了常见问题与解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、参考资料

Tridium_N4_开发环境设置_JavaScript开发环境篇.pdf
Tridium_N4_开发环境设置_基础开发环境篇.pdf
TridiumNiagara4控件开发参考手册.pdf
以上的第一篇和第二篇是杨超大神写的文档,是基本的参考资料,搭建环境必须阅读。但是在实际的开发中有些许不相同,后续会说明相关情况。
第三篇是Niagara官方的开发文档翻译版,可结合英文版以及niagara内置的参考文档(help-->help contents)开发
tridium官方GitHub地址 https://github.com/tridium?tab=repositories ,在官方的GitHub上有相关的案例,可以下载参考

 

enter description here
enter description here

 

二、软件安装与环境配置

1、软件安装
  • jdk安装以及环境变量配置
  • IDE安装
  • Niagara环境变量配置
  • Gradle安装
  • NodeJS安装
  • Grunt安装
  • grunt-init安装
  • grunt-cli安装
  • 下载grunt-init-niagara放到指定目录

基本的开发环境配置在第一篇第二篇参考文档中都有详细的解释,这里就不做仔细的说明。

三、具体实施

1、构建工程

① 建立项目文件夹,运行命令grunt-init grunt-init-niagara,这时会建立工程
npm install安装依赖
gradlew build 构建工程,这一步是和第一篇参考文档不同部分的地方,实际操作中发现,在grunt ci之前需要先运行gradlew build命令,否则会报错
④ 添加module.palette文件module-include.xml文件

palette文件的作用是与niagara的palette库作关联的,并且添加相关的属性。没有这个文件,就没办法在niagara的palette窗口拖拽widget,也没办法自主编辑

 

module.palette
module.palette

 

 

module-include.xml
module-include.xml

 

⑤ 在src文件夹创建如下图所示目录

 

5
5

 

在ux文件夹下创建一个BTest1Widget.java文件

 

5.1
5.1

内容如下图:

 

 

BTest1Widget.java
BTest1Widget.java

⑥ 修改build.gradle文件

 

 

build.gradle
build.gradle

⑦ 文件目录分析

 

 

文件目录分析
文件目录分析

 

2.方法属性

在这里简要的说明一下在编写widget时主要的工作,第一个是需要添加自定义的属性,第二个是绑定动态的数据,更具体的API可以参考官方的开发文档。

① 添加属性方法

 

添加属性方法
添加属性方法

 

② 获取绑定动态数据
当你给一个组件绑定了niagara中的动态数据,那么这个组件绑定数据之后是如何获取这个动态数据并显示在页面的某个组件上呢?需要用到下面的方法

 

获取绑定动态数据
获取绑定动态数据

 

四、widget实例

在这里简单的展示一下我写的widget组件实例:

③ 在niagara中编辑

 

3.1
3.1

 

 

3.2
3.2

 

② 在浏览器端显示

 

数据是动态变化的.gif
数据是动态变化的.gif

 

五、注意事项

  • 修改代码之后需要继续构建工程运行gradlew build命令,重启niagara,进入之后重启station
  • 首次创建一个widget需要重启客户机电脑(非虚拟机),因为我的niagara在虚拟机中,所以会有这个问题。
  • 在控制台重新gradlew比较方便,但是有时出错会不太好调试,这个时候可以用IDE打开项目,比较好调试

转载于:https://www.cnblogs.com/MandyCheng/p/10224037.html

NiagaraAX开发者向导-docDeveloperPDF NiagaraAX-3.1 Devdloper Guide 中文版 目录结构: 目 录 目 录 ...............目 录 ......1 Niagara 概览 .................4 整体概要 ..................... 4 Niagara: ............ 4 背景....... 4 Java 4 混合集成系统 ..... 4 非专业程序员的编程 ........................... 4 嵌入式系统 ......... 4 分布式系统 ......... 5 组件软件 ..................... 5 结构 ........6 概述....... 6 程序(Programs) ................... 6 通讯协议(Protocols) ........................ 7 平台(Platforms) ................... 7 站点(Stations) ........ 7 守护进程(Daemon) ................... .. 8 工作台(Workbench) ................... . 8 FOX 通讯协议 ............. 9 接口软件栈(API Stack) .......................... 10 API 相关信息 ............. 11 概览..... 11 稳定性(Statbility) ................... ... 11 Baja 是什么 ............... 11 标准与实现 ............... 11 Javax.baja 与 com.tridium ........................ 12 模块(Modules) ....... 13 概览..... 13 版本号. 13 清单(Manifest) .... 13 对象模型 ..................... 16 Niagara 类型 ............. 16 BObject 16 BInterface .................. 16 BObject 语义 ............. 16 建立 BObject 对象 .... 17 组件模型(Component Model) .................. 18 介绍..... 18 插槽(Slots) ........... 18 NiagaraAX-3.1 开发者向导 作者:Tridium 公司 翻译:YC 2 / 52 BValue . 19 建立 BValue .............. 19 建立 Simple 子类对象(Building Simples) . 20 概览..... 20 示例..... 20 建立枚举类型(Buildiing Enums) .............. 23 概览..... 23 示例..... 23 建立 Complex 对象(Building Complexes) . 25 BStructs 与 BComponents ........................ 25 建立 BComplex 子类对象 .......................... 25 内省模式 ................... 25 静态属性(Property) ................... 26 规则 ................... 26 语义 ................... 26 示例 ................... 26 静态活动(Action) ...... 27 规则 ................... 27 语义 ................... 27 示例: ............... 28 静态主题(Topic) .. 28 规则 ................... 28 语义 ................... 28 示例: ............... 28 动态插槽 ................... 29 注册(Registry) ........ 30 概览..... 30 API ....... 30 代理(Agent) ......... 30 Defs ..... 31 Spy ....... 31 命名(Naming) ........ 32 概览..... 32 API ....... 32 分解(parsing) ....... 33 常见“格式”(Common Schemes) ......... 33 IP: ................... 33 Fox: ................. 33 Moudle: .......... 34 Slot: ................ 34 h: .................... 34 Service: ........... 34 Spy: ................. 34 Bql: ................. 34 NiagaraAX-3.1 开发者向导 作者:Tridium 公司 翻译:YC 3 / 52 链接(Links) ............. 35 概览..... 35 连接(Links) ........... 35 链接检查(Link Check) ............................ 35 直接链接和间接链接 ................... .. 36 链接激活(Activation) ............................ 36 执行(Execution) ..... 37 概览..... 37 运行状态(Running state) ...................... 37 链接(Links) ........... 37 定时器(Timer) ..... 37 异步动作(AsyncAction) ......................... 38 系统时间变更(System Clock Changes) . 38 站点(Station) ......... 39 概览..... 39 启动..... 39 远程编程(Remote Programming) .......... 40 概览..... 40 原理..... 41 代理对象的功能 ....... 41 代理对象的状态 ....... 42 订阅(Subscription)................... .. 43 Leasing(租赁) ....... 43 分组调用(Batch Call) ............................. 44 分组解析(Batch Resolve) .............. 44 分组订阅(Batch Subscribe) ........... 44 事务(Transactions) ........................ 44 调试(Debugging) . 45 工作台(Workbench) ................... .. 48 概览..... 48 布局(Layout) ........ 48 浏览器式的导航 ....... 49 WbPlugins ................. 49 WbView 类 ................ 49 WbFieldEditor 类 ...... 50 WbSideBar 类 ............ 51 WbTool 类 ................. 51 WbProfiles 类 ............ 51 ..........1 Niagara 概览 .................4 整体概要 ..................... 4 Niagara: ............ 4 背景....... 4 Java 4 混合集成系统 ..... 4 非专业程序员的编程 ........................... 4 嵌入式系统 ......... 4 分布式系统 ......... 5 组件软件 ..................... 5 结构 ........6 概述....... 6 程序(Programs) ................... 6 通讯协议(Protocols) ........................ 7 平台(Platforms) ................... 7 站点(Stations) ........ 7 守护进程(Daemon) ................... .. 8 工作台(Workbench) ................... . 8 FOX 通讯协议 ............. 9 接口软件栈(API Stack) .......................... 10 API 相关信息 ............. 11 概览..... 11 稳定性(Statbility) ................... ... 11 Baja 是什么 ............... 11 标准与实现 ............... 11 Javax.baja 与 com.tridium ........................ 12 模块(Modules) ....... 13 概览..... 13 版本号. 13 清单(Manifest) .... 13 对象模型 ..................... 16 Niagara 类型 ............. 16 BObject 16 BInterface .................. 16 BObject 语义 ............. 16 建立 BObject 对象 .... 17 组件模型(Component Model) .................. 18 介绍..... 18 插槽(Slots) ........... 18 NiagaraAX-3.1 开发者向导 作者:Tridium 公司 翻译:YC 2 / 52 BValue . 19 建立 BValue .............. 19 建立 Simple 子类对象(Building Simples) . 20 概览..... 20 示例..... 20 建立枚举类型(Buildiing Enums) .............. 23 概览..... 23 示例..... 23 建立 Complex 对象(Building Complexes) . 25 BStructs 与 BComponents ........................ 25 建立 BComplex 子类对象 .......................... 25 内省模式 ................... 25 静态属性(Property) ................... 26 规则 ................... 26 语义 ................... 26 示例 ................... 26 静态活动(Action) ................... ... 27 规则 ................... 27 语义 ................... 27 示例: ............... 28 静态主题(Topic) .. 28 规则 ................... 28 语义 ................... 28 示例: ............... 28 动态插槽 ................... 29 注册(Registry) ........ 30 概览..... 30 API ....... 30 代理(Agent) ......... 30 Defs ..... 31 Spy ....... 31 命名(Naming) ........ 32 概览..... 32 API ....... 32 分解(parsing) ....... 33 常见“格式”(Common Schemes) ......... 33 IP: ................... 33 Fox: ................. 33 Moudle: .......... 34 Slot: ................ 34 h: .................... 34 Service: ........... 34 Spy: ................. 34 Bql: ................. 34 NiagaraAX-3.1 开发者向导 作者:Tridium 公司 翻译:YC 3 / 52 链接(Links) ............. 35 概览..... 35 连接(Links) ........... 35 链接检查(Link Check) ............................ 35 直接链接和间接链接 ................... .. 36 链接激活(Activation) ............................ 36 执行(Execution) ..... 37 概览..... 37 运行状态(Running state) ...................... 37 链接(Links) ........... 37 定时器(Timer) ..... 37 异步动作(AsyncAction) ......................... 38 系统时间变更(System Clock Changes) . 38 站点(Station) ......... 39 概览..... 39 启动..... 39 远程编程(Remote Programming) .......... 40 概览..... 40 原理..... 41 代理对象的功能 ....... 41 代理对象的状态 ....... 42 订阅(Subscription)................... .. 43 Leasing(租赁) ....... 43 分组调用(Batch Call) ............................. 44 分组解析(Batch Resolve) .............. 44 分组订阅(Batch Subscribe) ........... 44 事务(Transactions) ........................ 44 调试(Debugging) . 45 工作台(Workbench) ................... .. 48 概览..... 48 布局(Layout) ........ 48 浏览器式的导航 ....... 49 WbPlugins ................. 49 WbView 类 ................ 49 WbFieldEditor 类 ...... 50 WbSideBar 类 ............ 51 WbTool 类 ................. 51 WbProfiles 类 ............ 51
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值