diff --git a/ProftaakRH/BLEReciever.cs b/ProftaakRH/BLEReciever.cs index d0d4d0f..854d80f 100644 --- a/ProftaakRH/BLEReciever.cs +++ b/ProftaakRH/BLEReciever.cs @@ -10,17 +10,17 @@ namespace Hardware class BLEReciever { IDataConverter dataConverter; + BLE bleBike; + BLE bleHeart; public BLEReciever(IDataConverter dataConverter) { this.dataConverter = dataConverter; } - public async void Connect() + public void Connect() { - int errorCode = 0; BLE bleBike = new BLE(); - BLE bleHeart = new BLE(); Thread.Sleep(1000); // We need some time to list available devices // List available devices @@ -31,50 +31,78 @@ namespace Hardware Console.WriteLine(name); if (name.Contains("Avans Bike")) { - Connect(name); Console.WriteLine("connecting to {0}", name); + Connect(name); break; + } } } public async void Connect(string deviceName) { int errorCode = 0; - BLE bleBike = new BLE(); - BLE bleHeart = new BLE(); + bleBike = new BLE(); + bleHeart = new BLE(); errorCode = errorCode = await bleBike.OpenDevice(deviceName); - // __TODO__ Error check - - var services = bleBike.GetServices; - foreach (var service in services) + if (errorCode > 0) { - Console.WriteLine($"Service: {service}"); + disposeBLE(); + return; } // Set service errorCode = await bleBike.SetService("6e40fec1-b5a3-f393-e0a9-e50e24dcca9e"); - // __TODO__ error check + if (errorCode > 0) + { + disposeBLE(); + return; + } // Subscribe bleBike.SubscriptionValueChanged += BleBike_SubscriptionValueChanged; errorCode = await bleBike.SubscribeToCharacteristic("6e40fec2-b5a3-f393-e0a9-e50e24dcca9e"); + if (errorCode > 0) + { + disposeBLE(); + return; + } // Heart rate errorCode = await bleHeart.OpenDevice(deviceName); + if (errorCode > 0) + { + disposeBLE(); + return; + } - await bleHeart.SetService("HeartRate"); + errorCode = await bleHeart.SetService("HeartRate"); + if (errorCode > 0) + { + disposeBLE(); + return; + } bleHeart.SubscriptionValueChanged += BleBike_SubscriptionValueChanged; - await bleHeart.SubscribeToCharacteristic("HeartRateMeasurement"); + errorCode = await bleHeart.SubscribeToCharacteristic("HeartRateMeasurement"); + if (errorCode > 0) + { + disposeBLE(); + return; + } } private void BleBike_SubscriptionValueChanged(object sender, BLESubscriptionValueChangedEventArgs e) { - Console.WriteLine("Received from {0}: {1}, {2}", e.ServiceName, - BitConverter.ToString(e.Data).Replace("-", " "), - Encoding.UTF8.GetString(e.Data)); + Console.WriteLine("Received from {0}: {1}", e.ServiceName, + BitConverter.ToString(e.Data).Replace("-", " ")); //send to dataconverter } + + private void disposeBLE() + { + this.bleBike?.Dispose(); + this.bleHeart?.Dispose(); + } } } diff --git a/ProftaakRH/Main.cs b/ProftaakRH/Main.cs index efad10b..4625f5d 100644 --- a/ProftaakRH/Main.cs +++ b/ProftaakRH/Main.cs @@ -13,9 +13,9 @@ namespace ProftaakRH IDataConverter dataConverter = new DataConverter(); BLEReciever bLEReceiver = new BLEReciever(dataConverter); - bLEReceiver.Connect("sdkgjnzsoifgnzaiof"); + bLEReceiver.Connect(); - //Console.ReadLine(); + Console.ReadLine(); } } }