/// <summary> /// Decode data for the heart rate monitor. In this case the only useful value is byte[1], so far the success data transfer rate has been 100%. Therefor the checksum is not used at the moment. /// </summary> /// <param name="rawData"></param> /// <param name="bLEDataHandler"></param> public static void Decrypt(byte[] rawData, BLEDataHandler bLEDataHandler) { ; //byte[] checksum = { rawData[rawData.Length - 1] }; //bool isCorrect = CheckXorValue(rawData, checksum); int heartRate = rawData[1]; bLEDataHandler.SetHeartrate(heartRate); }
static void Main(string[] args) { TcpClient client = new TcpClient(); client.Connect("localhost", 1717); // was 1717 stream = client.GetStream(); string clientErgoID = "00457"; //BLEconnect ergoClient = new BLEconnect(clientErgoID); BLESimulator simulator = new BLESimulator(clientErgoID); List <byte[]> rawData = new List <byte[]>(); rawData = simulator.ReadData(ApplicationSettings.GetReadWritePath(clientErgoID), WriteOption.Ergo); BLEDataHandler dataHandler = new BLEDataHandler(clientErgoID); for (int i = 0; i < rawData.Count; i++) { BLEDecoderErgo.Decrypt(rawData[i], dataHandler); } List <BLEData> data = dataHandler._bleData; string dataMessage = Environment.UserName + "#"; //stream.BeginRead(buffer, 0, buffer.Length, new AsyncCallback(OnRead), null); Write("Connect", Environment.UserName); foreach (BLEData dataPacket in data) { dataMessage += dataPacket.GetData() + "\n"; System.Threading.Thread.Sleep(1000); Write("Datapackage", dataMessage); dataMessage = Environment.UserName + "#"; } }