private void OnAccelerometerArrived(AccelerometerFrameArrivedEventArgs e) { AccelerometerFrameArrived?.Invoke(this, e); }
private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { if (sender is SerialPort port) { byte[] buffer = new byte[port.BytesToRead]; port.Read(buffer, 0, buffer.Length); var time = _dataAccessFacade.GetSceneInUseAccess().GetLocation(); if (!time.HasValue) { return; } foreach (var bufferData in buffer) { double[] data = _interpretStream.interpretBinaryStream(bufferData); if (!ReferenceEquals(null, data)) { if (data.Length >= 9) { double[] dataToGraph = new double[9]; dataToGraph[0] = data[0]; var eegArgs = new EegFrameArrivedEventArgs() { Time = time.Value, Person = _person, Channels = new List <EegChannel>() }; for (int j = 1; j < 9; j++) { double value = _filter.FiltersSelect((FilterType)(OpenBCISettings.Instance.Filter.Value), (NotchType)(OpenBCISettings.Instance.Notch.Value), data[j], j - 1); dataToGraph[j] = value; eegArgs.Channels.Add(new EegChannel() { Filter = FilterType.None, Notch = (NotchType)OpenBCISettings.Instance.Notch.Value, Position = _positions[j - 1] ?? "", Value = value }); } GraphTab.Enqueue(dataToGraph); OnEegFrameArrived(eegArgs); } if (data.Length == 12 && data[9] != 0 && data[10] != 0 && data[11] != 0) { var accArgs = new AccelerometerFrameArrivedEventArgs() { Place = "Head", // Time = , XAxis = data[9], YAxis = data[10], ZAxis = data[11] }; OnAccelerometerArrived(accArgs); } var actualTime = _dataAccessFacade.GetSceneInUseAccess().GetLocation(); if (actualTime.HasValue) { _filemanage?.WriteFile(actualTime.Value, data); } } } } }