|
Alles rund um Mac OSX & Linux: Daten vom GPS Empfänger nicht abrufbarWindows 7 Für alle Fragen rund um Mac OSX, Linux und andere Unix-Derivate. |
14.09.2006, 02:02 | #1 |
| Daten vom GPS Empfänger nicht abrufbar Hallo, ich möchte mich kurz fassen. Ich versuche seit Tagen NMEA Daten von meinem GPS Empfänger über den COM-Port abzufragen, aber es gelingt mir nicht. Wie man die Serielle Schnittstelle unter Linux öffnet habe ich in diversen Howto's gelesen und das Öffnen an sich funktioniert einwandfrei. Das Programm kompiliert und greift auf die Schnittstelle zu! Das Problem was ich habe liegt eher in der Konfiguration der flags in termios. Denn beim Abfragen der Daten bekomme ich irgendein kauderwelsch, obwohl ich für NMEA : B4800, onestopbit, CS8, noParity eingestellt habe. Hierzu ein Ausschnitt der Konfigurationen: GPS_Handle = open(portName, O_RDWR | O_NOCTTY ); if (tcgetattr(GPS_Handle, &oldtio) < 0) std::cout<<"Aktuelle Konfiguration fehlerhaft\n"; bzero(&newtio, sizeof(newtio)); //erstmal alle werte auf null setzten newtio.c_cflag &= ~( CSIZE | PARENB | CRTSCTS ); newtio.c_cflag |= ( CS8 | CLOCAL | CREAD ); newtio.c_iflag |= (IGNPAR ); newtio.c_iflag &= ~(IXOFF | IXON | IXANY | PARMRK | INPCK); newtio.c_oflag &= ~OPOST; newtio.c_lflag &= ~(ICANON | ECHO | ISIG); newtio.c_cc[VINTR] = 0; newtio.c_cc[VQUIT] = 0; newtio.c_cc[VERASE] = 0; newtio.c_cc[VKILL] = 0; newtio.c_cc[VEOF] = 4; newtio.c_cc[VTIME] = 0; newtio.c_cc[VMIN] = 1; newtio.c_cc[VSWTC] = 0; newtio.c_cc[VSTART] = 0; newtio.c_cc[VSTOP] = 0; newtio.c_cc[VSUSP] = 0; newtio.c_cc[VEOL] = 0; newtio.c_cc[VREPRINT] = 0; newtio.c_cc[VDISCARD] = 0; newtio.c_cc[VWERASE] = 0; newtio.c_cc[VLNEXT] = 0; newtio.c_cc[VEOL2] = 0; cfsetispeed (&newtio, B4800); cfsetospeed (&newtio, B4800); tcflush(GPS_Handle, TCIFLUSH); if (tcsetattr(GPS_Handle,TCSANOW,&newtio) < 0) std::cout<<"Neue Konfiguration fehlerhaft\n";[/I][/I] Einige diverese Umstellungen der Flags habe ich auch probiert, aber es tut sich alles nüx, bzw. ich bekomme keine NMEA Daten byteweise ausgelesen. Dabei möchte ich die Daten nacheinander byteweise auslesen, die mir der Garmin über das NMEA Protokol schickt. Eine Lösung von Kistbier habe ich mir ebenfalls angesehen, aber auch das hat nicht funktioniert. Gibt es vielleicht ausser der termios flags noch andere Einstellungen, die ich berücksichtigen muss. Ein Äquivalentes Windows -Programm habe ich auch geschrieben, und da tut alles ohne Prob. Allerdings kann ich die Einstellungen in der DCB - Datenstruktur nicht gleichermassen für Linux verwenden, oder ich finde keine äquivalente Einstellmöglichkeit. Auf windows musste man irgendwelche Timer einstellen und es gab auch noch "FlowControl" Konfigurationen. Gibt es sowas in Linux??? Für Eure Bemühungen im voraus besten Dank. |
14.09.2006, 18:22 | #2 |
| Daten vom GPS Empfänger nicht abrufbar Problem gelöst. Ich habe meinen Puffer umstellen müssen, der mir die Seriellen Daten abspeichert. Also war die Konfiguration doch richtig :-)
__________________ |
Themen zu Daten vom GPS Empfänger nicht abrufbar |
aktuelle, auslesen, beste, besten, daten, diverse, ebenfalls, eingestellt, einstellungen, fehlerhaft, funktioniert, handle, howto, kis, kompiliert, konfiguration, konfigurationen, linux, lösung, neue, problem, programm, schnittstelle, windows, öffnet |