Esempio n. 1
0
        private void AnalogInCallback(IAsyncResult ar)
        {
            try
            {
                if (runningTask != null && runningTask == ar.AsyncState)
                {
                    // Read the available data from the channels
                    data = analogInReader.EndReadWaveform(ar);

                    //package it into a form LSL likes (samples by channel double[,])
                    var results = data.Select(analogWaveform => analogWaveform.GetRawData()).ToList();
                    var arr = new double[results[0].Length,results.Count];
                    for (int i = 0; i < results.Count; i++)
                    {
                        for (int j = 0; j < results[0].Length; j++)
                        {
                            arr[j, i] = results[i][j];
                        }
                    }
                    //stuff it out.
                    Outlet.push_chunk(arr);

                    // Plot your data here
                    dataToDataTable(data, ref dataTable);

                    analogInReader.BeginMemoryOptimizedReadWaveform(Convert.ToInt32(samplesPerChannelNumeric.Value),
                        analogCallback, myTask, data);
                }
            }
            catch (DaqException exception)
            {
                // Display Errors
                MessageBox.Show(exception.Message);
                runningTask = null;
                myTask.Dispose();
                stopButton.Enabled = false;
                startButton.Enabled = true;
            }
        }