Некоторые примечания по элементу управления MSCOMM
Управление связью MSComm в VB5.0/6 предоставляет ряд стандартных командных интерфейсов связи, которые позволяют устанавливать соединения через последовательный порт и могут подключаться к другим устройствам связи (например, модему).
Вы также можете отправлять команды, обмениваться данными, а также отслеживать и реагировать на различные ошибки и события, которые могут возникнуть в процессе связи, что позволяет создавать полнодуплексные, управляемые событиями
Динамичная, эффективная и практичная коммуникационная программа. Однако в реальном процессе разработки коммуникационного программного обеспечения система управления MSComm не так совершенна и проста в управлении, как предполагалось. Особенно в китайском Wln
При общении под 95/98 проблем будет больше. Далее мы начнем с базового введения, а затем постепенно обсудим проблемы, возникающие при программировании системы управления MSComm, и методы программирования.
1. Общайтесь с элементом управления MSComm.
1. Базовые знания последовательной связи
Как правило, компьютеры имеют один или несколько последовательных портов: com1, com2,..., эти последовательные порты также обеспечивают внешние устройства и ПК для передачи данных и
Прохождение письма. Эти последовательные порты действуют как интерпретаторы между процессором и периферийными устройствами. Когда символьные данные передаются из ЦП на периферию, эти символьные данные преобразуются в последовательные биты.
Потоковые данные; при получении данных данные битового потока преобразуются в символьные данные и передаются в ЦП. Кроме того, с точки зрения операционной системы Windows использует драйвер связи.
(COMM.DRV) вызывает функции API для отправки и получения данных. Когда функции API вызываются с элементами управления связью или объявлениями, они интерпретируются COMM.DRV и передаются драйверу устройства.
Как программисту vB, вам нужно писать коммуникационные программы. Вам нужно только знать интерфейс, предоставляемый элементом управления связью с функцией связи AP1 Windows. Другими словами, просто настройте и контролируйте
Просто доверьтесь свойствам и событиям элемента управления.
2. Использование элемента управления Mscomm
Прежде чем начать использовать элемент управления MSComm. Необходимо сначала понять его свойства, события или ошибки.
Описание недвижимости
CommPort устанавливает или возвращает номер порта связи.
Настройки задают или возвращают скорость передачи данных, четность, биты данных и стоповые биты в виде строк.
PortOpen устанавливает или возвращает состояние коммуникационного порта. Порты также можно открывать и закрывать.
Ввод возвращает и удаляет символы в буфере приема.
Вывод записывает строку в буфер отправки.
Свойство CommEvent возвращает одно из следующих значений для события или ошибки связи. Эти константы также можно найти в библиотеке объектов элемента управления.
Описание постоянного значения
ComEventBreak1001 получил сигнал прерывания
ComEventCTSTO1002ClearToSendTimeout. При отправке символов, в рамках заданного системой события, линия CTS (ClearToSend) находится на низком уровне.
ComEventDSRTO1003DataSetReadyTimeout. При отправке символов в рамках события, заданного системой, линия DSR (DataSetReady) находится на низком уровне.
Ошибка кадра данных ComEventFrame1004. Аппаратное обеспечение обнаружило ошибку кадра данных
Переполнение порта ComEventOverrun1006. Символ в железе еще не прочитан, приходит следующий символ и теряется
ComEventCDTO1007CarrierDetectTime. При отправке символов линия CD (CarrierDetect) имеет низкий уровень в пределах события, указанного системой. компакт-диск
Также называется RLSD (ReceiveLineSingalDetect, обнаружение сигнала линии приема)
ComEventRxOver1008 получает переполнение буфера. Нет места в буфере приема
ComEventRxParity1009 Ошибка четности. Аппаратное обеспечение обнаружило ошибку четности 7
ComEventTxFull1010 Буфер отправки заполнен. Во время постановки символов в очередь отправки буфер отправки заполнен.
ComEventDCB1011 Произошла непредвиденная ошибка при получении DCB порта (DeviceControlBlick).
Коммуникационные события включают в себя следующие настройки:
Описание постоянного значения
Количество символов в буфере отправки ComEvSend1 меньше значения Sthreshold.
ComEvReceive2 получил символы Rthreshold. Это событие продолжает генерироваться до тех пор, пока данные в буфере приема не будут удалены с помощью свойства Input.
Строка ComEvCTS3CTS(ClearToSend) изменена.
Строка ComEvDSR4DSR(DataSetReady) изменена. Это событие происходит, когда DSR изменяется с 1 на 0.
Линия ComEvCD5CD (CarrierDetect) меняется, когда ComEvRing6 обнаруживает сигнал вызова. Некоторый URAT(UniversalAsynchronousReciver-
-Передатчики, Универсальный асинхронный приемник-передатчик) не поддерживает это событие.
ComEvEOF7 получил символ EOF (символ ASCII 26)
Сообщения об ошибках (элемент управления MSComm) В следующей таблице перечислены сообщения об ошибках, которые может фиксировать элемент управления MSComm:
Описание постоянного значения
ComInvalidPropertyValue380 Неверное значение свойства.
Свойство ComSetNotSupported383 доступно только для чтения.
Свойство ComGetNotSupported394 доступно только для чтения.
Это присутствие недопустимо, когда порт ComPortOpen8000 открыт.
Значение тайм-аута 8001 должно быть больше 0.
ComPortInvalid8002 Неверный номер порта
Атрибуты 8003 действительны только во время выполнения.
8004 Свойства доступны только для чтения во время выполнения.
Порт ComPortAleadyOpen8005 открыт.
8006 Идентификатор устройства недействителен или не поддерживается.
8007 Скорость передачи данных устройства не поддерживается.
8008 Указанный размер байта недействителен.
8009 Ошибка параметра по умолчанию
8010 Оборудование недоступно (заблокировано другими устройствами)
Функция 8011 не может выделить очередь
Устройство ComNoOpen8012 не открыто
8013 Устройство уже открыто
8014 Уведомление о связи невозможно использовать.
ComSetCommStateFailed8015 не может установить статус связи
8016 Невозможно установить экранирование событий связи.
ComPortNotOpen8018 Это присутствие действительно только тогда, когда порт открыт.
8019 Устройство занято
ComReadError8020 Ошибка чтения устройства связи
ComDCBError8021 Произошла внутренняя ошибка при получении блока управления устройством порта.
Поняв вышеуказанные основные свойства, вы можете приступить к написанию программ разрешения связи. Создайте новый файл проекта в VB5.0/6.0. Добавить группу MicrosoftCommControl5.0.
File, добавьте кнопку «Команда» в упрощенную форму 1 и назовите ее CmdTest, назовите элемент управления MSComm MSComm1 и добавьте следующий программный код.
PrivateSubcmdTestClick()'Откройте последовательный порт
MSComml.CommPort=2'Установить Com2
ЕслиMSComml.PortOpen=FalseThen
MSComm1.Settings="9600,n,8,1"' Скорость передачи данных 9600, без контроля четности, 8 бит данных, 1 стоповый бит
MSComm1.PortOpen=True'Откройте последовательный порт
Эндиф
MSComm1.OutBufferCount=0'Очистить буфер отправки
MSComm1.InBufferCount=0'Переместить буфер приема
'При отправке символьных данных обязательно заканчивайте их возвратом каретки (vbcr)
MSComm1.Output="Это хорошая книга!"&vbCr
'Введите номер телефона или отправьте AT-команду
MSComm1.Output="ATDT05778191898,&vbCr
'При отправке данных массива символов обратите внимание, что ByteArray должно быть присвоено значение заранее
DimByteArrayasbyte()
'Определяем динамический массив
Редимбайтаррай(1)
'Переопределяем размер массива
БайтАррай(0)=0
БайтАррай(1)=1
MSComm1.Output=Байтмассив
EndSub
частноеСубМСкоммЕвент()
SelectCaseMSComm1.CommEvent
CasecomEvReceive
DimBufferAsVariant
MSComm1.InputLen=0
'Получить двоичные данные
MSComm1.InputMode=ComInputModeBinary
Буфер = MSComm1.Ввод
'Получаем данные о персонаже
MSComm1.InputMode=comInputModeText
Буфер = MSComml.Ввод
Казелсе
КонецВыбрать
Конец-саб
(Процедура 1)
1 2Прочитайте полный текст на следующей странице.