Я записываю последовательность в последовательный порт, сообщая, чтобы она отправляла мне данные.После отправки последовательности и попытки чтения данных из последовательного порта там ничего нет.Однако, если я закрою программу и открою порт в HyperTerminal, данные сразу же появятся без необходимости запрашивать его.
private string ReadSerialPort()
{
var _comPort = new SerialPort()
{
PortName = "COM2",
BaudRate = 1200,
DataBits = 7,
Parity = System.IO.Ports.Parity.Odd,
StopBits = System.IO.Ports.StopBits.One,
NewLine = Environment.NewLine,
WriteTimeout = 500,
ReadTimeout = 500,
Handshake = System.IO.Ports.Handshake.None
};
if (!_comPort.IsOpen)
{
_comPort.Open();
}
int unicode = 27;
char character = (char)unicode;
string text = character + "P";
_comPort.WriteLine(text);
//System.Threading.Thread.Sleep(200); // Didn't help
string serialData = string.Empty;
while (serialData.Length == 0)
{
serialData = _comPort.ReadLine();
}
return serialData;
}
Если я запишу escape-последовательность в последовательный порт 3 раза, я будуничего не вижу в моем коде, но если я открою HyperTerminal, он появится 3 раза.
Что может быть причиной того, что код ничего не видит в буфере, но я вижу его после выхода из программы?