DAS 组合提醒、变量条件与回调设计
分离条件计算、触发策略与回调副作用。
提醒系统的三层
前置知识:Alert 基础、Timer、状态机。组合提醒包含条件计算、触发规则和回调。连续写两次 AddItem,不能据此假定所有 build 的 AND/OR 分组与求值时机。应检查保存后的 Alert 设置并验证真值表。要明确表达合取,可在短观察脚本中计算全局条件,再在 Alert 界面绑定该变量。
显式计算组合条件
Advanced Script · 仅使用假设输入并写本地变量。本例条件为 value>10 且 count>=3。在配置观察它的 Alert 之前,先初始化 feComposite。
条件代码
$feValue = 11;
$feCountForAlert = 3;
$feComposite = 0;
if ($feValue > 10) {
if ($feCountForAlert >= 3) {
$feComposite = 1;
}
}
MsgBox($feComposite);
将条件连接到 Alert 界面
在 Alerts & Triggers 中选择全局变量条件,与 1 比较。手册确认支持变量驱动条件,但没有提供任意变量名对应的通用 AddItem 字段 token,因此这里通过界面配置。Script 字段起初只放消息正文,记录重复、自动删除和启用选项。Save 后继续执行的代码不等于触发回调。
回调正文与观察规则
MsgBox("FE composite condition became eligible");
真值表与中间状态
| value | count | 发布条件 |
|---|---|---|
| 9 | 3 | 0 |
| 11 | 2 | 0 |
| 10 | 3 | 0 |
| 11 | 3 | 1 |
这个实现先写零,再算出一。变量观察器是否看到中间写入取决于调度。对重复敏感的逻辑,应使用综合项目中的边沿状态回调,并在客户端验证调度,不能把顺序赋值说成原子发布。
练习与参考解答
不使用未经核对的布尔运算符,将条件改为 value>10 或 count>=3。参考解答:结果初始化为零,用两个独立 if,任一个满足就设为一。验证四种组合。创建、观察、清理分别组织;仅对仍然持有引用的练习 Alert 使用 Reset 后 Save。