Ticket Created
over 2 years ago

WERETECH-12749

feature-request: enable CIQ apps to indicate no-data/missing-data/incorrect-data in a Fit field.

Native apps have a way to indicate missing/no/invalid data in the FIT data file. For native apps' data GCM and web both are able to display correctly the gaps. For CIQ apps we currently only have the choice to send some data (like 0) that is "incorrectly" rendered on the graphs.

Please add a way for CIQ apps to do the same. Some possible solutions:

- enable Toybox.FitContributor.Field.setData(null) also for non nullable DATA_TYPE_-s.

- add a new parameter to Toybox/WatchUi/DataField.createField to indicate that setData should accept null.

- add a new parameter to Toybox/WatchUi/DataField.createField to indicate what value should be treated as missing/invalid. So for example for HR related data we could set ActivityMonitor.INVALID_HR_SAMPLE as the invalid value and use that to indicate that for a certain period of time we didn't have valid data.

The problem is well documented in https://forums.garmin.com/developer/connect-iq/f/discussion/7509/fitcontributor-field-setdata-should-accept-null-as-a-value/

  • No, that doesn't count as a "gap" Disappointed

    Even we can create this by not calling setData() at the beginning of the activity. We are looking for an example of a real gap, when there were some valid, displayed values at the beginning, then there's a GAP, and then again there are some valid values. (Optionally it's probably also OK to not to have anything after the gap)

  • Ok I looked at my last Garmin Activity. My PERFORMANCE CONDITION has a gap during the first 6 minutes of the activity. This is when Garmin is evaluating my condition. I used Garmin's FIT TOOLS to convert my FIT file to CSV. I looked at the values. During those first 6 mins, For this column, Garmin includes integer values that vary between 543 and 608. These are rendered as a GAP. Then I have legit values that vary between -6 and +5 (although allowable values are from -20 to >10).

    It is very possible that Garmin simply knows that for this particular graph to ignore those values, and that these larger integers would not render a gap in general graphs of this data type (which is likely a Signed 8-bit Integer). So I don't know if this helps. You know more about these things so what do you get from this insight?

  • Yeah, that's possible, but I would first want to know what's in the FIT file for native apps which write gaps. Haven't bothered to look yet.

  • Maybe, but probably there's some equivalent to it. What I am trying to say is that maybe even if you create the exact same fit file it might not be displayed the same way in GCM / web, because maybe the problem isn't in the fit file.

  • Not sure if I follow? Native apps don't use fitcontributor.xml or CIQ APIs, as far as I know. (Sorry if I missed something here.)