Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. class C_Serial
  2. {
  3. SerialPort Serial;
  4.  
  5. int i_RecvSize = 0; // number of receive
  6.  
  7. public bool OpenSerial(string s_port, int i_baud, int i_commTry, int i_delay)
  8. {
  9. try
  10. {
  11. Serial = new SerialPort();
  12. ....
  13. Serial.DataReceived += new SerialDataReceivedEventHandler(Serial_DataReceived);
  14. Serial.Open();
  15. }
  16. catch (Exception ex)
  17. {
  18.  
  19. }
  20. return is_ok;
  21. }
  22.  
  23. void Serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
  24. {
  25. i_RecvSize = Serial.BytesToRead;
  26. }
  27.  
  28. private void serialWrite(string s_sendPkt)
  29. {
  30. try
  31. {
  32. byte[] arr_sendByte = s_sendPkt.HexToByteArray();
  33. Serial.Write(arr_sendByte, 0, arr_sendByte.Length);
  34. }
  35. catch (Exception ex)
  36. {
  37. Trace.WriteLine(ex.Message + " / " + ex.StackTrace);
  38. }
  39. }
  40.  
  41. public string SendAndRecvModem(string s_sendPkt, bool is_startPC)
  42. {
  43. s_recvPkt = waitDataReceivedModem();
  44. }
  45.  
  46. private string waitDataReceivedModem()
  47. {
  48. byte[] arr_recvByte = new byte[0];
  49. try
  50. {
  51.  
  52. while (true)
  53. {
  54. if (i_RecvSize > 0 || arr_recvByte.Length > 0)
  55. {
  56. byte[] arr_buff = new byte[i_RecvSize]; // make array for receive
  57. Serial.Read(arr_buff, 0, arr_buff.Length); // here error occurs
  58. i_RecvSize = i_RecvSize - arr_buff.Length;
  59. arr_recvByte = arr_recvByte.Concat(arr_buff).ToArray(); // save receive packet
  60. ......
  61. }
  62. catch(Exception ex)
  63. {
  64. logToMain("Error : " + ex.Message + "/" + ex.StackTrace, COLOR.RED);
  65. }
  66. return s_recvPkt
  67. }// waitDataReceived
  68. } // class
  69.  
  70. C_Serial c_Serial = new C_Serial();
  71. ...
  72. string packet = ...;
  73. c_Serial.SendAndRecvModem(packet);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement