Шаг 92 - Структура DCB

Вот она какая большая и длинная:

typedef struct _DCB 
{
	DWORD DCBlength; 
	DWORD BaudRate; 
	DWORD fBinary:1; 
	DWORD fParity:1; 
	DWORD fOutxCtsFlow:1; 
	DWORD fOutxDsrFlow:1; 
	DWORD fDtrControl:2; 
	DWORD fDsrSensitivity:1; 
	DWORD fTXContinueOnXoff:1; 
	DWORD fOutX:1; 
	DWORD fInX:1; 
	DWORD fErrorChar:1; 
	DWORD fNull:1; 
	DWORD fRtsControl:2; 
	DWORD fAbortOnError:1; 
	DWORD fDummy2:17; 
	WORD wReserved; 
	WORD XonLim; 
	WORD XoffLim; 
	BYTE ByteSize; 
	BYTE Parity; 
	BYTE StopBits; 
	char XonChar; 
	char XoffChar; 
	char ErrorChar; 
	char EofChar; 
	char EvtChar; 
	WORD wReserved1; 
} DCB;

DCBlength - длина структуры. Она необходима, так как мы передаем эту структуру в разные функции, кроме того можно контролировать ее корректность. Длина в байтах.

BaudRate - это поле отражает скорость передачи данных. Поле числовое. Скорости передачи могут быть разные. Можно указывать просто число. Но лучше использовать константу. Вот они:

CBR_110 
CBR_300
CBR_600
CBR_1200
CBR_2400
CBR_19200
CBR_4800
CBR_9600
CBR_38400
CBR_56000
CBR_57600
CBR_14400
CBR_128000
CBR_115200
CBR_256000

FBinary - Режим двоичного обмена. Win32 не поддерживает недвоичный режим, поэтому данное поле всегда должно быть равно TRUE.

FParity - Режим проверки четности. Если указать TRUE, то четность будет проверяться.

FOutxCtsFlow - Режим слежения за сигналом CTS. Если это поле равно TRUE и сигнал CTS сброшен, передача данных приостанавливается до установки сигнала CTS. Используется для того, чтобы посылая данные можно было определить успевают ли их принимать.

FOutxDsrFlow - Включает режим слежения за сигналом DSR. Если это поле равно TRUE, то передача будет происходить только при наличии сигнала DSR:

FDtrControl - Режимы обмена DTR бывают следующие:

DTR_CONTROL_DISABLE 		Запрещает использование линии 
DTR DTR_CONTROL_ENABLE 		Разрешает использование линии 
DTR DTR_CONTROL_HANDSHAKE 	Включает специальный механизм восстановления связи,
				 который называется рукопожатие.

FDsrSensitivity - устанавливает влияние линии DSR. Если TRUE, то данные принимаются, если есть DSR.

FTXContinueOnXoff - Определяет реакцию на переполнение приемного буфера. При поле TRUE передача продолжается даже если буфер близок к переполнению и драйвер передал сигнал о приостановлении потока данных. В противном случае передача остановится пока в буфере не будет достаточно места и драйвер не передаст сигнал о том, что принимать можно.

FOutX - Реакция на переполнения буфера (XON/XOFF) при передаче. Есть следующие сигналы:

XoffChar приостановить поток
XonChar возобновить поток.
Если значение TRUE, то эти сигналы будут учтены.

fInX - Реакция на переполнения буфера (XON/XOFF) при приеме. Если TRUE, то мы будет принимать сигналы о том, когда в буфере мало места и когда достаточно.

FErrorChar - Устанавливает необходимость замены символов с ошибкой четности. Если TRUE, то будет произведена замена.

FNull - Что делать с нулевым байтом. Когда равна TRUE нулевой байт отбрасывается.

FRtsControl - Устанавливает режим управления потоком для сигнала RTS.

RTS_CONTROL_DISABLE Запрещает использование линии 
RTS RTS_CONTROL_ENABLE Разрешает использование линии 
RTS RTS_CONTROL_HANDSHAKE Устанавливается сигнал RTS когда приемный 
				буфер заполнен менее, чем на половину, и сбрасывает,
				когда буфер заполняется более чем на три четверти. 
RTS_CONTROL_TOGGLE Задает, что сигнал RTS установлен, когда есть 
				данные для передачи, иначе сбрасывается. 

FAbortOnError - Реакция на ошибки. Если это поле равно TRUE, драйвер прекращает все операции чтения/записи для порта при возникновении ошибки.

fDummy2 - Не используется.

wReserved - Не используется.

XonLim - Задает минимальное число символов в приемном буфере перед посылкой символа XON.

XoffLim - Определяет максимальное количество байт в приемном буфере перед посылкой символа XOFF. Максимально допустимое количество байт в буфере вычисляется вычитанием данного значения из размера приемного буфера в байтах.

ByteSize - Число бит в передаваемом байте.

Parity - Схема контроля четности:

EVENPARITY 	Дополнение до четности 
MARKPARITY 	Бит четности всегда 1 
NOPARITY 	Бит четности отсутствует 
ODDPARITY 	Дополнение до нечетности 
SPACEPARITY 	Бит четности всегда 0

StopBits - Количество стоповых бит.

ONESTOPBIT 	Один стоповый бит 
ONE5STOPBIT 	Полтора стоповых бита 
TWOSTOPBIT 	Два стоповых бита

XonChar - Задает символ XON используемый как для приема, так и для передачи.

XoffChar - Задает символ XOFF используемый как для приема, так и для передачи.

ErrorChar - Задает символ, использующийся для замены символов с ошибочной четностью.

EofChar - Задает символ, использующийся для сигнализации о конце данных.

EvtChar - Задает символ, использующийся для сигнализации о событии.

wReserved1 - Зарезервировано и не используется.

Часть этой структуры представлено в окне настроке портов.

92.gif (7820 b)


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 3.03.2001