vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Mehrere Befehle über RS232 senden/empfangen 
Autor: Bibobernie
Datum: 08.07.12 00:01

So ich hab nun mal verschiedenes ausprobiert und hab mich jetzt erst einmal für die Variante ohne Threads entschieden weil diese ja ganz gut funktionierte.
Das Auswerteproblem welches ich mit den kurzen strings hatte lag an einer globalen Variablen in welche ich die empfangenen Stringteile einlagerte:

''' <summary>
    ''' Sub fügt empfangene Teilstrings aus Empfangs-Event zusammen.
    ''' </summary>
    ''' <param name="Buffer">Teilstrings aus Empfang</param>
    ''' <remarks></remarks>
    Private Sub Fügen(ByVal Buffer As String)
        Empfang = Empfang + Buffer   'Hier wird der empfangene Text 
        ' zusammengefügt
        If Buffer.Contains(Chr(13)) Then
            Verarbeitung(Empfang, SerPort)   'Und hier an die Auswertung 
            ' übergeben
            Empfang = String.Empty           'Bei sehr kurzen 
            ' Empfangsereignissen kommt es nicht zum löschen der globalen 
            ' Variable. Die Sub beginnt einfach wieder von vorn.
        End If
 
    End Sub
Dadurch wurde der neu empfangene Text einfach in die Variable geschrieben bevor diese gelöscht wurde. Somit hatte ich dann auch die Auswerteprobleme. Ich habe nun bereits in der sub "Verarbeitung" das löschen der globalen Variable veranlasst und alles funktioniert sehr gut. Nun erhalte ich auch sehr kurze Strings problemlos über die Schnittstelle.

Aber ich habe trotzdem noch ein kleines Problem bzw. ne frage:

Und zwar kommt es vor das ich mehrere Befehle über die Schnittstelle schicken muss. Das erledige ich bis jetzt ungefähr so:

Serport.write(Befehl1)
system.threading.thread.sleep(100)  'Kurze Wartezeiten damit die Schnittstelle/ 
' das Gerät sich nicht verschluckt;).
serport.write(Befehl2)
system.threading.thread.sleep(100)
serport.write(Befehl3)
Das funktioniert an sich prima. Nun möchte ich jedoch eine Bedingung einbauen das z.B. Befehl2 nur gesendet wird wenn Befehl1 eine bestimmte Antwort gegeben hat. Habe versucht das wie folgt zu realisieren:

Serport.write(Befehl1)
system.threading.thread.sleep(100)
If Antwort = "OK" then
serport.write(Befehl2)
else
serport.write(Befehl3)
end if
Hier habe ich aber scheinbar die Rechnung ohne VB gemacht. Das abarbeitet nämlich erst mal fluffig meinen Code mit den Befehlen ab und verarbeitet das Empfangsevent scheinbar nicht sofort. Nun hab ich die Vermutung das das ganze an dem Sleep liegt da das System in der Zeit ja nur Faul rumhängt und erst nach der Zeitspanne mit werkeln und Empfangen beginnt. Meine Frage dementsprechend ob jemand ne elegantere Lösung für solche Wartezeiten kennt bzw. ne Lösung für mein Problemchen mit dem Empfang parat hätte.

Ahnungsloser ahnungsloser...

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Mehrere Befehle über RS232 senden/empfangen5.229Bibobernie29.06.12 11:47
Re: Mehrere Befehle über RS232 senden/empfangen4.107Bibobernie29.06.12 11:50
Re: Mehrere Befehle über RS232 senden/empfangen3.913Bibobernie29.06.12 15:16
Re: Mehrere Befehle über RS232 senden/empfangen3.996Bibobernie30.06.12 17:01
Re: Mehrere Befehle über RS232 senden/empfangen3.929xirton30.06.12 17:10
Re: Mehrere Befehle über RS232 senden/empfangen4.021Bibobernie30.06.12 17:58
Re: Mehrere Befehle über RS232 senden/empfangen4.061xirton30.06.12 18:10
Re: Mehrere Befehle über RS232 senden/empfangen3.959Preisser30.06.12 20:07
Re: Mehrere Befehle über RS232 senden/empfangen3.936xirton30.06.12 20:15
Re: Mehrere Befehle über RS232 senden/empfangen4.039Bibobernie01.07.12 13:49
Re: Mehrere Befehle über RS232 senden/empfangen3.906Bibobernie06.07.12 14:45
Re: Mehrere Befehle über RS232 senden/empfangen3.868xirton06.07.12 15:31
Re: Mehrere Befehle über RS232 senden/empfangen3.998Bibobernie06.07.12 16:41
Re: Mehrere Befehle über RS232 senden/empfangen3.904xirton06.07.12 16:54
Re: Mehrere Befehle über RS232 senden/empfangen3.993Preisser06.07.12 17:12
Re: Mehrere Befehle über RS232 senden/empfangen3.833xirton06.07.12 17:14
Re: Mehrere Befehle über RS232 senden/empfangen3.881Preisser06.07.12 17:00
Re: Mehrere Befehle über RS232 senden/empfangen3.904Bibobernie06.07.12 20:59
Re: Mehrere Befehle über RS232 senden/empfangen3.973Bibobernie08.07.12 00:01
Re: Mehrere Befehle über RS232 senden/empfangen4.056Preisser08.07.12 03:20
Re: Mehrere Befehle über RS232 senden/empfangen3.974Bibobernie08.07.12 10:29
Re: Mehrere Befehle über RS232 senden/empfangen3.889Preisser08.07.12 14:06
Re: Mehrere Befehle über RS232 senden/empfangen3.896Bibobernie09.07.12 22:08

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel