Работа с коммуникационными портами (COM и LPT) в программах для Win32


Работа с коммуникационными портами (COM и LPT) в программах для Win32 - стр. 9


baud=1200 parity=N data=8 stop=1

lpDCB

 

Указатель на заполняемую структуру DCB. При этом структура должна быть уже создана и заполнена нулями, кроме поля DCBlength, которое должно содержать корректное значение. Возможно так же использование уже заполненой структуры DCB, например полученой вызовом одной из функций чтения параметров порта.

В случае успершного завершения функция BuildCommDCB возвращает не нулевое значение. В случае ошибки возвращается 0.

Обычно функция BuldCommDCB изменяет только явно перечисленые в строке lpDef поля. Однако существуют два исключения из этого правила:

  • При задании скорости обмена 110 бит в секунду автоматически устанавливается формат обмена с двумя стоповыми битами. Это сделано для совместимости с командой mode из MS-DOS или Windows NT.
  • По умолчанию запрещается программное (XON/XOFF) и аппаратное управление потоком. Вы должны вручную заполнить требуемые поля DCB если требуется управление потоком.

Функция BuilCommDCB поддерживает как новый, так и старый форматы командной строки mode. Однако, Вы не можете смешивать эти форматы в одной строке.

Новый формат строки позволяет явно задавать значения для полей DCB отвечающих за управление потоком. При использовании старого формата существуют следующие соглашения:

  • Для строк вида 9600,n,8,1 (не заканчивающихся символами x или p):

  • fInX, fOutX,fOutXDsrFlow, fOutXCtsFlow устанавливаются в FALSE
  • fDtrControl устанавливается в DTR_CONTROL_ENABLE
  • fRtsControl устанавливается в RTS_CONTROL_ENABLE

  • Для строк вида 9600,n,8,1,x (заканчивающихся символом х):
    • fInX, fOutX устанавливаются в TRUE
    • fOutXDsrFlow,fOutXCtsFlow устанавливаются в FALSE
    • fDtrControl устанавливается в DTR_CONTROL_ENABLE
    • fRtsControl устанавливается в RTS_CONTROL_ENABLE

  • Для строк вида 9600,n,8,1,p (заканчивающихся символом p):
    • fInX, fOutX устанавливаются в FALSE
    • fOutXDsrFlow,fOutXCtsFlow устанавливаются TRUE
    • fDtrControl устанавливается в DTR_CONTROL_HANDSHAKE
    • fRtsControl устанавливается в RTS_CONTROL_HANDSHAKE




    Начало  Назад  Вперед



    Книжный магазин