Serielle Schnittstelle in C auslesen und Daten in Datei speichern

Ceres

Well-Known Member
Ich habe eine Wetterstation, die ich gerne unter FreeBSD auslesen möchte. Diese schickt alle paar Sekunden einen Datenstrom, den ich erfassen möchte und in eine Datei schreiben möchte. Soweit die Theorie. In der Praxis scheitere ich aber schon an den einfachsten Aufgaben :grumble:

Ich würde das Programm gerne in C schreiben, da ich die Programmiersprache am besten beherrsche, wenn auch nicht sehr gut. Hier mal mein kleiner Anfang:

Code:
#include <stdio.h>

int main(void) {       
        char COM[]="/dev/ttyd0";
   
        datei = fopen ("data.dat", "w");
       
        open(COM);
        read(COM);
        close(COM);

        return 0;
}

Ich gebe zu, das Ding macht noch nicht wirklich viel. Ich möchte die Daten, die ich über read(COM) erhalte, in die Datei 'data.dat' schreiben. Das soll angeblich mit der Funktion read() machbar sein, allerdings habe ich im Internet keine genauere Beschreibung gefunden. Dort übergeben die der Funktion read() auch immer 3 Werte.

Kann mir bitte jemand weiterhelfen?
 
man 2 open
man 2 read
man 2 close

Am Besten fängst du damit an, die notwendigen Header per #include einzubinden.
 
Code:
man 2 read
;)
Ok, als Anhaltspunkt:
Code:
char buf[1024] = "";
ssize_t bytes = read(fd, buf, sizeof(buf));
Das versucht 1024 Bytes auszulesen. Allerdings solltest Du Dir noch die termios (man termios) Dokumentation angucken, um zu sehen, wie Du die Schnittstelle konfigurierst.

HTH
 
Zurück
Oben