定制过滤器让您定制和定义操作如何执行。您可以通过上载以前定义的脚本文件或编写一个新文件来完成。
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 分钟)。