Hallo,
ich schreibe ein Programm das UDP Packete von einem GPS Gerät empfängt. Das funktioniert auch gut wenn ich die GPS-Zeit auslese aber wenn ich den Längen- und Breitengrad auslesen möchte bekomme ich immer eine Fehlermeldung.
Die Längengradposition besteht aus 8 Byte und das UDP packet wird im einer char variablen buffer[72] abgelegt.
Die Variable latitude ist als double initialisiert und bekommt ihren Wert wie folgt zu gewiesen: (Hier liegt glaub ich irgendwo der Fehler)
latitude = (buffer[30] <<56) | (buffer[29] <<48) | (buffer[28] <<40) | (buffer[27] <<32) | (buffer[26] <<24) | (buffer[25] <<16) | (buffer[24] <<8) | buffer[23];
Die Fehlermeldung besagt das, das "Shiften" von buffer[30], buffer[29], buffer[28] und buffer[32] nicht möglich ist. Mir ist aber nicht klar warum.
double latitude;
unsigned char buffer[80]
int len = recvfrom(sock, buffer, sizeof(buffer), 0, (struct sockaddr *) &addr, &addrlen); //UDP packet wird empfangen
latitude = (buffer[30] <<56) | (buffer[29] <<48) | (buffer[28] <<40) | (buffer[27] <<32) | (buffer[26] <<24) | (buffer[25] <<16) | (buffer[24] <<8) | buffer[23];
ich schreibe ein Programm das UDP Packete von einem GPS Gerät empfängt. Das funktioniert auch gut wenn ich die GPS-Zeit auslese aber wenn ich den Längen- und Breitengrad auslesen möchte bekomme ich immer eine Fehlermeldung.
Die Längengradposition besteht aus 8 Byte und das UDP packet wird im einer char variablen buffer[72] abgelegt.
Die Variable latitude ist als double initialisiert und bekommt ihren Wert wie folgt zu gewiesen: (Hier liegt glaub ich irgendwo der Fehler)
latitude = (buffer[30] <<56) | (buffer[29] <<48) | (buffer[28] <<40) | (buffer[27] <<32) | (buffer[26] <<24) | (buffer[25] <<16) | (buffer[24] <<8) | buffer[23];
Die Fehlermeldung besagt das, das "Shiften" von buffer[30], buffer[29], buffer[28] und buffer[32] nicht möglich ist. Mir ist aber nicht klar warum.
double latitude;
unsigned char buffer[80]
int len = recvfrom(sock, buffer, sizeof(buffer), 0, (struct sockaddr *) &addr, &addrlen); //UDP packet wird empfangen
latitude = (buffer[30] <<56) | (buffer[29] <<48) | (buffer[28] <<40) | (buffer[27] <<32) | (buffer[26] <<24) | (buffer[25] <<16) | (buffer[24] <<8) | buffer[23];