介绍
概念
联动是指当监控系统的变量满足一定要求时,系统自动触发已配置好的方案,执行应对当前场景的相关动作。
基于联动来设置的相关方案,将大大提高应急情况下监控系统的反应能力。
...
触发源与动作
联动系统有两个基本概念:触发源、动作
触发源:就是设定自动执行的条件。触发源名称可以根据需要填写。
触发来源的配置,就是配置系统根据哪个变量的值触发,一旦达到触发条件,系统就自动执行指定动作。触发来源可以是设备管理中某个变量的报警(目前仅支持该变量必须配置好了相关报警设置才可以联动处理)。
- 触发源。触发源就是事件,目前支持两种:
- 报警产生(类型值:1)。需要先配置一个报警,再配置触发源。如:双波长火焰探测器48北线.报警故障待机.EQ
- 表达式变为真(类型值:2)。直接在触发源中输入表达式,如:紧急电话11北线.待机振铃通话故障==2
- 表达式变为假(类型值:3)
- 表达式为真(类型值:4)
- 表达式为假(类型值:5)
- 定时触发(未实现)
- 报警产生
- 定时触发
- 动作
- 变量控制
- 一组变量控制
- 可用变量控制
- 弹出画面
- 延时等待
联动优先级与同时执行的多个联动
联动具有优先级,优先级配置在联动的事件上,字段:priority。数字越大,优先级越高。
整个系统中,同时正在执行的联动事件允许有多个。
- 如果一个同时触发了多个联动事件,此时会判断优先级,选择优先级高的先执行,再执行优先级低的联动事件。
- 如果当前尚未执行任何联动,则触发一个联动事件后,无论优先级如何,均开始执行。
- 如果一个联动正在执行,即该事件对应的正在执行的动作还未全部执行完毕,此时又触发了一个新的事件的联动。那么:无论新的联动事件优先级比正在执行的联动事件优先级高还是低,均会执行新的联动事件
- 联动系统的提示信息,将会记录当前正在执行的联动的过程,和联动执行过程中的其他联动事件信息,提示给用户
自动执行联动与需用户确认的联动
每个联动事件对应的动作,都配置有如下与确认相关属性:
- 在数据库t_link_action表中,具有以下字段:
- needconfirm。是否需要在客户端弹窗后,由用户确认后再执行。该属性缺省为:不需要确认即自动执行。值范围:1/0
- 1,需要用户确认后再执行
- 0,或空,不需要用户确认,自动执行
- needconfirm。是否需要在客户端弹窗后,由用户确认后再执行。该属性缺省为:不需要确认即自动执行。值范围:1/0
- confirmtimeout字段。表示等待用户确认的超时时间(秒)。needconfirm配置为1时(需用户确认)有效
- 为0表示永不超时,一直等待用户确认,才继续执行该事件后续的其他动作。缺省为空表示永不超时
- 其他值(正整数),表示等待用户的时间(秒),系统超过该时间段未接收到用户确认执行或不执行的操作,则进行下面的处理。
- cancelexecuteontimeout字段。表示:等待用户确认超时后,执行还是取消。
- 值1:超时后取消执行
- 值0:超时后自动执行。缺省为超时后自动执行
联动配置
联动系统提供直观方便的联动配置工具,快捷配置联动方案。
触发源管理
- 触发源增加与修改
- 点击上图新增或修改,弹出下面界面供输入
- 必输输入自定义的触发源名称,如:隧道中区火灾
- 状态必须选择:是
- 触发时机有两种:
- 报警产生触发。此时必须在触发配置选择一个,或多个变量/对象属性的一个报警类型
- 每个变量/对象属性的报警类型支持:HH,LL,H,L,HHH,LLL,FX1,FX2,ON,OFF
- 一个报警触发,选择之后触发配置的内容应为{对象属性}.{报警类型},如:
- tag1.HH
- 多个报警只要其中有一个触发,选择之后触发配置的内容应为:{对象属性}.{报警类型},{对象属性}.{报警类型},如:
- tag1.HH,tag1.LL
- 多个报警其中有N个一起触发,选择之后触发配置的内容应为:{对象属性}.{报警类型},{对象属性}.{报警类型},如同时有两个报警产生才触发:
- tag1.HH,tag1.LL,tag2.HH,tag.L;2
- 定时触发。此时必须在触发配置选择触发器。如下图,参数非必填项
- 可以任意配置秒、分钟、小时、日、月、年、周
弹出的cron表达式配置若什么都不选择,则会出现红框中的内容,无需意外,此为默认时间,若要选择时间自行点击即可
- 触发源删除
- 选中一个触发源,点击删除按钮,可以删除触发源
联动动作管理
- 选中一个触发源,可以配置该触发源对应的动作
- 每个动作需配置的属性包括:
- 自定义的名称(必须输入)
- 执行顺序,数字越小越靠前执行
- 是否启用,必须选择“是”才有效
- 类型指的是动作类型,包括下面几个:
- 变量控制,控制服务端对某个变量写入值
- 弹出画面,在某个客户端弹出一个画面,并带入参数
- 延时等待,在服务端执行过程中等待一段时间再执行下个动作
- 一组变量控制,控制
- 可用变量控制
-
- 动作支持如下几种:
- 单变量控制
- 参数1:变量名称
- 参数2:要控制的变量的值
- 参数3:控制的超时设置,单位:毫秒
- 多变量同时控制
- 同时控制多个变量的值为某个特定值
- 参数1:多个变量,以逗号隔开
- 参数1:多个变量名称:变量值,以逗号隔开。
- 格式1:只有变量名称,如tag1,tag2,tag3,此时其控制值为参数2
- 格式2:变量名:变量值。如:tag1:1,tag2:0,tag3:10,表示将tag1值改为1,tag2改为0,tag3改为10,此时参数2 无效
- 参数2:要控制的变量的值。当参数1位格式1时,即每个变量没有给值的情况下,变量的控制值使用参数2。参数2:要控制的变量的值
- 参数3:控制的超时设置,单位:毫秒
- 多变量循环控制
- 配置多个变量/对象属性,每次触发本动作执行时,将按照配置的变量次序,依次选择一个变量,将其值修改为控制值。
- 参数1:多个变量,以逗号隔开
- 参数2:要控制的变量的值
- 参数3:控制的超时设置,单位:毫秒
- 如:配置了tag1,tag2,tag3这4个变量,控制值为1(见下图)
- 第一次触发本动作时,将tag1值设置为1
- 第二次触发本动作时,将tag2值设置为1
- 第三次触发本动作时,将tag3值设置为1
- 第四次触发本动作时,将tag1值设置为1
- 第五次触发本动作时,将tag2值设置为1
- 依次类推
- 服务端延时
- 等待一段时间再执行次序更低的动作
- 参数1:毫秒为单位的时间,如3000表示3秒
- 客户端弹窗
- 在客户端弹出一个画面,并带上初始参数
- 参数1:画面名称
- 参数2:打开画面时带入的参数类型,值可为:
objectreplace,打开画面并进行参数替换
switchcamera,打开画面同时切换摄像机
- 参数3:打开画面时带入的参数值
- objectreplace时,画面模板名1=对象实际名称1,画面模板名2=对象实际名称2 多个参数替换之间以逗号隔开
- switchcamera时,cam=cam13,preset=2。每次只能打开1个摄像头和设置预置位
- 如:打开一个画面video,并打开摄像头cam13,切换到预置位5
- 参数1:video
- 参数2:switchcamera
- 参数3:cam=cam13,preset=5
如:打开一个画面devicedetail,并替换其中模板1 (objectname1)为(设备1),替换其中模板1 (objectname2)为(设备5) - 参数1:devicedetail
- 参数2:objectreplace 参数3:objectname1=设备1,objectname2=设备5
- 参数1:画面信息,json对象,包括三部分,示例:{"site":["site1","site2"],"page":"video","position":{"x":0,"y":0,"w":500,"h":400}}
- 在哪个工作站弹窗。site属性
- 如果想指定工作站弹窗,则必须使用eview专用客户端,而不能用浏览器。
- site数组数组内的为允许弹窗的工作站站名。该名称需要pkclient.ini的general/site进行名称配置。只有在site数组中的工作站才能弹窗
- 站点名称为空字符串,表示在浏览器也可以弹窗
- 要打开的画面名称。page属性的值为画面路径
- 这里的画面名称为video。必选。
- 非顶层目录下的画面需要带目录名,如dir1/video
- 要弹窗的位置。position属性
- position属性不存在时,按照窗体自身大小弹窗,弹出在屏幕中央位置
- x、y为左上角坐标
- w和h为窗体宽度和高度
- 在哪个工作站弹窗。site属性
- 参数2:打开画面时带入到onLoad中的参数(脚本编辑器中Page的onLoad(params)事件中的params)
- 应该为数组,如:["camname1","camname2"]
- 该参数会原封不动的传递到脚本编辑器中Page的onLoad(params)事件中的params
- 可以通过参数传递,实现弹窗的同时,打开2个摄像头并切换到预置位等操作
- 参数3:打开画面时的初始动作
- 目前仅支持一个动作:参数模板替换objectreplace。示例:
- {"type":"objectreplace":"value":"template1=设备1,templ2=设备2"}
- objectreplace时,template1为画面中配置或使用的对象模板名称;设备1为实际传入的设备名称。
- 多个参数替换之间以逗号隔开
- 示例:打开一个画面video,并打开摄像头cam1和cam2
- 参数1:{"page":"video","site":["site1","site2"]}
- 参数2:["cam1","cam2"]
- 参数3:{"type":"objectreplace","value":"template1=设备1,templ2=设备2"}
- 其中video画面名需要先制作好,包含:
- 2个摄像头控件cam1和cam2
- page的onLoad(params)脚本,params中保存了cam1和cam2两个数组元素,调用pkvideo接口播放
- 单变量控制
- 各专业系统需要配置的联动触发源
- 火灾报警系统
- 手报按钮,双波长探测器,光缆光栅(声光报警器和消火栓报警状态不能配置为触发源)。这三类状态为1时配置为报警(EQ类型报警)
- 联动触发类型:报警产生触发的联动。上述报警类型填入触发源中,如:双波长火焰探测器48北线.报警故障待机.EQ
- 电话系统:
- 电话机进入通话状态,需要配置为联动。但不能配置为报警。
- 联动触发源类型:表达式计算触发的联动,表达式变为真(类型值:2)
- 触发源表达式示例: 紧急电话11北线.待机振铃通话故障==2
- 报警产生触发的联动
- 表达式计算触发的联动
- 火灾报警系统
- 各专业系统配置联动的依据
- CAD图,根据CAD图(文件名:,示例图见下:)
- 找到一组位置比较接近的探头及手报按钮等
- 找到对应的左侧和右侧摄像头,
- 找到附近的LED,如这里的:,再根据xxx图找到对应的IP
- 找到附近的广播,如这里的