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:

Interrupts für Datenaufnahme von COM Port via Bluetooth

 
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
Sippo



Anmeldungsdatum: 17.04.2008
Beiträge: 125

BeitragVerfasst am: 22.07.2010, 21:38    Titel: Interrupts für Datenaufnahme von COM Port via Bluetooth Antworten mit Zitat

Guten Abend allerseits,

ich bin nun auch mal wieder hier im Forum unterwegs, da meine C - Kenntnisse für das Programm welches ich vorhabe zu schreiben noch nicht ausreichen.
Nun bin ich an einem Punkt angekommen an dem ich Eure Hilfe benötige. Die Lage ist folgende:

Ich sende per Bluetooth Daten, welche dann von einem Stick aufgenommen werden, der als COM - Port erkannt wird. Diesen rufe ich in FB ab. (Testweise erst einmal COM 1)

Da die Daten allerdings nicht ewig an dem Port anliegen muss ich bei einem Datenverkehr die ganze Prozedur anhalten und die Daten in Variablen einlesen.

Bisher sieht der Teil zum einlesen der Daten folgendermasen aus:

Code:
OPEN COM "COM1:9600,N,8,1" AS #1    ' Zugriff auf COM1 mit 9600 Baud, ohne Paritäts-Bit, acht Datenbits, ein Stoppbit
do
    wert(1) = inp (1)                       'Wert von COM 1 aufnehmen
    if wert(1) < 0 then wert(1) = 0         'noch ändern auf error für verbindungsverlust
    zaehler += 1
    speichern
    oberflaeche
    anzeigen
    counter = 1
    do
        wert(counter+1) = wert(counter)
        counter += 1
    loop while counter < 500
    if inkey = chr(27) then end
loop


Am besten wäre dies ja wohl über einen Interrupt zu lösen. Oder liege ich da falsch? Und wenn ja, gibt es in FB überhaupt interrupts? ich meine welche gesehen zu haben kann mich aber nivht mehr daran erinnern wo das war.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 22.07.2010, 21:48    Titel: Antworten mit Zitat

Hallo,

wenn das Programm unter Windows oder Linux (nicht DOS!) laufen soll, kannst du die Datenerfassung von der Schnittstelle in einen Thread auslagern und so unabhängig von der Anzeige/Oberfläche gestalten.
Der Thread würde die ankommenden Daten ständig in eine SHARED-deklarierte FIFO-Speicherstruktur eintragen und ein anderer Thread bzw. das Hauptprogramm könnte sie daraus abholen und verarbeiten.

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sippo



Anmeldungsdatum: 17.04.2008
Beiträge: 125

BeitragVerfasst am: 22.07.2010, 22:01    Titel: Antworten mit Zitat

wow das is ja genial happy

das heiß ich speichere die Dateien in Textdateien und rufe sie mit einem anderen programm daraus wieder auf. und um sicherzustellen, dass beide programm laufen erstelle ich noch eine starter datei oder starte am anfang des Hauptprogramms das Nebenprogramm

korrekt?

MfG Sippo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 22.07.2010, 22:05    Titel: Antworten mit Zitat

Sippo hat Folgendes geschrieben:
das heiß ich speichere die Dateien in Textdateien und rufe sie mit einem anderen programm daraus wieder auf. und um sicherzustellen, dass beide programm laufen erstelle ich noch eine starter datei oder starte am anfang des Hauptprogramms das Nebenprogramm

Ne, mit FreeBASIC geht's noch viel leichter! lächeln Du kannst innerhalb eines Programms mehrere "nebenläufige" Threads ablaufen lassen. Man kann auf diese Weise sozusagen mehrere Subs parallel laufen lassen.

Unter folgendem Link gibt es dazu ausführliche Erklärungen und auch einen Beispielcode: FreeBASIC-Befehlsreferenz: ThreadCreate (Multithreading in FreeBASIC)

Übrigens: Die E-Mail-Adresse, die du im Forum angegeben hast, scheint nicht mehr zu existieren. Die Benachrichtigungsmail des Forums an dich (wg. der neuen Antwort) kam eben als unzustellbar ans Adminpostfach zurück. zwinkern
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sippo



Anmeldungsdatum: 17.04.2008
Beiträge: 125

BeitragVerfasst am: 22.07.2010, 22:13    Titel: Antworten mit Zitat

Vielen Dank für die Antwort werde mich morgen mal durcharbeiten.
Und danke für die Info wegen der Mail nun sollte es wieder gehn^^
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
micha



Anmeldungsdatum: 09.12.2005
Beiträge: 72

BeitragVerfasst am: 22.07.2010, 23:58    Titel: Antworten mit Zitat

Vielleicht ist dieses etwas für Dich wenn neue Daten anliegen dann wird eine eigene SUB aufgerufen.
http://www.freebasic.net/forum/viewtopic.php?t=14150

Micha
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