#region Configurar puerto serie.
private void SeleccionCambiada(object sender, EventArgs e)
{
// Deberemos añadir un control de excepciones si queremos capturar posibles errores
// Para reasignar valores... primero cerrar el puerto
serialPort1.Close();
// Asignar los nuevos Settings
serialPort1.BaudRate = Convert.ToInt32(comboBox_bits_por_segundo.Text);
try
{
serialPort1.DataBits = Convert.ToInt16(comboBox_bits_de_datos.Text);
}
catch (FormatException)
{
//label_info.Visible = true;
//label_info.Text = "No se usa este parámetro.";
}
serialPort1.Parity = (Parity)Enum.Parse(typeof(Parity), comboBox_paridad.Text);
serialPort1.Handshake = (Handshake)Enum.Parse(typeof(Handshake), comboBox_control_de_flujo.Text);
try
{
serialPort1.StopBits = (StopBits)Enum.Parse(typeof(StopBits), comboBox_bits_de_parada.Text);
}
catch (ArgumentOutOfRangeException)
{
// No se puede poner None.
//label_info.Visible = true;
//label_info.Text = "Inválido al introducir el valor 'None'.";
}
serialPort1.Open();
}
#endregion
private void comboBox_puerto_com_SelectedIndexChanged(object sender, EventArgs e)
{
serialPort1.Close();
serialPort1.PortName = comboBox_puerto_com.SelectedItem.ToString();
serialPort1.Open();
}
private void Form1_Load(object sender, EventArgs e)
{
// Asignar las Velocidades seleccionables al Combo
object[] Velocidades = { 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 };
comboBox_bits_por_segundo.Items.AddRange(Velocidades);
object[] BitData = { 8, 7, 6 };
comboBox_bits_de_datos.Items.AddRange(BitData);
// Asignar Paridades Seleccionables desde la enumeracion
foreach (string s in Enum.GetNames(typeof(Parity)))
{
comboBox_paridad.Items.Add(s);
}
// Asignar Bits de datos seleccionables desde la enumeración.
foreach (string b in Enum.GetNames(typeof(SerialData)))
{
comboBox_bits_de_datos.Items.Add(b);
}
// Asignar Paridades Seleccionables desde la enumeracion
foreach (string p in Enum.GetNames(typeof(StopBits)))
{
comboBox_bits_de_parada.Items.Add(p);
}
// Asignar control de flujo Seleccionables desde la enumeracion.
foreach (string c in Enum.GetNames(typeof(Handshake)))
{
comboBox_control_de_flujo.Items.Add(c);
}
// GetPortNames, nos devuelve un array con los nombres
// de los puertos instalados en nuestro equipo.
String[] Ports = SerialPort.GetPortNames();
comboBox_puerto_com.Items.AddRange(Ports);
// Seleccionar los items por defecto
comboBox_bits_por_segundo.SelectedIndex = 4; // Empieza con el 9600 como predeterminado.
comboBox_bits_de_datos.SelectedIndex = 0; // 8.
comboBox_paridad.SelectedIndex = 0; // None o ninguno.
comboBox_bits_de_parada.SelectedIndex = 2; // One o 1.
comboBox_control_de_flujo.SelectedIndex = 0; // None o ninguno.
comboBox_puerto_com.SelectedIndex = 0;
// Abrir el puerto serie con los items por defecto
SeleccionCambiada(sender, e);
// Asignar la funcion a ejecutar por disparo de evento al cambio de indice en el combobox
comboBox_bits_por_segundo.SelectedIndexChanged += new System.EventHandler(SeleccionCambiada);
comboBox_bits_de_datos.SelectedIndexChanged += new System.EventHandler(SeleccionCambiada);
comboBox_paridad.SelectedIndexChanged += new System.EventHandler(SeleccionCambiada);
comboBox_bits_de_parada.SelectedIndexChanged += new System.EventHandler(SeleccionCambiada);
comboBox_control_de_flujo.SelectedIndexChanged += new System.EventHandler(SeleccionCambiada);
comboBox_puerto_com.SelectedIndexChanged += new System.EventHandler(SeleccionCambiada);
// Cargar los datos del XML.
Cargar_XML();
}