2016-06-24 17 views
0

現在、OPC UA Foundation Java Stackを使用しています。追加のSDKはありません。OPC UA Java - サブスクリプションからMonitoredItemIDを取得する方法publishResponse

私は複数の監視対象項目を使用してサブスクリプションを実装することができましたが、パブリッシュ応答を通じて変更通知を正しく取得しています。

問題は、1つのサブスクリプションに複数のアイテムがある場合、どの監視対象アイテムが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] 
+0

を持っている理由です受け入れと、それは同じ質問を持つ人々がeasillyソリューションを理解するのにも役立ちますので、答えをマークしてくださいね。 –

答えて

1

各MonitoredItemは、独自のClientHandleを持っていなければならない。

これは私が(各項目のほとんど同じに見える)を得る反応です。

CreateMonitoredItems要求をサーバーに送信するときは、各MonitoredItemCreateRequestで必要なClientHandleを渡す必要があります。 これは、各パブリッシュレスポンスのMonitoredItemNotificationに返されます。

私は、あなたが、値が「0」に合格し、あなたが

[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) 
関連する問題