Dear Wolfgang and Team,
at first a huge THANK YOU for that great tool! You guys are doing a
really great job!
My Problem:
I am using a Garmin EDGE 800 and my wife has a Forerunner 610.
We are using the same database with 2 users.
Importing any .fit file of the devices works like a charm - normally.
Today, for the first time we were using our devices while biking
together. So now we have two .fit files from different devices, that
start and end at approximately the same time. Also the GPS tracks are
quite similar as we were riding together.
Now I can import one .fit file into MyTourbook. That works as usual. But
if I try to import the second .fit file, MyTourbook shows me the already
imported file and fails to import the second as an individual entry.
I deleted them again and tried the other way round - same result but I
could see that those are surely different files as the curves looked
different.
After having a short look into your sources, it looks to me as if the
'tourId', generated from our files is the same in for both.
net.tourbook.device.garmin.fit.....FitActivityContext.java:
final Long tourId =
tourData.createTourId(Util.UNIQUE_ID_SUFFIX_GARMIN_FIT);
if (_alreadyImportedTours.containsKey(tourId) == false) {
tourData.createTimeSeries(timeDataList, false);
'normally' a tour id is created from the tour start time (year, month, day, hour, minute).
For gpx/tcx files also the tour distance (meter) and the tour recording time (seconds) is used to created a tour id when this option is selected in the tour import view menu.
For .fit files this option is not yet available.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
at that time, when importing .fit files (at least from the two named devices FORERUNNER610 and EDGE800) the variable
devicePluginId
is available, carrying the GARMIN serial (in my case a 10 digit number)
Also available is
_dateTimeStart //in Millis
Up to now I have not found the database type of the tourID field but I guess this is also "long"? Otherwise I would propose to add the deviceID somehow like that
The UI also needs to be adjusted so that this feature must be enabled actively because when reimporting old tours they would create a different tour id.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I do have the same problem now, wanting to import two files, generated by two different Garmin 800.
Since a friend of mine and I ride the same routes for a week at the moment, we have identical starting times and track lengths. However, I want to be able to compare parts of the courses (how much faster rode my friend uphill and the like).
Has the above been implemented and if so, how may I enable it?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Dear Wolfgang and Team,
at first a huge THANK YOU for that great tool! You guys are doing a
really great job!
My Problem:
I am using a Garmin EDGE 800 and my wife has a Forerunner 610.
We are using the same database with 2 users.
Importing any .fit file of the devices works like a charm - normally.
Today, for the first time we were using our devices while biking
together. So now we have two .fit files from different devices, that
start and end at approximately the same time. Also the GPS tracks are
quite similar as we were riding together.
Now I can import one .fit file into MyTourbook. That works as usual. But
if I try to import the second .fit file, MyTourbook shows me the already
imported file and fails to import the second as an individual entry.
I deleted them again and tried the other way round - same result but I
could see that those are surely different files as the curves looked
different.
After having a short look into your sources, it looks to me as if the
'tourId', generated from our files is the same in for both.
net.tourbook.device.garmin.fit.....FitActivityContext.java:
final Long tourId =
tourData.createTourId(Util.UNIQUE_ID_SUFFIX_GARMIN_FIT);
if (_alreadyImportedTours.containsKey(tourId) == false) {
tourData.createTimeSeries(timeDataList, false);
unfortunately my eclipse and java knowlege is very limited so I could
not find the part where the 'tourId' is actually generated.
Any help would be greatly appreciated!
If you need the files, please tell me where to e-mail them.
Best regards,
admiralbulli
Last edit: admiralbulli 2013-10-27
'normally' a tour id is created from the tour start time (year, month, day, hour, minute).
For gpx/tcx files also the tour distance (meter) and the tour recording time (seconds) is used to created a tour id when this option is selected in the tour import view menu.
For .fit files this option is not yet available.
Wolfgang,
thank you very much for this detailed answer.
As I understood from your sources, the ID is calculated as a type long variable in TourData.java line 3663ff:
at that time, when importing .fit files (at least from the two named devices FORERUNNER610 and EDGE800) the variable
is available, carrying the GARMIN serial (in my case a 10 digit number)
Also available is
Up to now I have not found the database type of the tourID field but I guess this is also "long"? Otherwise I would propose to add the deviceID somehow like that
for Garmin .fit devices.
I am sure I forgot some major things, bringing up severe problems, but:
Is this worth a feature request?
May I somehow support the project with my limited programming skills?
Thanks again,
admiralbulli
P.S.: GarminProduct.java:
adding our 2 devices would result in something like this:
Last edit: admiralbulli 2013-10-29
I would implement it like in the gpx/tcx implementation http://sourceforge.net/p/mytourbook/code/ci/master/tree/net.tourbook.device.garmin/src/net/tourbook/device/garmin/GarminSAXHandler.java line 555-581
The UI also needs to be adjusted so that this feature must be enabled actively because when reimporting old tours they would create a different tour id.
Thanks Wolfgang,
I will try to find some code solution for this and come back later on...
Regards,
admiralbulli
I do have the same problem now, wanting to import two files, generated by two different Garmin 800.
Since a friend of mine and I ride the same routes for a week at the moment, we have identical starting times and track lengths. However, I want to be able to compare parts of the courses (how much faster rode my friend uphill and the like).
Has the above been implemented and if so, how may I enable it?
I'll implement this feature in the next version