/// <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); }
/// <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); } } }