Работа с COM и LPT в Win32. - [7]
Рассмотренные структуры и функции позволяют программировать порт на достаточно низком уровне. Их, в большинстве случаев, более чем достаточно даже для тонкой настройки порта. Однако бывают и исключения. Например, под именем COM1 может скрываться вовсе не привычный порт RS-232, а какая-нибудь экзотика. Или порт может не позволять задавать скорость более 9600.
Исчерпывающая информация о возможностях коммуникационного устройства и драйвера содержится в структуре COMMPROP:
>typedef struct _COMMPROP {
> WORD wPacketLength; // packet size, in bytes
> WORD wPacketVersion; // packet version
> DWORD dwServiceMask; // services implemented
> DWORD dwReserved1; // 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
Битовая маска. Для коммуникационных устройств всегда SP_SERIALCOMM, включая модемы.
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 | 56K бпс. |
BAUD_57600 | 57600 бпс. |
BAUD_115200 | 115200 бпс. |
BAUD_128K | 128K бпс. |
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_X25 | Устройство стандарта X.25 |
dwProvCapabilities
Битовая маска. Определяет возможности предоставляемые устройством. Возможны следующие значения:
PCF_16BITMODE | Поддерживается специальный 16-битный режим |
PCF_DTRDSR | Поддерживаются сигналы DTR/DSR. |
PCF_INTTIMEOUTS | Поддерживается межсимвольный тайм-аут. |
PCF_PARITY_CHECK | Поддерживается контроль четности. |
PCF_RLSD | Поддерживается определение наличия сигнала в приемной линии. |
PCF_RTSCTS | Поддерживаются сигналы RTS/CTS. |
PCF_SETXCHAR | Поддерживаются задаваемые символы XON/XOFF. |
PCF_SPECIALCHARS | Поддерживаются спецсимволы. |
PCF_TOTALTIMEOUTS | Поддерживаются общие тайм-ауты (ожидаемое время). |
PCF_XONXOFF | Поддерживается программное (XON/XOFF) управление потоком. |
dwSettableParams
Битовая маска. Определяет допустимые для изменения параметры. Возможны следующие значения:
SP_BAUD | Скорость обмена. |
SP_DATABITS | Бит в символе. |
SP_HANDSHAKING | Рукопожатие (управление потоком). |
SP_PARITY | Четность. |
SP_PARITY_CHECK | Контроль четности. |
SP_RLSD | Детектирование наличия сигнала в приемной линии. |
SP_STOPBITS | Количество стоповых бит. |
dwSettableBaud
Битовая маска. Определяет допустимый набор скоростей обмена. Допустимые для данного поля значения указаны в описании поля dwMaxBaud.
wSettableData
Битовая маска. Определяет допустимые длины символов, в битах. Возможны следующие значения:
DATABITS_5 | 5 бит |
DATABITS_6 | 6 бит |
DATABITS_7 | 7 бит |
DATABITS_8 | 8 бит |
DATABITS_16 | 16 бит |
DATABITS_16Х | Специальный широкий канал через аппаратную последовательную линию. |
wSettableStopParity
Битовая маска. Определяет допустимое количество стоповых бит и режимы четности. Возможны следующие значения:
STOPBITS_10 | Один стоповый бит |
STOPBITS_15 | Полтора стоповыx бита |
STOPBITS_20 | Два стоповых бита |
PARITY_NONE | Без четности |
PARITY_ODD | Дополнение до нечетности |
PARITY_EVEN | Дополнение до четности |
PARITY_MARK | Бит четности всегда "1" |
PARITY_SPACE | Бит четности всегда "0" |
dwCurrentTxQueue
Определяет текущий размер, в байтах, внутренней очереди передачи драйвера. Нулевое значение свидетельствует о недоступности данного параметра.
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.