Изучаю с нуля C# на Visual Studio. Написал программу для работы с микроконтроллером через COM-порт.
Суть: нажимая button или двигая trackBar (короче делая что-то в форме) в COM-порт отправляются 3 байта, микроконтроллер принимает их и выполняет свою заложенную программу, каждый байт отвечает за что-то.
Допустим при нажатии на button в COM-порт отправляются 3 байта (каждый из своей textBox1,2,3):
byte[] buffer = new byte[3];
buffer[0] = Convert.ToByte(textBox1.Text);
buffer[1] = Convert.ToByte(textBox2.Text);
buffer[2] = Convert.ToByte(textBox3.Text);
try
{
serialPort1.Write(buffer, 0, 3);
}
Программа работает идеально. Но теперь необходимо управление не с локальной машины, а по сети. Скачал исходник Клиент-Сервер, связь устанавливается, могу отправлять текстовые сообщения, через текстовые сообщения могу отправлять и свои байты, при приеме их делю и вывожу в label1,2,3
Клиент отправляет Серверу:
byte[] buffer = Encoding.Default.GetBytes(textBox1.Text + '|' + textBox2.Text + '|' + textBox3.Text);
ns.Write(buffer, 0, buffer.Length);
Сервер принимает. делит и выводит в label:
public void UpdateReceiveDisplay(string message)
{
string[] split_data = message.Split('|');
label4.Text = split_data[0];
label5.Text = split_data[1];
label6.Text = split_data[2];
}
Это работает но иногда кривовато и сдается мне что не совсем правильно.
Подскажите как лучше отправлять и получать эти данные для последующей отправки в COM?
http://youtu.be/rteBi4YWy98