Gast
#513937
Hallo !
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 LF einlesen.
Dabei habe ich folgende Eigenschaft als Problem die ich nicht verstehe:
1. Versuch:
Ich sende "TEST" ohne LF, so nimmt er die Daten nicht!
2.Versuch:
Ich sende "TEST" mit LF, so nimmt er die Daten!
3.Versuch:
Ich sende "TEST ohne LF, ab jetzt nimmt er die Daten immer an. Ich
brauche keine 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!
Ich suche seit ca. 12 Stunden nach meiner Problem, aber ich habe bis
jetzt keinen Idee wie ich das Problem lösen kann, das ich die Daten ohne
LF einlesen kann!!
Freundliche Grüsse Marco