Example #1
0
        /// <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);
        }
Example #2
0
        /// <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();
        }
Example #4
0
 /// <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);