error handling
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user