[RS232] Linux > FreeBSD Portierung



  • Abend zusammen,
    ich habe ein Programm das Daten an ein Gerät welches an COM1 hängt sendet. Unter Linux lief es auch wunderbar. Es soll nun aber auf einem FreeBSD-System zum Laufen gebracht werden. Die Funktion tcsetattr schläft fehl und errno liefert EINVAL zurück.

    [cpp]
    int iFd;
    struct termios flags;

    iFd = open( "/dev/ttyd0", O_RDWR );

    flags.c_cflag = CLOCAL | CREAD;
    flags.c_cflag |= B9600;
    flags.c_cflag |= CS8;
    flags.c_oflag = 0;
    flags.c_lflag = 0;
    flags.c_cc[VTIME] = 0;
    flags.c_cc[VMIN] = 0;

    tcflush( iFd, TCIFLUSH );
    tcsetattr( iFd, TCSANOW, &flags );
    [/cpp]

    PS: Schnittstelle ist die richtige, da echo hallo > /dev/ttyd0 einwandfrei an das Gerät gesendet und vom Gerät empfangen wird.



  • Problem hat sich erledigt.
    Beitrag kann wieder gelöscht werden 🙂



  • Wäre nett wenn Du auch Deine Lösung posten könntest; irgendjemand kann das sicher mal brauchen... 🙂



  • @nman, Oh ja sorry hab ich glatt vergessen 🙂

    In meinem Programm breche ich ab wenn die Funktion tcsetattr fehl schlägt. Wenn ich das nun ignoriere also trotzdem mit der Programmausführung weitermache funktioniert alles andere wunderbar. Diese Lösung habe ich zufällig im Netz gefunden. Begründen kann ich es bisher noch nicht...bin nur froh, dass es jetzt klappt.


Anmelden zum Antworten