Помощь RS232c VB6 - PullRequest
       20

Помощь RS232c VB6

1 голос
/ 21 ноября 2010

Привет всем, я пытаюсь включить A / V-ресивер с помощью команды RS232, используя VB6 comm32. Чтобы включить это говорит использовать:

 Command code   Parameter code  CR    Code set example
 PW           ON              <CR>  PWON<CR>

И это мой код VB6, который я сейчас использую, который, кажется, не работает ...

MSComm.CommPort = 2
MSComm.Settings = "9600,n,8,1"
MSComm.PortOpen = True

If Not MSComm.PortOpen Then
    MsgBox "not opened"
Else
    MSComm.Output = "PWON" & Chr(13)

    Do While MSComm.InBufferCount > 0
         Text1.Text = Text1.Text & MSComm.Input
    Loop
End If

Приемник никогда не включается. Что я мог делать неправильно? Я проверил, чтобы убедиться, что com-порт был 2, и он есть.

David

1 Ответ

3 голосов
/ 21 ноября 2010

Вы просто отправляете символы <CR> вместо реального возврата каретки (код ASCII 13).Документация для последовательных периферийных устройств часто помещает имена управляющих символов в скобки (см. Википедия , список из них ).Вам нужна строка:

MSComm.Output = "PWON" & Chr(13)

Также кажется, что код, который следует для чтения данных из последовательного порта, должен быть изменен, потому что, если данные еще не поступили в буфер последовательного порта, он ничего не будет читать,Посмотрите на пример Microsoft , как это сделать.Вы можете решить прекратить чтение после того, как определенная подстрока во входе будет найдена, когда будет прочитано определенное количество байтов (Len функция), и т. Д.

...