Honeywell Xenon 1902 바코드 스캐너에 쿼리를 보내려고합니다. 스캐너는 가상 COM 포트를 통해 연결됩니다. 통신 설정 잘 작동합니다 :가상 COM 포트를 통해 Honeywell Xenon 1902 바코드 판독기로 데이터를 보냅니다.
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? " 하니웰 문서에서 스캐너로 보내고 답변을 받으십시오. 나는 하니웰 WebInterface에 이렇게 할 경우 모두 잘 작동합니다 :
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
:
이
Screenshot from the Honeywell Web Interface Terminal 그래서 내 문제는 내가 스캐너로도 테라 기간 또는 다른 단자를 통해도 내 코드를 통해 명령을 보낼 수 없습니다입니다이다
'SerialPort1.WriteLine ("cbr?.") 형식을 사용하여 ZPL 프린터에 물건을 보내면 모든 것을 인코딩하고 바이트 배열을 보내지 않고 그냥 사용하려고 했습니까? – soohoonigan
예, 시도했지만 스캐너 응답이 나타나지 않았습니다. Button1 이벤트를 발생시킬 때마다 스캐너에서 깜박이는 LED를 볼 수는 있지만 더 이상의 조치는 필요하지 않습니다. 특히 스캐너 응답이 없습니다. – Marc