Example #1
0
        public AmpsSignalTable AddSignalTable(AmpsSignalTable signalTable)
        {
            // TODO: Make AmpsSignalTables immutable.
            foreach (var psgPoint in signalTable.Points)
            {
                var timePoint = Points.FirstOrDefault(x => x.TimePoint == psgPoint.TimePoint);
                if (timePoint != null)
                {
                    foreach (var dcBiasElement in timePoint.DcBiasElements)
                    {
                        if (timePoint.DcBiasElements.FirstOrDefault(x => x.Key.Equals(dcBiasElement.Key)).Key
                            == default(string))
                        {
                            timePoint.CreateOutput(dcBiasElement.Key, dcBiasElement.Value);
                        }
                    }

                    foreach (var digitalOutputElement in timePoint.DigitalOutputElements)
                    {
                        if (
                            timePoint.DigitalOutputElements.FirstOrDefault(
                                x => x.Key.Equals(digitalOutputElement.Key)).Key == default(string))
                        {
                            timePoint.CreateOutput(digitalOutputElement.Key, digitalOutputElement.Value);
                        }
                    }
                }
                else
                {
                    // Time point doesn't exist, add it to the signal table.
                    AddTimePoint(psgPoint);
                }
            }

            return(new AmpsSignalTable(timePoints));
        }