예제 #1
0
        // Finalitza l'estudi
        private void botoFinalitza_Click(object sender, EventArgs e)
        {
            _estudi_iniciat = false;

            botoFinalitza.Enabled = false;
            botoInicia.Enabled    = true;
            botoAnula.Enabled     = false;
            _eventFinalitzaEstudi.Invoke("Es finalitza l'estudi.");

            // Carregar el resum estadístic a la BD
            SqliteDataAccess.desaValorsCardiograma_BD((int)_minim_cardio_actual, (int)_maxim_cardio_actual, _mitjana_cardio, _sd_cardio);
            SqliteDataAccess.desaValorsMiograma_BD((int)_minim_mio_actual, (int)_maxim_mio_actual, _mitjana_mio, _sd_mio);
            SqliteDataAccess.desaValorsRG_BD((int)_minim_rg_actual, (int)_maxim_rg_actual, _mitjana_rg, _sd_rg);

            // S'escriu "-" al resum estadístic de cada sensor instantàniament
            ocultaValors();

            // Es manté el valor "-" per molt que l'Arduino enviï més dades
            Connexio_Singleton.getInstance().nouEventCardiograma       += mostraLecturesArduinoCardio;
            Connexio_Singleton.getInstance().nouEventMiograma          += mostraLecturesArduinoMio;
            Connexio_Singleton.getInstance().nouEventRespostaGalvanica += mostraLecturesArduinoRG;

            _frmF = new Form_FinalitzaEstudi();
            _frmF.Show();
        }
예제 #2
0
        private void construirRespostaGalvanica()
        {
            var mapper = Mappers.Xy <RespostaGalvanica>()
                         .X(model => model.DateTime.Ticks) //use DateTime.Ticks as X
                         .Y(model => model.Value);         //use the value property as Y

            //lets save the mapper globally.
            Charting.For <RespostaGalvanica>(mapper);

            //the dadesRG property will store our values array
            _dadesRG = new ChartValues <RespostaGalvanica>();
            respostaGalvanica.Series = new SeriesCollection
            {
                new LineSeries
                {
                    Values            = _dadesRG,
                    PointGeometrySize = 18,
                    StrokeThickness   = 4
                }
            };
            respostaGalvanica.AxisX.Add(new Axis
            {
                DisableAnimations = true,
                LabelFormatter    = value => new System.DateTime((long)Math.Abs(value)).ToString("mm:ss"),
                Separator         = new Separator
                {
                    Step = TimeSpan.FromSeconds(1).Ticks
                }
            });

            // S'enllaça l'event de Connexio_Singleton amb LivaCharts_UserControl. S'ha de recollir l'event riseDada
            Connexio_Singleton.getInstance().nouEventRespostaGalvanica += mostraLecturesArduinoRG;
        }
예제 #3
0
        public static Connexio_Singleton getInstance()
        {
            if (_instance == null)
            {
                _instance = new Connexio_Singleton();
            }

            return(_instance);
        }
예제 #4
0
 private void checkBox1_CheckedChanged(object sender, EventArgs e)
 {
     if (Connexio_Singleton.getInstance().portObert())
     {
         if (checkBox1.Checked)
         {
             Connexio_Singleton.getInstance().writeCommand("#LED_ON\n");
         }
         else
         {
             Connexio_Singleton.getInstance().writeCommand("#LED_OFF\n");
         }
     }
 }
예제 #5
0
 public void BotoEnvia_Click(object sender, EventArgs e)
 {
     if (Connexio_Singleton.getInstance().portObert())
     {
         if (NotesTerapeuta.Text != "")
         {
             TEXT_ENVIAR = "(" + _minutsEstimul + ":" + _segonsEstimul + ")   " + "Nota: " + NotesTerapeuta.Text;
             backgroundWorker1.RunWorkerAsync();
         }
         NotesTerapeuta.Text = "";
     }
     else
     {
         MessageBox.Show("Error: Arduino no connectat.");
     }
 }
예제 #6
0
        public Form2(string rutaForm1)
        {
            InitializeComponent();
            RUTA = rutaForm1;
            WindowsMediaPlayer2.uiMode = "none"; // Amaga els controls del WindowsMediaPlayer

            // Inicialitza els valors

            lecturaCardio.Text = "-";
            lecturaMio.Text    = "-";
            lecturaRG.Text     = "-";

            Connexio_Singleton.getInstance().nouEventCardiograma       += MostraValorsArduino_Cardio;
            Connexio_Singleton.getInstance().nouEventMiograma          += MostraValorsArduino_Mio;
            Connexio_Singleton.getInstance().nouEventRespostaGalvanica += MostraValorsArduino_RG;
        }
