1. Mapping映射表规范

1.1. 修订记录

日 期 版本 说 明 编 写
2018-06-26 1.0 R1 创建 cdp
2018-07-10 2.0 R2 修改标签位置错误 cdp
2018-07-26 3.0 R3 修改函数类型说明 cdp
2018-08-27 4.0 R4 修改函数类型的实现,并添加更多函数 cdp
2018-09-10 5.0 R5 函数类型添加比较功能 cdp
2018-11-23 6.0 R1 函数类型添加fv默认值,设备组可获取设备离线数据 cdp
2019-03-01 7.0 R1 V2版本,矩阵,队列,自动更新 cdp
2020-05-06 7.0 R2 文档格式修改 Roy

1.2. 概述

1.3. 文档说明

Mapping表中关于Template、script字段的规则说明。

1.4. 适用对象

本文档的目的读者是智物联物联网体系下所有开发人员。

1.5. 术语和缩略词

序号 术语名称 其它名称 术语说明
1 API Application Programming Interface 应用编程接口
2 FV Fidis Variable FIDIS 变量

1.6. Mapping Template规范

Mapping Template脚本主要作用于设备信息的扩展字段,在设备信息信息中需要显示哪些设备字段在此配置即可。

扩展字段示例
Image - 扩展字段示例

上图显示扩展字段代码模板如下:

[{
    "title": "锅炉信息",
    "data": [
        ["燃料类型", "天然气"],
        ["锅炉重量", "2吨"],
        ["出厂日期", "2018-03-03"]
    ]
}, {
    "title": "能效指标信息",
    "data": [
        ["热效率", 0.8],
        ["燃料热值", 7000],
        ["*吨汽燃料指标*", 0.21]
    ]
}]
  • Title:为段落标题,名称可自定义,即代码中“锅炉信息”、“能效指标信息”可更改。
  • Data:为段落中字段内容,字段名和字段值可自定义。

1.7. Mapping Script规范

Mapping Script脚本主要将适配器上报的 key 映射为系统可识别的变量,并将适配器和设备的关系进行关联对应。。

1.7.1. Mapping格式示例

[
    ["v1", "english_label", "中文标签", "Aprus1", "L1_1_123", "STA"],
    ["v2", "english_label", "中文标签", "$AprusID-1", "L1_2_456", "STA"],
    ["v3", "english_label", "中文标签", "$AprusID-2", "L1_2_789", "STA"],
    ["v4", "english_label ", "中文标签", "", "", "VEC", ["v1", "v2", "v3", 4]],
    ["v5", "english_label ", "中文标签", "", "", "MAT", [["v1", "v2"],["v3", 44]]],
    ["v6", "english_label", "中文标签", "$AprusID-1", "L1_2_456", "@Expr",
        {
            "expr": "max((v1),(v2))+sin(v3/180*Pi)",
            "args": [
                ["v1>=300 && v1<=800", 1],
                ["v1<300 || v1>800", 0]
            ]
        }
    ],
    ["v7","english_label","中文标签","a3","L99","&Collectos",
        {
            "equipment_id": "2",
            "collect_id": "234",
            "reply": "float64"
        }
    ]
]

说明:标点符号为英文,是可以解析的json串。所有mapping规则都将添加至中括号[]中,每一条mapping规则用逗号,隔开。

1.7.2. 标准类型

标准类型的格式如下:

["v1", "english_label", "中文标签", "Aprus1", "L1_1_123", "STA"]
  1. 第一个参数为设备FV,用于拼接mosaic的key和页面展示所绑定的key。该值不能为空,且只能由字母数字下划线组成,大小写区分,并且由字母开头
  2. 第二个参数为设备FV的英文标签
  3. 第三个参数为设备FV的中文标签
  4. 第四个参数为设备FV所对应的适配器
  5. 第五个参数为设备FV所对应的适配器KEY
  6. 第六个参数为设备FV的分类共有 STA, EVNT, FLT, ALT,SET这5种

1.7.3. 队列类型

队列类型的格式如下:

