Re: [maillist] Handshakeleitungen

Peter Bieringer (pb@bieringer.de)
Tue, 27 Apr 1999 18:39:03 +0200

At 17:53 27.04.99 +0200, you wrote:
>Kann mir jemand sagen, wie ich unter Linux mit C die Handshakeleitungen
>(RTS, CTS, DTR) von /dev/ttyS0 auslesen kann, um die Daten des
>angeschlossenen A/D-Converters
>zu bekommen?
>Oder wei=DF jemand wo es dazu Infos gibt (In der Serial-Programming-Howto
>han ich nichts gefunden)

Zuf=E4llig auch vor 2 Wochen =E4hnliches gebraucht. Dies geht =FCber ioctl. =
"man
ioctl_list" zeigt alle m=F6glichen Funktions=FCbergabeparameter (allerdings
ohne gro=DFe Erkl=E4rung).

hier z.B. (aus dem smartups-0.34 serial.c):
=09
char *portfn =3D "/dev/ttyS0";
upsfd =3D open(portfn, O_RDWR | O_NOCTTY | O_NONBLOCK);

if (upsfd < 1) {
char errmsg[64];
sprintf (errmsg, "Unable to open %s", portfn);
perror (errmsg);
exit(0);
}

// set DTR to low and RTS to high
ioctl(upsfd, TIOCMBIC, &dtr_bit);=20
ioctl(upsfd, TIOCMBIS, &rts_bit);

Die letzten 3 Zeilen sind von mir...um die passive serielle Schnittstelle
mit Strom zu versorgen.

Peter