시리얼은 거의 모든 PC에서 표준으로 사용되는 디바이스 통신 프로토콜 이다.

 

디바이스와 통신을 원할경우 다음과 같이 통신을 하면 된다.

 

 

using System.IO;
using System.IO.Ports;

 

1. Open

==> 이 함수는 return 값이 serial 로 되어있으므로 다음과 같이 써야한다.

SerialPort serialport = SerialOpen(설정 값들);

 

        private SerialPort SerialOpen(SerialPort sp, string comPort, string baudRate, string parity, string databits, string stopbits)
        {
            System.IO.Ports.Parity ipartity = Parity.None;
            System.IO.Ports.StopBits istopbits = StopBits.One;
            sp = new SerialPort(comPort.ToString(), Convert.ToInt32(baudRate));
            sp.Encoding = Encoding.Default;

            switch (parity)
            {
                case "None":
                    ipartity = Parity.None;
                    break;
                case "Odd":
                    ipartity = Parity.Odd;
                    break;
                case "Even":
                    ipartity = Parity.Even;
                    break;
            }
            switch (stopbits)
            {
                case "None":
                    istopbits = StopBits.None;
                    break;
                case "One":
                    istopbits = StopBits.One;
                    break;
                case "Two":
                    istopbits = StopBits.Two;
                    break;
            }
            sp.Parity = ipartity;
            sp.DataBits = Convert.ToInt32(databits);
            sp.StopBits = istopbits;
            try
            {
                sp.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
                sp.Open();
         
            }
            catch (Exception e)
            {
              
            }
            return sp;
        }

 

2. Recv

        private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            string recv = "";
            while (serialPort.BytesToRead > 0)
            {
                recv += serialPort.ReadExisting();
            }

        }

 

3. Write

        private void WriteSerial(SerialPort sp ,byte[] writebyte)
        {
            sp.Write(writebyte, 0, writebyte.Length);
        }

 

4. Close

Close도 역시 Return 값으로 되어있어서 Open과 똑같이 이용하면 된다.

        public SerialPort SerialClose(SerialPort sp)
        {
            try
            {
                sp.Close();
          
            }
            catch (Exception e)
            {

            }
            return sp;
        }

'프로그램 언어 > C#' 카테고리의 다른 글

Excel 파일로 저장 하기  (0) 2016.12.14
Lan 연결 상태 확인(Ping Test)  (0) 2016.12.14
CSV 파일로 저장하기  (0) 2016.12.14
Cross Thread 문제  (0) 2016.12.13
폴더 내 지정날짜 이상이면 자동으로 지우기  (0) 2016.12.13

+ Recent posts