Skip to content

核心概念

数据源

数据源作为XDE的核心概念,大大简化了物联网设备模态控制的复杂度,仅需简单的读写操作就能控制绝大部分硬件设备,可以将数据源简单的理解为电路中的高低电平,但数据源不仅仅支持bool(还支持字符串,数组,整型,浮点等),所以对有编程知识的人来说,将之理解为变量更贴切。

一般情况下,所有的控制功能都基于数据源的读写完成,例如一个灯泡可视作一个名为light布尔型变量,在XDE中这个变量称作数据源,对此数据源进行赋值操作就可实现控制灯泡的开启和关闭,反之将数据源绑定到界面就能通过灯光是否开启自动显示相应的按钮状态(如不同颜色的按钮)。

light作为名称只是数据源路径的一部分,完整的路径应当由两个部分组成如:Var:light,冒号前面的Var代表驱动类型为变量,冒号后面的light代表数据路径。

什么是一般情况?

XDE配套的EdgeX网关已完成了各种常见设备的驱动工作,若没有相应的驱动,则需要在XDE中手动编写驱动。

数据源驱动

驱动是连接不同设备的桥梁,用于将各种硬件或软件功能抽象为可通过数据路径简单读写的能力。

目前支持以下几种驱动

BlueNode

连接EdgeX网关,将硬件功能统一抽象成模块和特征,功能强大且易用。

JoinNumber

连接JoinNumber主机,适用于传统中控。

Var

读写自定义变量的驱动。

ViewNavigation

控制多页面导航视图切换的能力。

Widget

提供访问UI组件属性的能力。

UI 绑定

布局中包含了UI元素、数据源的映射,代码等,通过下发此文件以更新平板的内容。

状态

按钮具有三种状态,默认 ,状态由条件决定,若所有的状态都不满足则视为默认态。

交互

交互有按下 点击 弹起三种,三种交互均指手指的动作,手指按下立即抬起将触发点击,按下超过200ms将触发按下并在抬起手指时触发弹起动作。

条件

可对数据源进行逻辑运算,支持常见的运算符== != >= <= && ||

逻辑运算符的优先级

不同于编程语言优先运算&&的原则,XDE状态条件的优先及是从左往右依次运算,如下面的例子在TypeScriptXDE状态条件中将得到不同的运算结果。

TypeScript
let a = true;
let b = false;
let c = false;

// TypeScript运算
var result1 = a || b && c;
console.log(result1); // 输出 true

// XDE从左往右依次运算
var result2 = a || b && c; // 等价与TypeScript中 (a || b) && c 的写法
console.log(result2); // 输出 false