Я работаю с устройством идентификации вызывающего абонента и пишу следующую программу:
serialPort = new SerialPort("COM7", 19200, Parity.None, 8, StopBits.One);
serialPort.DataReceived += serialPort_DataReceived;
serialPort.RtsEnable = true;
serialPort.Encoding = Encoding.ASCII;
serialPort.Open();
void serialPort_DataReceived(object s, SerialDataReceivedEventArgs e)
{
byte[] data = new byte[serialPort.BytesToRead];
serialPort.Read(data, 0, data.Length);
Console.WriteLine(Encoding.ASCII.GetString(data));
}
Сначала я получаю звонок, событие срабатывает идеально, и результат: "A0101181456926E"
Проблема заключается в последующих событиях ... в следующий раз, когда я звоню, событие serialPort_DataReceived
часто срабатывает каждый раз с 1 символом.
Есть ли какое-либо свойство, которое нужно установить или метод, чтобы вызвать это поведение?
пс. Если я прокомментирую строку serialPort.RtsEnable = true;
, я не получу никакого последующего события.