OPC UA实施订阅机制

问题描述

我在使用OPC UA订阅和通知时遇到问题。我要订阅服务器数据。因此,我定义了一个MonitoredItem列表来捕获通知。

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)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...