0
我目前正在使用OPC UA Foundation Java Stack,沒有任何額外的SDK。OPC UA Java - 如何從訂閱中獲取MonitoredItemID publishResponse
我設法實現與多個監控項目的訂閱,並通過發佈響應正確地獲取更改通知。
問題是,當我在一個訂閱中有多個項目時,我無法確定哪個監控項目負責datachange響應。 MonitoredItemNotification似乎沒有一個方法呢?! 那麼我怎麼能得到一個itemId,displayname,nodeId或只是任何東西來識別響應中的項目?
這是我得到的迴應(看起來幾乎相同的每個項目):
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]
請註明答案所接受,因爲這將也有助於具有相同問題easilly瞭解解決方案的人。 –