定制过滤器

定制过滤器让您定制和定义操作如何执行。您可以通过上载以前定义的脚本文件或编写一个新文件来完成。

MarkVision Messenger 提供非常简单的脚本编写语言来定义过滤器。下面是完整的语句和条件的列表,您可以用于编写定制过滤器:

语句:

条件:

作为一个例子,让我们看内嵌的活动时触发的过滤器的脚本表示:

IfThen (EventDataIs("state", "ACTIVE"))
Distribute

EventDataIs 条件的作用是询问事件有关 event.state 关键字的值。这是与您可以插入命令行和电子邮件信息的关键字相同的。第一条语句, IfThen, 当条件 EventDataIs ("state", "ACTIVE")为真时执行下一条语句。 如果关键字(state)与给定的值(ACTIVE)相匹配,则 EventDataIs 条件为真。下一条语句,Distribute,使命令执行。

现在,让我们看当活动时触发的过滤器设置为 30 秒延迟时,脚本的编写:

{
WaitUntil (TimeIsAfter(30))
IfThen(EventDataIs("state", "ACTIVE"))
Distribute
}

大括号({})用于将语句组成列表。在前面的例子中不需要它们,因为 IfThen 和后面的语句被当作一条语句处理。

WaitUntil 语句使脚本暂停执行,直到条件为真。TimeIsAfter 条件只在经过指定的秒数后检查是否为真。当经过 30 秒之后,如果事件仍然为活动,则 Distribute 语句执行命令。

内嵌的活动或清除时触发的过滤器是单个的 Distribute 语句。 例如,您选择缺少进纸匣作为事件,但是您只希望当事件发生在进纸匣 3 时才执行命令。另外,您还希望在执行命令之前等待 20 分钟,如果状态仍然为活动,则在相同的 20 分钟间隔后再次执行命令。让我们看该过滤器的脚本编写:

While (And(EventDataIs("state", "ACTIVE"), EventDataIs("location", "Tray 3")))
{WaitUntil(TimeIsAfter(1200))IfThen(EventDataIs("state", "ACTIVE"))Distribute}

在该例子中,And 被用于构造组合条件。只有当进纸匣 3 的事件是活动时,才进入或重复 While 循环。循环中的代码与活动时触发的过滤器的代码相同,除了 TimeIsAfter 条件设置为等待 1200 秒(20 分钟)。