Go Down

Topic: TinyGPS 12 released (Read 3480 times) previous topic - next topic

mikalhart

There's a new version of TinyGPS, my NMEA (GPS) stream parser library, available.  Version 12 provides some simplified new examples and several new features:

satellites() - Number of satellites counter from $GPRMC
hdop() - Horizontal Dilution of Precision from $GPRMC -- the smaller this value is the more confidence you have in the accuracy of the location reading.
course_to() - another Maarten Lamers' borrowing that complements his distance_to() function
cardinal() - a nice little static function by Matt Monson that converts a course to a compass direction like "SSE".

Mikal

cyclegadget


I am definitely going to give this library a try! I was wanting to have a solution like Cardinal(). It would be much better than course numbers for me.

Thanks for sharing.
Good links: Eagle tutorial= http://www.youtube.com/playlist?list=PLDE1858BD83D19C70
General Arduion tutorials = http://tronixstuff.wordpress.com
http://www.gammon.com.au/forum/bbshowpost.php?bbtopic_id=123

Shotline

Hi Mikal,
Thank you for writing this library.
I am having a bit of a problem that I hope you can help with. I am using an arduino uno and a venus gps module. I seem to get valid NMEA sentences and I get good readouts for Lat, Long, altitude, time, and (sometimes) date (they change as I walk around with the gps and the lat/long resolves to my current location). I cannot get readouts for course or speed no matter what I do. If I send the value to the serial monitor it shows 1000.0 for course and -1 for speed.

I looked at the .cpp file and realized that 1000 and -1 represent invalid data for those functions.  But I don't understand why I am getting invalid data.

Could you offer some advice as to what might be the problem? Thanks.

wanderson


Hi Mikal,
Thank you for writing this library.
I am having a bit of a problem that I hope you can help with. I am using an arduino uno and a venus gps module. I seem to get valid NMEA sentences and I get good readouts for Lat, Long, altitude, time, and (sometimes) date (they change as I walk around with the gps and the lat/long resolves to my current location). I cannot get readouts for course or speed no matter what I do. If I send the value to the serial monitor it shows 1000.0 for course and -1 for speed.

I looked at the .cpp file and realized that 1000 and -1 represent invalid data for those functions.  But I don't understand why I am getting invalid data.

Could you offer some advice as to what might be the problem? Thanks.


I would suggest trying to capture the full nmea output from your gps to a text file and attaching it to your question, also posting it in the Programming forum might be more appropriate.  My initial guess is that your gps is not output the sentences that the library is using for course and speed.
New true random number library available at: http://code.google.com/p/avr-hardware-random-number-generation/

Current version 1.0.1

ECUni

#4
Feb 06, 2014, 11:49 am Last Edit: Feb 06, 2014, 01:41 pm by ECUni Reason: 1
Hi Mikal and all,

I am thinking of modifying the TinyGPS code to include information about the number of visible satellites.
Looking at the c++ code, I am very confused about how to do it.

Here is my initial thoughts:

Code: [Select]
int TinyGPS::f_numsats()
{
return _numsats == GPS_INVALID_SATELLITES ? GPS_INVALID_SATELLITES : _numsats;
}


Would that work?

As of this edit: The above code works. Do remember to add int f_numsats(); into the TinyGPS.h file too.

PaulS

Quote
Would that work?
What's going to happen after the first call when there are no satellites? Why does the function assign a new value to _numsats? It should not. It should simply return the value that is in _numsats. That value should be set to the number of satellites the device reports seeing, or to GPS_INVALID_SATELLITES, by the code that parses the sentences that contain the number of satellites.

Go Up