jdrescher2006 / Laufhelden

Sport tracker for Sailfish OS
GNU General Public License v3.0
16 stars 17 forks source link

Add ability to start without GPS? #86

Closed martonmiklos closed 4 years ago

martonmiklos commented 6 years ago

Sometimes it would be nice if the workout recording could be started without GPS.

Usually when I go for a ride I start the app and do not want to wait until the GPS signal is aciquired just start the recording and throw the phone to the pocket and call it day.

Meerun have had this feature if I remember well. What do you think Jens? If you agree I might be able to came up with a PR.

jdrescher2006 commented 6 years ago

This was already a feature request: #10. If you have a solution for this, I will gladly accept the PR. I think you will have to enable workouts without GPS generally. There will be a lot of work to be done in the RecordPage.qml and trackrecorder.cpp.

thmichel commented 5 years ago

I was thinking about this as I would like to see this implemented as well. I think the implementation depends on the direction you want to develop Laufhelden. I see two options:

1.Use Laufhelden for tracking Running / Cycling based activties only.ru In that case one could simply add "fake" GPS location when GPS is unavailabl, e.g. cycling / running in the gym.ns all the different activi

  1. Use Laufhelden as a more general fitness tracker. In that case I would suggeest implement a database solution. We could create a table that contains all the different activities and multiple tables for the trackable options, e.g. GPS, Heart Rate, number of exercises (e.g. for weight lifting) A table could be used that contains all exercies and provide an id that can be used as a reference in the other tables. This would be a more complex solution but also be more flexible.

@jdrescher2006 What do you think? I am happy to start coding a proof of concept in my fork.

jdrescher2006 commented 5 years ago

Hi @thmichel,

I would vote for your 1 solution, the second one is too complicated, makes the app less maintainable for me. Also we already have a table for all workout types, see "arrayWorkoutTypes" in the file "SharedResources.js". In this table we can add an option to mark the indoor/outdoor workouts.

jdrescher2006 commented 5 years ago

I was thinking about this issue and got some questions now. Maybe one of you guys has an idea...

We have 2 separated issues. Issue 1: a workout which needs GPS (e.g. running) is started but there is no GPS signal. Then after some minutes GPS kicks in.

Issue 2: a workout which does not need GPS (e.g. indoor sport).

Let's discuss issue 1 first: So let's say we have a workout of an hour of length and have the first 10 minutes without GPS signal. How can we handle this in the GPX file? We can not just write fake positions to the file for those 10 minutes, because if the file gets parsed these positions will be taken for real! I really have no idea how to do this? Does someone know how Meerun handles this?

Issue 2 is a little bit easier, at least I have an idea how to do it. We would have to:

martonmiklos commented 5 years ago

I originally opened the issued because of the Issue 1.

When I go for bike riding, usually fire up Laufhelden, and wait for the GPS signal. And then hit start.

Well I would rather turn off the screen and throw the phone to my pocket. I would vote for simply leave out points from the GPX file. I can check how meerun behaves in these situations, but before I need to put together the spec files I promised in #141 ;)

thmichel commented 5 years ago

@jdrescher2006 : sounds good. I will start looking at implementig this next week.

thmichel commented 5 years ago

@jdrescher2006 : Overlooked your second comment. What if we, for a start, simply allow the user to hit the "Start" Button no matter if a GPS connection is available but start logging only once it is available? This would at least allow the user to start immediately without having to wait until GPS is ready - at the cost of not having the first minutes logged.

jdrescher2006 commented 5 years ago

@thmichel OK that would be an option. Let me first look what Meerun did, I will do this today.

jdrescher2006 commented 5 years ago

So I tested this now with Meerun. If you start a workout without GPS there will only be the duration timer counting up. So far so good. If you then save the workout and try to export it as GPX, Meerun will simply crash. However, it is possible to export it as TCX file. And with this file type it is posible to have trackpoints without position (only timestamp).

So that is our real problem here! With Laufhelden solely based on GPX files as it's data base, we don't have the ability to deal with invalid or missing GPS positions. To properly solve this, we must change the data format. Maybe to TCX or even something else. But this is really a big deal! First we need to decide which file type to use and then we need a parser for that. But there is so much more work to do...

So I would say let's go with your suggestion @thmichel and make the "Start" button clickable without having GPS.

thmichel commented 5 years ago

Hi,

I've published a release at https://github.com/thmichel/Laufhelden/releases that enables you to start a workout even if no GPS signal is available. Be aware that actual logging only start at GPS availability, but at least you start your workout without waiting for a signal.

jdrescher2006 commented 5 years ago

Hi @thmichel , sorry I was not very active with developing Laufhelden. If you like you can make a pull request for this issue.

martonmiklos commented 4 years ago

This was fixed in some of the releases, so closing it.