六要素

布局 六要素

六要素中的 布局 用来描述空间的物理结构,目前在 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');

参考:layoutopen in new window

展示空间模型

展示空间的三维模型需要使用到 TacOS 的孪生 SDK,更多关于孪生 SDK 的详细信息点击孪生 SDKopen in new window查看

设备 六要素

六要素的 设备 用来表述空间内运行的物理设备,支持通过对设备的查询和管理,以及对设备进行动态指令下发来实现对设备的状态控制

获取空间设备

  • 通过 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

上次更新:
贡献者: zhengqian