added possibility for multiple DataReceivers

This commit is contained in:
shinichi
2020-09-25 16:38:22 +02:00
parent a353d6839e
commit 78bb7f6a6c
2 changed files with 38 additions and 9 deletions

View File

@@ -13,7 +13,7 @@ namespace Hardware
/// </summary> /// </summary>
public class BLEHandler public class BLEHandler
{ {
IDataReceiver dataReceiver; List<IDataReceiver> dataReceivers;
private BLE bleBike; private BLE bleBike;
private BLE bleHeart; private BLE bleHeart;
public bool Running { get; set; } public bool Running { get; set; }
@@ -24,7 +24,17 @@ namespace Hardware
/// <param name="dataReceiver">the dataconverter object</param> /// <param name="dataReceiver">the dataconverter object</param>
public BLEHandler(IDataReceiver dataReceiver) public BLEHandler(IDataReceiver dataReceiver)
{ {
this.dataReceiver = dataReceiver; this.dataReceivers = new List<IDataReceiver> { dataReceiver };
}
public BLEHandler(List<IDataReceiver> dataReceivers)
{
this.dataReceivers = dataReceivers;
}
public void addDataReceiver(IDataReceiver dataReceiver)
{
this.dataReceivers.Add(dataReceiver);
} }
/// <summary> /// <summary>
@@ -125,11 +135,17 @@ namespace Hardware
{ {
byte[] payload = new byte[8]; byte[] payload = new byte[8];
Array.Copy(e.Data, 4, payload, 0, 8); Array.Copy(e.Data, 4, payload, 0, 8);
this.dataReceiver.Bike(payload); foreach (IDataReceiver dataReceiver in this.dataReceivers)
{
dataReceiver.Bike(payload);
}
} }
else if (e.ServiceName == "00002a37-0000-1000-8000-00805f9b34fb") else if (e.ServiceName == "00002a37-0000-1000-8000-00805f9b34fb")
{ {
this.dataReceiver.BPM(e.Data); foreach (IDataReceiver dataReceiver in this.dataReceivers)
{
dataReceiver.BPM(e.Data);
}
} }
else else
{ {

View File

@@ -12,7 +12,7 @@ namespace Hardware.Simulators
{ {
public class BikeSimulator : IHandler public class BikeSimulator : IHandler
{ {
IDataReceiver dataReceiver; List<IDataReceiver> dataReceivers;
private int elapsedTime = 0; private int elapsedTime = 0;
private int eventCounter = 0; private int eventCounter = 0;
private double distanceTraveled = 0; private double distanceTraveled = 0;
@@ -32,7 +32,17 @@ namespace Hardware.Simulators
public BikeSimulator(IDataReceiver dataReceiver) public BikeSimulator(IDataReceiver dataReceiver)
{ {
this.dataReceiver = dataReceiver; this.dataReceivers = new List<IDataReceiver> { dataReceiver };
}
public BikeSimulator(List<IDataReceiver> dataReceivers)
{
this.dataReceivers = dataReceivers;
}
public void addDataReceiver(IDataReceiver dataReceiver)
{
this.dataReceivers.Add(dataReceiver);
} }
public void StartSimulation() public void StartSimulation()
@@ -50,9 +60,12 @@ namespace Hardware.Simulators
CalculateVariables(improvedPerlin.GetValue(x) + 1); CalculateVariables(improvedPerlin.GetValue(x) + 1);
//Simulate sending data //Simulate sending data
dataReceiver.Bike(GenerateBike0x19()); foreach (IDataReceiver dataReceiver in this.dataReceivers)
dataReceiver.Bike(GenerateBike0x10()); {
dataReceiver.BPM(GenerateHeart()); dataReceiver.Bike(GenerateBike0x19());
dataReceiver.Bike(GenerateBike0x10());
dataReceiver.BPM(GenerateHeart());
}
Thread.Sleep(1000); Thread.Sleep(1000);