Ich arbeite derzeit mit dem OPC UA Foundation Java Stack, ohne zusätzliche SDKs.OPC UA Java - Wie bekomme ich MonitoredItemID von einem Abonnement? PublishResponse
Ich habe es geschafft, Subskriptionen mit mehreren überwachten Elementen zu implementieren, und ich erhalte die Änderungsbenachrichtigungen korrekt über die Veröffentlichungsantwort.
Das Problem ist, dass ich nicht herausfinden kann, welches überwachte Element für die Datenänderungsantwort verantwortlich ist, wenn ich mehrere Elemente in einem Abonnement habe. Die MonitoredItemNotification scheint keine Methode dafür zu haben ?! Also, wie kann ich eine itemId, displayname, nodeId oder nur irgendwas, um das Element in der Antwort zu identifizieren?
Dies ist die Antwort, die ich erhalten (für jedes Element fast identisch aussieht):
ResponseHeader=ResponseHeader
Timestamp=06/23/16 10:36:41.9018551 GMT
RequestHandle=0
ServiceResult=GOOD (0x00000000) ""
ServiceDiagnostics=Diagnostic Info:
StringTable=class java.lang.String[0]
AdditionalHeader=null
SubscriptionId=92
AvailableSequenceNumbers=class org.opcfoundation.ua.builtintypes.UnsignedInteger[2]
[0]=1
[1]=2
MoreNotifications=false
NotificationMessage=NotificationMessage
SequenceNumber=2
PublishTime=06/23/16 10:36:41.9018551 GMT
NotificationData=class org.opcfoundation.ua.builtintypes.ExtensionObject[1]
[0]=DataChangeNotification: DataChangeNotification
MonitoredItems=class org.opcfoundation.ua.core.MonitoredItemNotification[1]
[0]=MonitoredItemNotification
ClientHandle=0
Value=DataValue(value=true, statusCode=GOOD (0x00000000) "", sourceTimestamp=06/23/16 10:36:41.7146527 GMT, sourcePicoseconds=0, serverTimestamp=null, serverPicoseconds=0)
DiagnosticInfos=class org.opcfoundation.ua.builtintypes.DiagnosticInfo[0]
Results=class org.opcfoundation.ua.builtintypes.StatusCode[0]
DiagnosticInfos=class org.opcfoundation.ua.builtintypes.DiagnosticInfo[0]
haben Bitte geben Sie die Antwort markiert als angenommen, da es auch Menschen helfen, die gleiche Frage, die Lösung easilly verstehen zu müssen. –