Как добавить данные Rx на textBox? - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь сделать интерфейс для мониторинга последовательного порта.Я использую визуальные формы.Итак, я создал комбинированный список для выбора PortCOM, TextBox для отправки данных на последовательный порт и TextBoxReceber для получения последовательных данных.Я пытаюсь распечатать данные, полученные в TextBoxReceber, я использую AppendText, но у меня нет успеха.Кто-нибудь может мне помочь?

Мой Form1.cs:

namespace ConsoleESP
{
  public partial class Form1 : Form
{
    string RxString = "";
    public Form1()
    {
        InitializeComponent();
        timerCOM.Enabled = true;
        atualizaCOMs();

    }

    private void atualizaCOMs()
    {
        int i = 0;
        bool quantDif = false;

        if (comboBox1.Items.Count == SerialPort.GetPortNames().Length)
        {
            foreach (string s in SerialPort.GetPortNames())
            {
                if (comboBox1.Items[i++].Equals(s) == false)
                {
                    quantDif = true;
                }
            }
        }
        else quantDif = true;

        if (quantDif == false) return;

        comboBox1.Items.Clear();

        foreach(string s in SerialPort.GetPortNames())
        {
            comboBox1.Items.Add(s);
        }
        comboBox1.SelectedIndex = 0;
    }

    private void timerCOM_Tick(object sender, EventArgs e)
    {
        atualizaCOMs();
    }

    private void btConnect_Click(object sender, EventArgs e)
    {
        if(serialPort1.IsOpen == false)
        {
            try
            {
                serialPort1.PortName = comboBox1.Items[comboBox1.SelectedIndex].ToString();
                serialPort1.Open();
            }
            catch
            {
                return;
            }
            if (serialPort1.IsOpen)
            {
                btConnect.Text = "Desconectar";
                comboBox1.Enabled = false;
            }
        }
        else
        {
            try
            {
                serialPort1.Close();
                comboBox1.Enabled = true;
                btConnect.Text = "Conectar";
            }
            catch
            {
                return;
            }
        }
    }

    private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
        if (serialPort1.IsOpen == true) serialPort1.Close();
    }

    private void btEnviar_Click(object sender, EventArgs e)
    {
        if (serialPort1.IsOpen == true)
        serialPort1.Write(textBoxEnviar.Text);
    }

    private delegate void RefreshTextBox();

    private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
        RxString = serialPort1.ReadExisting();
        this.Invoke(new EventHandler(TrataDadoRecebido));

    }

    private void TrataDadoRecebido(object sender, EventArgs e)
    {
        textBoxReceber.AppendText(RxString);

    }


  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...