Kompilieren funktionierte und das binary läuft auch.
Aber in der Ausgabe erscheint immer "CTS, DSR, CAR, RI inaktiv", obwohl ich die entsprechenden Eingänge wechselweise auf hi..low lege.
Jemand ne Idee, wo der Fehler liegt?
Code: Alles auswählen
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netdb.h>
#include <sys/socket.h>
#include <unistd.h>
#include <termios.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>
#define _POSIX_SOURCE 1 /* POSIX compliant source */
#define FALSE 0
#define TRUE 1
int main()
{
int port;
int i;
//open device tts/1
port = open("/dev/tts/1", O_RDWR | O_NOCTTY );
if (port <0) {printf("error open dev/tts/1\n"); exit(-1); }
// CTS AUSLESEN
//*****************
ioctl( port, TIOCMGET, &i );
if (i & TIOCM_CTS) // Pin CTS
{
fprintf(stderr, "read CTS active...\n");
}
else
{
fprintf(stderr, "read CTS inactive...\n");
}
// CAR AUSLESEN
//*****************
//ioctl( port, TIOCMGET, &i );
if (i & TIOCM_CAR) // Pin CAR
{
fprintf(stderr, "read CAR active...\n");
}
else
{
fprintf(stderr, "read CAR inactive...\n");
}
// DSR AUSLESEN
//*****************
//ioctl( port, TIOCMGET, &i );
if (i & TIOCM_DSR) // Pin DSR
{
fprintf(stderr, "read DSR active...\n");
}
else
{
fprintf(stderr, "read DSR inactive...\n");
}
// RI AUSLESEN
//*****************
//ioctl( port, TIOCMGET, &i );
if (i & TIOCM_RNG) // Pin RI
{
fprintf(stderr, "read RI active...\n");
}
else
{
fprintf(stderr, "read RI inactive...\n");
}
fprintf(stderr, "fertig...bye...\n");
//close devices
close(port);
return 0;
}