ハネウェルキセノン1902バーコードスキャナにクエリを送信しようとしています。スキャナは仮想COMポートを介して接続されています。通信の設定 が正常に動作します:ハニーウェルキセノン1902バーコードリーダーに仮想COMポート経由でデータを送信
With SerialPort1
If Not .IsOpen Then
Try
.PortName = "Com9"
.BaudRate = 115200
.DataBits = 8
.Parity = Parity.None
.StopBits = StopBits.One
.Handshake = Handshake.None
.DtrEnable = False
.RtsEnable = False
.Open()
Catch ex As Exception
MessageBox.Show(ex.Message & vbNewLine & ex.StackTrace, "Fehler beim Öffnen des COM Ports", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End If
End With
私はスキャンのための手動ボタンを押すと、私はスキャナから読み込んでデータを受け取る:
Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Try
Dim sp As SerialPort = CType(sender, SerialPort)
PufferString = sp.ReadExisting
MsgBox(PufferString)
Catch ex As Exception
MessageBox.Show(ex.Message & vbNewLine & ex.StackTrace, "Fehler beim Empfangen", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
は、今私は、クエリコマンドを送信したいと思います」 cbr? " Honeywellの文書からスキャナーに送信し、その答えを受け取ります。私はハネウェルウェブインターフェースでこれを行う場合、それはすべて正常に動作します:
Screenshot from the Honeywell Web Interface Terminal をだから私の問題は、私はTera Termのか、他の端末を経由しても、私のコード経由でもないスキャナにコマンドを送信することができませんということです。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim BefehlsString As String = "cbr?."
Dim enc As System.Text.Encoding = New System.Text.ASCIIEncoding()
Try
Dim ByteArray() As Byte ' Oder String in ...
ByteArray = enc.GetBytes(BefehlsString & vbCr) ' ... Einzelbytes umwandeln
SerialPort1.BaseStream.Write(ByteArray, 0, ByteArray.Length) ' Einzelbytes senden
Catch ex As Exception
MessageBox.Show(ex.Message & vbNewLine & ex.StackTrace, "Fehler beim Senden", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
'SerialPort1.WriteLine(" cbr?。 ")という形式を使って私たちのZPLプリンタに物を送るとき、うまくいきます。すべてをエンコードしてバイト配列を送るのではなく、 – soohoonigan
はい、試しましたが、スキャナの応答が表示されませんでした。私がButton1イベントを起こすたびに、私はスキャナでLEDが点滅するのを見ることができますが、それ以上のアクションはありません。特にスキャナレスポンスはありません。 – Marc