Program.cs.orig 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO.Ports;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Threading;
  8. namespace FietsSimulator
  9. {
  10. class Program
  11. {
  12. static void Main(string[] args)
  13. {
  14. <<<<<<< .merge_file_a07428
  15. new FietsSimulator("COM6");
  16. =======
  17. string[] ports = SerialPort.GetPortNames();
  18. Console.WriteLine("Availabe Comports: \n" + String.Join(" \n", ports));
  19. Console.WriteLine("Enter Comport:");
  20. string port = Console.ReadLine();
  21. new FietsSimulator(port);
  22. Console.WriteLine("Started Simulator");
  23. >>>>>>> .merge_file_a04204
  24. while (true)
  25. {
  26. Thread.Sleep(10);
  27. }
  28. }
  29. }
  30. <<<<<<< .merge_file_a07428
  31. =======
  32. class FietsSimulator
  33. {
  34. private SerialPort comport;
  35. private Mode curmode;
  36. private int curvalue;
  37. private int _power;
  38. public int Power
  39. {
  40. get { return _power; }
  41. set
  42. {
  43. if (value >= 25 && value <= 400)
  44. _power = value;
  45. if (value < 25)
  46. _power = 25;
  47. if (value > 400)
  48. _power = 400;
  49. }
  50. }
  51. private enum Mode
  52. {
  53. NONE,
  54. CONSOLE,
  55. DISTANCE,
  56. TIME
  57. }
  58. public FietsSimulator(String addr)
  59. {
  60. this.comport = new SerialPort(addr, 9600);
  61. comport.DataReceived += new SerialDataReceivedEventHandler(ReceiveData);
  62. comport.Open();
  63. }
  64. private void ReceiveData(object sender, SerialDataReceivedEventArgs e)
  65. {
  66. string message = comport.ReadLine().Trim();
  67. Console.WriteLine(message);
  68. if (message == "RS")
  69. {
  70. curmode = Mode.NONE;
  71. curvalue = 0;
  72. Power = 25;
  73. SendData("ACK");
  74. }
  75. else if (message == "CU")
  76. {
  77. curmode = Mode.CONSOLE;
  78. SendData("ACK");
  79. }
  80. else if (message.Contains("PW"))
  81. {
  82. if (curmode != Mode.NONE && message.Split().Length == 2)
  83. {
  84. this.Power = Int32.Parse(message.Split(' ')[1]);
  85. }
  86. else
  87. {
  88. SendData("ERROR");
  89. }
  90. }
  91. else if (message == "ST")
  92. {
  93. SendData("0\t100\t10\t20\t" + Power.ToString() + "\t600\t0504\t200\r");
  94. // pulse rpm speed * 10 distance requested_power energy mm:ss actual_power
  95. }
  96. else
  97. {
  98. SendData("ERROR");
  99. }
  100. }
  101. private void SendData(string message)
  102. {
  103. this.comport.WriteLine(message);
  104. }
  105. }
  106. >>>>>>> .merge_file_a04204
  107. }