ANT -vs- ANT+ Channel Lock

I want to grab my HR strap's battery status. There is no ANT+ Profile for HR, which is unfortunate.

But I can open an ANT channel and wait for Page 7 to grab the battery info.

But then Activity.getActivityInfo().currentHeartRate is null. At least in the Simulator, this is true.

So it seems like opening an ANT channel to listen for onMessage pages from an ANT device locks out the device's ability to also listen to ANT(+?) messages from that same sensor? Ugh.

Is this true? I don't need to grab the battery info often - even once an hour is more than enough. So maybe set a timer to open the channel once an hour, wait for Page 7 for a few seconds (some HR straps won't send battery info). Then close the channel to allow the native ActivityInfo to see HR data messages again?

=====
This brings on another possible conflict. My data field grabs TEMPE data directly by opening
an ANT channel to get temps. So having done this, would this prevent say the TEMPE FIELD data
field from also seeing the data? Or Garmin's built-in TEMPE field from seeing the data?
  • You can't use ANT with a sensor that's natively paired with the device.  It's been that way forever.  You'll also have issues on devices where the Tempe is paired in the FW.  It's not just HR.

  • Thanks. Bummer. I guess a user will have to decide if they want my data field to have access and not pair the device natively to the TEMPE.The best solution would be an ANT+ profile for HR and TEMPE so that lock out isn't an issue.

  • With the exception of older edge devices, I think the Tempe can be natively paired with other devices, and if paired the tempe data is recorded to the fit file.  With some, the fit won't contain any temperature data without a Tempe.

    Your best solution is to make it configurable.  In most cases if someone bought a Tempe, it's because they want to use it with all activities to record the data.

  • For the EDGE series... as far as I understand, only the brand-new (like in the last couple of weeks) EDGE 840 and 1040 can natively pair with the TEMPE. But regardless, my Consumption Log data field is really a game changer for calculating hydration requirements using a variety of sensor inputs, including effort, elevation, and temperature. Device Temps are problematic (sun skew), Live Weather is problematic (elevation skew, proximity skew). So a TEMPE is best. But my data field can't get TEMPE temperature data if the device is natively paired... Unless.... the "Device" Temp I get from the background process is actually the TEMPE data if the device is natively paired... and it overrides the internal temp sensor!? Hmmm. If that is the case, problem solved.

  • On watches, if the tempe is natively paired and connected, what you see in Sensor is the tempe data. 

  • With the Tempe, I use a #3 S-BINER (~$2 at Home Depot) so it's easy to attach in the best spot.  I found that when attached to a shoe, it could be impacted by the heat of the pavement so clip it someplace else.

  • Great idea! For a bike, I could attach it that way to a saddle rail... It would swing around but in general should be out of direct sunlight and provide good temp data. And be easy to move from bike to bike. Thanks!

  • With a bike, I clip it under the seat.  My butt provides shade and there is plenty of air flow.  For walking/hiking, I clip it so it's shaded, maybe just to a belt loop or the zipper of my jacket.

  • Jim - you may know how to do this.... How to tell if a device has natively paired with a TEMPE. How to tell if Sensor.getInfo().temperature is from a TEMPE or the internal device temperature?

    If I know that, I won't have to open a generic ANT channel to listen for a TEMPE which then locks that sensor from others accessing it.

    I don't think we can tell... but if anyone knows a trick, you'd be the guy.

  • I've not found a good way.  With newer watches, Sensor will have the internal temper until a paired tempe connects (that can take a minute) and then it will have the data from the Tempe.

    Maybe use jungles so that Edge devices where you can't natively pair a tempe use ANT, and let the others assume native.