2-РПЗ (1061363), страница 2

Файл №1061363 2-РПЗ (Готовый курсовой проект 4) 2 страница2-РПЗ (1061363) страница 22017-12-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

DWORD fBinary:1;

DWORD fParity:1;

DWORD fOutxCtsFlow:1;

DWORD fOutxDsrFlow:1;

DWORD fDtrControl:2;

DWORD fDsrSensitivity:1;

DWORD fTXContinueOnXoff:1;

DWORD fOutX:1;

DWORD fInX:1;

DWORD fErrorChar:1;

DWORD fNull:1;

DWORD fRtsControl:2;

DWORD fAbortOnError:1;

DWORD fDummy2:17;

WORD wReserved;

WORD XonLim;

WORD XoffLim;

BYTE ByteSize;

BYTE Parity;

BYTE StopBits;

char XonChar;

char XoffChar;

char ErrorChar;

char EofChar;

char EvtChar;

WORD wReserved1;

} DCB;

Кратко рассмотрим значения ее полей:

DCBlength — Задает длину, в байтах, структуры DCB. Используется для контроля корректности структуры при передаче ее адреса в функции настройки порта

BaudRate — Скорость передачи данных. Возможно указание следующих констант: CBR_110, CBR_300, CBR_600, CBR_1200, CBR_2400, CBR_4800, CBR_9600, CBR_14400, CBR_19200, CBR_38400, CBR_56000, CBR_57600, CBR_115200, CBR_128000, CBR_256000. Как видно, эти константы соответствуют всем стандартным скоростям обмена. На самом деле, это поле содержит числовое значение скорости передачи, а константы просто являются символическими именами.

fBinary — Включает двоичный режим обмена. Win32 не поддерживает недвоичный режим, поэтому данное поле всегда должно быть равно 1, или логической константе TRUE (что предпочтительней).

fParity — Включает режим контроля четности. Если это поле равно TRUE, то выполняется проверка четности, при ошибке, в вызывающую программу, выдается соответствующий код завершения.

fOutxCtsFlow — Включает режим слежения за сигналом CTS. Если это поле равно TRUE и сигнал CTS сброшен, передача данных приостанавливается до установки сигнала CTS. Это позволяет подключенному к компьютеру прибору приостановить поток передаваемой в него информации, если он не успевает ее обрабатывать.

fOutxDsrFlow — Включает режим слежения за сигналом DSR. Если это поле равно TRUE и сигнал DSR сброшен, передача данных прекращается до установки сигнала DSR

fDtrControl — Задает режим управления обменом для сигнала DTR. Это поле может принимать следующие значения:



DTR_CONTROL_DISABLE

Запрещает использование линии DTR

DTR_CONTROL_ENABLE

Разрешает использование линии DTR

DTR_CONTROL_HANDSHAKE

Разрешает использование рукопожатия для выхода из ошибочных ситуаций. Этот режим используется, в частности, модемами при восстановленни в ситуации потери связи

fDsrSensitivity — Задает чувствительсть коммуникационного драйвера к состоянию линии DSR. Если это поле равно TRUE, то все принимаемые данные игнорируются драйвером (коммуникационный драйвер расположен в операционной системе), за исключением тех, которые принимаются при установленом сигнале DSR.

fTXContinueOnXoff — Задает, прекращается ли передача при переполнении приемного буфера и передаче драйвером символа XoffChar. Если это поле равно TRUE, то передача продолжается, несмотря на то, что приемный буфер содержит более XoffLim символов и близок к переполнению, а драйвер передал символ XoffChar для приостановления потрока принимаемых данных. Если поле равно FALSE, то передача не будет продолжена до тех пор, пока в приемном буфере не останется меньше XonLim символов и драйвер не передаст символ XonChar для возобновления потока принимаемых данных. Таким образом это поле вводит некую зависимость между управлением входным и выходным потоками информации.

fOutX — Задает использование XON/XOFF управления потоком при передаче. Если это поле равно TRUE, то передача останавливается при приеме символа XoffChar, и возобновляется при приеме символа XonChar.

fInX — Задает использование XON/XOFF управления потоком при приеме. Если это поле равно TRUE, то драйвер передает символ XoffChar, когда в приемном буфере находится более XoffLim, и XonChar, когда в приемном буфере остается менее XonLim символов.

fErrorChar — Указывает на необходимость замены символов с ошибкой четности на символ задаваемый полем ErrorChar. Если это поле равно TRUE, и поле fParity равно TRUE, то выполняется замена.

fNull — Определяет действие выполняемое при приеме нулевого байта. Если это поле TRUE, то нулевые байты отбрасываются при передаче.

fRtsControl — задает режим управления потоком для сигнала RTS. Если это поле равно 0, то по умолчанию подразумевается RTS_CONTROL_HANDSHAKE. Поле может принимать одно из следующих значений:

RTS_CONTROL_DISABLE

Запрещает использование линии RTS

RTS_CONTROL_ENABLE

Разрешает использование линии RTS

RTS_CONTROL_HANDSHAKE

Разрешает использование RTS рукопожатия. Драйвер устанавливает сигнал RTS когда приемный буфер заполнен менее, чем на половину, и сбрасывает, когда буфер заполняется более чем на три четверти.

RTS_CONTROL_TOGGLE

Задает, что сигнал RTS установлен, когда есть данные для передачи. Когда все символы из передающего буфера переданы, сигнал сбрасывается.

