error handling
This commit is contained in:
@@ -10,17 +10,17 @@ namespace Hardware
|
|||||||
class BLEReciever
|
class BLEReciever
|
||||||
{
|
{
|
||||||
IDataConverter dataConverter;
|
IDataConverter dataConverter;
|
||||||
|
BLE bleBike;
|
||||||
|
BLE bleHeart;
|
||||||
|
|
||||||
public BLEReciever(IDataConverter dataConverter)
|
public BLEReciever(IDataConverter dataConverter)
|
||||||
{
|
{
|
||||||
this.dataConverter = dataConverter;
|
this.dataConverter = dataConverter;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async void Connect()
|
public void Connect()
|
||||||
{
|
{
|
||||||
int errorCode = 0;
|
|
||||||
BLE bleBike = new BLE();
|
BLE bleBike = new BLE();
|
||||||
BLE bleHeart = new BLE();
|
|
||||||
Thread.Sleep(1000); // We need some time to list available devices
|
Thread.Sleep(1000); // We need some time to list available devices
|
||||||
|
|
||||||
// List available devices
|
// List available devices
|
||||||
@@ -31,50 +31,78 @@ namespace Hardware
|
|||||||
Console.WriteLine(name);
|
Console.WriteLine(name);
|
||||||
if (name.Contains("Avans Bike"))
|
if (name.Contains("Avans Bike"))
|
||||||
{
|
{
|
||||||
Connect(name);
|
|
||||||
Console.WriteLine("connecting to {0}", name);
|
Console.WriteLine("connecting to {0}", name);
|
||||||
|
Connect(name);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public async void Connect(string deviceName)
|
public async void Connect(string deviceName)
|
||||||
{
|
{
|
||||||
int errorCode = 0;
|
int errorCode = 0;
|
||||||
BLE bleBike = new BLE();
|
bleBike = new BLE();
|
||||||
BLE bleHeart = new BLE();
|
bleHeart = new BLE();
|
||||||
|
|
||||||
errorCode = errorCode = await bleBike.OpenDevice(deviceName);
|
errorCode = errorCode = await bleBike.OpenDevice(deviceName);
|
||||||
// __TODO__ Error check
|
if (errorCode > 0)
|
||||||
|
|
||||||
var services = bleBike.GetServices;
|
|
||||||
foreach (var service in services)
|
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Service: {service}");
|
disposeBLE();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set service
|
// Set service
|
||||||
errorCode = await bleBike.SetService("6e40fec1-b5a3-f393-e0a9-e50e24dcca9e");
|
errorCode = await bleBike.SetService("6e40fec1-b5a3-f393-e0a9-e50e24dcca9e");
|
||||||
// __TODO__ error check
|
if (errorCode > 0)
|
||||||
|
{
|
||||||
|
disposeBLE();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Subscribe
|
// Subscribe
|
||||||
bleBike.SubscriptionValueChanged += BleBike_SubscriptionValueChanged;
|
bleBike.SubscriptionValueChanged += BleBike_SubscriptionValueChanged;
|
||||||
errorCode = await bleBike.SubscribeToCharacteristic("6e40fec2-b5a3-f393-e0a9-e50e24dcca9e");
|
errorCode = await bleBike.SubscribeToCharacteristic("6e40fec2-b5a3-f393-e0a9-e50e24dcca9e");
|
||||||
|
if (errorCode > 0)
|
||||||
|
{
|
||||||
|
disposeBLE();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Heart rate
|
// Heart rate
|
||||||
errorCode = await bleHeart.OpenDevice(deviceName);
|
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;
|
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)
|
private void BleBike_SubscriptionValueChanged(object sender, BLESubscriptionValueChangedEventArgs e)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Received from {0}: {1}, {2}", e.ServiceName,
|
Console.WriteLine("Received from {0}: {1}", e.ServiceName,
|
||||||
BitConverter.ToString(e.Data).Replace("-", " "),
|
BitConverter.ToString(e.Data).Replace("-", " "));
|
||||||
Encoding.UTF8.GetString(e.Data));
|
|
||||||
//send to dataconverter
|
//send to dataconverter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void disposeBLE()
|
||||||
|
{
|
||||||
|
this.bleBike?.Dispose();
|
||||||
|
this.bleHeart?.Dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ namespace ProftaakRH
|
|||||||
IDataConverter dataConverter = new DataConverter();
|
IDataConverter dataConverter = new DataConverter();
|
||||||
BLEReciever bLEReceiver = new BLEReciever(dataConverter);
|
BLEReciever bLEReceiver = new BLEReciever(dataConverter);
|
||||||
|
|
||||||
bLEReceiver.Connect("sdkgjnzsoifgnzaiof");
|
bLEReceiver.Connect();
|
||||||
|
|
||||||
//Console.ReadLine();
|
Console.ReadLine();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user