Шаг 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 - Зарезервировано и не используется.
Часть этой структуры представлено в окне настроке портов.
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|