예제 #7
0
        public Form1()
        {
            InitializeComponent();

            PORTS = SerialPort.GetPortNames();

            foreach (string PORT in PORTS)
            {
                comboBox1.Items.Add(PORT); // Es llisten els ports COM disponibles
                Console.WriteLine(PORT);
                if (PORTS[0] != null)
                {
                    comboBox1.SelectedItem = PORTS[0];
                }
            }

            // Connexió PC - Arduino automàtica
            if (comboBox1.Items.Count > 0) // Si hi ha algun port disponible, que agafi el primer
            {
                comboBox1.SelectedIndex = 0;
            }

            if (!Connexio_Singleton.getInstance().portObert())
            {
                FRM_e = new Form_ErrorPortCOM();
                FRM_e.Show();
                WindowState = FormWindowState.Minimized; // Perquè només es vegi el missatge d'error
            }
            //MessageBox.Show("No s'ha pogut establir la connexió amb l'Arduino.","Error",MessageBoxButtons.OK,MessageBoxIcon.Error);

            backgroundWorker1.WorkerSupportsCancellation = true;

            // Durada de la sessió i minut estímul:

            _minutsSessio  = 0;
            _segonsSessio  = 0;
            _minutsEstimul = 0;
            _segonsEstimul = 0;
            mostraDuradaSessio();
            timer_sessio.Interval  = 1000; // 1 tick cada segon
            timer_estimul.Interval = 1000;
            timer_sessio.Enabled   = true;

            grafiques_UserControl1._eventIniciaEstudi    += setTEXT_ENVIAR;
            grafiques_UserControl1._eventFinalitzaEstudi += setTEXT_ENVIAR;
            grafiques_UserControl1._eventCancelaEstudi   += setTEXT_ENVIAR;
        }
예제 #8
0
        // Es cancel·la l'estudi
        private void botoAnula_Click(object sender, EventArgs e)
        {
            _estudi_iniciat = false;

            botoAnula.Enabled     = false;
            botoInicia.Enabled    = true;
            botoFinalitza.Enabled = false;
            _eventCancelaEstudi.Invoke("Es cancel·la l'estudi.");

            // S'escriu "-" al resum estadístic de cada sensor instantàniament
            ocultaValors();

            // Es manté el valor "-" per molt que l'Arduino enviï més dades
            Connexio_Singleton.getInstance().nouEventCardiograma       += mostraLecturesArduinoCardio;
            Connexio_Singleton.getInstance().nouEventMiograma          += mostraLecturesArduinoMio;
            Connexio_Singleton.getInstance().nouEventRespostaGalvanica += mostraLecturesArduinoRG;
        }
예제 #9
0
        public void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            if (Connexio_Singleton.getInstance().portObert())
            {
                QuadernBitacoles_richTextBox.Invoke(new MethodInvoker(delegate()
                {
                    QuadernBitacoles_richTextBox.AppendText(DateTime.Now.ToLongTimeString() + "    " + TEXT_ENVIAR + Environment.NewLine);
                    PintarNotesDeBlau();
                }));

                //QuadernModel q = new QuadernModel();
                //q.Missatge = DateTime.Now.ToLongTimeString() + "    " + TEXT_ENVIAR;
                //SqliteDataAccess.DesaQuadern(q);
            }
            else
            {
                MessageBox.Show("Error: Arduino no connectat.");
            }
            backgroundWorker1.CancelAsync();
        }
예제 #10
0
        // Inicia l'estudi
        public void botoInicia_Click(object sender, EventArgs e)
        {
            _estudi_iniciat = true;


            botoInicia.Enabled    = false;
            botoFinalitza.Enabled = true;
            botoAnula.Enabled     = true;

            if (_eventIniciaEstudi != null) // És null quan no hi ha estímul seleccionat
            {
                _eventIniciaEstudi.Invoke("S'inicia l'estudi.");
            }



            Connexio_Singleton.getInstance().nouEventCardiograma       += mostraValorsArduinoCardio;
            Connexio_Singleton.getInstance().nouEventMiograma          += mostraValorsArduinoMio;
            Connexio_Singleton.getInstance().nouEventRespostaGalvanica += mostraValorsArduinoRG;
        }
예제 #11
0
 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
     Connexio_Singleton.getInstance().ConnectarArduino(comboBox1.Items[comboBox1.SelectedIndex].ToString());
 }