Esempio n. 1
0
        /// <summary>
        /// ES: Método para generar un nuevo BaudRate a partir de los datos ingresados por el usuario.
        /// </summary>
        /// <param name="DG_BaudRates">ES: DataGrid al que se deban hacer los cambios.</param>
        /// <param name="TB_BaudRate">ES: TextBox que contiene el valor del nuevo BaudRate</param>
        public void NewBaudRate(DataGrid DG_BaudRates, TextBox TB_BaudRate)
        {
            // Validaciones
            if (TB_BaudRate.Text == "")
            {
                MessageBox.Show("Empty fields.", "Error", MessageBoxButton.OK);
                return;
            }
            int baudRateValue;

            if (!Int32.TryParse(TB_BaudRate.Text, out baudRateValue))
            {
                MessageBox.Show("Can't convert '" + TB_BaudRate.Text + "' to integer.", "Error", MessageBoxButton.OK);
                return;
            }

            // Se genera el objeto y se valida que no exista ya.
            SDA_Core.Business.BaudRates newBaudRate = new SDA_Core.Business.BaudRates(baudRateValue);
            if (baudRates.List.Exists(newBaudRate))
            {
                MessageBox.Show("Value alredy exists.", "Error", MessageBoxButton.OK);
                return;
            }

            // Se añade al dataGrid, se limpian los campos y se actualiza la tabla.
            baudRates.List.Add(newBaudRate);
            TB_BaudRate.Text = "";
            UpdateTable(DG_BaudRates);
        }
Esempio n. 2
0
 /// <summary>
 /// ES: Carga los baudRates a un comboBox.
 /// </summary>
 /// <param name="CB_BaudRates">ES: ComboBox donde se deben cargar los datos</param>
 /// <param name="data">ES: Datos a cargar.</param>
 public void LoadBaudRates(ComboBox CB_BaudRates, SDA_Core.Business.Arrays.BaudRatesArray data)
 {
     CB_BaudRates.Items.Clear();
     CB_BaudRates.DisplayMemberPath = "Value";
     CB_BaudRates.SelectedValuePath = "Value";
     for (int i = 0; i < data.List.Size; ++i)
     {
         SDA_Core.Business.BaudRates value = data.List[i];
         CB_BaudRates.Items.Add(value);
     }
 }
Esempio n. 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="DG_SerialMonitor">ES: DataGrid donde se deben realizar los cambios.</param>
        /// <param name="CB_SerialPort">ES: ComboBox donde se encuentra el serialPort seleccionado.</param>
        /// <param name="CB_BaudRate">ES: ComboBox donde se encuentran el baudRate seleccionado.</param>
        /// <param name="G_Serial">ES: Grid a bloquear cambios a las configuraciones durante la comunicación.</param>
        /// <param name="G_Sensors">ES: Grid a bloquear cambios a las configuraciones durante la comunicación.</param>
        /// <param name="B_Connect">ES: Botón a bloquear cambios a las configuraciones durante la comunicación.</param>
        public void StartConnection(DataGrid DG_SerialMonitor, ComboBox CB_SerialPort, ComboBox CB_BaudRate, Grid G_Serial, Grid G_Sensors, Button B_Connect)
        {
            // Validaciones
            if (CB_SerialPort.SelectedItem == null)
            {
                MessageBox.Show("Select a port.", "Error", MessageBoxButton.OK);
                return;
            }
            if (CB_BaudRate.SelectedItem == null)
            {
                MessageBox.Show("Select a baud rate.", "Error", MessageBoxButton.OK);
                return;
            }
            if (selectedSensors.List.Size == 0)
            {
                MessageBox.Show("Not selected sensors.", "Error", MessageBoxButton.OK);
                return;
            }
            // Se limpia el SerialMonitor
            DG_SerialMonitor.DataContext = null;

            // Se obtiene el puerto y el baudRate
            SDA_Core.Business.Port      port     = (SDA_Core.Business.Port)CB_SerialPort.SelectedItem;
            SDA_Core.Business.BaudRates baudrate = (SDA_Core.Business.BaudRates)CB_BaudRate.SelectedItem;

            // Se inicializa el objeto que recibira los datos procesados.
            communication = new SDA_Core.Business.Arrays.SensorData();
            for (int i = 0; i < selectedSensors.List.Size; ++i)
            {
                for (int j = 0; j < selectedSensors.List[i].Columns.Size; ++j)
                {
                    communication.Columns.Add(selectedSensors.List[i].Columns[j]);
                }
            }

            // Se inicializa el objeto que realizará la conexión a serial.
            serialConnection = new SerialPort(port.Name, baudrate.Value);

            // Se intenta la conexión con el arduino.
            try
            {
                // Si se abre la conexion, se bloquea el interfaz de configuraciones y en un nuevo hilo se abre el método que escuchara y procesará los datos del arduino.
                serialConnection.Open();
                if (serialConnection.IsOpen)
                {
                    Thread thread = new Thread(() => OpenSerialConnection());
                    thread.Start();
                    UpdateMonitor(DG_SerialMonitor);
                    G_Sensors.IsEnabled = false;
                    G_Serial.IsEnabled  = false;
                    B_Connect.IsEnabled = false;
                }
                else
                {
                    MessageBox.Show("Can't connect.", "Unknown error", MessageBoxButton.OK);
                    return;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Exception found", MessageBoxButton.OK);
                return;
            }
        }