Интернет-журнал "Домашняя лаборатория", 2007 №8
Шрифт:
Задает режим управления потоком для сигнала RTS. Если это поле равно 0, то по умолчанию подразумевается RTSCONTROLHANDSHAKE. Поле может принимать одно из следующих значений:
• RTS_CONTROL_DISABLE — Запрещает использование линии RTS
• RTS_CONTROL_ENABLE — Разрешает использование линии RTS
• RTS_CONTROL_HANDSHAKE — Разрешает использование RTS рукопожатия. Драйвер устанавливает сигнал RTS когда приемный буфер заполнен менее, чем на половину, и сбрасывает, когда буфер заполняется более чем на три четверти.
• RTS_CONTROL_TOGGLE — Задает, что сигнал RTS установлен,
• fAbortOn Error
Задает игнорирование всех операций чтения/записи при возникновении ошибки. Если это поле равно TRUE, драйвер прекращает все операции чтения/записи для порта при возникновении ошибки. Продолжать работать с портом можно будет только после устранения причины ошибки и вызова функции ClearCommError.
• fDummy2
Зарезервировано и не используется.
• wReserved
Не используется, должно быть установлено в 0.
• XonLim
Задает минимальное число символов в приемном буфере перед посылкой символа XON.
• XoffLim
Определяет максимальное количество байт в приемном буфере перед посылкой символа XOFF. Максимально допустимое количество байт в буфере вычисляется вычитанием данного значения из размера приемного буфера в байтах.
• ByteSize
Определяет число информационных бит в передаваемых и принимаемых байтах.
• Parity
Определяет выбор схемы контроля четности. Данное поле должно содержать одно из следующих значений:
• EVENPARITY — Дополнение до четности
• MARKPARITY — Бит четности всегда 1
• NOPARITY — Бит четности отсутствует
• ODDPARITY — Дополнение до нечетности
• SPACEPARITY — Бит четности всегда 0
• StopBits
Задает количество стоповых бит. Поле может принимать следующие значения:
• ONESTOPBIT — Один стоповый бит
• ONE5STOPBIT — Полтора стоповых бита
• TWOSTOPBIT — Два стоповых бита
• XonChar
Задает символ XON используемый как для приема, так и для передачи.
• XoffChar
Задает символ XOFF используемый как для приема, так и для передачи.
• ErrorChar
Задает символ, использующийся для замены символов с ошибочной четностью.
• EofChar
Задает символ, использующийся для сигнализации о конце данных.
• EvtChar
Задает символ, использующийся для сигнализации о событии.
• wReserved1
Зарезервировано
Так как поля структуры DCB используются для конфигурирования микросхем портов, на них накладываются некоторые ограничения. Размер байта должен быть 5, 6, 7 или 8 бит. Комбинация из пяти битного байта и двух стоповых бит является недопустимой. Так же как и комбинация из шести, семи или восьми битного байта и полутора стоповых бит.
Функция BuildCommDCB
Только что рассмотренная нами структура DCB самая большая из всех, использующихся для настройки последовательных портов. Но она и самая важная. Заполнение всех полей этой структуры может вызвать затруднения, так как надо очень четко представлять, как работает последовательный порт. Поэтому ручную установку полей можно порекомендовать опытным программистам. Если же Вы чувствуете себя не очень уверено, воспользуйтесь функцией BuildCommDCB, которая позволяет заполнить поля структуры DCB на основе строки, по синтаксису аналогичной строке команды mode. Вот как выглядит прототип этой функции:
BOOL BuildCommDCB(LPCTSTR lpDef, LPDCB lpDCB);
Как видно, функция очень проста и имеет всего два параметра:
• lpDef
Указатель на строку с конфигурационной информацией в формате команды mode. Например, следующая строка задает скорость 1200, без четности, 8 бит данных и 1 стоповый бит.
baud=1200 parity=N data=8 stop=l
• lpDCB
Указатель на заполняемую структуру DCB. При этом структура должна быть уже создана и заполнена нулями, кроме поля DCBlength, которое должно содержать корректное значение. Возможно так же использование уже заполненной структуры DCB, например полученной вызовом одной из функций чтения параметров порта.
В случае успешного завершения функция BuildCommDCB возвращает не нулевое значение. В случае ошибки возвращается 0.
Обычно функция BuldCommDCB изменяет только явно перечисленные в строке lpDef поля. Однако существуют два исключения из этого правила:
• При задании скорости обмена 110 бит в секунду автоматически устанавливается формат обмена с двумя стоповыми битами. Это сделано для совместимости с командой mode из MS-DOS или Windows NT.
• По умолчанию запрещается программное (XON/XOFF) и аппаратное управление потоком. Вы должны вручную заполнить требуемые поля DCB если требуется управление потоком.
Функция BuilCommDCB поддерживает как новый, так и старый форматы командной строки mode. Однако, Вы не можете смешивать эти форматы в одной строке.
Новый формат строки позволяет явно задавать значения для полей DCB отвечающих за управление потоком. При использовании старого формата существуют следующие соглашения:
Кодекс Крови. Книга V
5. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
рейтинг книги
Запечатанный во тьме. Том 1. Тысячи лет кача
1. Хроники Арнея
Фантастика:
уся
эпическая фантастика
фэнтези
рейтинг книги
Измена
Любовные романы:
современные любовные романы
рейтинг книги
Барон Дубов
1. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
рейтинг книги
Невеста драконьего принца
Любовные романы:
любовно-фантастические романы
рейтинг книги
Интернет-журнал "Домашняя лаборатория", 2007 №6
Дом и Семья:
хобби и ремесла
сделай сам
рейтинг книги
Око василиска
2. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
рейтинг книги
Законы Рода. Том 6
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
рейтинг книги
Сердце Дракона. нейросеть в мире боевых искусств (главы 1-650)
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
рейтинг книги
Маленькая хозяйка большого герцогства
2. Герцогиня
Любовные романы:
любовно-фантастические романы
рейтинг книги
Лучший из худших-2
2. Лучший из худших
Фантастика:
фэнтези
рейтинг книги
Я сделаю это сама
1. Магический XVIII век
Любовные романы:
любовно-фантастические романы
рейтинг книги
Полное собрание сочинений. Том 25
Проза:
классическая проза
рейтинг книги
Перед бегущей
8. Легенды Вселенной
Фантастика:
научная фантастика
рейтинг книги
