Что не так? Com порты - C#

Узнай цену своей работы

Формулировка задачи:

Для начала хочу, чтобы байты просто отправлял по ком порту ( отправляться должны на электронные часы, подключённые к компу). Кто разбирается, дайте как можно больше инфы и скажите как просматривать полученные байты через процедуру private void button2_Click
Листинг программы
  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. string[] portnames = SerialPort.GetPortNames();
  4. SerialPort port = new SerialPort( "COM1" , 9600, Parity.None, 8, StopBits.One);
  5. port.Open();
  6. byte[] data = { 0, 1, 2, 1, 0 };
  7. port.Write(data, 0, data.Length);
  8. port.Close();
  9. }
  10. private void button2_Click(object sender, EventArgs e)
  11. {
  12. string[] portnames = SerialPort.GetPortNames();
  13. SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
  14. port.Open();
  15. byte[] data = new byte[256];
  16. port.Read(data, 0, data.Length);
  17. int databyte = port.ReadByte();
  18. port.Close();
  19. }

Решение задачи: «Что не так? Com порты»

textual
Листинг программы
  1. void OnDataReceived(object sender, SerialDataReceivedEventArgs e)
  2. {
  3.     if (e.EventType == SerialData.Eof)
  4.         return;
  5.  
  6.     var port = sender as SerialPort;
  7.     var bytes = new byte[8];  // Вместо 8 — размер входящего сообщения в байтах.
  8.  
  9.     int read = 0;
  10.     do read = port.Read(bytes, read, bytes.Length - read);
  11.     while (read < bytes.Length);
  12.  
  13.     label.Text = Encoding.ASCII.GetString(bytes); // Вместо ASCII — кодировка, в которой отсылает данные устройство.
  14. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут