Порты - статьи


         

и принимаемых байтах. Может принимать


ByteSize — определяет число информационных бит в передаваемых и принимаемых байтах. Может принимать значение 4, 5, 6, 7, 8.

Parity — определяет выбор схемы контроля четности. Данное поле должно содержать одно из следующих значений:

  • EVENPARITY — дополнение до четности;
  • MARKPARITY — бит четности всегда равен 1;
  • NOPARITY — бит четности отсутствует;
  • ODDPARITY — дополнение до нечетности;
  • SPACEPARITY — Бит четности всегда 0.


StopBits — задает количество стоповых бит. Поле может принимать следующие значения:

  • ONESTOPBIT — один стоповый бит;
  • ONE5STOPBIT — полтора стоповых бита (практически не используется);
  • TWOSTOPBIT — два стоповых бита.


После того как все поля структуры DCB заполнены, необходимо произвести конфигурирование порта, вызвав функцию SetCommState:

BOOL SetCommState(

HANDLE hFile,

LPDCB lpDCB

);

В случае успешного завершения функция вернет отличное от нуля значение, а в случае ошибки — нуль.

Второй обязательной структурой для настройки порта является структура COMMTIMEOUTS. Она определяет параметры временных задержек при приеме-передаче. Вот описание этой структуры:

typedef struct _COMMTIMEOUTS {

DWORD ReadIntervalTimeout;

DWORD ReadTotalTimeoutMultiplier;

DWORD ReadTotalTimeoutConstant;

DWORD WriteTotalTimeoutMultiplier;

DWORD WriteTotalTimeoutConstant;

} COMMTIMEOUTS,*LPCOMMTIMEOUTS;

Поля структуры COMMTIMEOUTS имеют следующие значения:

  • ReadIntervalTimeout — максимальное временной промежуток (в миллисекундах), допустимый между двумя считываемыми с коммуникационной линии последовательными символами. Во время операции чтения временной период начинает отсчитываться с момента приема первого символа. Если интервал между двумя последовательными символами превысит заданное значение, операция чтения завершается и все данные, накопленные в буфере, передаются в программу. Нулевое значение данного поля означает, что данный тайм-аут не используется.
  • ReadTotalTimeoutMultiplier — задает множитель (в миллисекундах), используемый для вычисления общего тайм-аута операции чтения.

    Содержание  Назад  Вперед