Re: OT: bra exempel på serieportskod i C

[email protected]
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.