.NET 4.x Работа с считывателем PERCo-IR05 - Выполнить считывание карты через ReadLine - C#
Формулировка задачи:
Здравствуйте, не удаётся выполнить считывание карты через ReadLine(), плюс временами не работает порт, вот код ;
SerialPort mySerialPort = new SerialPort("COM3", 9600); private void button1_Click(object sender, EventArgs e) { try { var data_for_controller = new byte[7] { 242, 255, 3, 1, 0, 26, 24 }; var data_for_controller1 = new byte[7] { 242, 255, 1, 2, 0, 26, 24 }; if (mySerialPort.IsOpen == false) { mySerialPort.Open(); mySerialPort.Write(data_for_controller, 0, 7); mySerialPort.Write(data_for_controller, 0, 7); int byteRecieved = mySerialPort.BytesToRead; byte[] messByte = new byte[byteRecieved]; //считывание данных string k=mySerialPort.ReadLine(); mySerialPort.DiscardInBuffer(); mySerialPort.Close(); } } catch { } }
Решение задачи: «.NET 4.x Работа с считывателем PERCo-IR05 - Выполнить считывание карты через ReadLine»
textual
Листинг программы
var data_for_controller = new byte[7] { 242, 255, 3, 1, 0, 26, 24 }; var data_for_controller1 = new byte[7] { 242, 255, 1, 2, 0, 26, 24 }; mySerialPort.Open(); mySerialPort.Write(data_for_controller, 0, 7); // 1- запрос Thread.Sleep(500); int byteRecieved = mySerialPort.BytesToRead; byte[] messByte = new byte[byteRecieved]; k = ""; for (int i = 0; i < byteRecieved; i++) // первое чтение { messByte[i] = (byte)mySerialPort.ReadByte(); k += messByte[i].ToString(); } textBox1.Text = k; mySerialPort.DiscardInBuffer(); // очищаем буфер mySerialPort.Write(data_for_controller1, 0, 7); //2 - запрос Thread.Sleep(500); byteRecieved = mySerialPort.BytesToRead; messByte = new byte[byteRecieved]; k = ""; for (int i = 0; i < byteRecieved; i++) // второе чтение { messByte[i] = (byte)mySerialPort.ReadByte(); k += messByte[i].ToString(); } textBox1.Text += k; mySerialPort.DiscardInBuffer(); // очищаем буфер mySerialPort.Close();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д