Re: OT: bra exempel på serieportskod i C
| Newsgroups | gmane.linux.debian.user.swedish |
|---|---|
| Message-ID | <[email protected]> |
Janne: > On Wed, 29 Jul 2015 07:55:33 +0000 > Michael Kjörling <[email protected]> wrote: > > On 29 Jul 2015 06:22 +0200, from [email protected]: > > > Det enda jag vill göra är lite "trivial" skicka och ta emot > > > textsträngar via serieporten. ... > > Om du bara vill skicka och ta emot data (inte behöver ha kontroll över > > enstaka pins på porten, t.ex.) så räcker det väl fint att öppna > > lämplig /dev/ttyS* med fopen() och sen hantera den som vilken filström Fungerar det även om CRTSCTS är satt (jag har inte provat så jag vet inte) ? Exempel på hur man öppnar en serieport finns i tty_openraw() i: http://turkos.aspodata.se/git/c/libaspoutil/tty_util.c exempel på användning: http://turkos.aspodata.se/git/openhw/bungard/ > Jag missade att berätta att jag vill kunna vifta på RTS också. För att läsa av kontrollinjerna, se statserials källkod eller exempelvis: #include <sys/ioctl.h> #define LOG_IFERRNO(a,b) if (a) int home(void) { int ix; unsigned value; LOG_IFERRNO( (ix = ioctl(fd, TIOCMGET, &value)) == -1, LOG_ERR) return -1; if (value & TIOCM_RNG) return 1; // RI pin 9 / 22 (9pin/25pin d-sub) if (value & TIOCM_CAR) return 1; // DCD pin 1 / 8 return 0; } Det borde vara något liknande för att sätta utsignaler. Titta på tty_ioctl(4) under "Modem control". Hälsningar, /Karl Hammar ----------------------------------------------------------------------- Aspö Data Lilla Aspö 148 S-742 94 Östhammar Sverige 0173 140 57