ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
6302
6302
EMPFEHLEN
-
24.04.07 11:01 #1
- Registriert seit
- Apr 2007
- Beiträge
- 16
Hallo
Wie ich Daten über den COM-Port sende weiss ich inzwischen, aber jetzt habe ich ein neues Problem:
Ich möchte an ein über RS232 angeschlossenes Gerät einen Befehl senden "info" --> das Gerät antwortet dadrauf und gibt mir 3 Zeilen Code zurück (im Hyperterminal gesehen).
Wie kann ich es jetz hinbekommen, dass mein Programm dann ausliest wenn ich gerade den Befehl abgesendet habe (ich weiss ja nicht wie schnell das Gerät reagiert....).
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
Sub SendSerialData(ByVal data As String) Dim readbuffer As Byte() = {} If strComport = "COM ?" Then Me.ComboBoxCOM.Enabled = True Else Using com As IO.Ports.SerialPort = _ My.Computer.Ports.OpenSerialPort(strComport, 9600, IO.Ports.Parity.None, 8, IO.Ports.StopBits.One) com.Encoding = System.Text.Encoding.ASCII 'GetEncoding(850) 'portName ,baudRate ,parity ,dataBits ,stopBits com.Encoding = System.Text.Encoding.UTF8 com.WriteLine(data) End Using End If End Sub Function ReadSerialData() As String ' Receive strings from a serial port. Dim returnStr As String = "" If strComport = "COM ?" Then Me.ComboBoxCOM.Enabled = True Else Using com1 As IO.Ports.SerialPort = _ My.Computer.Ports.OpenSerialPort(strComport, 9600, IO.Ports.Parity.None, 8, IO.Ports.StopBits.One) Do Dim Incoming As String = com1.ReadLine() If Incoming Is Nothing Then Exit Do Else returnStr &= Incoming & vbCrLf End If Loop com1.Close() End Using End If Return returnStr End Function Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick SendSerialData("info") MsgBox(ReadSerialData()) End Sub
Das Programm scheint dann zu hängen, jedenfalls kann man es nicht mehr minimieren, verschieben etc. ....
Jemand einen Lösungsvorschlag?
Gruß, PingOfDeath
-
ich würde es nicht mit einem Timer machen sondern mit der Sleep api in einer schleife
Code vb:1 2 3 4
while not len(readSerialData) sleep 200 doEvents wend
Dann ist dein Prozessor nicht so ausgelastet.
Grüsse bb
Ähnliche Themen
-
Daten korrekt von COM-Port empfangen?
Von Jonas007 im Forum C/C++Antworten: 0Letzter Beitrag: 21.12.06, 18:01 -
Daten Senden & Empfangen über RS-232
Von Paella im Forum Delphi, Kylix, PascalAntworten: 3Letzter Beitrag: 06.08.06, 19:58 -
comm port problem beim empfangen
Von Serethos im Forum JavaAntworten: 1Letzter Beitrag: 17.02.05, 08:18 -
Senden und empfangen von nachrichten via Winsock
Von MasterSHYBBY im Forum Visual Basic 6.0Antworten: 18Letzter Beitrag: 15.01.04, 18:26 -
UDP - senden/empfangen funktioniert nicht
Von matt im Forum C/C++Antworten: 8Letzter Beitrag: 23.10.03, 13:14





Zitieren
Login





