/// <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); }
/// <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); } }
/// <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; } }