コード例 #1
0
        void InitHRM(int channelNumber)
        {
            var channelHrm       = usbDevice.getChannel(channelNumber);
            var heartRateDisplay = new HeartRateDisplay(channelHrm, network);

            hrmCommander = new HRMCommander(heartRateDisplay);
            hrmCommander.Start();
        }
コード例 #2
0
ファイル: ANTDeviceManager.cs プロジェクト: kamilj/SimCycling
        void InitHRM(int channelNumber)
        {
            Int32 deviceNumber = Int32.Parse(ConfigurationManager.AppSettings["hrm_device"]);

            if (deviceNumber < 0)
            {
                return;
            }
            var channelHrm       = usbDevice.getChannel(channelNumber);
            var heartRateDisplay = new HeartRateDisplay(channelHrm, network);

            hrmCommander = new HRMCommander(heartRateDisplay, (UInt16)deviceNumber);
            hrmCommander.Start();
        }
コード例 #3
0
ファイル: ANT.cs プロジェクト: HubWhale/Bike
        private static void ConfigureANT()
        {
            Thread.Sleep(500);
            bool flag = ANT.device0.setNetworkKey(ANT.USER_NETWORK_NUM, ANT.USER_NETWORK_KEY, 500u);

            if (!flag)
            {
                throw new Exception("Error configuring network key");
            }
            bool flag2 = ANT.channel0.assignChannel(ANT.channelType, ANT.USER_NETWORK_NUM, 500u);

            if (!flag2)
            {
                throw new Exception("Error assigning channel");
            }
            bool flag3 = ANT.channel0.setChannelID(ANT.USER_DEVICENUM, false, ANT.USER_DEVICETYPE, ANT.USER_TRANSTYPE, 500u);

            if (!flag3)
            {
                throw new Exception("Error configuring Channel ID");
            }
            bool flag4 = ANT.channel0.setChannelFreq(ANT.USER_RADIOFREQ, 500u);

            if (!flag4)
            {
                throw new Exception("Error configuring Radio Frequency");
            }
            bool flag5 = ANT.channel0.setChannelPeriod(ANT.USER_CHANNELPERIOD, 500u);

            if (!flag5)
            {
                throw new Exception("Error configuring Channel Period");
            }
            ANT.bBroadcasting = true;
            bool flag6 = ANT.channel0.openChannel(500u);

            if (flag6)
            {
                ANT.heartRateDisplay = new HeartRateDisplay(ANT.channel0, ANT.networkAntPlus);
                ANT.heartRateDisplay.HeartRateDataReceived += new Action <HeartRateData, uint>(ANT.HeartRateDisplay_HeartRateDataReceived);
                ANT.heartRateDisplay.TurnOn();
                ANT.device0.enableRxExtendedMessages(true);
                return;
            }
            ANT.bBroadcasting = false;
            throw new Exception("Error opening channel");
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: keonlee/Heartbeat
        /*  public static async void SendDeviceProperties()
         * {
         *    try
         *    {
         *        Console.WriteLine("Sending device properties:");
         *        Random random = new Random();
         *        TwinCollection telemetryConfig = new TwinCollection();
         *        reportedProperties["DeviceProperty"] = random.Next(1, 6);
         *        Console.WriteLine(JsonConvert.SerializeObject(reportedProperties));
         *
         *        await Client.UpdateReportedPropertiesAsync(reportedProperties);
         *    }
         *    catch (Exception ex)
         *    {
         *        Console.WriteLine();
         *        Console.WriteLine("Error in sample: {0}", ex.Message);
         *    }
         * }
         */

        private static async void SendTelemetryAsync(CancellationToken token)
        {
            try
            {
                //ANT Part
                byte USER_RADIOFREQ = 57;                                                     // RF Frequency + 2400 MHz
                //ANTPLUS KEY
                byte[] USER_NETWORK_KEY = { 0xB9, 0xA5, 0x21, 0xFB, 0xBD, 0x72, 0xC3, 0x45 }; // key
                byte   USER_NETWORK_NUM = 0;
                //Use USB dongle to connect ANT+ device
                ANT_Device USB_Dongle;
                USB_Dongle = new ANT_Device();
                USB_Dongle.ResetSystem();
                USB_Dongle.setNetworkKey(USER_NETWORK_NUM, USER_NETWORK_KEY);
                ANT_Channel      Channel0       = USB_Dongle.getChannel(0);
                Network          AntPlusNetwork = new Network(USER_NETWORK_NUM, USER_NETWORK_KEY, USER_RADIOFREQ);
                HeartRateDisplay HR             = new HeartRateDisplay(Channel0, AntPlusNetwork);
                HR.TurnOn();
                Console.WriteLine(">>ANT+ Tuen on...");

                while (true)
                {
                    byte currentHeartbeat   = HR.HeartRate;
                    var  telemetryDataPoint = new
                    {
                        heartbeat = currentHeartbeat,
                    };
                    var messageString = JsonConvert.SerializeObject(telemetryDataPoint);
                    var message       = new Message(Encoding.ASCII.GetBytes(messageString));
                    token.ThrowIfCancellationRequested();
                    await Client.SendEventAsync(message);

                    Console.WriteLine("{0} > Sending heartbeat signal : {1}", DateTime.Now, messageString);
                    await Task.Delay(1000);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine();
                Console.WriteLine("Intentional shutdown: {0}", ex.Message);
            }
        }
コード例 #5
0
        public void Start()
        {
            var feChannel  = usbDevice.getChannel(0);
            var bpChannel  = usbDevice.getChannel(1);
            var hrChannel  = usbDevice.getChannel(2);
            var bcChannel  = usbDevice.getChannel(3);
            var bscChannel = usbDevice.getChannel(4);

            feDisplay  = new FitnessEquipmentDisplay(feChannel, network);
            bpDisplay  = new BikePowerDisplay(bpChannel, network);
            hrDisplay  = new HeartRateDisplay(hrChannel, network);
            bcDisplay  = new BikeCadenceDisplay(bcChannel, network);
            bscDisplay = new BikeSpeedCadenceDisplay(bscChannel, network);

            BindEvents();
            _ = ConsumeClientDataAsync();

            feDisplay.TurnOn();
            bpDisplay.TurnOn();
            hrDisplay.TurnOn();
            bcDisplay.TurnOn();
            bscDisplay.TurnOn();
        }
コード例 #6
0
        static void Main(string[] args)
        {
            byte USER_RADIOFREQ = 57;           // RF Frequency + 2400 MHz

            //Do not distrubute this key
            byte[] USER_NETWORK_KEY = { 0xB9, 0xA5, 0x21, 0xFB, 0xBD, 0x72, 0xC3, 0x45 };
            byte   USER_NETWORK_NUM = 0;

            ANT_Device USB_Dongle;

            USB_Dongle = new ANT_Device();
            USB_Dongle.ResetSystem();
            USB_Dongle.setNetworkKey(USER_NETWORK_NUM, USER_NETWORK_KEY);
            ANT_Channel      Channel0       = USB_Dongle.getChannel(0);
            Network          AntPlusNetwork = new Network(USER_NETWORK_NUM, USER_NETWORK_KEY, USER_RADIOFREQ);
            HeartRateDisplay HeartRate      = new HeartRateDisplay(Channel0, AntPlusNetwork);

            HeartRate.TurnOn();
            while (Console.KeyAvailable == false)
            {
                Console.WriteLine("Heart Rate=" + HeartRate.HeartRate);
                System.Threading.Thread.Sleep(500);
            }
        }
コード例 #7
0
 public HRMCommander(HeartRateDisplay simulator)
 {
     this.simulator = simulator;
 }