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>
public class BLEHandler
{
IDataReceiver dataReceiver;
List<IDataReceiver> dataReceivers;
private BLE bleBike;
private BLE bleHeart;
public bool Running { get; set; }
@@ -24,7 +24,17 @@ namespace Hardware
/// <param name="dataReceiver">the dataconverter object</param>
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>
@@ -125,11 +135,17 @@ namespace Hardware
{
byte[] payload = new byte[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")
{
this.dataReceiver.BPM(e.Data);
foreach (IDataReceiver dataReceiver in this.dataReceivers)
{
dataReceiver.BPM(e.Data);
}
}
else
{

View File

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