fAbortOnError — Задает игнорирование всех операций чтения/записи при возникновении ошибки. Если это поле равно 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 — Зарезервировано и не используется.

2.1Структура COMMTIMEOUTS и функции для работы с ней.

Функция SetCommTimeouts позволяет настроить COM-порт на основе данных, содержащихся в структуре COMMTIMEOUTS. Прототип этой функции выглядит так:

BOOL SetCommDCB(HANDLE hCom, LPCOMMTIMEOUTS lpCOMMTIMEOUTS);

Как видно, функция очень проста и имеет всего два параметра:

hCom — описатель последовательного порта.

lpCOMMTIMEOUTS — указатель на структуру COMMTIMEOUTS.

Функция GetCommTimeouts позволяет заполнить структуру COMMTIMEOUTS данными, соответствующими текущим параметрам COM-порта. Прототип этой функции выглядит так:

BOOL GetCommTimeouts (HANDLE hCom, LPCOMMTIMEOUTS lpCOMMTIMEOUTS);

Как видно, функция очень проста и имеет всего два параметра:

hCom — описатель последовательного порта.

lpCOMMTIMEOUTS — указатель на структуру COMMTIMEOUTS.

Структура содержит временные параметры, используемые при операциях ввода/вывода.

typedef struct _COMMTIMEOUTS {

DWORD ReadIntervalTimeout;

DWORD ReadTotalTimeoutMultiplier;

DWORD ReadTotalTimeoutConstant;

DWORD WriteTotalTimeoutMultiplier;

DWORD WriteTotalTimeoutConstant;

} COMMTIMEOUTS;

Кратко рассмотрим значения ее полей:

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

ReadTotalTimeoutMultiplier — Задает множитель, в миллисекундах, используемый для вычисления общего тайм-аута операции чтения. Для каждой операции чтения данное значение умножается на количество запрошенных для чтения символов.

ReadTotalTimeoutConstant — Задает константу, в миллисекундах, используемую для вычисления общего тайм-аута операции чтения. Для каждой операции чтения данное значение прибавляется к результату умножения ReadTotalTimeoutMultiplier на количество запрошеных для чтения символов. Нулевое значение полей ReadTotalTimeoutMultiplier и ReadTotalTimeoutConstant означает, что общий тайм-аут для операции чтения не используется.

WriteTotalTimeoutMultiplier — Задает множитель, в миллисекундах, используемый для вычисления общего тайм-аута операции записи. Для каждой операции записи данное значение умножается на количество записываемых символов.

WriteTotalTimeoutConstant — Задает константу, в миллисекундах, используемую для вычисления общего тайм-аута операции записи. Для каждой операции записи данное значение прибавляется к результату умножения WriteTotalTimeoutMultiplier на количество записываемых символов. Нулевое значение полей WriteTotalTimeoutMultiplier и WriteTotalTimeoutConstant означает, что общий тайм-аут для операции записи не используется.

2.2Структура COMSTAT и функции для работы с ней.

Функция ClearCommError не только сбрасывает признак ошибки для соответствующего порта, но и возвращает более подробную информацию об ошибке. Кроме того, возможно получение информации о текущем состоянии порта. Прототип этой функции выглядит так:

BOOL ClearCommError(

HANDLE hFile,

LPDWORD lpErrors,

LPCOMSTAT lpStat

);

Вот что означают параметры:

hFile — Описатель открытого файла коммуникационного порта.

lpErrors — Адрес переменной, в которую заносится информация об ошибке. В этой переменной могут быть установлен один или несколько из следующих бит:

CE_BREAK

Обнаружено состояние разрыва связи

CE_DNS

Только для Windows95. Параллельное устройство не выбрано.

CE_FRAME

Ошибка обрамления.

CE_IOE

Ошибка ввода-вывода при работе с портом

CE_MODE

Запрошенный режим не поддерживается, или неверный описатель hFile. Если данный бит установлен, то значение остальных бит не имеет значение.

CE_OOP

Только для Windows95. Для параллельного порта установлен сигнал "нет бумаги".

CE_OVERRUN

Ошибка перебега (переполнение аппаратного буфера), следующий символ потерян.

CE_PTO

Только для Windows95. Тайм-аут на параллельном порту.

CE_RXOVER

Переполнение приемного буфера или принят символ после символа конца файла (EOF)

CE_RXPARITY

Ошибка четности

CE_TXFULL

Переполнение буфера передачи

lpStat — Адрес структуры COMMSTAT. Должен быть указан, или адрес выделенного блока памяти, или NULL, если не требуется получать информацию о состоянии.

Структура содержит данные о текущем состоянии порта.

typedef struct _COMSTAT {

DWORD fCtsHold:1;

DWORD fDsrHold:1;

Характеристики

Тип файла
Документ
Размер
403 Kb
Тип материала
Высшее учебное заведение

Список файлов курсовой работы

Готовый курсовой проект 4
[2009] Чят (4)
Code
CC3260MT.DLL
Project1.bpr
Project1.cpp
Project1.exe
Project1.obj
Project1.res
Project1.tds
Project1.~bpr
Unit1.cpp
Unit1.ddp
Unit1.dfm
Unit1.h
Unit1.obj
Unit1.~cpp
Unit1.~ddp
Unit1.~dfm
Unit1.~h
Unit2.cpp
Unit2.ddp
Unit2.dfm
Unit2.h
Unit2.obj
Unit2.~cpp
Unit2.~ddp
Unit2.~dfm
Unit2.~h
Unit3.cpp
Unit3.ddp
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7041
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее