Page 157 - MDP2020-3
P. 157

················································································  명장양성프로젝트  【MDP】  과제발표회  자료집  Ⅲ    |  151


              가. RxTx Serial



              1) 연결 포트 지정


            try {

                        (new Serial()).connect("COM11");
                    } catch (Exception e) {
                        e.printStackTrace();
                    }


              Serial 통신에 있어서 가장 중요한 부분인 연결할 포트를 지정하는 부분입니다. Main 문에

            작성되었으며 사용자 지정 함수인 Serial 함수를 호출하여 연결할 포트의 이름을 인자값으로
            전달합니다. try ~ catch 문으로 구성되어 있는 이유는 연결을 시도하였을 때 만일 해당 포트
            가 이미 사용 중일 경우 오류를 반환하기 위해서입니다.


              2) 연결 포트 속성



            SerialPort serialPort = (SerialPort) commPort;
            serialPort.setSerialPortParams(9600,        SerialPort.DATABITS_8,       SerialPort.STOPBITS_1,
            SerialPort.PARITY_NONE);



              통신을 위한 포트가 사용 가능한 경우 해당 포트의 속성을 지정합니다. Java에서 지정한 속
            성과 MPU에서 지정한 Register 설정이 일치해야 정상적으로 통신이 가능합니다.


              3) 송/수신부



            InputStream in = serialPort.getInputStream();
            OutputStream out = serialPort.getOutputStream();


            (new Thread(new SerialReader(in))).start();
            (new Thread(new SerialWriter(out))).start();



              송/수신의 경우 쓰레드를 이용함으로써 동시에 동작하도록 한 것을 확인할 수 있었습니다.
            쓰레드를 이해하기 위해서는 프로세스의 개념이 우선 설명되어야 하는데, 컴퓨터를 사용할 때
            우리는 동시에 여러 개의 작업을 실행할 수 있습니다. 즉, CPU의 제어권을 시간에 따라 분할하
            여 이를 돌아가며 사용할 수 있도록 해주는데 우리가 사용하는 실행 중인 하나의 프로그램을

            프로세스라고 합니다. 쓰레드는 이 프로세스 내에서 실행되는 세부 작업 단위로서 여러 개의
            쓰레드가 모여 하나의 프로세스를 구성하게 됩니다. 자바 또한 기본적으로 하나의 쓰레드가 제
            공되어야 하며 이 쓰레드는 프로그램의 시작인 main()을 실행하기 위한 목적으로 제공됩니다.
             따라서 송/수신을 쓰레드를 사용하여 구성한 이유는 해당 동작이 필요할 때 기존에 실행 중이
            던 main()을 종료하지 않고 수행하기 위함임을 알 수 있습니다.
   152   153   154   155   156   157   158   159   160   161   162