svg的json结构说明
更新日志
文档内容
json结构文件
json说明–js属性
json说明–TEXT属性
json说明–DO属性
json说明–DI属性
json说明–Btn属性
json说明–RECT属性
更新日志
更新时间:2020年8月15日
更新内容:
文档创建。
添加DO\DI\Btn\RECT\ARC操作说明。
文档内容
主要描述svg的配置文件。
并对关键属性进行说明。
如果svg未铺满显示,请修改svg文件:
json结构文件
{
“sys”: {
“ver”: “1.1”
},
“HELP”: {
“TEXT”: “建议在span中定义”,
“DO”: “建议创建do0 do1 各自的动画图,然后各自group,最后整体两个group,do0在do1下面”,
“DI”: “建议DO相同”,
“RECT”: “group+变化层+不变化的遮盖顶层.”,
“01”: “页面创建完毕之后,建议将所有的可编辑的对象,放在独立的一层,或者依次放到最顶层,优点是配置比较集中”,
“02”: “”
},
“JS”: [{
“id”: “id”,
“opr”: “svg”,
“js”: “$UI/cloud/equip/Default/svg/pump3/PCsvg/pump3.svg.js”,
“mark”: “ui处理 .init() 在初始化中调用, .modbus_rcv()在接收到modbus 信息调用 .model_rcv() 在接收到设备信息调用 http://192.168.1.12:8081/pump3/PCsvg/pump3.svg.js”
}],
“TEXT”: [{
“id”: “level”,
“unid”: “”,
“regtype”: “ai”,
“io”: 0,
“name”: “”,
“unit”: “米”
}],
“DO”: [{
“id”: “do1”,
“unid”: “”,
“regtype”: “do”,
“io”: 0,
“time”: 0
}, {
“id”: “do2”,
“unid”: “”,
“regtype”: “do”,
“io”: 1,
“time”: 0
}, {
“id”: “do3”,
“unid”: “”,
“regtype”: “do”,
“io”: 2,
“time”: 0
}],
“DI”: [{
“id”: “kg1”,
“unid”: “”,
“regtype”: “do”,
“io”: 0
},
{
“id”: “kg2”,
“unid”: “”,
“regtype”: “do”,
“io”: 1
},
{
“id”: “kg3”,
“unid”: “”,
“regtype”: “do”,
“io”: 2
}
],
“Btn”: [{
“id”: “button1”,
“opr”: [{
“unid”: “”,
“operator”: “equip_do”,
“oprtype”: “OPEN”,
“io”: 0,
“help”: “打开继电器 io = 0 代表第一个通道”
}]
}],
“RECT”: [{
“id”: “p_wendu1”,
“unid”: “”,
“regtype”: “ai”,
“io”: 0,
“rect”: {
“opr”: “scaleY”
}
}],
“ARC”: [{
“id”: “yali1”,
“unid”: “”,
“regtype”: “ai”,
“io”: 0,
“arc”: {
“opr”: “rotate”,
“cx”: 15,
“cy”: 8,
“begin”: 0,
“end”: 180
}
}]
}
json说明–js属性
“JS”: [{
“id”: “id”,
“opr”: “svg”,
“js”: "KaTeX parse error: Expected 'EOF', got '}' at position 78: …"mark": "" }̲], 主要属性为id、js. …UI"开头,认为时本地文件,可以访问已有的文件。
以"http"或者"https"开头,认为是网络文件,可以访问远端服务器文件。(提示远端服务器允许跨域访问,否则会加载失败)
其它格式,认为是云端文件格式,自动加载(用户可上传自定义文件)。
"js"文件格式模板参考如下:
define(function(require) {
var jysvgmethord = require("$UI/cloud/lib/svg/jysvgmethord");
var model = function() {};
//---------------------必要属性
//加载时进行调用
model.prototype.Init = function(fEquipInfo) {
console.log("svg custom Init");
};
//接收到modbus 信息时进行调用
model.prototype.ShowModbusReg = function(mbreg, jysvg, jydam) {
console.log("svg custom ShowModbusReg");
};
//接收到设备信息信息时进行调用
model.prototype.ShowNowInfo = function(fInfo, jysvg, jydam) {
var draw = jysvg.svgdraw;
var fEquipInfo = jysvg.fEquipInfo;
var nowjson = jysvg.nowjson;
if (draw == null) return;
if (fEquipInfo == null) return;
if (jydam == null) return;
if (nowjson == null) return;
debugger;
var element_water = SVG("#water");
if (this.water_x == undefined) {
this.water_x = element_water.transform("translateX");
}
if (this.water_y == undefined) {
this.water_y = element_water.transform("translateY");
}
var water_ratio = jydam.getairatio("", 0);
var height = 120;
element_water.transform({
translate: [this.water_x, this.water_y - height * water_ratio]
}, false);
};
//扩展预留
model.prototype.onOprSendEvent = function(opr, jysvg, jydam) {
console.log("svg custom onOprSendEvent");
};
return new model();
});
可以用require方式,加载外部文件,并直接访问。
json说明–TEXT属性
json结构
“TEXT”: [{
“id”: “level”,
“unid”: “”,
“regtype”: “ai”,
“io”: 0,
“name”: “”,
“unit”: “米”
}]
svg文件
处理过程
json处理
id为svg文件的id,名称需要相同。
undi为空,代表当前设备。
regtype:“ai”:代表ai数据
预计后期支持
“ao”:代表ao数据
“data”:日期
“time”:时间
io: 0代表第一个通道
name:名称 可为空
unit:单位 可为空
显示内容: name+数值+unit
json说明–DO属性
json结构
“DO”: [{
“id”: “do1”,
“unid”: “”,
“regtype”: “do”,
“io”: 0,
“time”: 0
}, {
“id”: “do2”,
“unid”: “”,
“regtype”: “do”,
“io”: 1,
“time”: 0
}],
svg文件
处理过程
json处理
id为 do1 为按钮id do1_1为打开按钮 ,绑定关闭操作 do1_0为显示关闭按钮,绑定打开操作
undi为空,代表当前设备。
regtype:“do”:代表继电器
io: 0代表第一个通道
time: ==0忽略 >0代表延迟时间
json说明–DI属性
json结构
“DI”: [{
“id”: “kg1”,
“unid”: “”,
“regtype”: “do”,
“io”: 0
},
{
“id”: “kg2”,
“unid”: “”,
“regtype”: “di”,
“io”: 1
},
{
“id”: “kg3”,
“unid”: “”,
“regtype”: “do”,
“io”: 2
}
],
svg文件
处理过程
json处理
id为 kg1为按钮id id="kg1_0"为状态为0时进行显示 为1时进行隐藏。 id="kg1_1"为状态为0时进行显示 为1时进行隐藏。
undi为空,代表当前设备。
regtype:“do”:代表继电器通道, “di”:代表DI通道
io: 0代表第一个通道
json说明–Btn属性
json结构
“Btn”: [{
“id”: “button1”,
“opr”: [{
“unid”: “”,
“operator”: “equip_do”,
“oprtype”: “OPEN”,
“io”: 0,
“help”: “打开继电器 io = 0 代表第一个通道”
}]
},
{
“id”: “button2”,
“opr”: [{
“unid”: “”,
“operator”: “equip_do”,
“oprtype”: “OPEN”,
“io”: 0,
“help”: “打开继电器 io = 0 代表第一个通道”
},
{
“unid”: “”,
“operator”: “equip_do”,
“oprtype”: “CLOSE”,
“io”: 0,
“help”: “关闭继电器 io = 0 代表第一个通道”
},
{
“unid”: “”,
“operator”: “equip_do”,
“oprtype”: “AOPEN”,
“help”: "打开所有继电器 "
},
{
“unid”: “”,
“operator”: “equip_do”,
“oprtype”: “ACLOSE”,
“help”: “关闭所有继电器 io = 0 代表第一个通道”
},
{
“unid”: “”,
“operator”: “equip_do”,
“oprtype”: “OPENONE”,
“io”: 0,
“timer1”: 10,
“help”: “打开一段时间后关闭 time = 10 代表打开1 .0 秒后关闭”
},
{
“unid”: “”,
“operator”: “equip_do”,
“oprtype”: “CLOSEONE”,
“io”: 0,
“timer1”: 10,
“help”: “关闭一段时间后打开 time = 10 代表打开1 .0 秒后关闭”
},
{
“unid”: “”,
“operator”: “equip_do”,
“oprtype”: “OPRMORE”,
“io”: 0,
“cnt”: 0,
“timer1”: 10,
“timer2”: 20,
“help”: “循环打开关闭 cnt:循环次数 timer1:打开时间 timer2:关闭时间 有效数值范围:0~65535”
},
{
“unid”: “”,
“operator”: “equip_do”,
“oprtype”: “READ”,
“help”: “获取设备最新状态”
},
{
“unid”: “”,
“operator”: “equip_mb”,
“oprtype”: “RDO”,
“regstart”: 0,
“regnum”: 10,
“help”: “获取DO状态 获取reg0~9之间的寄存器信息”
},
{
“unid”: “”,
“operator”: “equip_mb”,
“oprtype”: “RDI”,
“regstart”: 0,
“regnum”: 10,
“help”: “获取DI状态”
},
{
“unid”: “”,
“operator”: “equip_mb”,
“oprtype”: “RAI”,
“regstart”: 0,
“regnum”: 10,
“help”: “获取AI状态”
},
{
“unid”: “”,
“operator”: “equip_mb”,
“oprtype”: “RAO”,
“regstart”: 0,
“regnum”: 10,
“help”: “获取AO状态”
},
{
“unid”: “”,
“operator”: “equip_mb”,
“oprtype”: “WDO”,
“regstart”: 0,
“reginfo”: “0120111”,
“help”: “控制DO状态 regstart【0代表从第一个通道开始】 reginfo【0代表关闭 1代表打开 2代表忽略】”
},
{
“unid”: “”,
“operator”: “equip_mb”,
“oprtype”: “WAO”,
“regstart”: 0,
“reginfo”: “134_456_789”,
“help”: “控制DO状态 regstart【0代表从第一个通道开始】 reginfo【134_456_789 代表连续写3个寄存器数据,依次为134,456,789】”
},
{
“unid”: “”,
“operator”: “equip_mb”,
“oprtype”: “WAOHEX”,
“regstart”: 0,
“reginfo”: “12345678abcd”,
“help”: “控制DO状态 regstart【0代表从第一个通道开始】 reginfo【12345678abcd 代表连续写3个寄存器数据,依次为0x1234,0x5678,0xabcd】”
}
]
}
],
svg文件
处理过程
支持按键button触发多个动作执行
json说明–RECT属性
json结构
“RECT”: [{
“id”: “p_wendu1”,
“unid”: “”,
“regtype”: “ai”,
“io”: 0,
“rect”: {
“opr”: “scaleY”,
“L”:0,
“H”:100
}
}]
svg文件
处理过程
json处理
id为 kg1为按钮id id=“p_wendu1” 相对应
undi为空,代表当前设备。
regtype:“ai”:代表AI通道
io: 0代表第一个通道