Example #1
0
 private void OnAccelerometerArrived(AccelerometerFrameArrivedEventArgs e)
 {
     AccelerometerFrameArrived?.Invoke(this, e);
 }
Example #2
0
        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);
                        }
                    }
                }
            }
        }