Serielle Schnittstelle => Problem CR & LF

M

macke_a

Mitglied
Moin !

Ich versuche über meine serielle Schnittstelle Daten einzulesen. Dazu verwendete ich eine Terminal Umgebung "Bin Term". Allerdings möchte ich reine Netto Daten, ohne das Einfügen von CR bzw. LF einlesen.
Dabei habe ich folgende Eigenschaft als Problem die ich nicht verstehe:
1. Versuch:
Ich sende "TEST" ohne CR&LF, so nimmt er die Daten nicht!
2.Versuch:
Ich sende "TEST" mit CR oder LF, so nimmt er die Daten!
3.Versuch:
Ich sende "TEST ohne CR&LF, ab jetzt nimmt er die Daten immer an. Ich brauche keine weiteren CR oder LF mehr einfügen!
Habe ich eventuell falsche Einstellungen bei meine C - Routine:


bool SerialConfigurePort( int aFile, speed_t aSpeed ) {

struct termios ti;
unsigned long arg = 0;

tcflush( aFile, TCIOFLUSH );

if( tcgetattr( aFile, &ti ) >= 0 ){
cfmakeraw(&ti);

ti.c_cflag |= CLOCAL;
ti.c_cflag &= ~CRTSCTS;
ti.c_cflag &= ~PARENB;
ti.c_cflag &= ~PARODD;
ti.c_cflag &= ~CSIZE;
ti.c_cflag |= CS8;
ti.c_cflag &= ~CSTOPB;

ti.c_iflag |= (IGNPAR | ICRNL );

ti.c_cc[ VMIN ] = 1;
ti.c_cc[ VTIME ] = 0;

cfsetspeed( &ti, aSpeed );

if( tcsetattr( aFile, TCSANOW, &ti ) >= 0 ) {
arg = fcntl( aFile, F_GETFL, 0 );
arg |= O_NONBLOCK;

if( fcntl( aFile, F_SETFL, arg ) >= 0 ) {
return true; } }
}
return false; }

Wäre dankbar für ne Antwort bzw. ne Korrektur meiner Routine!
Freundliche Grüsse MArco
 

Ähnliche Themen

Perl serielle Schnittstelle

rsnapshot und ein Rechteproblem?

Serielle Schnittstelle Testen

Non-blocking I/O in SSH-session

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

Zurück
Oben