none
Poner números arriba en cada barra. RRS feed

  • Pregunta

  • Hola:

    Como vez en la imagen de arriba, tube que poner dos label llamado Entrada Analógica A1 y A2, cuyo valor en este caso viene del puerto serie y es 140 y 119, va variando.

    ¿Cómo puedo poner los valores justo arriba en cada barra?

    Como muestra un ejemplo que encontré en Internet abajo.

    Código que he hecho hasta ahora es este:

    using System;
    using System.IO.Ports;
    using System.Windows.Forms;
    
    namespace Dos_potenciometro_Arduino_03
    {
        public partial class Form1 : Form
        {
            // Utilizaremos un string como buffer de recepción.
            string Recibidos;
    
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                // Añado los puertos disponible en el PC con SerialPort.GetPortNames() al comboBox_Puerto.
                try
                {
                    comboBox_Puerto.DataSource = SerialPort.GetPortNames();
                }
    
                catch
                {
                    MessageBox.Show("No encuentra ningún puerto físico ni virtual.", "Aviso:",
                        MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
    
                // Añado los puertos disponible en el PC con SerialPort.GetPortNames() al comboBox_Puerto.
                comboBox_Puerto.DataSource = SerialPort.GetPortNames();
    
                // // Añade puertos disponibles físicos  y virtuales.
                serialPort1.PortName = comboBox_Puerto.Text.ToString();
    
                serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
            }
    
            private void button_Conectar_Click(object sender, EventArgs e)
            {
                try
                {
                    serialPort1.PortName = comboBox_Puerto.Text.ToString(); // Puerto seleccionado previamente.
                    serialPort1.BaudRate = Convert.ToInt32(comboBox_Baudios.Text); // Baudios.
                    serialPort1.Open(); // Abrir puerto.
                    comboBox_Puerto.Enabled = false;
                    comboBox_Baudios.Enabled = false;
                    button_Conectar.Enabled = false;
                    button_Desconectar.Enabled = true;
    
                    // Limpiar gráfico.
                    chart1.Series["Analógico A1"].Points.Clear();
                    chart1.Series["Analógico A2"].Points.Clear();
                }
                catch
                {
                    MessageBox.Show("El puerto no existe.", "Aviso:",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
    
            private void button_Desconectar_Click(object sender, EventArgs e)
            {
                try
                {
                    serialPort1.Close(); // Cerrar puerto.
                    comboBox_Puerto.Enabled = true;
                    comboBox_Baudios.Enabled = true;
                    button_Conectar.Enabled = true;
                    button_Desconectar.Enabled = false;
                }
    
                catch (Exception error)
                {
                    MessageBox.Show(error.Message);
                }
            }
    
            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                try
                {
                    serialPort1.Close(); // Cerrar puerto.
                }
    
                catch (Exception error)
                {
                    MessageBox.Show(error.Message);
                }
            }
    
            private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {
                // Acumula los caracteres recibidos a nuestro 'buffer' (string).
                Recibidos += serialPort1.ReadExisting();
    
                // Invocar o llamar al proceso de tramas.
                Invoke(new EventHandler(Actualizar));
            }
    
            private void Actualizar(object sender, EventArgs e)
            {
                string[] datosArray = Recibidos.Split(',');
                //string[] datosArray = Recibidos.Split(char.Parse(","));
    
                if (datosArray.Length == 2)
                {
                    label_Entrada_analogica_A1.Text = "Entrada Analógica A1:" + datosArray[0];
                    label_Entrada_analogica_A2.Text = "Entrada Analógica A2:" + datosArray[1];
    
                    // Limpiar gráfico.
                    chart1.Series["Analógico A1"].Points.Clear();
                    chart1.Series["Analógico A2"].Points.Clear();
    
                    // Dibujar gráfico.
                    chart1.Series["Analógico A1"].Points.AddXY(1, datosArray[0]);
                    chart1.Series["Analógico A2"].Points.AddXY(1, datosArray[1]);
                }
    
                // Limpiar buffer.
                Recibidos = "";
            }
        }
    }


    http://electronica-pic.blogspot.com

    jueves, 25 de febrero de 2021 21:17

Respuestas

  • Hola,

    Gracias por levantar tu consulta en los foros de MSDN. Puedes revisar este video, indica hacer eso que deseas

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.


    jueves, 25 de febrero de 2021 23:31
    Moderador