Как в С# прочитанные данные с COM порта вывести в textBox?

Пишу небольшую утилитку для работы с com-портами активного оборудования. Никак не получается выводить логи в textBox.5c2f279b3b3aa423193738.png
namespace Proshivator
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string[] ports = SerialPort.GetPortNames();
            comboBox1.Items.AddRange(ports);
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {

            try
            {
                serialPort1.PortName = comboBox1.Text;
                serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text);
                serialPort1.DataBits = 8;
                serialPort1.StopBits = StopBits.One;
                serialPort1.Parity = Parity.None;
                serialPort1.Handshake = Handshake.RequestToSend;

                serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1.DataReceived);

                serialPort1.Open();
                progressBar1.Value = 100;

                if (serialPort1.IsOpen)
                {
                    richTextBox1.Text = "Порт открыт\r\nСоединение...";
                    
                }
                
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message, "Ошибка COM порта. Проверьте подключение", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            serialPort1.ReadTimeout = 500;
            serialPort1.WriteTimeout = 500;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen)
            {
                serialPort1.Close();
                progressBar1.Value = 0;
                richTextBox1.Text = "Порт закрыт";
            }
            
                
        }

        private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            string recievedData = serialPort1.ReadExisting();
         
        }
    }
}
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
@leobatura Автор вопроса
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            dataIN = serialPort1.ReadExisting();
            this.Invoke(new EventHandler(ShowData));
        }

        private void ShowData(object sender, EventArgs e)
        {
            richTextBox1.Text += dataIN;
        }
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
ИММА Москва
До 120 000 руб.
PHYGITALISM Москва
от 70 000 руб.
Кнопка Екатеринбург
До 150 000 руб.
19 марта 2019, в 17:34
5000 руб./за проект
19 марта 2019, в 17:24
1000 руб./за проект
19 марта 2019, в 17:18
35000 руб./за проект