-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Not all laps consumed #22
Comments
Hi! Glad that my program is of use for you. And thank you for the detailed report. Could you please send me an "image" (I should have called it "dump") of your data? The program has a "--to_image xxx.bin" option. That file contains everything read from the watch and should allow me to reproduce your error. I will try to debug it as soon as my time allows it. If you agree I would also like to add your bin file to the testcases for regression testing. About debugging: I'm afraid that this will require to inspect each sample recieved from the watch. Gps can be messy, and have big gaps in reception. So perhaps there is a huge delta in position, if we naively just divide by time, we end up with such a ridiculous speed. Anyways a ".bin" image would be a good start for me to debug too. |
I've been already debugging on an image of the watch. That works great and is so much faster. 😄 I have changed the code to skip lap info entries whose speed exceeds 300 km/h. This did not throw the runtime exception, but a So, I ended up creating a new image from the watch, which soon ended in the same exception ("Not all laps consumed") again. Only this time the entry was not as implausible as the first one. But what's interesting is that it was again the last lap info that was not consumed. Perhaps, the last info entry may be in an uncommitted state when the watch never finished it (because the user stopped the watch)?! So, I just changed the check to: if (std::distance(lap_it, wo.lapinfo.end()) > 2) { and finally got this message:
I'm a bit short on time right now, I'll upload an image in the next days if you still want it. |
I'm also seeing this exception. If I comment the code out that throws the exception, the image generated has 3 laps, the watch says there's 10. Is there somewhere that's easiest to push the image file to? |
Good to get more evidence! You can add the file to git and make a pull request. /test/not_all_laps_consumed/myimage.bin A short description file would be nice, too. It should record your assumptions. |
I've included the exports from gps master for 6 workouts in the image. Workout 2 and workout 6 are the problematic ones. Workout 2 the GPS dropped out. It should be 10 laps, but the client drops out after 3. Workout 6 should not have had any GPS data in it, by may have in the last lap? It should be 11 laps, but the client drops out after 10. |
I think I've also created an appropriate pull request for you to integrate the data. I haven't cleared the data off the watch yet either in case the image is incomplete. |
Hi.
At first, thanks for your work. It's great being able to access my watch data without having to launch a VM. 😂
Alas, I have a problem. For one of the workouts, the program just bails out with the abovementioned exception in Watch.cpp.
I fired off gdb and inspected the state at the failure:
But, the LapInfo data of
*(lap_it+1)
looks suspicious:This seems to be just some sort of stray lap entry, which could
probably be skipped when reading the data? What do you think?
The text was updated successfully, but these errors were encountered: