Issues with Lap Data Display

First of all, let me introduce myself. I am new here, although I do have experience as a programmer in other technologies.

I would like to thank you for all the support you offer in this forum and everything I have learned so far thanks to you about Monkey C.

I am building an application in MonkeyC to monitor several properties related to a breathing exercise. I would like that after recording the activity, a data table related to the rounds carried out in the exercise is registered and displayed, but I can't get this data to be shown as it would be natively with running activity, for example. 

I can't get this lap data table to display in any way; I have only managed to add information to the "summary" in Garmin Connect (mobile or web).

Is it possible to record this information in this way? Am I doing something wrong?

        session = ActivityRecording.createSession({
            :name=>"WHB",
            :sport=>Activity.SPORT_TRAINING,
            :subSport=>Activity.SUB_SPORT_BREATHING
        });
        longestRoundField = session.createField("longestRound", 0, FitContributor.DATA_TYPE_UINT32, {:mesgType => FitContributor.MESG_TYPE_SESSION, :units => "s"});
        roundField = session.createField("round", 1, FitContributor.DATA_TYPE_UINT32, {:mesgType => FitContributor.MESG_TYPE_LAP});

        session.start();
        
[...]

            //+ LAP LOOP;
    
            currentLongestRound = holdChronoCycle > currentLongestRound ? holdChronoCycle : currentLongestRound;
            longestRoundField.setData(currentLongestRound);
            roundField.setData(holdChronoCycle);
            
            [...]
            
            session.addLap();
            
            //- LAP LOOP;
            

<fitContributions>
    <fitField
        id="0"
        displayInChart="false"
        displayInActivitySummary="true"
        displayInActivityLaps="true"
        sortOrder="0"
        precision="0"
        dataLabel="@Strings.longestRound"
        unitLabel="@Strings.seconds"
    />
    <fitField
        id="1" 
        displayInChart="false"
        displayInActivitySummary="false"
        displayInActivityLaps="true"
        sortOrder="1"
        precision="0"
        dataLabel="@Strings.round"
        unitLabel="@Strings.seconds"
    />
</fitContributions>

The worst part is that when I review the saved Lap information in fitfileViewer, for example, I see that the data has been recorded. I am also attaching images of both FitFileViewer and Monkey Graph.

www.fitfileviewer.com/:

Monkey Graph

  • Search the bug report forum for something like "lap data", and you'll see that user lap data has had issues.

  • Thank you for your quick response .

    What I've read so far is that if the lap data isn't displaying, it's likely due to a bug in the framework of some devices. Are you referring to this? Is it confirmed?

  • There are a few issues:

    1. least of a problem, just a recommendation: don't use UINT32 for round. spare your data, you have so limited amount, I'd just use UINT8

    2. there's a "confusion" in the users (including me), how to use the Garmin Connect app. In the lap tab you need to look at it in a landscape mode, because only then it gives you the opportunity to move to the right side of the table

    3. as Jim wrote there are probably 2 more known issues that were reported in the past half a year:
    a. one that I saw, but just checked on my activity from yesterday and seems to be fixed now (on android at least): the CIQ field's columns were present, but empty
    b. someone else posted something similar but slightly different that he doesn't even see the columns

  • 2. there's a "confusion" in the users (including me), how to use the Garmin Connect app. In the lap tab you need to look at it in a landscape mode, because only then it gives you the opportunity to move to the right side of the table

    I’ve mentioned this before and someone told me to stop complaining :(. 

    For me personally it’s not so much confusing (*), as it’s annoying to have to rotate my phone to access basic functionality.

    (* I noticed the “rotate your phone” icon/hint below the final lap— although it’s not visible without scrolling if you have more than than a certain number of laps, which seems like a bug / design issue. It seems that such a crucial hint should always be initially visible when you open the lap tab.)

    Also, the UX of the lap table is bad in general, or at least it was in the past. In landscape mode, if you scrolled horizontally, then scrolled vertically, the table would randomly forget your horizontal scroll position. I *think* this is fixed now.

    I prefer how Stryd does things:

    - all data is available in portrait mode (each metric can be displayed in its own table of laps)

    - for any given lap table, there's a button to "View in Full Screen" which rotates the table (so you have to rotate your phone to read it), and shows several metrics at once. The big difference here is that: its an "extra" mode as opposed to "basic" functionality -- meaning it doesn't show any additional data you couldn't see in portrait mode, it's just a different way of displaying the data -- and you explicitly press a button to activate it.

  • 1. least of a problem, just a recommendation: don't use UINT32 for round. spare your data, you have so limited amount, I'd just use UINT8

    Thank you for the recommendation, you are absolutely right.

    b. someone else posted something similar but slightly different that he doesn't even see the columns

    The problem is that this seems to be my case as well... the tab related to "LAP" DOES NOT EVEN APPEAR in the activity on Garmin Connect for Android or Web (not to mention the data in the table). So, don't you think it could be something related to implementation? I certainly believe I didn't skip any steps when programming that functionality, and the data in the .fit file seems correct.

    (* I noticed the “rotate your phone” icon/hint below the final lap— although it’s not visible without scrolling if you have more than than a certain number of laps, which seems like a bug / design issue. It seems that such a crucial hint should always be initially visible when you open the lap tab.)

    I wish that were the problem in this case, and at least part of the data in the table would be displayed.

    I am attaching an example of how it is displayed:

  • I don't see any problem in the code or XML. If the data is in the fit file then usually it's a problem with the XML - or a bug in GC, but that seems to be ok now