/// <summary>
        ///     This method is used to update the historical values for this data object
        /// </summary>
        /// <param name="journalDataValues"> The new list of historical values. </param>
        public void Update(JournalDataValues journalDataValues)
        {
            var xiValueStatusTimestampSet =
                (XiDataJournalValueStatusTimestampSet)
                GetExistingOrNewValueStatusTimestampSet(journalDataValues.Calculation?.LocalId);

            xiValueStatusTimestampSet.UpdateValueSet(journalDataValues);
        }
예제 #2
0
        /// <summary>
        ///     This method updates the values of the value set.
        /// </summary>
        /// <param name="journalDataValues"> The new values used to update the value set. </param>
        internal void UpdateValueSet(JournalDataValues journalDataValues)
        {
            if (journalDataValues.HistoricalValues is null)
            {
                return;
            }

            ResultCode = journalDataValues.ResultCode;
            StartTime  = journalDataValues.StartTime;
            EndTime    = journalDataValues.EndTime;
            _xiValueStatusTimestampsList.Clear();

            if (journalDataValues.HistoricalValues.DoubleStatusCodes is not null &&
                journalDataValues.HistoricalValues.DoubleValues is not null &&
                journalDataValues.HistoricalValues.DoubleTimeStamps is not null)
            {
                for (int idx = 0; idx < journalDataValues.HistoricalValues.DoubleStatusCodes.Length; idx++)
                {
                    var xiValueStatusTimestamp = new ValueStatusTimestamp();
                    xiValueStatusTimestamp.Value.Set(journalDataValues.HistoricalValues.DoubleValues[idx],
                                                     _owningXiDataJournalListItem.ValueTypeCode, false);
                    xiValueStatusTimestamp.ValueStatusCode = journalDataValues.HistoricalValues.DoubleStatusCodes[idx];
                    xiValueStatusTimestamp.TimestampUtc    = journalDataValues.HistoricalValues.DoubleTimeStamps[idx];

                    _xiValueStatusTimestampsList.Add(xiValueStatusTimestamp);
                }
            }
            if (journalDataValues.HistoricalValues.UintStatusCodes is not null &&
                journalDataValues.HistoricalValues.UintValues is not null &&
                journalDataValues.HistoricalValues.UintTimeStamps is not null)
            {
                for (int idx = 0; idx < journalDataValues.HistoricalValues.UintStatusCodes.Length; idx++)
                {
                    var xiValueStatusTimestamp = new ValueStatusTimestamp();
                    xiValueStatusTimestamp.Value.Set(journalDataValues.HistoricalValues.UintValues[idx],
                                                     _owningXiDataJournalListItem.ValueTypeCode, false);
                    xiValueStatusTimestamp.ValueStatusCode = journalDataValues.HistoricalValues.UintStatusCodes[idx];
                    xiValueStatusTimestamp.TimestampUtc    = journalDataValues.HistoricalValues.UintTimeStamps[idx];

                    _xiValueStatusTimestampsList.Add(xiValueStatusTimestamp);
                }
            }
            if (journalDataValues.HistoricalValues.ObjectStatusCodes is not null &&
                journalDataValues.HistoricalValues.ObjectValues is not null &&
                journalDataValues.HistoricalValues.ObjectTimeStamps is not null)
            {
                for (int idx = 0; idx < journalDataValues.HistoricalValues.ObjectStatusCodes.Length; idx++)
                {
                    var xiValueStatusTimestamp = new ValueStatusTimestamp();
                    xiValueStatusTimestamp.Value.Set(journalDataValues.HistoricalValues.ObjectValues[idx]);
                    xiValueStatusTimestamp.ValueStatusCode = journalDataValues.HistoricalValues.ObjectStatusCodes[idx];
                    xiValueStatusTimestamp.TimestampUtc    = journalDataValues.HistoricalValues.ObjectTimeStamps[idx];

                    _xiValueStatusTimestampsList.Add(xiValueStatusTimestamp);
                }
            }
        }