Veröffentlicht 11. Mai 200124 j hallo ich suche ein tutorial oder informationen über programmierung der seriellen schnittstelle unter linux... also prinzipiell soll das program einfach nur die daten der schnittstelle einlesen und in der standartausgabe raushaun. nichts wirklch schweres, allerdings bin ich anfänger in c++ ) vielen dank schon mal im voraus /Sven
11. Mai 200124 j Hallo, wenn es wirklich nur eine Standard-Text-IO ist: Öffne /dev/ttySx (x=0,1) bzw. bei einigen Distris /dev/cuax (x=0,1) wie eine normale Datei.... Zur Einstellung der Parameter sollte setserial Dein Freund sein. Das ist allerdings ein externes Tool, was die Aufgabe sicher besser hinbekommt, als jedes selbstgeschriebene C-Programm... (Man denke an exotische Hardware, mit der Dein Programm umgehen kann, solange das Betriebssystem die devs zur Verfügung stellt) Daniel
14. Mai 200124 j ich kann dazu noch ein kleines howto anbieten die adresse lautet: http://sophia.jpte.hu/linux/HOWTO/mini/Serial-Port-Programming
26. April 200619 j Leider ist der Link nicht mehr vorhanden, hat evtl jemand das Howto für mich oder einen Link. Möchte ansich nur eine ecterne Festplatte über die serielle Schnittstelle anschalten. Falls jemand anders noch eine Idee hat immer her damit
27. April 200619 j wenn dein device richtig konfiguriert ist, dann kannst du das decvice, z.b. "/dev/ttyS0" wie eine datei öffnen, z.b. mit fopen("/dev/ttyS0","r") angenommen das device ist eine alte com-maus, dann kannst du einfach mit gpm dem maustreiber laden und das device ist richtig konfiguriert. so hab ich das bei meiner "maus-fernbedienung" gemacht. und wenn du dann von dem device liest, dann bekommst du jede menge chars viel spaß damit =) wenn du noch hilfst brauchst, dann kann ich dir auch mal ein stück code zuschicken.
27. April 200619 j Dieses kleine Programm gibt dir alles als char aus, was auf "/dev/ttyS0" rein kommt. so als kleines Beispiel ... Und wenn das Device richtig konfiguriert ist, dann ergeben die werte sogar Sinn kannst dir auch die Zeichen als als Zahl darstellen lassen, ist vielleicht sinnvoller ... #include <stdio.h> #include <errno.h> #define DEVICE "/dev/ttyS0" int main(int argc, char *argv[]) { FILE *fp; char c; fp = fopen(TERM_DEVICE, "r"); if(fp == NULL) { printf("Error: %s: %s\n", DEVICE, strerror(errno)); return 1; } while(1) { c = fgetc(fp); printf("%c ", c); } fclose(fp); return 0; }
27. April 200619 j okay danke so lese ich das also aus, aber wie schicke ich denn ein Signal an die Schnittstelle um zum Beispiel ein Relai anzusteuern um ein Gerät wie externe Festplatte ein und auszuschalten? Nur Beispiel ein wenig muss ich ja auch selber machen, weißt du zufällig wie das mit den Portbelegungen ist
27. April 200619 j bei solchen sachen solltest du es lieber richtig vernünftig machen ... schau dir das mal an: http://sourceforge.net/projects/libserial/
27. April 200619 j Dieses PDF hier enthält auch seeeehr viele Informationen. Richtig GUT! http://www.netzmafia.de/skripten/hardware/SerialPort_Programming_c.pdf
16. Mai 200619 j coole Sache danke, werde das Problem erstmal mit einer Zeitschaltuhr lösen und mich dann noch mal damit beschäftigen
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.