From 3e3a0cf4c4b056e2f3d16f55d326a98ec066daca Mon Sep 17 00:00:00 2001 From: shinichi Date: Wed, 9 Sep 2020 12:27:37 +0200 Subject: [PATCH] wip lunch break --- ProftaakRH/BLEReciever.cs | 69 +++++++++++++++++++++++++++++++++++++++ ProftaakRH/FietsDemo.cs | 17 +++++----- ProftaakRH/Main.cs | 13 +++++++- 3 files changed, 89 insertions(+), 10 deletions(-) diff --git a/ProftaakRH/BLEReciever.cs b/ProftaakRH/BLEReciever.cs index 1105362..d0d4d0f 100644 --- a/ProftaakRH/BLEReciever.cs +++ b/ProftaakRH/BLEReciever.cs @@ -1,11 +1,80 @@ using System; using System.Collections.Generic; using System.Text; +using Avans.TI.BLE; +using System.Threading; + namespace Hardware { class BLEReciever { IDataConverter dataConverter; + + public BLEReciever(IDataConverter dataConverter) + { + this.dataConverter = dataConverter; + } + + public async 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 + List bleBikeList = bleBike.ListDevices(); + Console.WriteLine("Devices found: "); + foreach (var name in bleBikeList) + { + Console.WriteLine(name); + if (name.Contains("Avans Bike")) + { + Connect(name); + Console.WriteLine("connecting to {0}", name); + break; + } + } + } + public async void Connect(string deviceName) + { + int errorCode = 0; + BLE bleBike = new BLE(); + BLE bleHeart = new BLE(); + + errorCode = errorCode = await bleBike.OpenDevice(deviceName); + // __TODO__ Error check + + var services = bleBike.GetServices; + foreach (var service in services) + { + Console.WriteLine($"Service: {service}"); + } + + // Set service + errorCode = await bleBike.SetService("6e40fec1-b5a3-f393-e0a9-e50e24dcca9e"); + // __TODO__ error check + + // Subscribe + bleBike.SubscriptionValueChanged += BleBike_SubscriptionValueChanged; + errorCode = await bleBike.SubscribeToCharacteristic("6e40fec2-b5a3-f393-e0a9-e50e24dcca9e"); + + // Heart rate + errorCode = await bleHeart.OpenDevice(deviceName); + + await bleHeart.SetService("HeartRate"); + + bleHeart.SubscriptionValueChanged += BleBike_SubscriptionValueChanged; + await bleHeart.SubscribeToCharacteristic("HeartRateMeasurement"); + } + + 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)); + //send to dataconverter + } } } diff --git a/ProftaakRH/FietsDemo.cs b/ProftaakRH/FietsDemo.cs index d95c24f..eb6d7fb 100644 --- a/ProftaakRH/FietsDemo.cs +++ b/ProftaakRH/FietsDemo.cs @@ -11,15 +11,14 @@ namespace FietsDemo { internal class Program { - static void Main(string[] args) - { - foo foo = new foo(); - //BLEReceiver bLEReceiver = new BLEReceiver(foo); + //static void Main(string[] args) + //{ + // foo foo = new foo(); + // BLEReceiver bLEReceiver = new BLEReceiver(foo); - - //bLEReceiver.ConnectToBLE(); - Console.Read(); - } + // bLEReceiver.ConnectToBLE(); + // Console.Read(); + //} interface IFoo { @@ -144,7 +143,7 @@ namespace FietsDemo { Console.WriteLine("Foo class received {0}", Convert.ToString(bytes)); - + } } diff --git a/ProftaakRH/Main.cs b/ProftaakRH/Main.cs index 207d831..efad10b 100644 --- a/ProftaakRH/Main.cs +++ b/ProftaakRH/Main.cs @@ -1,10 +1,21 @@ using System; using System.Collections.Generic; using System.Text; +using Hardware; namespace ProftaakRH { - class Main + class Program { + + static void Main(string[] args) + { + IDataConverter dataConverter = new DataConverter(); + BLEReciever bLEReceiver = new BLEReciever(dataConverter); + + bLEReceiver.Connect("sdkgjnzsoifgnzaiof"); + + //Console.ReadLine(); + } } }