From f05e9a7779f0464ff2c871c0ed116f1ded46fada Mon Sep 17 00:00:00 2001 From: Kenneth van Ewijk Date: Fri, 25 Sep 2015 09:44:56 +0200 Subject: [PATCH] Added missing files --- ErgometerLibrary/ComPort.cs | 65 ++++++++++++++++++++++++++++++++++ ErgometerLibrary/Meting.cs | 69 +++++++++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 ErgometerLibrary/ComPort.cs create mode 100644 ErgometerLibrary/Meting.cs diff --git a/ErgometerLibrary/ComPort.cs b/ErgometerLibrary/ComPort.cs new file mode 100644 index 0000000..176a372 --- /dev/null +++ b/ErgometerLibrary/ComPort.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.IO.Ports; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ErgometerLibrary +{ + public class ComPort + { + private SerialPort comPort; + + public ComPort() + { + comPort = null; + } + + public Boolean Connect(string port) + { + comPort = new SerialPort(); + comPort.PortName = port; + comPort.DataBits = 8; + comPort.Parity = Parity.None; + comPort.StopBits = StopBits.One; + comPort.BaudRate = 9600; + + comPort.Open(); + + return comPort.IsOpen; + } + + public Boolean Disconnect() + { + comPort.Close(); + return !comPort.IsOpen; + } + + public Boolean IsOpen() + { + if (comPort != null) + return comPort.IsOpen; + else + return false; + } + + public void Write(string input) + { + if (IsOpen()) + { + comPort.WriteLine(input); + } + } + + public string Read() + { + if (IsOpen()) + { + return comPort.ReadLine(); + } + + return ""; + } + } +} diff --git a/ErgometerLibrary/Meting.cs b/ErgometerLibrary/Meting.cs new file mode 100644 index 0000000..b0b352d --- /dev/null +++ b/ErgometerLibrary/Meting.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ErgometerLibrary +{ + public class Meting + { + public int HeartBeat { get; set; } + public int RPM { get; set; } + public double Speed { get; set; } + public double Distance { get; set; } + public int Power { get; set; } + public int Energy { get; set; } + public int Seconds { get; set; } + public int ActualPower { get; set; } + public double TimeStamp { get; } + + public Meting(int heartbeat, int rpm, double speed, double distance, int power, int energy, int seconds, int actualpower, double timestamp) + { + HeartBeat = heartbeat; + RPM = rpm; + Speed = speed; + Distance = distance; + Power = power; + Energy = energy; + Seconds = seconds; + ActualPower = actualpower; + TimeStamp = timestamp; + } + + public override string ToString() + { + string temp = ""; + temp += "Heartbeat: " + HeartBeat + "\n"; + temp += "RPM: " + RPM + "\n"; + temp += "Speed: " + Speed + "\n"; + temp += "Distance: " + Distance + "\n"; + temp += "Power: " + Power + "\n"; + temp += "Energy: " + Energy + "\n"; + temp += "Seconds: " + Seconds + "\n"; + temp += "ActualPower: " + ActualPower + "\n"; + return temp; + } + + public static Meting Parse(string input) + { + String[] status = input.Split('\t'); + + if (status.Length != 8) + return null; + + int heartbeat = int.Parse(status[0]); + int rpm = int.Parse(status[1]); + double speed = double.Parse(status[2]) / 10; + double distance = double.Parse(status[3]) / 10; + int power = int.Parse(status[4]); + int energy = int.Parse(status[5]); + int actualpower = int.Parse(status[7]); + + string[] temp = status[6].Split(':'); + int seconds = (int.Parse(temp[0]) * 60) + (int.Parse(temp[1])); + + return new Meting(heartbeat, rpm, speed, distance, power, energy, seconds, actualpower, (DateTime.Now - DateTime.Parse("1/1/1870 0:0:0")).TotalMilliseconds); + } + } +}