COM-Port HOWTO[solved]
COM-Port HOWTO[solved]
Hi,
hat jemand für C/C++ ein Com-Port HOWTO das er empfehlen würde? Ich möchte mit dem Com-Port Geräte ansteuern.
Gruß tiris
hat jemand für C/C++ ein Com-Port HOWTO das er empfehlen würde? Ich möchte mit dem Com-Port Geräte ansteuern.
Gruß tiris
Zuletzt geändert von tiris am 29.09.2005 16:56:32, insgesamt 1-mal geändert.
hi,
Warum irgendein Howto lesen, wenn es offizielle gibt?
Serial-HOWTO
Serial-Programming-HOWTO
Text-Termial-HOWTO
Zum schnell mal nachschauen: man termios
Fuer ganz neugierige: /usr/src/kernel-source-2.6.x/Documentation/serial/driver
Ein paar Zeilen C, wie ich sie fuer Text-Terminals, CNC-Maschinen usw. benutze.
Dazu braucht man noch: [wie geht ein Edit in nopaste?! ]
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <sys/ioctl.h>
#include <termios.h>
Warum irgendein Howto lesen, wenn es offizielle gibt?
Serial-HOWTO
Serial-Programming-HOWTO
Text-Termial-HOWTO
Zum schnell mal nachschauen: man termios
Fuer ganz neugierige: /usr/src/kernel-source-2.6.x/Documentation/serial/driver
Ein paar Zeilen C, wie ich sie fuer Text-Terminals, CNC-Maschinen usw. benutze.
Dazu braucht man noch: [wie geht ein Edit in nopaste?! ]
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <sys/ioctl.h>
#include <termios.h>
Beware of programmers who carry screwdrivers.
Das geht vielleicht auch einfacher:
http://ezv24.sourceforge.net/
Benutze aber die Version aus dem cvs. Das letzte tarball hat kleinen Fehler im Makefile (für die Demo).
http://ezv24.sourceforge.net/
Benutze aber die Version aus dem cvs. Das letzte tarball hat kleinen Fehler im Makefile (für die Demo).
Hi
ich hätte da jetzt noch eine kleine Frage: Ich habe mal ein Programm(chen) geschrieben, dass nur den Port aufmachen soll, damit ich weiß ob es geht. Aber beim compilieren bekomme ich
motor.c:17:22: ungültiger Suffix »_RDWR« an Ganzzahlkonstante
motor.c:17:31: ungültiger Suffix »_NOCTTY« an Ganzzahlkonstante
Hier ist der Code:
http://nopaste.debianforum.de/1226
Danke
Gruß tiris
ich hätte da jetzt noch eine kleine Frage: Ich habe mal ein Programm(chen) geschrieben, dass nur den Port aufmachen soll, damit ich weiß ob es geht. Aber beim compilieren bekomme ich
motor.c:17:22: ungültiger Suffix »_RDWR« an Ganzzahlkonstante
motor.c:17:31: ungültiger Suffix »_NOCTTY« an Ganzzahlkonstante
Hier ist der Code:
http://nopaste.debianforum.de/1226
Danke
Gruß tiris
Da fehlt aber noch eine Menge. Es gibt noch Unterschiede wie blocking/non-blocking, Timeouts, ...
Mit ezV24 könnte das so aussehen (Code einfach so frei von der Leber weg):
Das Setzen von DTR ist auch nur ein Beispiel. Wenn Du den Devicenamen portabler brauchstm kannst Du auch das machen:
Das liefert dann für Windows "COM1" und für Linux "/dev/ttyS0" als ersten Port.
Mit ezV24 könnte das so aussehen (Code einfach so frei von der Leber weg):
Code: Alles auswählen
// ACHTUNG: kompiliert so nicht...
#include <stdio.h>
#include <stdlib.h>
#include <ezV24/ezV24.h>
#define MAXBUFFER 100
v24_port_t *UsedPort=NULL;
char buffer[MAXBUFFER+1];
int count;
UsedPort=v24OpenPort("/dev/ttyS0",V24_STANDARD);
v24SetParameters(UsedPort,V24_B9600,V24_8BIT,V24_NONE);
v24SetDTR(UsedPort,1);
v24Puts((UsedPort,"Hallo hier bin ich\n");
count=v24Gets(UsedPort,buffer,MAXBUFFER);
if ( count > 0 )
printf("das kam zurück: '%s'\n",buffer);
v24SetDTR(UsedPort,0);
v24ClosePort(UsedPort);
Code: Alles auswählen
char portname[V24_SZ_PORTNAME+1];
v24PortName(1,portname);