1

VB6 comm32 を使用して RS232 コマンドで A/V レシーバーをオンにしようとしています。それをオンにするには、次を使用するように言います:

 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であることを確認しましたが、そうです。

デビッド

4

1 に答える 1

3

<CR>実際のキャリッジ リターン (ASCII コード 13) ではなく、文字を送信しているだけです。シリアル周辺機器のドキュメントでは、多くの場合、制御文字の名前が括弧で囲まれています (それらのリストについては、Wikipedia を参照してください)。次の行が必要です。

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

また、シリアル ポートからデータを読み取るために続くコードを変更する必要があるようです。データがシリアル ポートのバッファにまだ到着していない場合は、何も読み取られないからです。その方法については、 Microsoft の例をご覧ください。入力内の特定の部分文字列が見つかったら、読み取りを停止するか、特定のバイト数が読み取られたら (Len関数)などを決定できます。

于 2010-11-21T03:27:57.323 に答える