/// <summary> /// Create and return the current DataSet for the provided dataSetWriter according to current WriterGroupPublishState /// </summary> /// <returns></returns> protected DataSet CreateDataSet(DataSetWriterDataType dataSetWriter, WriterGroupPublishState state) { DataSet dataSet = null; //check if dataSetWriter enabled if (dataSetWriter.Enabled) { uint sequenceNumber = 0; bool isDeltaFrame = state.IsDeltaFrame(dataSetWriter, out sequenceNumber); dataSet = Application.DataCollector.CollectData(dataSetWriter.DataSetName); if (dataSet != null) { dataSet.SequenceNumber = sequenceNumber; dataSet.IsDeltaFrame = isDeltaFrame; if (isDeltaFrame) { dataSet = state.ExcludeUnchangedFields(dataSetWriter, dataSet); } } } return(dataSet); }
/// <summary> /// Initializes a new instance of the <see cref="UaPublisher"/> class. /// </summary> internal UaPublisher(IUaPubSubConnection pubSubConnection, WriterGroupDataType writerGroupConfiguration) { if (pubSubConnection == null) { throw new ArgumentNullException(nameof(pubSubConnection)); } if (writerGroupConfiguration == null) { throw new ArgumentNullException(nameof(writerGroupConfiguration)); } m_pubSubConnection = pubSubConnection; m_writerGroupConfiguration = writerGroupConfiguration; m_writerGroupPublishState = new WriterGroupPublishState(); m_intervalRunner = new IntervalRunner(m_writerGroupConfiguration.Name, m_writerGroupConfiguration.PublishingInterval, CanPublish, PublishMessages); }
/// <summary> /// Initializes a new instance of the <see cref="UaPublisher"/> class. /// </summary> internal UaPublisher(IUaPubSubConnection pubSubConnection, WriterGroupDataType writerGroupConfiguration) { if (pubSubConnection == null) { throw new ArgumentNullException(nameof(pubSubConnection)); } if (writerGroupConfiguration == null) { throw new ArgumentNullException(nameof(writerGroupConfiguration)); } m_pubSubConnection = pubSubConnection; m_writerGroupConfiguration = writerGroupConfiguration; m_writerGroupPublishState = new WriterGroupPublishState(); Initialize(); }
/// <summary> /// Create the network messages built from the provided writerGroupConfiguration /// </summary> /// <param name="writerGroupConfiguration">The writer group configuration </param> /// <param name="state">The publish state for the writer group.</param> /// <returns>A list of the <see cref="UaNetworkMessage"/> created from the provided writerGroupConfiguration.</returns> public abstract IList <UaNetworkMessage> CreateNetworkMessages(WriterGroupDataType writerGroupConfiguration, WriterGroupPublishState state);