Функции Win32 API для обмена данными по RS-232С

Функции получения информации при обмене данными всегда применяются в приложениях, где необходимо осуществить настройку параметров до начала приема или передачи.

Основные информационные функции обмена по последовательному порту RS-232С:

GetCommTimeouts;

GetCommProperties;

GetCommState.

Данные функции позволяют получить следующую информацию:

а) временные характеристики обмена:

время, в течение которого должен быть получен следующий символ при приеме;

время, в миллисекундах, на каждый принимаемый символ;

время, в миллисекундах, прибавляемое к общему времени приема;

время, в миллисекундах, на каждый передаваемый символ;

время, в миллисекундах, прибавляемое к общему времени передачи;

б) свойства устройства обмена:

тип устройства;

версия пакета;

максимальный размер внутреннего буфера для передачи в байтах;

размер внутреннего буфера для передачи в байтах;

максимальный размер внутреннего буфера для приема в байтах;

размер внутреннего буфера для приема в байтах;

максимальная скорость передачи в битах на секунду (bps);

поддерживаемые режимы и возможности;

устанавливаемые параметры;

устанавливаемые скорости передачи;

поддерживаемые количества информационных бит;

поддерживаемые количества стоповых бит;

поддерживаемые паритеты;

в) параметры текущего сеанса связи:

текущая скорость передачи в bps;

количество информационных бит;

количество стоповых битов;

значение символа XON для приема и передачи;

значение символа XOFF для приема и передачи;

значение символа замещающий байты при ошибке;

значение символа "конец вводимых данных";

значение символа "конец вводимых данных";

значение символа "событие" и т.д.

Необходимо отметить, что обмен данными между двумя устройствами по последовательному порту будет корректно осуществляться только в том случае, когда передатчик на одной стороне и приемник на противоположной стороне имеет идентичные параметры настройки.

Настройка параметров, так же как передача и прием осуществляется с использованием управляющих функций. Основные управляющие функции Win32 API для обмена по последовательному порту:

SetCommTimeouts;

SetCommState;

WriteFile;

ReadFile.

Для работы с данными функциями потребуются обслуживающие функции, которыми являются CreateFile (открытие устройства) и CloseHandle (закрытие устройства).

Приведенные функции позволяют осуществить следующие действия:

а) изменение временных характеристик обмена:

изменение времени, в течение которого должен быть получен следующий символ при приеме;

изменение времени, в миллисекундах, на каждый принимаемый символ;

изменение времени, в миллисекундах, прибавляемое к общему времени приема;

изменение времени, в миллисекундах, на каждый передаваемый символ;

изменение времени, в миллисекундах, прибавляемое к общему времени передачи;

б) изменение параметров текущего сеанса связи:

текущей скорости передачи в bps;

количества информационных битов;

количества стоповых битов;

значения символа XON для приема и передачи;

значения символа XOFF для приема и передачи;

значения символа замещающего байты при ошибке;

значения символа "конец вводимых данных";

значения символа "конец вводимых данных";

значения символа "событие" и т.п.;

в) передача данных;

г) прием данных.

Передача и прием данных может вестись различными способами, большинство из которых определяется настройками сеанса связи и функциями, используемыми при обмене данными. Используются два режима передачи синхронный и асинхронный.

Наши рекомендации