104 lines
3.3 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|