六要素
六要素
布局六要素中的 布局 用来描述空间的物理结构,目前在 TacOS 中主要采用三维模型的方式进行呈现。在搭建空间的三维模型时推荐使用 Model Studio 建模工具。
Model Studio 与 TacOS 的数字空间已深度集成,通过 Model Studio 搭建的空间模型,具备统一的标准风格,模型通过孪生 SDK 加载后,会自动与真实空间实现双向联动。
获取空间布局
- 通过 空间实例 获取
glb
类型的空间布局信息
let layout = space.layout.get('glb');
- 通过 资源定位符 获取空间布局信息
// root 实例化过程已省略
let layout = root.search<Layout>('/spacename/layouts/*[@type=glb]')
更新空间布局
space.layout.update('glb', 'modelUrl');
参考:layout
展示空间模型
展示空间的三维模型需要使用到 TacOS 的孪生 SDK,更多关于孪生 SDK 的详细信息点击孪生 SDK查看
六要素
设备六要素的 设备 用来表述空间内运行的物理设备,支持通过对设备的查询和管理,以及对设备进行动态指令下发来实现对设备的状态控制
获取空间设备
- 通过
space
实例对象获取该空间下所有设备device
的信息元数据
const deviceMetaData = space.device.list
- 通过 资源定位符 获取空间设备信息
const device = root.search<Device>("/spacename/devices/*[@id=deviceId]")
获取空间设备驱动
- 查询当前设备实例下所有的设备驱动数据
const deviceDrivers = await device.getDrivers()
参考:Device
六要素
规则六要素中的 规则 用来表示空间的规则,支持对空间规则启用、删除、禁用等操作
获取空间规则
- 通过 空间实例 获取规则
const rule = space.rule;
- 通过 资源定位符 获取空间规则实例
const rule = await root.search<Rule>("/spaceNames/rules/*");
启用空间规则
- 启用规则类型为
FreshOpenRule
的空间规则
await rule.enable("FreshOpenRule");
禁用空间规则
await rule.disable("FreshOpenRule");
删除空间规则
await rule.remove("FreshOpenRule");
新增空间规则
const rule = space.rule;
const sources = rule.create("FreshOpenRule");
sources
.zhname("中文名称")
.conditions("(.).metrics(Temperature) > 20")
.actions([{ group: 0, command: "(./devices/Window).close()" }]);
const result = await rule.apply(sources);
更新空间规则
const rule = space.rule;
const sources = rule.update("FreshOpenRule", spaceId);
// 配置需要更新的内容
sources.zhname("需要更改的名称");
const result = await rule.apply(sources);
参考:Rule
六要素
计划六要素中的 计划 用来表示空间的工作计划,支持对空间计划启用、删除、禁用等操作
获取空间计划
- 通过 空间实例 获取计划
const plan = space.plan;
- 通过 资源定位符 获取空间计划实例
const plan = await root.search<Plan>("/spaceNames/plans/*");
启用空间计划
- 启用计划类型为
DailyOnWorkPlan
的空间计划
await plan.enable("DailyOnWorkPlan");
禁用空间计划
await plan.disable("DailyOnWorkPlan");
删除空间计划
await plan.remove("DailyOnWorkPlan");
新增空间计划
const plan = space.plan;
const sources = plan.create("DailyOnWorkPlan");
sources
.zhname("中文名称")
.time("0 0 12 * * ?")
.actions([{ group: 0, command: "(./devices/Window).close()" }]);
const result = await plan.apply(sources);
更新空间计划
const plan = space.plan;
const sources = plan.update("DailyOnWorkPlan", spaceId);
// 配置需要更新的内容
sources.zhname("需要更改的名称");
const result = await plan.apply(sources);
参考:Plan
六要素
模式六要素中的 模式 用来表示空间的工作模式,支持对空间的模式进行启用、禁用、删除以及模式手动切换等操作
获取空间模式
- 通过 空间实例 获取其空间下的模式
const mode = space.mode;
- 通过 资源定位符 获取空间模式
const mode = root.search<Mode>("/spaceNames/modes/*");
启用模式
const result = await mode.enable();
禁用模式
const result = await mode.disable();
手动切换模式
const result = await mode.toggle("OnWork");
新增模式
const mode = space.mode;
const sources = mode.create("OnWork");
sources.zhname("中文名称").actions([{ group: 0, command: "(./devices/Window).close()" }]);
const result = await mode.apply(sources);
更新模式
const mode = space.mode;
const sources = mode.update("OnWork", spaceId);
// 配置需要更新的内容
sources.zhname("需要更改的名称");
const result = await mode.apply(sources);
参考:Mode
六要素
指标六要素中的 指标 用来表示空间内的图形化指标,支持指标的加载与清除等操作
获取空间指标
- 通过 空间实例 获取该空间下的指标实例
const chart = space.chart;
加载指标
- 通过
load
方法为该空间下的指标实例挂载指标
chart.load("temperature_compliance_and_trend_analysis", {
size:[12.3,23.3]
})
清空指标
- 清空该空间实例下所有已加载的指标
chart.clear()
参考:Chart