Пример #1
0
 public void Reset()
 {
     IterationCount  = 0;
     State           = GestureState.None;
     Timestamp       = 0;
     StartPosition   = RPosition.None;
     CurrentPosition = RPosition.None;
 }
Пример #2
0
 public void StopRecording()
 {
     EIT?.CompleteAdding();
     ECG?.CompleteAdding();
     SystemEvents?.StopRecording();
     RPosition?.StopRecording();
     Tags?.StopRecording();
     RecordingInProgress = false;
 }
Пример #3
0
 public Task StartLogging(AcquisitionProtocolParameters acquisitionProtocol)
 {
     EIT = new EIT(RecordNumber++, EITDefaultChunkSize, acquisitionProtocol.AsJson(), fileId, groupEIT, Logger);
     //var acquisitionInformation = new AcquisitionInformation(acquisitionProtocol, fileId, groupEIT, Logger);
     //acquisitionInformation.FlushDataAndCloseObject();
     ECG = new ECG(fileId, groupRoot, ECGDefaultChunkSize, (int)acquisitionProtocol.ScanDescription.EcgParams.SampleRate, Logger);
     SystemEvents.StartLogging();
     RPosition.StartLogging();
     Tags.StartLogging();
     return(Task.CompletedTask);
 }
Пример #4
0
        private async Task CloseHandles()
        {
            ProcedureInformation.FlushDataAndCloseObject();
            SystemInformation.FlushDataAndCloseObject();
            CalibrationGroup.FlushDataAndCloseObject();
            //wait for writing all data before resetting
            if (EIT != null)
            {
                await EIT.WaitForDataWritten();

                EIT.Dispose();
            }

            if (ECG != null)
            {
                await ECG.WaitForDataWritten();

                ECG.Dispose();
            }
            if (SystemEvents != null)
            {
                await SystemEvents.WaitForDataWritten();

                SystemEvents.Dispose();
            }

            if (RPosition != null)
            {
                await RPosition.WaitForDataWritten();

                RPosition.Dispose();
            }
            if (Tags != null)
            {
                await Tags.WaitForDataWritten();

                Tags.Dispose();
            }
            if (UserEventsGroup != null)
            {
                await UserEventsGroup.WaitForDataWritten();

                UserEventsGroup.Dispose();
            }
            await Task.CompletedTask;
        }
Пример #5
0
 public void UpdatePosition(RPosition position, long timestamp)
 {
     if (CurrentPosition != position)
     {
         if (position == RPosition.Start)
         {
             if (State != GestureState.InProgress)
             {
                 State          = GestureState.InProgress;
                 IterationCount = 0;
                 StartPosition  = position;
             }
         }
         IterationCount++;
         CurrentPosition = position;
         Timestamp       = timestamp;
     }
 }
Пример #6
0
 public void AppendRPosition(RPositionsMessagePack rPositions) => RPosition.Enqueue(rPositions);