["v1", "english_label", "中文标签", "", "", "VEC", ["S01", "S02", "S03", 4]]
  1. 第一个参数为设备FV,用于拼接mosaic的key和页面展示所绑定的key。该值不能为空,且只能由字母数字下划线组成,大小写区分,并且由字母开头。
  2. 第二个参数为设备FV的英文标签
  3. 第三个参数为设备FV的中文标签
  4. 第四, 五个参数置空做兼容
  5. 第六个参数为‘VEC’
  6. 第七个参数为一维数组,可以填其他单值fv或直接填值

1.7.4. 矩阵类型

矩阵类型的格式如下:

["v1", "english_label", "中文标签", "", "", "MAT",[["S01", "S02"],["S03", 444]]]
  1. 第一个参数为设备FV,用于拼接mosaic的key和页面展示所绑定的key。该值不能为空,且只能由字母数字下划线组成,大小写区分,并且由字母开头。
  2. 第二个参数为设备FV的英文标签
  3. 第三个参数为设备FV的中文标签
  4. 第四, 五个参数置空做兼容
  5. 第六个参数为MAT’
  6. 第七个参数为二维数组,可以填其他单值fv或直接填值

1.7.5. 扩展类型($)

扩展类型的格式如下:

["v1", "english_label", "中文标签", "$AprusID-1", "L1_1_123", "STA"]
  1. 第四个参数为设备FV所对应的适配器,使用“$AprusID-n”来替代固定适配器,n代表设备的apruslist中的第n个适配器。例如apruslist为[“aprus100”,”aprus200”],则“$AprusID-1”转化为“aprus100“。若n大于apruslist中的个数,则忽略该条mapping规则
  2. 其余参数和标准类型一致

1.7.6. 函数类型(@)

函数类型的格式如下:

["v4", "english_label", "中文标签", "$AprusID-1", "L1_2_456", "@Expr",
    {
        "expr": "max((v1),(v2))+sin(v3/180*Pi)",
        "args": [
            ["v1>=300 && v1<=800", 1],
            ["v1<300 || v1>800", 0]
        ],
        "digit": 3,
        "default": 0,
        "v1": 1
    }
]
  1. 前五个参数和扩展类型一致,适配器以及适配器key作为触发使用,无实际匹配值
  2. 具体使用例子:

例子1:

["v4", "english_label", "中文标签", "$AprusID-1", "L1_2_456", "@Expr",
    {
        "expr": "max((v1),(v2))+sin(v3/180*Pi)",
        "digit": 3,
        "default": 0,
        "v1": 1
    }
]

当函数这样写时,代表着v1,v2,v3若更新,则将计算max((v1),(v2))+sin(v3/180 Pi)的结果保存到FVv4中,最后一致保存至mosaic。若v1,v2,v3没有值,则使用配置的值,也就是v1=1,否则默认使用default的值,也就是v2=0,v3=0。*若存在没匹配的值,则不计算。例如在未配置default的情况下,mosaic中没有v2或v3的值,则不计算v4的值。

例子2:

["v4", "english_label", "中文标签", "$AprusID-1", "L1_2_456", "@Compare", {
    "args": [
        ["v1 >=300 && v1 <=800", 1],
        ["v1 <300 || v1 >800", 0]
    ],
    "digit": 3,
    "default": 0,
    "v1": 1
}]

当v1大于等于300并且v1小于等于800时,v4=1,不继续执行后续判断;否则按照顺序往下执行,判断v1是否小于300或者大于800,如果是,则v4=0。若v1没有值,则使用v1=1该值。若存在没匹配的值,则不计算。

  1. 第七个参数为调用函数的表达式。键expr,args,digit不可修改,键对应值可修改。键值内容为数值或FV,支持部分常量,支持四则运算,支持部分函数,digit为返回值位数。
  2. 运算符优先级(数字越大越优先):
优先级 运算符
7 函数
6 !
5 *,/
4 +,-
3 ==,!=,<,<=,>=,>
2 &&
1 ||

1.7.6.1. 常量支持

