ComPort.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. namespace ErgometerLibrary
  8. {
  9. public class ComPort
  10. {
  11. private SerialPort comPort;
  12. public ComPort()
  13. {
  14. comPort = null;
  15. }
  16. public Boolean Connect(string port)
  17. {
  18. comPort = new SerialPort();
  19. comPort.PortName = port;
  20. comPort.DataBits = 8;
  21. comPort.Parity = Parity.None;
  22. comPort.StopBits = StopBits.One;
  23. comPort.BaudRate = 9600;
  24. comPort.ReadTimeout = 200;
  25. comPort.WriteTimeout = 350;
  26. try {
  27. comPort.Open();
  28. }
  29. catch(Exception e)
  30. {
  31. return false;
  32. }
  33. return comPort.IsOpen;
  34. }
  35. public Boolean Disconnect()
  36. {
  37. comPort.Close();
  38. return !comPort.IsOpen;
  39. }
  40. public Boolean IsOpen()
  41. {
  42. if (comPort != null)
  43. return comPort.IsOpen;
  44. else
  45. return false;
  46. }
  47. public void Write(string input)
  48. {
  49. if (IsOpen())
  50. {
  51. try
  52. {
  53. comPort.WriteLine(input);
  54. }
  55. catch (TimeoutException)
  56. {
  57. }
  58. }
  59. }
  60. public string Read()
  61. {
  62. if (IsOpen())
  63. {
  64. try {
  65. return comPort.ReadLine();
  66. }
  67. catch(TimeoutException e)
  68. {
  69. return "err";
  70. }
  71. }
  72. return "";
  73. }
  74. }
  75. }