Реализация функций контроля и управления на базе Win32 API: Методические указания по выполнению лабораторного практикума, страница 35

DCB структура отображающая свойства текущего сеанса. typedef struct _DCB {   DWORD DCBlength;  // размер структуры DCB  [sizeof(DCB)]   DWORD BaudRate;  // текущая скорость передачи в bps   DWORD fBinary: 1;  // бинарный режим (true/false)   DWORD fParity: 1;  // возможность проверки паритета (true/false)   DWORD fOutxCtsFlow:1;  // сигнал CTS управляет передачей (true/false)   DWORD fOutxDsrFlow:1;  // сигнал DSR управляет передачей (true/false)   DWORD fDtrControl:2;  // способ управления сигналом DTR   DWORD fDsrSensitivity:1;  // чувствительность к сигналу DSR (true/false)   DWORD fTXContinueOnXoff:1; // продолжение передачи при сигнале XOFF (true/false)   DWORD fOutX: 1;  // возможность остановки передачи сигналом ХOFF (true/false)   DWORD fInX: 1;  // возможность остановки приема сигналом ХOFF (true/false)   DWORD fErrorChar: 1;  // возможность замещения символов при ошибке (true/false)   DWORD fNull: 1;  // возможность отбрасывания нулей (true/false)   DWORD fRtsControl:2;  // способ управления сигналом RTS   DWORD fAbortOnError:1;  // остановка обмена при ошибке (true/false)   DWORD fDummy2:17;  // зарезервировано, не используется   WORD wReserved;  // зарезервировано, не используется   WORD XonLim;  /* максимальное количество байт во входном буфере для выставления сигнала XON */   WORD XoffLim;  /* минимальное количество байт во входном буфере для выставления сигнала XOFF */   BYTE ByteSize;  // количество информационных битов в байте 5-8   BYTE Parity;  // паритет 0-4=no,odd,even,mark,space   BYTE StopBits;  // количество стоповых битов 0,1,2 = 1, 1.5, 2   char XonChar;  //  символ XON для приема и передачи   char XoffChar;  // символ XOFF для приема и передачи   char ErrorChar;  // символ замещающий байты при ошибки    char EofChar;  // символ "конец вводимых данных"   char EvtChar;  // символ "событие"   WORD wReserved1;  // зарезервировано, не используется } 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 fDtrControl может принимать следующие значения: DTR_CONTROL_DISABLE отключено; DTR_CONTROL_ENABLE  включено; DTR_CONTROL_HANDSHAKE режим handshake функцию, EscapeCommFunction нельзя использовать. fRtsControl может принимать следующие значения: RTS_CONTROL_DISABLE отключено; RTS_CONTROL_ENABLE  включено; RTS_CONTROL_HANDSHAKE режим handshake, функцию EscapeCommFunction нельзя использовать. RTS_CONTROL_TOGGLE переключающийся режим (RTS включен, когда есть что передавать) Parity может принимать следующие значения: NOPARITY  нет паритета ODDPARITY  случайный паритет EVENPARITY  паритет события MARKPARITY  маркированный паритет SPACEPARITY  пространственный паритет StopBits может принимать следующие значения: ONESTOPBIT  1 стоповый бит ONE5STOPBITS  1.5 стоповых бита TWOSTOPBITS  2 стоповых бита Сигнал XOFF поступает на принимающую сторону при переполнении буфера принимающего устройства и приостанавливает передачу, а XON поступает на принимающую сторону при освобождении буфера принимающего устройства и возобновляет передачу. Возможны следующие комбинации информационных и стоповых битов: 5 - 1;  5 - 1.5;  6 - 1; 6 - 2; 7 - 1; 7 - 2; 8 - 1; 8 - 2.

BOOL SetCommTimeouts(hFile,lpCommTimeouts) HANDLE hFile; // идентификатор устройства обмена LPCOMMTIMEOUTS lpCommTimeouts; // указатель на структуру COMMTIMEOUTS

устанавливает временные параметры, ограничивающие прием и передачу устройства, на которое указывает идентификатор, получаемый функцией CreateFile.

BOOL GetCommState(hFile,lpDCB) HANDLE hFile; // идентификатор устройства обмена LPDCB lpDCB; // указатель на структуру DCB

позволяет установить свойства текущего сеанса приема/передачи данных для устройства, идентификатор которого получен функцией CreateFile. 


Литература

1.  Елманова Н. З., Кошель С.П. Введение в Borland C++ Builder 5 М.: Диалог МИФИ 1999. –  352 с.

2.  Рихтер Дж. Windows для профессионалов: Программирование для Windows 95 и Windows NT 4 на базе Win32 API/Пер. с англ. – М.:Издательский отдел “Русская редакция” ТОО “Сhannel Trading Ltd.”, 1997. – 712 c.: ил.

3.  Румянцев П. В. Азбука программирования в Win32 API. – М.: Радио и связь, 1998. – 272 с.: ил.

4.  Фролов Л. В., Фролов Г. В. Аппаратное обеспечение персональных компьютеров. – М.: ДИАЛОГ МИФИ, 1997. – 304 с. – (Библиотека системного программиста; Т. 33)

5.  Холден Г. Реестр Windows'98: Справочник – СПБ: Издательство "Питер", 1999. – 480 с.:ил.

6.  Шамис В. А. Borland C++ Builder. Программирование на C++ без проблем.М.: "Нолидж", 1997-266 с., ил.

7.  Архангельский  А. Я. Программирование в С++ Builder 6. М: "БИНОМ", 2003 – 860 с., ил.