SerialPort::Parity Property
Gets or sets the parity-checking protocol.
Assembly: System (in System.dll)
| Exception | Condition |
|---|---|
| IOException | The port is in an invalid state. - or - An attempt to set the state of the underlying port failed. For example, the parameters passed from this SerialPort object were invalid. |
| ArgumentOutOfRangeException | The Parity value passed is not a valid value in the Parity enumeration. |
Parity is an error-checking procedure in which the number of 1s must always be the same—either even or odd—for each group of bits that is transmitted without error. In modem-to-modem communications, parity is often one of the parameters that must be agreed upon by sending parties and receiving parties before transmission can take place.
If a parity error occurs on the trailing byte of a stream, an extra byte will be added to the input buffer with a value of 126.
The following code example demonstrates the use of the SerialPort class to allow two users to chat from two separate computers connected by a null modem cable. In this example, the users are prompted for the port settings and a username before chatting. This code example is part of a larger code example provided for the SerialPort class.
public: static void Main() { String^ name; String^ message; StringComparer^ stringComparer = StringComparer::OrdinalIgnoreCase; Thread^ readThread = gcnew Thread(gcnew ThreadStart(PortChat::Read)); // Create a new SerialPort object with default settings. _serialPort = gcnew SerialPort(); // Allow the user to set the appropriate properties. _serialPort->PortName = SetPortName(_serialPort->PortName); _serialPort->BaudRate = SetPortBaudRate(_serialPort->BaudRate); _serialPort->Parity = SetPortParity(_serialPort->Parity); _serialPort->DataBits = SetPortDataBits(_serialPort->DataBits); _serialPort->StopBits = SetPortStopBits(_serialPort->StopBits); _serialPort->Handshake = SetPortHandshake(_serialPort->Handshake); // Set the read/write timeouts _serialPort->ReadTimeout = 500; _serialPort->WriteTimeout = 500; _serialPort->Open(); _continue = true; readThread->Start(); Console::Write("Name: "); name = Console::ReadLine(); Console::WriteLine("Type QUIT to exit"); while (_continue) { message = Console::ReadLine(); if (stringComparer->Equals("quit", message)) { _continue = false; } else { _serialPort->WriteLine( String::Format("<{0}>: {1}", name, message) ); } } readThread->Join(); _serialPort->Close(); } static void Read() { while (_continue) { try { String^ message = _serialPort->ReadLine(); Console::WriteLine(message); } catch (TimeoutException ^) { } } }
Available since 2.0