Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class C_Serial
- {
- SerialPort Serial;
- int i_RecvSize = 0; // number of receive
- public bool OpenSerial(string s_port, int i_baud, int i_commTry, int i_delay)
- {
- try
- {
- Serial = new SerialPort();
- ....
- Serial.DataReceived += new SerialDataReceivedEventHandler(Serial_DataReceived);
- Serial.Open();
- }
- catch (Exception ex)
- {
- }
- return is_ok;
- }
- void Serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
- {
- i_RecvSize = Serial.BytesToRead;
- }
- private void serialWrite(string s_sendPkt)
- {
- try
- {
- byte[] arr_sendByte = s_sendPkt.HexToByteArray();
- Serial.Write(arr_sendByte, 0, arr_sendByte.Length);
- }
- catch (Exception ex)
- {
- Trace.WriteLine(ex.Message + " / " + ex.StackTrace);
- }
- }
- public string SendAndRecvModem(string s_sendPkt, bool is_startPC)
- {
- s_recvPkt = waitDataReceivedModem();
- }
- private string waitDataReceivedModem()
- {
- byte[] arr_recvByte = new byte[0];
- try
- {
- while (true)
- {
- if (i_RecvSize > 0 || arr_recvByte.Length > 0)
- {
- byte[] arr_buff = new byte[i_RecvSize]; // make array for receive
- Serial.Read(arr_buff, 0, arr_buff.Length); // here error occurs
- i_RecvSize = i_RecvSize - arr_buff.Length;
- arr_recvByte = arr_recvByte.Concat(arr_buff).ToArray(); // save receive packet
- ......
- }
- catch(Exception ex)
- {
- logToMain("Error : " + ex.Message + "/" + ex.StackTrace, COLOR.RED);
- }
- return s_recvPkt
- }// waitDataReceived
- } // class
- C_Serial c_Serial = new C_Serial();
- ...
- string packet = ...;
- c_Serial.SendAndRecvModem(packet);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement