public ACQ_ObjectSequence(IStream element, int index, eTypeObjectCollection typeCollection, string text) : base(element, index, typeCollection) { string @string = text.Trim(); if (CheckedTableName(ref @string)) { Table = new AcquisitionTableSequence(this, @string); } else { Type = eTypeObjectStream.Default; } }
public ACQ_ObjectSequence(IStream element, int index, eTypeObjectCollection typeCollection, eTypeObjectStream type, object data = null) : base(element, index, typeCollection) { Type = type; if (typeCollection == eTypeObjectCollection._1D) { switch (Type) { case eTypeObjectStream.Acquisition: if (data != null) { Acquisition = (AcquisitionObject)data; } else { Acquisition = new AcquisitionObject(this); } break; case eTypeObjectStream.Continue: break; case eTypeObjectStream.Table: Table = new AcquisitionTableSequence(this); break; default: Type = eTypeObjectStream.Default; break; } } else if (Type == eTypeObjectStream.Table) { Table = new AcquisitionTableSequence(this); } else { Type = eTypeObjectStream.Default; } }
/// <summary> /// Статический метод для создания экземпляров класса на основе данных импорта /// </summary> /// <param name="table">Объект содержащий данные импорта</param> /// <returns>Объект таблицы</returns> public static TableSequence CreateInstance(SequenceTable table) { TableSequence objectTable; switch (table.typeOfTable) { case 0x00000001: objectTable = new DelayTableSequence( ); break; case 0x0000000D: objectTable = new LoopTableSequence( ); break; case 0x00004154: case 0x00004132: objectTable = new AttenuationTableSequence( ); break; case 0x00004143: objectTable = new AcquisitionTableSequence( ); break; case 0x00004741: objectTable = new RotationAngleTableSequence( ); break; case 0x00004752: case 0x00004732: objectTable = new GradientAmplitudeTableSequence( ); break; case 0x00004F31: objectTable = new FrequencyTableSequence( ); break; case 0x0000524D: case 0x00005232: objectTable = new ModulationTableSequence( ); break; case 0x00005048: case 0x00005032: case 0x00005053: objectTable = new PhaseTableSequence( ); break; case 0x00005348: objectTable = new GradientWaveformTableSequence( ); break; default: objectTable = new TableSequence( ); break; } objectTable.Name = table.name; objectTable.TypeTable = objectTable.GetTypeTable(table.dimension); objectTable.Data = new DataTable( ); objectTable.Data.Auto = table.isAuto; objectTable.Data.Steps = table.stepsPer360Cycle.ToString(); objectTable.Data.TimePoint = table.timePoint; objectTable.Text = table.entry; if (objectTable._delayAuto != null) { objectTable._delayAuto.UseDwellTime = table.useIncrementList; objectTable._delayAuto.Increment = table.incrementValue; objectTable._delayAuto.Every = table.incrementOperation == "+ Add" ? 0 : 1; objectTable._delayAuto.Add = table.incrementOperation == "Every pass" ? 0 : 1; objectTable._delayAuto.Table = objectTable; } if (objectTable._generateAuto != null) { objectTable._generateAuto.Start = table.start; objectTable._generateAuto.Increment = table.increment; objectTable._generateAuto.Number = table.number; objectTable._generateAuto.Table = objectTable; } return(objectTable); }