I've looked over the API and done some testing, but I'm still not seeing how to access data that I expect to be stored on the device. For example, I'd like to have access to the heart rate zone information to implement a data field. If the information isn't available directly via the API, it seems that I may have to write some code to attempt to pull that information to the device via ANT+ or BLE and store it again. If this information is available via AppBase::getProperty(key) then I ask that the list of properties that might be available.
To start - we're open to API suggestions. If an API won't make it we'll try to explain what the rationale is. In this case this was just an oversight on our part. I think we can add a UserProfile module that allows DataFields, Apps, and Widgets to access the information. Look for it in an upcoming preview.
App properties are for persisting your own settings. Any property you set using setProperty will be persisted, and be available via getProperty() when you run in the future.
In this case this was just an oversight on our part. I think we can add a UserProfile module that allows DataFields, Apps, and Widgets to access the information.
Cool. I'm faking it now and look forward to having access to the actual data eventually.
I see that the UserProfile module was added, but there is still no access the user's heart rate zone information. Is this something that is on the table?
I have no answer to that last question, but you can estimate it using the not-so-good estimate of 220-age and then use some estimated heart rate zones. Unfortunately, for my data fields, I want to get the exact same numbers as are calculated off-device and the only way to do it is with the exact zone information.
Yes. My data field is simply calculating the Strava Suffer Score in real time given the data from the device and the users heart rate zones. I've currently got it coded up to try to read the heart rate zones from the data field configuration (which isn't yet supported with ConnectIQ) and to derive heart rate zones given the user's resting heart rate, their age, and the simple heart rate reserve zones.
While those may be reasonable defaults for testing, but they are no good if the values aren't the same as the users actual zones.