Note
Prefer AntCollection and the hosting extensions if your application uses dependency injection. See ANT+ Hosting Extensions Overview for details.
The AntPlus class library supports a number of ANT+ device profiles as defined by Garmin/Dynastream. All device profiles are based on the abstract class AntDevice. Common data pages and timeout options are provided to support the device profiles. The following device profiles are supported -
Asset Tracker
Bicycle Power
Crank Torque Frequency Sensor
Standard Power Sensor
Standard Crank Torque Sensor
Standard Wheel Torque Sensor
Bike Speed and Cadence
Bike Cadence Sensor
Bike Speed Sensor
Combined Speed and Cadence Sensor
Fitness Equipment
Climber
Elliptical
Nordic Skier
Rower
Trainer/Stationary Bike
Treadmill
Geocache
Heart Rate
Muscle Oxygen
Stride Based Speed and Distance Monitor
Unknown
See SmallEarthTech.AntPlus.DeviceProfiles for specific device details.
This abstract class provides properties and methods common to all ANT devices. The virtual Parse method handles resetting the device timeout each time a message is received. The RequestDataPage method sends a data page request to the ANT device. The SendExtAcknowledgedMessage method sends commands/requests to the ANT device.
CommonDataPages are typically added to derived AntDevice classes as a read-only property if the ANT device supports common data pages.
public CommonDataPages CommonDataPages { get; }
The AntDevice constructor will create and assign the CommonDataPages class. Here's an example from the BikeRadar class -
public BikeRadar(ChannelId channelId, IAntChannel antChannel, ILogger<BikeRadar> logger, TimeoutOptions? options)
: base(channelId, antChannel, logger, options)
{
CommonDataPages = new CommonDataPages(logger);
for (int i = 0; i < 8; i++) { RadarTargets.Add(new RadarTarget()); }
}
This is a thread-safe observable collection of ANT devices. The constructor will initialize the ANT radio for continuous scan mode and direct all messages received from the ANT radio to a private handler. This handler will select an ANT device from the collection or create a new ANT device and add it to the collection. The message is then passed to the ANT device parser for handling by the device.
Set either Timeout in milliseconds or MissedMessages to the number of missed messages before signaling device offline. Prefer MissedMessages as this scales the timeout to the ANT device broadcast message rate. Set Timeout to -1 to disable ANT device timeouts.