Initial device support for (cheap china-produced) GPS sport watches

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Initial device support for (cheap china-produced) GPS sport watches

Michael Karcher
Hello GPSBabel maintainers,

here is a patch to support readout of recorded tracks from the cheap GPS
sport watches that spam the european market with many different names
like "Ultrasport NavRun 500", "Ventus G1000" or "Mapjack Watch IQ". As
there is no canonical name for these kind of devices, I chose the
generic name "sportwatch". Currently, the only operation supported is
reading recorded tracks, but I am going to add read/write support for
routes, too.

Interestingly, this device has an option to assemble routes "on the fly"
by adding the current location as waypoint to a route. In this
operation, the timestamp of adding the waypoint is stored on the device,
so the route behaves like a track with manually set points. One
documented use-case is to set waypoints on a hike, put the device into
reverse-routing mode and have it show you how to go back to where you
came from. If I understand gpsbabel correctly, gpsbabel does not include
timestamps in routes, but only in tracks. Does this mean I should treat
the routes as tracks?

Any comments on the code are welcome!

Regards,
  Michael Karcher


------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Gpsbabel-code mailing list  http://www.gpsbabel.org
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gpsbabel-code

sportwatch.diff (15K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Initial device support for (cheap china-produced) GPS sport watches

Michael Karcher
On 01.03.2015 20:44, Michael Karcher wrote:
> Hello GPSBabel maintainers,
>
> Currently, the only operation supported is
> reading recorded tracks, but I am going to add read/write support for
> routes, too.
[...]
> If I understand gpsbabel correctly, gpsbabel does not include
> timestamps in routes, but only in tracks. Does this mean I should treat
> the routes as tracks?
Implementing route reading actually was less code than expected - and I
found out I did not understand gpsbabel correctly, and setting the
timestamp in a route actually does what I expect. I attached a patch to
be applied on top of the previous patch that adds support for reading
routes.

Regards,
  Michael Karcher


------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Gpsbabel-code mailing list  http://www.gpsbabel.org
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gpsbabel-code

routes.diff (2K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Initial device support for (cheap china-produced) GPS sport watches

Robert Lipe-4
Sorry for the delay in reviewing this.

Overall, seems pretty reasonable to me....well, as reasonable as sirf binary protocol ever gets. I wish there was a good way to have automated tests, but I know that's a big pain for these serial devices.

Please send a unified patch that includes me in the copyright (bullet item 3 from format_skeleton as it makes it easier when I have to engage in licensing squabbles), changes the assert() to is_fatal() (doesn't get compiled away when not debugging) and includes a few paragraphs of doc for xmldoc/formats that describes what these devices are, any usage notes (like that funky hour thing probably doing odd things around midnight; any special cables or device setup needed, etc.)

If docbook isn't your thing, please just provide the words.  I can add markup, but I can't match your accumulated wisdom on this family of devices.

Please also check that the time zone handling is right.  Since you're so close to UTC, it probably wouldn't jump out at you. Our internal points really want to be in UTC and while QDateTime has a concept of time zones, QDate and QTime individually don't.  You may have to build those individually and then do something like:
   wpt->SetCreationTime(QDateTime(date, time, Qt::UTC));


Thanx,
RJL 

On Mon, Mar 2, 2015 at 12:28 AM, Michael Karcher <[hidden email]> wrote:
On 01.03.2015 20:44, Michael Karcher wrote:
> Hello GPSBabel maintainers,
>
> Currently, the only operation supported is
> reading recorded tracks, but I am going to add read/write support for
> routes, too.
[...]
> If I understand gpsbabel correctly, gpsbabel does not include
> timestamps in routes, but only in tracks. Does this mean I should treat
> the routes as tracks?
Implementing route reading actually was less code than expected - and I
found out I did not understand gpsbabel correctly, and setting the
timestamp in a route actually does what I expect. I attached a patch to
be applied on top of the previous patch that adds support for reading
routes.

Regards,
  Michael Karcher


------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Gpsbabel-code mailing list  http://www.gpsbabel.org
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gpsbabel-code



------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Gpsbabel-code mailing list  http://www.gpsbabel.org
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gpsbabel-code