/// <summary> /// Constructs <see cref="AntChannel"/>. /// </summary> /// <param name="channel">Underlying <see cref="ANT_Channel"/> object from official ANT managed API.</param> internal AntChannel(ANT_Channel channel) { this.channel = channel; // todo: for now assigned to network 0 and channel type BASE_Slave_Receive_0x00 automatically, other hardcoded defaults channel.assignChannel(ANT_ReferenceLibrary.ChannelType.BASE_Slave_Receive_0x00, 0); channel.setChannelSearchTimeout(255); }
private bool OpenGarmin2() { //Initialise the ANT library and connect to ANT module if (device != null) { ANT_Device.shutdownDeviceInstance(ref device); device = null; } device = new ANT_Device(); if (device == null) { MessageBox.Show("Error initialising ANT module. Ensure the Garmin ANT agent is not running."); return false; } device.ResetSystem(); channel = device.getChannel(0); //Reset wireless transceiver device.ResetSystem(); Thread.Sleep(50); //Pass the callback functions to the ANT_DLL library device.deviceResponse += new ANT_Device.DeviceResponseHandler(DeviceResponse); channel.channelResponse += new ANT_Channel.ChannelResponseHandler(ChannelResponse); //Set network key for Garmin HRM //The garmin HRM key is "B9A521FBBD72C345" byte[] GarminKey = { 0xb9, 0xa5, 0x21, 0xfb, 0xbd, 0x72, 0xc3, 0x45 }; device.setNetworkKey(0, GarminKey); Thread.Sleep(50); //Assign the channel //Receive on channel 0, network #0 channel.assignChannel(ANT_ReferenceLibrary.ChannelType.BASE_Slave_Receive_0x00, 0); //Congifure Channel ID - set up which devices to transmit-receive data from //Set to receive from any device it finds ushort device_id = ushort.Parse(txtDeviceID.Text); channel.setChannelID((ushort)device_id, false, 0, 0); Thread.Sleep(50); //Set the receiver search timeout limit channel.setChannelSearchTimeout(0xff); Thread.Sleep(50); //Set the messaging period (corresponding to the max number of messages per second) //Messaging period for Garmin HRM is 0x1f86 channel.setChannelPeriod(0x1f86); Thread.Sleep(50); //Set the radio frequency corresponding to the Garmin watch (frequency 0x39) channel.setChannelFreq(0x39); Thread.Sleep(50); //Open the channel to receive data ! channel.openChannel(); return true; }