Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Open COM Empfangspuffer leeren

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Falkge



Anmeldungsdatum: 31.05.2014
Beiträge: 2
Wohnort: Erfurt

BeitragVerfasst am: 31.05.2014, 15:45    Titel: Open COM Empfangspuffer leeren Antworten mit Zitat

Hallo,

Gibt es eine Möglichkeit bei FB den Empfangsbuffer zu leeren?
Problem ist folgendes:

Ich empfange Daten von einem Controller und durch einen Interrupt
kann das Senden des Controllers unterbrochen werden. Sendet der
Controller dann später neue Werte auf Anfrage von meinem FB Programm
so interpretiert FB merkwürdige Werte.

Starte ich allerdings das FB Programm neu so sind die Werte wieder so
wie sie sein sollten. Daher weiß ich das der Fehler nicht im Programm des
Controllers liegt.

Meine Vermutung ist das durch dass unterbrochene Senden vom Controller
die Variable FB-seitig nicht gefüllt ist er dann mit den neuen Werten vom
Controller diese erst auffüllt. Dadurch die wirren Werte...

Die Kommunikation funktioniert ansonsten in beide Richtungen problemlos
Bis eben zu den besagten Interrupt(Unterbrechung)

Ich hoffe ihr könnt mir helfen...

Mit freundlichen Grüßen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
micha



Anmeldungsdatum: 09.12.2005
Beiträge: 72

BeitragVerfasst am: 01.06.2014, 11:51    Titel: Antworten mit Zitat

Der Puffer wird Hardwareseitig also vom Gerätetreiber verwaltete.
Nach einem Verlust der Kommunikation bleibt dir nur ein CLOSE gefolgt von OPEN um neue Session mit "sauberem" Puffer zu iniziieren.

(So far I know) Vielleicht it das aber doch alles ganz anderes lächeln

Ist das ein "echter" COM Port oder via USB TTL Adapter ?

micha
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 01.06.2014, 19:33    Titel: Antworten mit Zitat

Vielleicht als Anregung:
Code:
Sub LeerePuffer(dateinr As Integer)
  Dim anz As Integer
  Do
    anz = Loc(dateinr)
    If anz > 0 Then
      ' In FB ist in der Regel keine Dummy-Variable nötig, da Funktionen
      ' auch wie Statements aufgerufen werden können, wenn der
      ' Rückgabewert nicht benötigt wird.
      Input(anz, dateinr)
    End If
  Loop While anz > 0
End Sub

d.h. einfach solange Zeichen lesen, bis keine mehr im Puffer (=LOC()-Rückgabewert = 0) drinliegen.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Falkge



Anmeldungsdatum: 31.05.2014
Beiträge: 2
Wohnort: Erfurt

BeitragVerfasst am: 02.06.2014, 19:09    Titel: Antworten mit Zitat

Hallo,

also CLOSE und OPEN habe ich schon verwendet, leider aber ohne Erfolg...

Ich versuche mal was an den COM Port(ist übrigens virtuell-> TTL) einstellungen von Windows zu drehen, ansonsten werde ich was basteln mit der Anregung von Dreael

Mit freundlichen Grüßen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz