This commit is contained in:
shinichi
2020-09-09 14:49:40 +02:00
parent c5863e9026
commit 650f308cf5
2 changed files with 74 additions and 6 deletions

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Text; using System.Text;
using Avans.TI.BLE; using Avans.TI.BLE;
using System.Threading; using System.Threading;
using System.Security.Cryptography;
namespace Hardware namespace Hardware
{ {
@@ -12,7 +12,7 @@ namespace Hardware
IDataConverter dataConverter; IDataConverter dataConverter;
private BLE bleBike; private BLE bleBike;
private BLE bleHeart; private BLE bleHeart;
public bool running { get; } public bool running { get; set; }
public BLEReciever(IDataConverter dataConverter) public BLEReciever(IDataConverter dataConverter)
{ {
@@ -92,14 +92,31 @@ namespace Hardware
disposeBLE(); disposeBLE();
return; return;
} }
Console.WriteLine("connected to BLE");
this.running = true; this.running = true;
} }
private void BleBike_SubscriptionValueChanged(object sender, BLESubscriptionValueChangedEventArgs e) private void BleBike_SubscriptionValueChanged(object sender, BLESubscriptionValueChangedEventArgs e)
{ {
Console.WriteLine("Received from {0}: {1}", e.ServiceName, //Console.WriteLine("Received from {0}: {1}", e.ServiceName,
BitConverter.ToString(e.Data).Replace("-", " ")); // BitConverter.ToString(e.Data).Replace("-", " "));
//send to dataconverter //send to dataconverter
if (e.ServiceName == "6e40fec2-b5a3-f393-e0a9-e50e24dcca9e")
{
byte[] payload = new byte[8];
Array.Copy(e.Data, 4, payload, 0, 8);
this.dataConverter.Bike(payload);
}else if(e.ServiceName == "00002a37-0000-1000-8000-00805f9b34fb")
{
this.dataConverter.BPM(e.Data);
}
else
{
Console.WriteLine("received data from unknown source {0}", e.ServiceName);
}
} }
private void disposeBLE() private void disposeBLE()

View File

@@ -8,12 +8,63 @@ namespace Hardware
{ {
public void Bike(byte[] bytes) public void Bike(byte[] bytes)
{ {
throw new NotImplementedException(); if (bytes == null)
{
Console.WriteLine("HEY, didn't get bytes!\n-Bike DataConverter");
}
else
if (bytes.Length == 8)
{
switch (bytes[0])
{
case 0x10:
if (bytes[1] != 25)
{
Console.WriteLine("WTF this isn't a bike");
}
Console.WriteLine($"Time since start is: {bytes[2] / 4}s (Rollover every 4s)");
Console.WriteLine($"Distance Traveled is : {bytes[3]}m (Rollover every 256m)");
int input = bytes[4] | (bytes[5] << 8);
Console.WriteLine($"Speed is : {input * 0.01}m/s (Range 65.534m/4)");
break;
case 0x19:
break;
default:
Console.WriteLine("HEY, I never heard of data page {0}\n-DataConverter", bytes[0]);
break;
}
}
else
{
Console.WriteLine("HEY, I didn't get 8 bytes!\n-DataConverter");
}
Console.WriteLine();
} }
public void BPM(byte[] bytes) public void BPM(byte[] bytes)
{ {
throw new NotImplementedException(); if (bytes == null)
{
Console.WriteLine("HEY, didn't get bytes!\n-BPM DataConverter");
return;
}
if (bytes[0] != 0)
{
Console.WriteLine("HOLY SHIT i got flags!!! {0} now i can't do anything\n-BPM DataConverter", bytes[0]);
}
else if (bytes.Length != 2)
{
Console.WriteLine("bytes length is: {0}", bytes.Length);
}
else
{
Console.WriteLine("BPM: {0}", bytes[1]);
}
Console.WriteLine();
} }
} }