How can I get the GPS raw data (satellites pseudo range)?
Asked Answered
F

3

16

How can I read GPS raw data, to be more specific I need the saellites pseudo range. This data is not available in NMEA format.

Flaviaflavian answered 22/11, 2010 at 21:32 Comment(1)
I'm trying to do the same thing as you did more than 1 year ago. Did you find a solution to obtain pseudo-range data from GPS ? I didn't find anyone who did a such thing.Hymie
B
18

Satellites pseudo-ranges are not available in the official API, neither through the GpsStatus.Listener nor the GpsStatus.NMEAListener interfaces.

The only available info available in the GpsSatellite class are:

  • PRN
  • azimuth
  • elevation
  • C/N0
  • a "usedInFix" boolean.

The Android source code asks just those fields from the native code, so no hope to get it from any other Java API.

The best way for you to get this data anyway (which is not suitable for a Market-able application) would be to explore Android source code, and either find a native hook to get the data at low level and access through JNI, or recompile the full OS modifying the API to your needs (you also need to find the relevant native code for that).
Finally, if you can get the chipset to send you GRS NMEA sentences (you would get them through the standard NMEAListener interface, the difficulty is configuring the chipset to send them) you can then compute the pseudo-ranges (those sentences contain satellites' residuals)

Good luck and let me know if you try any of these ideas!

Buskus answered 22/11, 2010 at 22:21 Comment(6)
Why accessing low level means "not suitable for a Market-able application"?Flaviaflavian
If you need to use a native API not listed in the NDK's stable APIs, you cannot be sure that the API will work consistently across all OS versions and hardware (but you can still post the app on the market). And if you need to recompile your own Android OS, you won't even be able to package it in an apk.Sattler
pseudo-range data has many applications What can I we do to push Google to include this in a future API?Crush
@Crush : open an issue on the Android project page : code.google.com/p/android/issues/listSattler
This is no longer the case. Android now exposes Raw GNSS Measurements from modern, compatible smart phones.Voluntarism
Yeah, but GnssMeasurement doesn't include pseudorange, so you'd still have to do a complicated calculation using the SV time or do what Stephane saidDonelladonelle
B
7

If you need pseudoranges, and raw data, you will not be lucky with NMEA. You have to use the binary protocol of your receiver, E.g ublox binary for ublox receivers. Sirf binary for Sirf receivers. Sattelite raw date are available only on special receivers which have the RAW option enabled. Don´t expect that on a smartphone.

More details you find at the ublox protocol specification.

Bengal answered 17/3, 2012 at 0:23 Comment(0)
M
1

you might take a look at satinfo

http://code.google.com/p/codetastrophe/source/browse/#svn/trunk/projects/satinfo

not sure if it provides specifically what you are looking for or if it even still works on recent versions of android

Moorehead answered 22/11, 2010 at 22:0 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.