Esempio n. 1
0
        public void OnReceivedData(object sender, GARANT_EEG_DATA eegData)
        {
            if (m_GarantEEG == null || !m_GarantEEG.IsStarted())
            {
                return;
            }

            if (eegData.DataRecordsCount > 0)
            {
                m_Mutex.WaitOne();

                m_BufferData.Add(eegData);

                m_Mutex.ReleaseMutex();
            }
        }
Esempio n. 2
0
        public void OnUpdateDataTimer(object sender, EventArgs e)
        {
            m_Mutex.WaitOne();

            //Debug.WriteLine("OnUpdateDataTimer {0}", m_BufferData.Count);

            if (m_BufferData.Count > 0)
            {
                for (int di = 0; di < m_BufferData.Count; di++)
                {
                    GARANT_EEG_DATA eegData = m_BufferData[di];

                    bool useFilters  = (ConfigManager.Config.UseFilters && m_GarantEEG.GetFiltersCount() != 0);
                    int  seriesIndex = 0;

                    for (int i = 0; i < 8; i++)
                    {
                        if (!ConfigManager.Config.CurveIsChecked[i] || chart1.Series.Count <= seriesIndex)
                        {
                            continue;
                        }

                        List <double> points = new List <double>();

                        for (int ci = 0; ci < chart1.Series[seriesIndex].Points.Count; ci++)
                        {
                            points.AddRange(chart1.Series[seriesIndex].Points[ci].YValues.ToList <double>()); //.Add(chart1.Series[i].Points[ci].YValues.ToList<double>());
                        }
                        chart1.Series[seriesIndex].Points.Clear();

                        for (int j = 0; j < eegData.DataRecordsCount; j++)
                        {
                            double value = (useFilters ? eegData.FilteredChannelsData[j].Value[i] : eegData.RawChannelsData[j].Value[i]) * 1000.0;
                            //double value = eegData.RawChannelsData[j].Value[i] + ((i - 4.0) * 1.0);
                            //double value = eegData.RawChannelsData[j].Value[i] + ((i - 4) * 0.001);

                            points.Add(value);
                            //chart1.Series[i].Points.Add(value);
                        }

                        while (points.Count > 2000)
                        {
                            points.RemoveAt(0);
                        }

                        for (int ci = 0; ci < points.Count; ci++)
                        {
                            chart1.Series[seriesIndex].Points.Add(points[ci]);
                        }

                        seriesIndex++;
                    }

                    for (int i = 0; i < 8; i++)
                    {
                        m_RX[i] = eegData.ResistanceData.Value[i];
                    }

                    m_RX[8] = eegData.ResistanceData.Ref;
                    m_RX[9] = eegData.ResistanceData.Ground;
                }
                //FIXME

                /*for (int i = 0; i < 8; i++)
                 * {
                 *  std::vector<float> y;
                 *
                 *  for (int j = 0; j < eegData.DataRecordsCount; j++)
                 *  {
                 *      double value = (useFilters ? eegData.FilteredChannelsData[j].Value[i] : eegData.RawChannelsData[j].Value[i]) * 1000.0;
                 *      //double value = eegData.RawChannelsData[j].Value[i] + ((i - 4.0) * 1.0);
                 *      //double value = eegData.RawChannelsData[j].Value[i] + ((i - 4) * 0.001);
                 *
                 *      y.push_back(value);
                 *  }
                 *
                 *  ui->qwt_Chart->appendPoints(QString("EEG%1").arg(i + 1), y);
                 * }
                 *
                 * ui->qwt_Chart->updateView();
                 *
                 * ui->pb_Battery->setValue(m_Eeg->GetBatteryStatus());*/

                m_BufferData.Clear();
            }

            if (m_GarantEEG != null)
            {
                pb_Progress.Value = m_GarantEEG.GetBatteryStatus();
                label1.Text       = string.Format("{0}% battery", m_GarantEEG.GetBatteryStatus());
            }

            m_Mutex.ReleaseMutex();
        }