跳到主要内容

SetMonitoringMode

每个 MonitoredItem 有 3 种 monitoring mode (Enums.MonitoringMode):

Mode服务端采样服务端推送用途
Disabled (0)××完全停 (不采也不推)
Sampling (1)×采样但不推 (记历史 / 死区计算)
Reporting (2, 默认)正常运作
前置阅读
  • 想停整条订阅 (而不是逐 MI) 看下面 setPublishingEnabled.
  • 修改采样参数请看 Modify.

批量切

public List<Enums.StatusCode> setMonitoringMode(
Enums.MonitoringMode mode,
List<Integer> miHandles);
import java.util.List;

// 临时停止全部采集 (例如设备维护期间)
List<Enums.StatusCode> statuses = sub.setMonitoringMode(
Enums.MonitoringMode.Disabled,
allHandles);

单 MI 切

public Enums.StatusCode setMode(int monitoredItemHandle, Enums.MonitoringMode mode);
sub.setMode(handle, Enums.MonitoringMode.Disabled);   // 暂停某个 MI
sub.setMode(handle, Enums.MonitoringMode.Reporting); // 恢复

整条订阅启停 (setPublishingEnabled)

如果想停整条订阅 (而不是逐 MI), 用 setPublishingEnabled:

sub.setPublishingEnabled(true);   // 启
sub.setPublishingEnabled(false); // 停

返回 Enums.StatusCode (Good / Bad*).


三种粒度对比

粒度API适用
整条订阅sub.setPublishingEnabled(boolean)临时全停 (维护)
一批 MIsub.setMonitoringMode(mode, handles)部分模块停
单 MIsub.setMode(handle, mode)精细控制
完全删除sub.remove(handle) / sub.close()永久不要了

下一步