Работа с COM и LPT в Win32. | страница 4
> DWORD fOutxCtsFlow:1; // CTS output flow control
> DWORD fOutxDsrFlow:1; // DSR output flow control
> DWORD fDtrControl:2; // DTR flow control type
> DWORD fDsrSensitivity:1; // DSR sensitivity
> DWORD fTXContinueOnXoff:1; // XOFF continues Tx
> DWORD fOutX:1; // XON/XOFF out flow control
> DWORD fInX:1; // XON/XOFF in flow control
> DWORD fErrorChar:1; // enable error replacement
> DWORD fNull:1; // enable null stripping
> DWORD fRtsControl:2; // RTS flow control
> DWORD fAbortOnError:1; // abort reads/writes on error
> DWORD fDummy2:17; // reserved
> WORD wReserved; // not currently used
> WORD XonLim; // transmit XON threshold
> WORD XoffLim; // transmit XOFF threshold
> BYTE ByteSize; // number of bits/byte, 4-8
> BYTE Parity; // 0-4=no,odd,even,mark,space
> BYTE StopBits; // 0,1,2 = 1, 1.5, 2
> char XonChar; // Tx and Rx XON character
> char XoffChar; // Tx and Rx XOFF character
> char ErrorChar; // error replacement character
> char EofChar; // end of input character
> char EvtChar; // received event character
> WORD wReserved1; // reserved; do not use
>} DCB;
Если внимательно присмотреться, то можно заметить, что эта структура содержит почти всю управляющую информацию, которая в реальности располагается в различных регистрах последовательного порта. Теперь разберемся, что означает каждое из полей самой важной структуры:
DCBlength
Задает длину, в байтах, структуры DCB. Используется для контроля корректности структуры при передаче ее адреса в функции настройки порта.
BaudRate
Скорость передачи данных. Возможно указание следующих констант: CBR_110, CBR_300, CBR_600, CBR_1200, CBR_2400, CBR_4800, CBR_9600, CBR_14400, CBR_19200, CBR_38400, CBR_56000, CBR_57600, CBR_115200, CBR_128000, CBR_256000. Как видно, эти константы соответствуют всем стандартным скоростям обмена. На самом деле, это поле содержит числовое значение скорости передачи, а константы просто являются символическими именами. Поэтому можно указывать, например, и CBR_9600, и просто 9600. Однако рекомендуется указывать символические константы.
fBinary
Включает двоичный режим обмена. Win32 не поддерживает недвоичный режим, поэтому данное поле всегда должно быть равно 1, или логической константе TRUE (что предпочтительней). В Windows 3.1, если это поле было равно FALSE, включался текстовый режим обмена. В этом режиме поступивший на вход порта символ заданый полем EofChar свидетельствовал о конце принимаемых данных.