2012-04-06 1 views
1

i hv versucht, das Gerät über offene gts mit GPRMC Servlet tarck ist http://192.168.1.99:8080/gprmc/Data?acct=1234&id=test01&code=0xF020&
GPRMC = $ GPRMC, 080.701,00, A, 3128,7540, N, 14257,6714, W, 000.0,000.0,180707 ,,, A * 1COpenGts mit GPRMC Servlet

dies die Struktur der uRL ich in meinem android App versuchen aber Server nicht respondnig nicht aber wenn ich versuche, bin mit gps2opengts app screen shot with working server seine Arbeits so sagen pls whre sind th Fehler ...?

+0

wie man $ GPRMC xxxxxx Art von Daten URL in Android und wenn ich es ohne GPS verwenden wollen dann was tun? –

+0

es scheint niemand hat eine Idee. Ich habe auch das gleiche Problem –

+0

@DarHamid hey ich habe dieses Problem zu lösen, indem Sie die Zeichenfolge manuell von getlatitude() erstellen; und alle Typ –

Antwort

0

Ich habe das gleiche versucht und es gibt etwas zu lesen. Lesen Sie zuerst die Spezifikationen für GPRMC http://aprs.gids.nl/nmea/#rmc

Weiter gehen, zu der Klasse 0183 in den Quellcode OpenGTS und sehen, wie die Prüfsumme (Methode calcXORChecksum) am Ende der Zeichenfolge erzeugt wird.

Ich habe einen Test durchgeführt und festgestellt, dass die Prüfsumme, die Sie verwenden (1C), falsch ist. Es sollte 44 sein. Offenbar ignoriert OpenGTS die Prüfsumme standardmäßig nicht, wenn Sie sie nicht am Ende der Zeichenfolge angehängt haben, also müssen Sie sie immer in Ihrer Android-App berechnen und am Ende hinzufügen. Wenn die Prüfsumme nicht korrekt ist, wird die Anfrage gelöscht und nichts wird protokolliert.

Stellen Sie abschließend sicher, dass Sie das korrekte Datum und die richtige Uhrzeit in der GPRMC-Zeichenkette verwenden, da Sie sonst Schwierigkeiten haben, sie in den Berichten der Web-App zu finden. In der Zeichenfolge, die Sie gesendet haben, scheint das Datum beispielsweise der 18. Juli 2007 zu sein, und die Uhrzeit ist GMT 08:07:01.

Ich hoffe, es hilft und freut sich auf Ihre App. Ich könnte es wirklich benutzen.

Dies ist, was ich in der Hauptmethode von Nmea0183 getan habe (ich habe alles andere kommentiert).

String gprmc = "$GPRMC,080701.00,A,3128.7540,N,14257.6714,W,000.0,000.0,180707,,,A*44"; 
int cs = calcXORChecksum(gprmc, false); 
System.out.println(Integer.toHexString(cs)); 
Nmea0183 n; 

n = new Nmea0183(gprmc, false); 
Print.sysPrintln("$GPRMC : " + gprmc); 
Print.sysPrintln("  ==>: " + n.toGPRMC()); 
Print.sysPrintln("NMEA-0183: \n" + n); 
+0

ich hv vor kurzem eine Lösung in android Client-Seite mit der Hilfe aus ein paar $ GPRMC protokalischen Set und es funktioniert gut auf beiden Seiten sowieso ich werde überprüfen Sie Ihre Antwort und akzeptieren Sie es :) –

+0

Danke, ich auch meine Android-Client für OpenGTS . Wenn ich es nicht für einen potenziellen Kunden verwende, werde ich es bei Google Play veröffentlichen. –

+0

Ich werde bald den gesamten Quellcode auf Git-Hub veröffentlichen –

0

@Vivek,

Während Sie in android GPRMC Zeichenfolge bei der Schaffung von mave gelungen, Ihre Server immer noch die Anforderung nicht akzeptieren kann, weil Ihre aktuelle Anforderung id wie http enthält Parameter jedoch sollte es dev sein. OpenGTS hat für Konto-Zeichenfolge und dev für Gerätezeichenfolge und gprmc Parametername für Gprmc-Zeichenfolge. Und Sie können direkt Gprmc String mit Android API - http://developer.android.com/reference/android/location/GpsStatus.NmeaListener.html

+0

Hallo Dipti Ich hatte das Problem gelöst und der Link, den Sie oben veröffentlicht haben, zeigt keine relevante Methode, Gprmc Zeichenfolge zu erhalten. –