Meting.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ErgometerLibrary
  7. {
  8. public class Meting
  9. {
  10. public int HeartBeat { get; set; }
  11. public int RPM { get; set; }
  12. public double Speed { get; set; }
  13. public double Distance { get; set; }
  14. public int Power { get; set; }
  15. public int Energy { get; set; }
  16. public int Seconds { get; set; }
  17. public int ActualPower { get; set; }
  18. public double TimeStamp { get; }
  19. public Meting(int heartbeat, int rpm, double speed, double distance, int power, int energy, int seconds, int actualpower, double timestamp)
  20. {
  21. HeartBeat = heartbeat;
  22. RPM = rpm;
  23. Speed = speed;
  24. Distance = distance;
  25. Power = power;
  26. Energy = energy;
  27. Seconds = seconds;
  28. ActualPower = actualpower;
  29. TimeStamp = timestamp;
  30. }
  31. public override string ToString()
  32. {
  33. string temp = "";
  34. temp += "Heartbeat: " + HeartBeat + "\n";
  35. temp += "RPM: " + RPM + "\n";
  36. temp += "Speed: " + Speed + "\n";
  37. temp += "Distance: " + Distance + "\n";
  38. temp += "Power: " + Power + "\n";
  39. temp += "Energy: " + Energy + "\n";
  40. temp += "Seconds: " + Seconds + "\n";
  41. temp += "ActualPower: " + ActualPower + "\n";
  42. return temp;
  43. }
  44. public string ToCommand()
  45. {
  46. string temp = "";
  47. temp += HeartBeat + "»";
  48. temp += RPM + "»";
  49. temp += Speed + "»";
  50. temp += Distance + "»";
  51. temp += Power + "»";
  52. temp += Energy + "»";
  53. temp += Seconds + "»";
  54. temp += ActualPower + "»";
  55. temp += TimeStamp;
  56. return temp;
  57. }
  58. public static Meting Parse(string input)
  59. {
  60. return Parse(input, '\t');
  61. }
  62. public static Meting Parse(string input, char delimiter)
  63. {
  64. string[] status = input.Split(delimiter);
  65. if (status.Length != 8 && status.Length != 9)
  66. {
  67. throw new FormatException("Error in Meting: Arguments do not match");
  68. }
  69. int heartbeat = int.Parse(status[0]);
  70. int rpm = int.Parse(status[1]);
  71. double speed = double.Parse(status[2]) / 10;
  72. double distance = double.Parse(status[3]) / 10;
  73. int power = int.Parse(status[4]);
  74. int energy = int.Parse(status[5]);
  75. int actualpower = int.Parse(status[7]);
  76. double timestamp = 0;
  77. if (status.Length == 9)
  78. timestamp = double.Parse(status[8]);
  79. else
  80. timestamp = Helper.Now;
  81. string[] temp = status[6].Split(':');
  82. int seconds = 0;
  83. if (temp.Length == 2)
  84. {
  85. seconds = (int.Parse(temp[0]) * 60) + (int.Parse(temp[1]));
  86. }
  87. else
  88. {
  89. seconds = int.Parse(status[6]);
  90. }
  91. return new Meting(heartbeat, rpm, speed, distance, power, energy, seconds, actualpower,timestamp);
  92. }
  93. }
  94. }