SHARE
TWEET

Untitled

a guest Jun 19th, 2019 66 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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);
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top