public void SetValues (int baud_rate, Parity parity, int byte_size, StopBits sb, Handshake hs) { switch (sb) { case StopBits.One: stop_bits = 0; break; case StopBits.OnePointFive: stop_bits = 1; break; case StopBits.Two: stop_bits = 2; break; default: // Shouldn't happen break; } this.baud_rate = baud_rate; this.parity = (byte)parity; this.byte_size = (byte)byte_size; // Clear Handshake flags flags &= ~(fOutxCtsFlow | fOutX | fInX | fRtsControl2); // Set Handshake flags switch (hs) { case Handshake.None: break; case Handshake.XOnXOff: flags |= fOutX | fInX; break; case Handshake.RequestToSend: flags |= fOutxCtsFlow | fRtsControl2; break; case Handshake.RequestToSendXOnXOff: flags |= fOutxCtsFlow | fOutX | fInX | fRtsControl2; break; default: // Shouldn't happen break; } } }
public void SetAttributes(int baud_rate, Parity parity, int data_bits, StopBits bits, Handshake hs) { DCB dcb = new DCB(); if (!GetCommState(handle, dcb)) { ReportIOError(null); } dcb.SetValues(baud_rate, parity, data_bits, bits, hs); if (!SetCommState(handle, dcb)) { ReportIOError(null); } }