/// <summary> /// Process the bytes received from UADP channel as Subscriber /// </summary> /// <param name="message"></param> /// <param name="source"></param> private void ProcessReceivedMessage(byte[] message, IPEndPoint source) { Utils.Trace(Utils.TraceMasks.Information, "UdpPubSubConnection.ProcessReceivedMessage from source={0}", source); List <DataSetReaderDataType> dataSetReaders = GetOperationalDataSetReaders(); List <DataSetReaderDataType> dataSetReadersToDecode = new List <DataSetReaderDataType>(); foreach (DataSetReaderDataType dataSetReader in dataSetReaders) { // check if dataSetReaders have metadata information if (!ConfigurationVersionUtils.IsUsable(dataSetReader.DataSetMetaData)) { // check if it is possible to request the metadata information if (dataSetReader.DataSetWriterId != 0) { m_udpDiscoverySubscriber.AddWriterIdForDataSetMetadata(dataSetReader.DataSetWriterId); } } else { dataSetReadersToDecode.Add(dataSetReader); } } UadpNetworkMessage networkMessage = new UadpNetworkMessage(); networkMessage.DataSetDecodeErrorOccurred += NetworkMessage_DataSetDecodeErrorOccurred; networkMessage.Decode(MessageContext, message, dataSetReadersToDecode); networkMessage.DataSetDecodeErrorOccurred -= NetworkMessage_DataSetDecodeErrorOccurred; // Process the decoded network message ProcessDecodedNetworkMessage(networkMessage, source.ToString()); }