Hallo Leute,
ich benutze den SerialPortListener zu ersten Mal und habe prompt ein Problem mit ihm. Und zwar habe ich eine (alte) Maschine die Teststreifen ausliest und das Ergebnis dann ausdruckt. Diese Maschine soll nun per seriellem Kabel an einen PC angeschlossen werden und die Daten so weiter verarbeitet werden. Vom Hersteller gibt es auch eine teure Software dafür, die man kostenlos testen kann. (Dabei werden die Werte allerdings verfälscht.) Dadurch weiß ich, dass die Maschine funktioniert und über das Kabel Werte liefert. Außerdem weiß ich mit Bestimmtheit, dass es sich um COM1 handelt, denn das ist in den Optionen des Testprogramms ausgewählt.
Mein Code:
Leider wird die SerialPort1_DataReceived Methode nie aufgerufen. Ich habe es (u.a.) noch mit der Lösung vonhttp://www.dreamincode.net/forums/to...tion-in-vbnet/ versucht, bekomme dort aber auch nichts zurück geliefert. Habe schon überlegt ob die Maschine irgendwie abfragt ob das Originalprogramm des Herstellers am anderen Ende des Kabels ist und erst dann Daten liefert, aber dann müsste ja trotzdem irgendwas ankommen und die Methode aufgerufen werden. Hat jemand eine Idee was ich falsch mache?
ich benutze den SerialPortListener zu ersten Mal und habe prompt ein Problem mit ihm. Und zwar habe ich eine (alte) Maschine die Teststreifen ausliest und das Ergebnis dann ausdruckt. Diese Maschine soll nun per seriellem Kabel an einen PC angeschlossen werden und die Daten so weiter verarbeitet werden. Vom Hersteller gibt es auch eine teure Software dafür, die man kostenlos testen kann. (Dabei werden die Werte allerdings verfälscht.) Dadurch weiß ich, dass die Maschine funktioniert und über das Kabel Werte liefert. Außerdem weiß ich mit Bestimmtheit, dass es sich um COM1 handelt, denn das ist in den Optionen des Testprogramms ausgewählt.
Mein Code:
Code:
Public Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) SerialPort1.PortName = "COM1" Try SerialPort1.Open() Catch ex As Exception MessageBox.Show("Fehler beim Öffnen von COM1") End Try End Sub Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived MessageBox.Show("SerialPort1_DataReceived") Dim buffer() As Byte = New Byte() {} Dim bufSIZ As Integer bufSIZ = SerialPort1.BytesToRead MessageBox.Show(bufSIZ.ToString()) Array.Resize(buffer, bufSIZ) SerialPort1.Read(buffer, 0, bufSIZ) Dim message As String = System.Text.Encoding.UTF8.GetString(buffer, 0, bufSIZ) rtb.Text = message End Sub
Comment