DoctorModel.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading;
  7. using System.Threading.Tasks;
  8. using System.Windows.Forms.DataVisualization.Charting;
  9. namespace FietsClient
  10. {
  11. class DoctorModel
  12. {
  13. private static DoctorModel _doctorModel;
  14. public DoctorForm doctorform { get; set; }
  15. public static DoctorModel doctorModel { get { return _doctorModel ?? (_doctorModel = new DoctorModel()); } }
  16. public TcpConnection tcpConnection { private get; set; }
  17. public DoctorModel()
  18. {
  19. }
  20. //display values
  21. private List<DataPoint> speedPoints = new List<DataPoint>();
  22. private List<DataPoint> bpmPoints = new List<DataPoint>();
  23. private List<DataPoint> rpmPoints = new List<DataPoint>();
  24. private void HandleBikeData(string[] data)
  25. {
  26. if (doctorform.InvokeRequired)
  27. {
  28. doctorform.Invoke((new Action(() => HandleBikeData(data))));
  29. }
  30. else
  31. {
  32. //fill fields
  33. doctorform.pulseBox.Text = data[0];
  34. doctorform.rpmInfoBox.Text = data[1];
  35. doctorform.speedInfoBox.Text = data[2];
  36. doctorform.distanceInfoBox.Text = data[3];
  37. doctorform.requestedBox.Text = data[4];
  38. doctorform.energyInfoBox.Text = data[5];
  39. doctorform.timeBox.Text = data[6];
  40. doctorform.actualBox.Text = data[7];
  41. //fill graph speed
  42. speedPoints.Add(new DataPoint(Convert.ToDateTime(data[6]).ToOADate(), Convert.ToDouble(data[2])));
  43. doctorform.speedChart.Series[0].Points.Clear();
  44. for (int i = 0; i < speedPoints.Count; i++)
  45. doctorform.speedChart.Series[0].Points.Add(speedPoints[i]);
  46. if (speedPoints.Count > 25)
  47. speedPoints.RemoveAt(0);
  48. doctorform.speedChart.Update();
  49. //fill graph pulse
  50. bpmPoints.Add(new DataPoint(Convert.ToDateTime(data[6]).ToOADate(), Convert.ToDouble(data[0])));
  51. doctorform.bpmChart.Series[0].Points.Clear();
  52. for (int i = 0; i < bpmPoints.Count; i++)
  53. doctorform.bpmChart.Series[0].Points.Add(bpmPoints[i]);
  54. if (bpmPoints.Count > 25)
  55. bpmPoints.RemoveAt(0);
  56. doctorform.speedChart.Update();
  57. //fill graph rpm
  58. rpmPoints.Add(new DataPoint(Convert.ToDateTime(data[6]).ToOADate(), Convert.ToDouble(data[1])));
  59. doctorform.rpmChart.Series[0].Points.Clear();
  60. for (int i = 0; i < rpmPoints.Count; i++)
  61. doctorform.rpmChart.Series[0].Points.Add(rpmPoints[i]);
  62. if (rpmPoints.Count > 25)
  63. rpmPoints.RemoveAt(0);
  64. doctorform.rpmChart.Update();
  65. }
  66. }
  67. }
  68. }