Я делаю простую программу для отправки информации с ПК на COM-порт. До сих пор я установил соединение между ПК и COM-портом, и я могу отправить информацию и посмотреть, что получил порт, но у меня есть две проблемы, во-первых, когда я отправляю информацию на фактический COM-порт (COM-порт) к USB-кабелю сделана эхосигнал) я первый раз всю информацию получаю. Тогда это становится случайным, иногда снова, всем, что я написал, иногда только первым символом. И иногда ничего. Я предполагаю, что это происходит, потому что я не ставил тайм-ауты или что-то вообще. Помочь с этим было бы неплохо.
Но настоящая проблема, с которой я столкнулся, заключается в том, что я хочу, чтобы вся информация, отправляемая из текстового поля, отправлялась в коде ASCII, поскольку я делаю программу для связи с ПЛК.
Вот код:
public Form1()
{
InitializeComponent();
}
//BTN new serial port creation - port taken from comport text box
private void button1_Click(object sender, EventArgs e)
{
System.IO.Ports.SerialPort sport = new System.IO.Ports.SerialPort(comport.Text, 9600, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One);
//opening the com port and sending the information from textbox1
try
{
sport.Open();
sport.Write(textBox1.Text);
}
//if there is an error - show error message
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
//Adding timestamp to received info
DateTime dt = DateTime.Now;
String dtn = dt.ToShortTimeString();
//reading the information form the com port
textBox2.AppendText("[" + dtn + "] " + "Recieved: " + sport.ReadExisting() + "\n");
//closing the port
sport.Close();
}