Проблема получения данных по СОМ порту

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Joss
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 26.04.2004 (Пн) 14:49

Проблема получения данных по СОМ порту

Сообщение Joss » 06.05.2004 (Чт) 13:45

Прошу помочь решить небольшую проблему (или большую). Мне поручили написать программу получения данных с внешнего оборудования через СОМ порт. Особенность состоит в том, что передача начинается по нажатию кнопки на внешнем устройстве. Передача ведется сразу, без всяких опросов о готовности и пр. Данные передаются одним блоком в 32К (32768 байт), а буфер СОМ порта может быть размером только 32767 байт, по этому последний байт теряется. Я сначала запускаю цикл опроса порта, а потом нажимаю на устройстве кнопку передачи.
Dim Buffer As String
Do
DoEvents
Buffer = Buffer & MSComm1.Input
Loop Until Len(Buffer) = 32768
По идее, буфер порта должен непрерывно очищаться, а в переменной Buffer должна накапливаться передаваемая информация. Но как только начинается передача, программа впадает в ступор и не выходит из него, пока не будет передана вся информация. В переменной Buffer оказывается столько информации, каков размер буфера СОМ порта, остальная информация теряется. Причем эта ситуация возникает на всех компьютерах, кроме моего (у меня прием идет по частям). попытка использовать свойства
MSComm1.Break = True
MSComm1.RThreshold = 1 или 100
ни к чему не привели. В чем может быть дело? Программировал на VB6 с установленным SP6. OC Windows 98SE. На других машинах: Windows 95, Windows 98SE, Windows ME. Установки параметров портов везде одинаковые - число бит, скорость, контроль, стоповые биты, управление потоком.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 5

    TopList