当前位置: 首页 > news >正文

Niagara基于javascript的控件开发

一、参考资料

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

相关文章:

  • SpringBoot之打成war包部署到Tomcat
  • 基本数据类型中的浮点类型
  • MyBaits 常见面试题
  • 洛谷p1072 gcd,质因数分解
  • 大结局---Miracl库下完全实现SM2加密算法
  • php封装生成随机数函数
  • 洛谷P3372 【模板】线段树 1
  • python3 练习题100例 (二十九)猴子吃桃问题
  • Floyd判断环算法总结
  • freemarker导出定制excel
  • [bzoj1324]Exca王者之剑_最小割
  • Spring Boot 学习笔记(二)第一个 Spring boot 程序
  • 计算机的门电路和加减乘除
  • WPF入门(四)-线形区域Path内容填充之渐变色(LinearGradientBrush)
  • flask请求流程
  • [case10]使用RSQL实现端到端的动态查询
  • [译]CSS 居中(Center)方法大合集
  • 【css3】浏览器内核及其兼容性
  • Apache Pulsar 2.1 重磅发布
  • 闭包--闭包之tab栏切换(四)
  • 测试如何在敏捷团队中工作?
  • 初识 beanstalkd
  • 电商搜索引擎的架构设计和性能优化
  • 异常机制详解
  • 《天龙八部3D》Unity技术方案揭秘
  • Prometheus VS InfluxDB
  • 阿里云API、SDK和CLI应用实践方案
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​卜东波研究员:高观点下的少儿计算思维
  • #控制台大学课堂点名问题_课堂随机点名
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (10)STL算法之搜索(二) 二分查找
  • (javascript)再说document.body.scrollTop的使用问题
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)我也是一只IT小小鸟
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • @Autowired标签与 @Resource标签 的区别
  • @EventListener注解使用说明
  • @RestController注解的使用
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [14]内置对象
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [ActionScript][AS3]小小笔记
  • [C++]AVL树怎么转
  • [CF482B]Interesting Array
  • [Django ]Django 的数据库操作
  • [Django开源学习 1]django-vue-admin
  • [EFI]MSI GF63 Thin 9SCXR电脑 Hackintosh 黑苹果efi引导文件