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/

  • I think what happened is this (based on the parallel respiration rate chart):

    I was running as usual with the H10 chest strap. When the strap disconnected the watch's OHR kicked in, then it disconnected the OHR and reconnected the strap.
    The OHW had the lower readings.

    If you look at the same fit file but for the respiration rate then at the exact same time you should be able to see the gap, because when HR comes from the strap then there's respiration rate calculated but when it's from the OHR then there isn't (during activity)

  • Awesome! Someone sent me his FIT file that has a mid-activity GAP in his HeartRate. (Thanks Gabriel!!) I imported it into Garmin Connect and verified that the line graph displays two valid gaps. I used FIT TOOLS to convert it to CSV and found that the actual HR data does not have a data gap or invalid data. It actually has the lower HR entered during the gap in the line graph. Ugh. So maybe Garmin interprets an unrealistic "discontinuity" in the values as a gap? That really doesn't make sense... but I can't find any data in the FIT file that would trigger the graph to show a gap. 

  • On the mobile app, zeros do appear hidden... but like you said it isn't really a gap because you can mouse over and see that there are really ZERO data values in that stretch of the line graph. On the Web view, expanding the graph, you can generally see the zero values as part of the line. I need a FIT file (or a way to create one) that actually has a gap mid activity. I thought you or FlowState produced a screenshot of that scenario. I'd love to get a copy of that FIT file ([email protected]) if someone has one.

  • Well, yes, at least visually that works like that, however this might be tricky, as 0 cadence) is a perfectly valid value, when you stop for a red light. On the other hand if you stop for a coffee, and the the Edge with you into the shop, where it's too far away so it disconnects, that (in my mind at least) should be a different thing.

    So even though the graph shows 0 as a gap, when I click on the graph and move left-right I see the value as 0. Maybe it's worth to test the disconnect theory, but since fit works like "no new value -> assume the previous value is still valid" (like in smart mode) I doubt we'll see any difference.

  • Ok. I've not ever seen an example of a mid-activity gap even in a Garmin Field. Do you know how I can create this situation? Like maybe disable a sensor (HR, Cadence Power) mid-ride? I'll try something like that to see if I can create a gap, then dissect the FIT file.