Beispiel #1
0
 public void Run(SequenceEvent callback)
 {
     if (running && Restartable)
     {
         TryCancel();
     }
     if (!running)
     {
         StartCoroutine(DoRunSkelleton(callback));
     }
 }
Beispiel #2
0
    private IEnumerator DoRunSkelleton(SequenceEvent callback)
    {
        if (!running)
        {
            OnEndCallback = callback;

            running = true;
            OnEnter?.Invoke();

            yield return(DoRun());

            OnExit?.Invoke();
            callback?.Invoke();
            running = false;
        }
    }
Beispiel #3
0
        /// <summary>
        /// Параметризованный конструктор
        /// </summary>
        /// <param name="sequenceRow">Импортируемые данные</param>
        public StreamSequence(SequenceRow sequenceRow)
            : this(new sStreamData(sequenceRow))
        {
            for (int i = 0; i < sequenceRow.sequenceEvent.Length; i++)
            {
                SequenceEvent obj = sequenceRow.sequenceEvent[i];
                if (i == 0)
                {
                    Name = obj.dataString;
                    continue;
                }

                ObjectSequence @object = (ObjectSequence)GetNewObject(eTypeObjectCollection._1D, i - 1);
                if (obj.isTable0D)
                {
                    if (i > 1 && (this[eTypeObjectCollection._1D][i - 2].Type == eTypeObjectStream.TableShape ||
                                  this[eTypeObjectCollection._1D][i - 2].Type == eTypeObjectStream.Continue))
                    {
                        @object.Type = eTypeObjectStream.Continue;
                    }
                    else
                    {
                        @object.Type      = eTypeObjectStream.TableShape;
                        @object.TableName = obj.tableName0D;
                    }
                }
                else if (obj.isTable1D)
                {
                    @object.Type      = eTypeObjectStream.Table;
                    @object.TableName = obj.tableName1D;
                }
                else if (obj.isTable5D)
                {
                    @object.Type      = eTypeObjectStream.Table1D2D;
                    @object.TableName = obj.tableName5D;
                }
                else if (obj.isAqustion)
                {
                    @object.Type        = eTypeObjectStream.Acquisition;
                    @object.Acquisition = new AcquisitionObject(obj.sequenceAcquation, i);
                }
                else if (obj.fileAsynchronus != null && obj.dataString == "@AS")
                {
                    @object.Type        = eTypeObjectStream.AsynchronousStart;
                    @object.Asynchronus = new AsynchronusObject(obj.fileAsynchronus);
                }
                else if (sequenceRow.defalut != obj.dataString)
                {
                    @object.LoadText(obj.dataString);
                }

                ((ObjectCollection)this[eTypeObjectCollection._1D]).Add(@object);

                if (_collectionHash.Count == 1)
                {
                    continue;
                }

                @object = (ObjectSequence)GetNewObject(eTypeObjectCollection._2D, i - 1);
                if (obj.isTable2D)
                {
                    @object.Type      = eTypeObjectStream.Table;
                    @object.TableName = obj.tableName2D;
                }
                ((ObjectCollection)this[eTypeObjectCollection._2D]).Add(@object);

                @object = (ObjectSequence)GetNewObject(eTypeObjectCollection._3D, i - 1);
                if (obj.isTable3D)
                {
                    @object.Type      = eTypeObjectStream.Table;
                    @object.TableName = obj.tableName3D;
                }
                ((ObjectCollection)this[eTypeObjectCollection._3D]).Add(@object);

                @object = (ObjectSequence)GetNewObject(eTypeObjectCollection._4D, i - 1);
                if (obj.isTable4D)
                {
                    @object.Type      = eTypeObjectStream.Table;
                    @object.TableName = obj.tableName4D;
                }
                ((ObjectCollection)this[eTypeObjectCollection._4D]).Add(@object);
            }
        }