Как отправить данные на Com port? - C#
Формулировка задачи:
День добрый. Нужна ваша помощь. Пытаюсь отправить данные на ком порт и вывести ответ. Отправка получается, байты увеличиваются, а вот с выводом все плохо. Отправляю и на rs232 и на виртуальный порт. Первым способом - время ожидания истекает при попытке вывода, а во втором текст бокс просто обновляется.
Там где закомментировано 1ая и 2ая кнопки - это первый способ. Чуть ниже пытался по второму способу.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
namespace Скад
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
private void Form1_Load(object sender, EventArgs e)
{
string[] ports;
ports = SerialPort.GetPortNames();
comboBox1.Items.AddRange(ports);
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (port.IsOpen == false)
{
port.PortName = comboBox1.Text.ToString();
port.Open();
label1.Text = port.PortName + " Порт подключен";
port.BaudRate = 9600;
port.WriteTimeout = 500;
port.ReadTimeout = 500;
}
}
private void button1_Click(object sender, EventArgs e)
{
//1ый
//byte[] quest = {10, 04, 00, 52, 00, 01, 93, 0x5a};
//port.Write(quest, 0, quest.Length);
//2ой
string q = "12345";
port.Write(q);
}
private void button2_Click(object sender, EventArgs e)
{
//1ый
//byte[] answer = new byte[8];
//port.Read(answer, 0, answer.Length);
//textBox2.Text = Convert.ToString(answer);
//2ой
string s = port.ReadExisting();
textBox2.Text = s;
}
}
}
}
А если замкнуть, что бы приходило то, что отправилось то все прекрасно работает
Неужели никто не знает в чем проблема? Кстати отправляет он почему то одни нули
Решение задачи: «Как отправить данные на Com port?»
textual
Листинг программы
byte[] message;
...
string answer="";
foreach (byte b in message)
answer+=b.ToString("X2").ToUpper()+" ";
textBox1.Text = answer.