I hope you guys get some progress… Once I have more time I can look further into the GPS code.
We were talking about it today in chat, i’ve been too busy to hook up a GPS so i havent had a chance to do any more. Hobeau is doing a bunch of work on it at the moment and we’re hoping to have something up this weekend or next.
Ok very nice, thank you 
Hobeau, looking at your latest code, like i said the other day i dont think that users should be dealing with events for GPS packages. Not only is this slow but also doesnt offer the level of abstraction that the gps class should offer.
There used to be a PositionChanged event which would fire if PositionUpdateEnabled was turned on which would alert other code to the fact that the properties on the class are updated.
With requiring the user to handle events it makes all the properties on the gps class useless. It should be processing the information internally to update these properties…
I’m coming a little late into this thread, but as far as I can see the only was to read in from the GPS module would be:
- Event driven (I don’t like this idea as a slow GPS would trigger this event all the time)
- A thread with a while loop checking for Data received.
- A timer event set to the GPS refresh rate. (Love this one!!!)
If you’re reading the GPS in a loop or from a timer you wont really want to be getting events fired… ie: a nav loop where you just take whatever gps data is available at that point in time.
If you’re writing something that reads out GPS data as it arrives then you might want an event to let you know that your position has changed, so you go and get the new data at that point.
However, you do not want the user having to parse the degree strings back into the class or any of the other data…
The GPS class is setup for the first two already.
I just checked in a bunch of fixes - see change log for details. I added handling for the RMC and GLL strings that fill out the class a bit. Improved a lot of things efficiency wise 
It appears to fully parse sample strings.
Personally I wouldnt want an event fired every time GPS location changes, because that is more or less happening constantly. Even if GPS is at a fixed position, the readings tend to drift.
Ill rather have a GPS object that is constantly updated and ready whenever I need the data. A last fix in milliseconds will be handy so the user knows if he is using stale data.
I agree with Geir.
We will support both. Personally, I like the event, but we will also have a feature for just getting GPS data by property.
Ok fine, thank you ;D
Geir, You should be able to check one of the time properties on the class to find the last time data was received. By not attaching to the events and/or turning the updated position property to false will stop you from getting any events. This is already implemented in the code i contributed today.
Mark,
I got the box today
:dance: everything arrived safe and sound, and I’ll start working with the GPS tonight.
First of all, are the files out on codeplex working and tested code?
Im not able to get it running with my EM-406A SiRF III, at best I get an endless debug output of;
Failed allocation for 5 blocks, 60 bytes
Failed allocation for 5 blocks, 60 bytes
Failed allocation for 5 blocks, 60 bytes
Failed allocation for 5 blocks, 60 bytes
If I turn on Debug.EnableGCMessages(true); in the testharness it seems to be some serious memory leaks.
That said, I might very well have messed thinks up at my part, but has anyone else been able to run this code?
MarkH:
While looking at the code I noticed that we are using IndexOf(“\r\n”) but according to you this form of line termination might not always be the case
Will this be addressed later on?
I get the block allocation error with my IMU driver as well. I have not figured out a fix for it.
Geir, I haven’t tested anything i’ve written or modified with an actual GPS device, just a test application i have that feed fake info in.
as far as in endings, thats Hobeau’s code, once we get everything working in a basic sense then we can go crazy fixing stuff and making it work for everything as efficiently as possible
WTF? SVN refuses to authenticate me. It just says I’m not authorized to connect.
On Codeplex?
I figured it out. I thought it was asking for SVN auth, not TFR.
use TFS to connect, it’s much easier lol.