2013-12-21 1 views
1

마젤란 스캐너/스케일이 있습니다. 그것은 rs232 통해 내 PC에 연결되어 있습니다. 하이퍼 터미널 프로그램에서 S11 + ENTER 명령을 보내서 규모에 대한 가중치를 읽을 수 있으며 문제없이 하이퍼 터미널에서 가중치를 보여줍니다. 제 질문은 왜 vb.net 코드를 사용할 때 무게를 읽을 수 없습니까? 여기 스케일/스캐너에 대한 명령 송수신

Imports System 
Imports System.IO.Ports 
Imports System.Threading 

Public Class Form1 
    Dim WithEvents Myport As SerialPort = New System.IO.Ports.SerialPort("COM2", 9600, Parity.Odd, 7, StopBits.One) 
    Private Sub btnOpenPort_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenPort.Click 
     Try 
      If Not Myport.IsOpen Then 
       Myport.Open() 
       MsgBox("Port Opened") 
      End If 
     Catch ex As Exception 
      MsgBox(ex.Message) 
     End Try 
    End Sub 
    Private Sub sendCommand_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sendCommand.Click 
     Try 
      Myport.Write("S11" & vbCr) 
      Thread.Sleep(20) 
      Myport.ReadTimeout = 500 
      TextBox1.Text = Myport.ReadExisting 
     Catch ex As Exception 
      MsgBox(ex.Message) 
     End Try 
    End Sub 

업데이트 지금까지 내 코드입니다 : 내가 보낼 때 명령 (S334) (스캐너 경고음을) 나는이 문제를 스캐너와 통신하거나 명령을 송신이없는 것을 의미 스캐너 경고음 . 유일한 문제는 스케일에서 응답을 읽는 방법입니다.

해결책 발견 !!!!! 나는 무게와 스캔 된 바코드 내 문제가 해결

Private Sub REC(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles Myport.DataReceived 

    TextBox2.Text &= Myport.ReadTo(Chr(13)) 
    Try 
     TextBox2.Text = TextBox2.Text.Replace("S11", "") 
     If TextBox2.Text.Length = 4 Then 
      Label1.Text = "Weight: " & TextBox2.Text/100 
     End If 
    Catch ex As Exception 
    End Try 
    Try 
     TextBox2.Text = TextBox2.Text.Replace("S08A", "") 
    Catch ex As Exception 
    End Try 
End Sub 

을 잡으려고 Myport.Handshake = Handshake.RequestToSend 나는 또한 다음과 같은 이벤트를 추가로 설정했다! 여기

+0

은 당신이 대답으로 솔루션을 게시 할 수있는 스케일 무게를 읽고. – Tshepang

답변