Data Acquisition Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
0 Kudos
jfalesi

ANT/ANT+ Support

Status: New

Hello.  I'm working on an app to interface with a couple of ANT devices (Garmin Vector, Garmin heartrate monitor).  I've seen a couple of posts on this topic but nobody has posted code.  I talked to Frank Lezu at an NI day in DC a month or so back and he recommended I post about it here.

 

Anyone else looking for ANT/ANT+ support?  I'd be happy to share my code when it's not in a ridiculously embarrassing state but for now see this post for a braindump of my progress.

 

Thanks,

-Jamie

2 Comments
dowen
Member

Jamie,

Did you make any further progress on this project.  I am just starting out trying to read data from a MOXY sensor via Garmin Ant+ USB Stick. Any help you can give me would be really appreciated.

 

Thx,

 

Don Owen

CLA

jfalesi
Member

Yes.  My first recommendation is to consider using the API code provided by Dynastream at thisisant.com.  You can compile their code into DLLs and then make calls from LabVIEW.  I did not do this because by the time I realized it was an option, a grad student in the lab had already "cracked the code" of translating ANT messages in LabVIEW.  Either way, you'll find the ANT protocol documentation highly valuable.   You need to register as an ANT+ adapter to get access to most of the code and documentation.

 

In case you haven't found it already, here's the link to the ANT+ profile page for the MOXY. 

 

My second recommendation is to use ANTwareII to learn how the ANT+ USB stick communcates with your device.  Looking at the log files that this program generates will go a long way towards understanding how device pairing works.

 

Let me see how much of my code I am allowed to share.  I may be able to section off a part of it that provides basic functionality for you, or at least provide the infrastructure I created in the form of classes (I have ANT Master, ANT Slave, Command, Response, Channel and Network classes as well as subclasses for a few commands and responses).  I have not implemented all of the command or response messages but I used a factory pattern to dynamically load message classes as needed, so all you have to do to implement a new one is create the new message class, define a couple of VIs, and add the name of new message class and its path to one or two text files.  Eventually I'd like to post some version of the code as open source but I have not looked into this yet.

 

In the meantime, feel free to ask questions - I'm happy to share what I've learned so far.

 

-Jamie