Bug 8285

Summary: Constants in SerialPort.DiscardInBuffer and SerialPort.DiscardOutBuffer
Product: [Mono] Class Libraries Reporter: Alex <alexander_savov>
Component: SystemAssignee: Bugzilla <bugzilla>
Severity: normal CC: masafa, mono-bugs+mono
Priority: ---    
Version: unspecified   
Target Milestone: Untriaged   
Hardware: PC   
OS: Windows   
Tags: Is this bug a regression?: ---
Last known good build:

Description Alex 2012-11-08 13:48:12 UTC

While experimenting with Mono on Windows I have run across an issue in SerialPort.DiscardInBuffer and SerialPort.DiscardOutBuffer methods. I checked the source code of WinSerialStream.cs (Mono 2.11.4) and found that both methods use costant value PurgeRxClear while DiscardOutBuffer should be using PurgeTxClear instead.

Apart from that PurgeRxClear and PurgeTxClear are defined wrongly as follows

const uint PurgeRxClear = 0x0004;
const uint PurgeTxClear = 0x0008;

while according to MSDN they should be

const uint PurgeRxClear = 0x0008;
const uint PurgeTxClear = 0x0004;

Please correct this issue in WinSerialStream.cs because now it is only possible to clear the Tx buffer of the serial port. Also interoperabilty with .NET is broken due to this issue.
Comment 1 Marek Safar 2012-11-11 10:54:56 UTC
Fixed in master