.net - OPC UA 实现订阅机制
问题描述
我在使用 OPC UA 订阅和通知时遇到问题。我想订阅服务器数据。所以我定义了一个受监控的项目列表来捕获通知。
var list = new List<MonitoredItem> {
new MonitoredItem(subscription.DefaultItem) { DisplayName = "Speed", StartNodeId = "ns=2;i=4"},
};
Debug.Log(list[0].StartNodeId);
list.ForEach(i => i.Notification += OnNotification);
subscription.AddItems(list);
list.ForEach(i => Debug.Log(i.Subscription.Id));
Debug.Log("Add the subscription to the session.");
subscription.PublishingEnabled = true;
session.AddSubscription(subscription);
subscription.Create();
当它收到新的通知时,它应该调用 OnNotification 委托。但在我的情况下,永远不会调用 OnNotification。
private static void OnNotification(MonitoredItem item, MonitoredItemNotificationEventArgs e)
{
Debug.Log("OnNotification");
foreach (var value in item.DequeueValues())
{
Debug.LogFormat("{0}: {1}, {2}, {3}", item.DisplayName, value.Value, value.SourceTimestamp, value.StatusCode);
}
}
在这种情况下如何实现订阅机制?
解决方案
您还需要将订阅添加到您的会话中:
session.AddSubscription(subscription)
推荐阅读
- pbs - linux qsub 和 PBS 选项的文档 - 在哪里可以找到它?
- list - 有没有办法知道序言列表中元素的索引?
- asp.net-mvc - 如何在 MVC Web 应用程序中将 Firebase 数据显示到图表中?
- firebase - 签名的 Flutter android 应用程序无法访问 Firebase
- c# - 从列表中获取所有可能的组合
在 C# 中 - java - Spring Boot 服务层:单元测试还是集成测试?
- java - 时区问题 - JSF f:convertDateTime 与本地日期时间
- sql - 使用 JSON 文件导入时的 SQL 语句
- python - 将输出(文本)解析为具有列和行的数据框
- excel - Excel:显示单元格中的值并在填充另一个单元格时覆盖