소년포비의 세계정복!!

[Windows Mobile] PDA Serial통신 본문

윈도우폰 세상/Windows Phone

[Windows Mobile] PDA Serial통신

소년포비 2009. 11. 3. 07:41

제일먼저 해줘야할일은 Serial Control추가 후 시작한다.

Program 생성자에 아래코드를 추가해준다..

  1. this.serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.serialPort1_DataReceived);   
  2. dataReciveHandler = new EventHandler(dataRecive);  

 

시리얼 수신 이벤트핸들러함수를 아래와같이 추가한다.

  1. protected void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs args)   
  2. {   
  3.     try  
  4.     {   
  5.         Invoke(dataReciveHandler);   
  6.     }   
  7.     catch (System.Exception e)   
  8.     {   
  9.            
  10.     }   
  11.        
  12. }  

 

대리자로 한번 감싸서 다시 넘기기때문에 실제로 수신 Data를 처리하는 부분은 위에서 설정한 dataRecive 함수
코드는 아래와 같다..

  1. void dataRecive(object sender, System.EventArgs args)   
  2. {   
  3.     try  
  4.     {   
  5.         byte strData;   
  6.   
  7.         if (serialPort1.IsOpen)   
  8.         {   
  9.             strData = (byte)serialPort1.ReadByte();   
  10.             serialPort1.DiscardInBuffer();   
  11.   
  12.             progressBar1.Value = strData;   
  13.             lblBattery.Text = strData.ToString() + "%";   
  14.         }   
  15.     }   
  16.     catch (System.Exception e)   
  17.     {   
  18.   
  19.     }   
  20. }  

 
시리얼 송신부분

  1. private void SerialSend(byte data)   
  2. {   
  3.     if (serialPort1.IsOpen == true)   
  4.     {   
  5.         byte[] tmp = new byte[1];   
  6.         tmp[0] = data;   
  7.         serialPort1.Write(tmp, 0, tmp.Count());   
  8.     }   
  9. }