常量 数值
E 2.71828182845904523536028747135266249775724709369995957496696763
Pi 3.14159265358979323846264338327950288419716939937510582097494459

1.7.6.2. 函数支持

1.7.6.2.1. 单参数函数
函数名 函数说明
ceil(x) 返回不小于x的最小整数(的浮点值)
floor(x) 返回不大于x的最小整数(的浮点值)
trunc(x) 返回x的整数部分(的浮点值)
abs(x) 返回x的绝对值
sqrt(x) 返回x的二次方根
cbrt(x) 返回x的三次方根
sin(x) 求正弦(x是弧度)
cos(x) 求余弦(x是弧度)
tan(x) 求正切(x是弧度)
asin(x) 求反正弦(x是弧度)
acos(x) 求反余弦(x是弧度)
atan(x) 求反正切(x是弧度)
sinh(x) 求双曲正弦(x是弧度)
cosh(x) 求双曲余弦(x是弧度)
tanh(x) 求双曲正切(x是弧度)
asinh(x) 求反双曲正弦(x是弧度)
acosh(x) 求反双曲余弦(x是弧度)
atanh(x) 求反双曲正切(x是弧度)
1.7.6.2.2. 双参数函数
函数名 函数说明
max((x),(y)) 返回x和y中最大值
min((x),(y)) 返回x和y中最小值
dim((x),(y)) 函数返回x-y和0中的最大值
mod((x),(y)) 取余运算,可以理解为 x-Trunc(x/y)*y,结果的正负号和x相同
remainder((x),(y)) IEEE 754差数求值,即x减去最接近x/y的整数值(如果有两个整数与x/y距离相同,则取其中的偶数)与y的乘积
hypot((x),(y)) 返回Sqrt(p*p + q*q),注意要避免不必要的溢出或下溢
pow((x),(y)) 返回x**y

1.7.7. 离线数据类型(&)

离线数据类型的格式如下:

["v7", "english_label", "中文标签", "a3", "L99", "&Collectos", {
    "equipment_id": "$2",
    "collect_id": "234",
    "reply": "float64"
}]
  1. 前五个参数和扩展类型一致,适配器以及适配器key作为触发使用,无实际匹配值,key的含义可参考具体定义的文档
  2. 第六个参数为所查询的数据库表名,表名前添加&符号。不用加’admin_’前缀。
  3. 数据库表中一定要含有equipment_id字段,data字段,created字段。
  4. 第七个参数为所查询的参数,格式为json。
  5. json中必有reply,作为返回值类型。其余key为字段名,作为查询条件,对应的value为字段值。
  6. 若该离线数据是针对设备组的,则参数中的equipment_id可以设置为$n,n为设备组中自设备的排序号。例如:子设备为1001,1002。则["v7","english_label","中文标签","a3","L99","&Collectos",{"equipment_id":"$2","collect_id":"234","reply":"float64"}],中的equipment_id会替换为1002设备中不会生效
  7. reply代表返回值类型,目前仅支持float64string两种格式
  8. 上述mapping对应的sql:select data from admin_collectos where equipment_id = ‘2’ and collect_id = ‘234’ order by created desc limit 1
  9. 数据表
表名 含义
Collectos 离线数据
Statos 每小时统计数据
Statos_current_day 当天统计数据
Statos_current_month 当月统计数据
Statos_current_year 当年统计数据
Statos_history 历史统计数据
Statos_day 每天统计数据
Statos_month 每月统计数据
Statos_year 每年统计数据
  1. 可选参数
表名 必选参数 必选参数 可选参数
Collectos collect_id reply equipment_id
Statos statistics_id reply equipment_id
Statos_current_day statistics_id reply equipment_id
Statos_current_month statistics_id reply equipment_id
Statos_current_year statistics_id reply equipment_id
Statos_history statistics_id reply equipment_id
Statos_day statistics_id reply equipment_id
Statos_month statistics_id reply equipment_id
Statos_year statistics_id reply equipment_id
© Mixlinker all right reserved,powered by Gitbook文件修订时间: 2021-01-13 11:21:58

results matching ""

    No results matching ""