public void ReadToResetWithOverflow() { using (SerialPortStream src = new SerialPortStream(SourcePort, 115200, 8, Parity.None, StopBits.One)) using (SerialPortStream dst = new SerialPortStream(DestPort, 115200, 8, Parity.None, StopBits.One)) { src.WriteTimeout = TimeOut; src.ReadTimeout = TimeOut; dst.WriteTimeout = TimeOut; dst.ReadTimeout = TimeOut; src.Open(); Assert.That(src.IsOpen, Is.True); dst.Open(); Assert.That(dst.IsOpen, Is.True); byte[] writeData = new byte[2048]; for (int i = 0; i < writeData.Length; i++) { writeData[i] = (byte)((i % 26) + 0x41); } // We write 2048 bytes that starts with A..Z repeated. // Position 0 = A // Position 1023 = J // To read a line, it parses the 2048 characters, not finding a new line. Then we read a character and // we expect to get 'A'. src.Write(writeData, 0, writeData.Length); Assert.That(() => { dst.ReadLine(); }, Throws.Exception.TypeOf <TimeoutException>()); Assert.That(dst.ReadChar(), Is.EqualTo((int)'A')); } }
public void ReadSingleCharUtf32() { using (SerialPortStream dst = new SerialPortStream(DestPort, 115200, 8, Parity.None, StopBits.One)) using (SerialPortStream src = new SerialPortStream(SourcePort, 115200, 8, Parity.None, StopBits.One)) { src.WriteTimeout = TimeOut; src.ReadTimeout = TimeOut; dst.WriteTimeout = TimeOut; dst.ReadTimeout = TimeOut; src.Open(); Assert.That(src.IsOpen, Is.True); dst.Open(); Assert.That(dst.IsOpen, Is.True); byte[] send = new byte[] { 0xF3, 0xA0, 0x82, 0x84 }; src.Write(send, 0, send.Length); Assert.That(dst.ReadChar(), Is.EqualTo(0xDB40)); Assert.That(dst.ReadChar(), Is.EqualTo(0xDC84)); Assert.That(dst.ReadChar(), Is.EqualTo(-1)); } }
public void DisconnectOnReadCharBlockedReadAgain() { using (SerialPortStream serialSource = new SerialPortStream(SourcePort, 115200, 8, Parity.None, StopBits.One)) { serialSource.Open(); int c = serialSource.ReadChar(); Console.WriteLine("{0} char read", c); Assert.That( () => { c = serialSource.ReadChar(); Console.WriteLine("{0} char read again", c); }, Throws.InstanceOf <System.IO.IOException>()); // Device should still be open. Assert.That(serialSource.IsOpen, Is.True); serialSource.Close(); } }
public void ReadToWithMbcs() { using (SerialPortStream src = new SerialPortStream(SourcePort, 115200, 8, Parity.None, StopBits.One)) using (SerialPortStream dst = new SerialPortStream(DestPort, 115200, 8, Parity.None, StopBits.One)) { src.WriteTimeout = TimeOut; src.ReadTimeout = TimeOut; dst.WriteTimeout = TimeOut; dst.ReadTimeout = TimeOut; src.Open(); Assert.That(src.IsOpen, Is.True); dst.Open(); Assert.That(dst.IsOpen, Is.True); src.Write(new byte[] { 0x61, 0xE2, 0x82, 0xAC, 0x40, 0x41 }, 0, 6); Assert.That(dst.ReadChar(), Is.EqualTo((int)'a')); Assert.That(dst.ReadByte(), Is.EqualTo((0xE2))); Assert.That(dst.ReadChar(), Is.EqualTo((int)'�')); Assert.That(dst.ReadChar(), Is.EqualTo((int)'�')); Assert.That(dst.ReadChar(), Is.EqualTo((int)'@')); Assert.That(dst.ReadChar(), Is.EqualTo((int)'A')); } }
public void ReadSingleChar() { using (SerialPortStream dst = new SerialPortStream(DestPort, 115200, 8, Parity.None, StopBits.One)) using (SerialPortStream src = new SerialPortStream(SourcePort, 115200, 8, Parity.None, StopBits.One)) { src.WriteTimeout = 2 * TimeOut + 500; src.ReadTimeout = 2 * TimeOut + 500; dst.WriteTimeout = 2 * TimeOut + 500; dst.ReadTimeout = 2 * TimeOut + 500; src.Open(); Assert.That(src.IsOpen, Is.True); dst.Open(); Assert.That(dst.IsOpen, Is.True); byte[] send = new byte[] { 0x65, 0x66, 0x67 }; src.Write(send, 0, send.Length); Thread.Sleep(TimeOut + 500); Assert.That(dst.ReadChar(), Is.EqualTo((int)'e')); Assert.That(dst.ReadChar(), Is.EqualTo((int)'f')); Assert.That(dst.ReadChar(), Is.EqualTo((int)'g')); } }
public void DisconnectOnReadCharBlocked() { using (SerialPortStream serialSource = new SerialPortStream(SourcePort, 115200, 8, Parity.None, StopBits.One)) { serialSource.Open(); int c = serialSource.ReadChar(); Console.WriteLine("{0} char read", c); // Device should still be open. Assert.That(serialSource.IsOpen, Is.True); serialSource.Close(); } }
static void Main(String[] args) { using (var serialPort = new SerialPortStream("COM1")) { serialPort.OpenDirect(); while (serialPort.IsOpen) { var ch = (Char)serialPort.ReadChar(); Console.Write(ch); } } }
public void ReadToResetWithMbcs3() { using (SerialPortStream src = new SerialPortStream(SourcePort, 115200, 8, Parity.None, StopBits.One)) using (SerialPortStream dst = new SerialPortStream(DestPort, 115200, 8, Parity.None, StopBits.One)) { src.WriteTimeout = TimeOut; src.ReadTimeout = TimeOut; dst.WriteTimeout = TimeOut; dst.ReadTimeout = TimeOut; src.Open(); Assert.That(src.IsOpen, Is.True); dst.Open(); Assert.That(dst.IsOpen, Is.True); src.Write(new byte[] { 0xE2, 0x82, 0xAC, 0x40, 0x41, 0x62 }, 0, 6); Assert.That(() => { dst.ReadLine(); }, Throws.Exception.TypeOf <TimeoutException>()); Assert.That(dst.ReadChar(), Is.EqualTo((int)'€')); Assert.That(dst.ReadByte(), Is.EqualTo(0x40)); Assert.That(dst.ReadExisting(), Is.EqualTo("Ab")); } }