и заполняет параметры значениями по
функция находится в файле kernel32.dll
Функция GetCommTimeouts считывает структуру
_COMMTIMEOUTS с указанного порта и заполняет параметры значениями по умолчанию.
Описание в эквиваленте CBOOL GetCommTimeouts( HANDLE hFile, LPCOMMTIMEOUTS lpCommTimeouts );
Параметры :HFileДескриптор указывающий на порт (этот дескриптор может быть создан с помощью CreateFile, OpenFile)
LpCommTimeoutsСтруктура LPCOMMTIMEOUTS
Возвращаемое значение :Если функция выполняется успешно, возвращаемое значение - TRUE иначе возвращаемое значение - FALSE . При возникновении ошибки код ошибки можно получить используя GetLastError
Ну и соответственно -
функция находится в файле kernel32.dll
Функция SetCommTimeouts устанавливает тайм-ауты порта
Описание в эквиваленте CBOOL SetCommTimeouts( HANDLE hFile, LPCOMMTIMEOUTS lpCommTimeouts );
Параметры :HFileДескриптор указывающий на порт (этот дескриптор может быть создан с помощью CreateFile, OpenFile)
LpCommTimeoutsСтруктура LPCOMMTIMEOUTS
Возвращаемое значение :Если функция выполняется успешно, возвращаемое значение - TRUE иначе возвращаемое значение - FALSE . При возникновении ошибки код ошибки можно получить используя GetLastError
Параметры этих функций очевидны. Хочется отметить что установку тайм-аутов можно производить как до установки параметров порта, так и после, т.е последовательность вызова функций SetCommState и SetCommTimeouts не имеет значения. Главное, что бы все настройки были завершены до начала ввода/вывода информации.
В продолжении статьи хочется добавить еще оду функцию использование которой несомненно очень нужно для получения данных о портах. Представьте ситуацию, когда под COM1 может скрываться вовсе не привычный порт RS-232, а что нибудь другое. Или порт может не позволять задавать скорость более 9600 бод.
Исчерпывающая информация о возможностях коммуникационного устройства и драйвера содержится в структуре COMMPROP:
typedef struct _COMMPROP { WORD wPacketLength; // Задает размер, в байтах, // структуры COMMPROP WORD wPacketVersion; // Номер версии DWORD dwServiceMask; // Битовая маска DWORD dwReserved1; // reserved DWORD dwMaxTxQueue; // max буфер передачи DWORD dwMaxRxQueue; // max буфер приема DWORD dwMaxBaud; // max допустимая скорость обмена DWORD dwProvSubType; // Тип коммуникац.порта DWORD dwProvCapabilities; // Возможности перед.устройства DWORD dwSettableParams; // Допустимые для изменения // параметры DWORD dwSettableBaud; // Допустимый набор скоростей // обмена WORD wSettableData; // допустимые длины символов WORD wSettableStopParity; // Допуст.кол-во стоповых бит DWORD dwCurrentTxQueue; // Текущий размер буфер передачи DWORD dwCurrentRxQueue; // Текущий размер буфер приема DWORD dwProvSpec1; // Устройство-зависимые данные DWORD dwProvSpec2; // Устройство-зависимые данные WCHAR wcProvChar[1]; // Устройство-зависимые данные } COMMPROP; Поля этой структуры описывают все возможности драйвера. Вы не можете выйти за пределы этих возможностей. Вот какое значение имеют поля:
Содержание Назад Вперед