Последовательный порт Ascii C#
Я разрабатываю инструмент настройки на языке C#. Я новичок в C#.Я использую winforms для своего приложения.
У меня есть последовательно подключенное устройство, которое отправляет ответ на определенную команду ascii. До сих пор я могу создавать и открывать порт, способный получить ответ по умолчанию в списке. Но я не могу писать в последовательном устройстве в ascii. Я попробовал посмотреть на пост "как я могу написать ascii в последовательном порту", но еще больше запутался.
Может ли кто-нибудь помочь в облегчении синтаксиса или процесса.
Пример: одна из команд - "SMS0", это 4-байтовая команда с 0 в конце.
Любая помощь будет оценена по достоинству.
Что я уже пробовал:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; using System.IO; namespace SerialGW { public partial class Form1 : Form { //string command; public Form1() { InitializeComponent(); getAvailablrPorts(); } void getAvailablrPorts() { String[] ports = SerialPort.GetPortNames(); comboBox1.Items.AddRange(ports); } private void label1_Click(object sender, EventArgs e) { } private void progressBar1_Click(object sender, EventArgs e) { } private void button3_Click(object sender, EventArgs e) { try { if (comboBox1.Text == "" || comboBox2.Text == "") { textBox2.Text = "Please select port settings"; } else { serialPort1.PortName = comboBox1.Text; serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text); serialPort1.Open(); progressBar1.Value = 100; button1.Enabled = true; button2.Enabled = true; textBox1.Enabled = true; button3.Enabled = false; button4.Enabled = true; } } catch(UnauthorizedAccessException) { textBox2.Text = "Unauthorised access"; } } private void button4_Click(object sender, EventArgs e) { serialPort1.Close(); progressBar1.Value = 0; button1.Enabled = false; button2.Enabled = false; button4.Enabled = false; button3.Enabled = true; textBox1.Enabled = false; } private void button1_Click(object sender, EventArgs e) { serialPort1.WriteLine(textBox1.Text); } private void button2_Click(object sender, EventArgs e) { try { //textBox2.Text = serialPort1.ReadExisting(); listBox1.Items.Add(serialPort1.ReadExisting()); //textBox2.Text = serialPort1.ReadLine(); It hangs when we use ReadLines() } catch (TimeoutException) { textBox2.Text = "Timeout Exception"; } }