ComPort.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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 = 1500;
  25. try {
  26. comPort.Open();
  27. }
  28. catch(Exception e)
  29. {
  30. return false;
  31. }
  32. return comPort.IsOpen;
  33. }
  34. public Boolean Disconnect()
  35. {
  36. comPort.Close();
  37. return !comPort.IsOpen;
  38. }
  39. public Boolean IsOpen()
  40. {
  41. if (comPort != null)
  42. return comPort.IsOpen;
  43. else
  44. return false;
  45. }
  46. public void Write(string input)
  47. {
  48. if (IsOpen())
  49. {
  50. comPort.WriteLine(input);
  51. }
  52. }
  53. public string Read()
  54. {
  55. if (IsOpen())
  56. {
  57. try {
  58. return comPort.ReadLine();
  59. }
  60. catch(TimeoutException e)
  61. {
  62. return "err";
  63. }
  64. }
  65. return "";
  66. }
  67. }
  68. }