Files
ErgometerLibrary/ErgometerLibrary/Meting.cs
T
2015-10-20 17:06:50 +02:00

104 lines
3.3 KiB
C#

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 string ToCommand()
{
string temp = "";
temp += HeartBeat + "»";
temp += RPM + "»";
temp += Speed + "»";
temp += Distance + "»";
temp += Power + "»";
temp += Energy + "»";
temp += Seconds + "»";
temp += ActualPower + "»";
temp += TimeStamp;
return temp;
}
public static Meting Parse(string input)
{
return Parse(input, '\t');
}
public static Meting Parse(string input, char delimiter)
{
string[] status = input.Split(delimiter);
if (status.Length != 8 && status.Length != 9)
{
throw new FormatException("Error in Meting: Arguments do not match");
}
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]);
double timestamp = 0;
if (status.Length == 9)
timestamp = double.Parse(status[8]);
else
timestamp = Helper.Now;
string[] temp = status[6].Split(':');
int seconds = 0;
if (temp.Length == 2)
{
seconds = (int.Parse(temp[0]) * 60) + (int.Parse(temp[1]));
}
else
{
seconds = int.Parse(status[6]);
}
return new Meting(heartbeat, rpm, speed, distance, power, energy, seconds, actualpower,timestamp);
}
}
}