Вход/Регистрация
Интернет-журнал "Домашняя лаборатория", 2007 №8
вернуться

Журнал «Домашняя лаборатория»

Шрифт:

Рассмотренные структуры и функции позволяют программировать порт на достаточно низком уровне. Их, в большинстве случаев, более чем достаточно даже для тонкой настройки порта. Однако бывают и исключения. Например, под именем СОМ1 может скрываться вовсе не привычный порт RS-232, а какая-нибудь экзотика. Или порт может не позволять задавать скорость более 9600.

Структура COMMPROP

Исчерпывающая информация о возможностях коммуникационного устройства и драйвера содержится в структуре COMMPROP:

typedef struct _COMMPROP {{

WORD wPacketLength; // packet size, in bytes

WORD wPacketVersion; // packet version

DWORD dwServiceMask; // services implemented

DWORD dwReservedl; // reserved

DWORD dwMaxTxQueue; // max Tx bufsize, in bytes

DWORD dwMaxRxQueue; // max Rx bufsize, in bytes

DWORD dwMaxBaud; // max baud rate, in bps

DWORD dwProvSubType; // specific provider type

DWORD dwProvCapabilities; // capabilities supported

DWORD dwSettableParams; // changable parameters

DWORD dwSettableBaud; // allowable baud rates

WORD wSettableData; // allowable byte sizes

WORD wSettablestopParity; // stop bits/parity allowed

DWORD dwCurrentTxQueue; // Tx buffer size, in bytes

DWORD dwCurrentRxQueue; // Rx buffer size, in bytes

DWORD dwProvSpec1; // provider-specific data

DWORD dwProvSpec2; // provider-specific data

WCHAR wcProvChar[1]; // provider-specific data

} COMMPROP;

Поля этой структуры описывают все возможности драйвера. Вы не можете выйти за пределы этих возможностей. Вот какое значение имеют поля:

• wPacketLength

Задает размер, в байтах, структуры COMMPROP.

• wPacketVersion

Номер версии структуры.

• dwServiceMask

Битовая маска. Для коммуникационных устройств всегда SPSERIALCOMM, включая модемы.

• dwReserved1

Зарезервировано и не используется.

• dwMaxTxQueue

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

• dwMaxRxQueue

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

• dwMaxBaud

Максимально допустимая скорость обмена, в битах в секунду (бпс). Возможны следующие значения данного поля:

• BAUD_075 — 75 бпс

• BAUD_110 — 110 бпс

• BAUD_134_5 — 134.5 бпс

• BAUD_150 — 150 бпс

• BAUD_300 — 300 бпс

• BAUD_600 — 600 бпс

• BAUD_1200 — 1200 бпс

• BAUD_1800 — 1800 бпс

• BAUD_2400 — 2400 бпс

• BAUD_4800 — 4800 бпс

• BAUD_7200 — 7200 бпс

• BAUD_9600 — 9600 бпс

• BAUD_14400 — 14400 бпс

• BAUD_19200 — 19200 бпс

• BAUD_38400 — 38400 бпс

• BAUD_56K — 56К бпс

• BAUD_57600 — 57600 бпс

• BAUD_115200 — 115200 бпс

• BAUD_128K — 128К бпс

• BAUD_USER — Допускается программирование скорости обмена

• dwProvSubType

Тип коммуникационного порта. Возможны следующие значения данного поля:

• PST_FAX — Факс

• PST_LAT LAT — протокол

• PST_MODEM — Модем

• PST_NETWORK_BRIDGE — Сетевой мост

• PST_PARALLELPORT — Параллельный порт

• PST_RS232 — Последовательный порт RS-232

• PST_RS422 — Порт RS-422

• PST_RS423 — Порт RS-423

• PST_RS449 — Порт RS-449

• PST_SCANNER — Сканнер

• PST_TCPIP_TELNET — Протокол TCP/IP TelnetR

• PST_UNSPECIFIED — Неизвестное устройство

• PST_Х25 — Устройство стандарта X.25

• dwProvCapabilities

Битовая маска. Определяет возможности предоставляемые устройством. Возможны следующие значения:

• PCF_16BITMODE — Поддерживается специальный 16-битный режим.

  • Читать дальше
  • 1
  • ...
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: