物可视DataTableAPI

物可视仪表盘通常会包含数据表(DataTable)作为驱动可视化展示的数据源,用户可以通过Player的仪表盘运行时API(Dashboard Runtime API)在嵌入式(Embedded)地使用时,动态地更新仪表盘中DataTable的配置(Config),具体方法参见物可视PlayerAPI文档

DataTable按所对接的数据获取方式不同,目前支持如下类型:

类型 说明
tsdblivequery DataTable的数据通过TSDB查询实时获取
dmsub DataTable的数据通过对物管理中设备影子的订阅实时推送获取
staticcsv 用户在设计时仪表盘时,自行上传的静态csv格式文件,该文件包含的数据会直接保存在仪表盘中,因此设有大小上限
staticjson 用户在设计时仪表盘时,自行上传的静态固定格式的json文件(能描述成二维表的二维数组),该文件包含的数据会直接保存在仪表盘中,因此设有大小上限

DataTable的运行时Config

tsdblivequery

tsdblivequery类型的DataTable的运行时Config结构如下:

{
    filters: FILTER,
    trigger: TRIGGER
}

filters的结构如下:

{
    start: 0,
    end: 0,
    tags: [{
        in: ["shanghai", "beijing"],
        tag: "city"
    },...]
}

filters包含当前用于为DataTable提供数据的TSDB查询的过滤条件:

  • start: 起始时间,表示timestamp的整数
  • end: 截至时间,表示timestamp的整数
  • tags: 用于进一步过滤结果集的标签,详见TSDB文档

filters有如下规则约束:当trigger的rangeRule不为'none'时,start和end的取值将会被忽略。

trigger定义了TSDB查询被触发的方式,接受以下两种结构之一:

{
    type: "interval",
    interval: 5000,
    rangeRule: "last15min"
}
{
    type: "once",
    rangeRule: "last15min"
}

type为interval的结构表明查询会被周期性地触发执行,interval为间隔的毫秒数,rangeRule定义了每次执行时如何确定查询的过滤起止时间。

type为once的结构表明查询只会执行一次(仪表盘初次打开时或用户通过Player API更新DataTable Config时),如需再次执行需刷新浏览器重新渲染。rangeRule定义了执行时如何确定查询的过滤起止时间

两种trigger结构都包含rangeRule字段,该字段接受的值如下:

说明
none 不根据当前时间推算起止时间,由filters内的start,end指定
last5min 过去5分钟到现在
last15min 过去15分钟到现在
last30min 过去30分钟到现在
last1hour 过去1小时到现在
last3hour 过去3小时到现在
last6hour 过去6小时到现在
last12hour 过去12小时到现在
last24hour 过去24小时到现在
last2days 过去2天到现在
last7days 过去7天到现在
last30days 过去30天到现在
last90days 过去90天到现在
last6months 过去6个月到现在
last1year 过去1年到现在
last2years 过去2年到现在
last5years 过去5年到现在
yesterday 昨天
daybeforeyesterday 前天
thisdaylastweek 上周今天
previousweek 上周
previousmonth 上个月
previousyear 去年
today 今天
todaysofar 今天到目前为止
thisweek 本周
thisweeksofar 本周到目前为止
thismonth 本月
thismonthsofar 本月到目前为止
thisyear 本年
thisyearsofar 本年到目前为止

用户可通过Player运行时API动态更新TSDB的查询参数和触发方式,从而运行时程序化地控制仪表盘的数据获取

dmsub

物管理设备影子订阅类型的DataTable无运行时配置

staticjson

staticjson类型的DataTable的运行时Config结构如下:

{
    source: [USER_PROVIDED_JSON_OBJECT]
}

source字段的值为用户设计仪表盘时上传文件内的JSON对象。

用户可通过Player运行时API动态地更新staticjson类型DataTable的原始JSON对象,从而在应用中程序化地驱动仪表盘的数据更新.

注意:运行时用户提供的JSON对象须与设计仪表盘时提供的JSON对象结构一致,否则将会被忽略。

staticcsv

staticcsv类型的DataTable的运行时Config结构如下:

{
    source: "USER_PROVIDED_CSV_STRING"
}

source字段的值为用户设计仪表盘时上传文件内的CSV字符串。

用户可通过Player运行时API动态地更新staticcsv类型DataTable的原始csv数据,从而在应用中程序化地驱动仪表盘的数据更新

注意:运行时用户提供的csv须与设计仪表盘时提供的csv结构一致,否则将会被忽略。