LabVIEW 랩뷰/Labview 랩뷰 강의

이벤트 구조란 무엇인가?

지지 비 2021. 1. 18. 14:04
반응형

이번 강의에서는 이벤트 구조(Event Structure)에 대해서 알아보도록 하겠습니다.

 

    1. 이벤트 구조란 무엇인가?

    이벤트 구조는 "특정 이벤트"가 발생했을 때 어떤 코드를 실행시킨다는 목적을 가지고 있는 구조입니다. 대표적으로 어떤 버튼을 클릭한다거나, 단축키를 누른다거나 하는 행위가 이벤트이고 이벤트가 발생했을 때 어떤 코드를 실행하도록 하게 되어 있습니다.

    특정 이벤트가 발생하는 것을 감지하기 위해서 이벤트 구조는 보통 혼자서 사용하지 않고 While 루프와 같이 사용합니다. 계속해서 이벤트를 감지하고, 감지했을 때 프로그램을 구동하기 위해서입니다. 따라서 이벤트 구조는 보통 아래와 같은 형태가 기본적으로 사용됩니다.


    2. While 루프의 정지 이벤트 추가하기

    위 구조에서 실행 버튼이 깨져 있는 것은 While 루프의 정지 조건이 연결되지 않았기 때문입니다. 처음으로 만들어 본 이벤트는 정지 버튼을 눌렀을 때 While 루프가 정지하도록 만들어 보겠습니다. 

    먼저 정지 버튼 불리언을 프론트 패널에 추가해 줍니다.

     

    이벤트 구조의 셀렉터 레이블(Selector Label)을 오른쪽 클릭하여 이벤트 케이스 추가하기(Add Event Case...)를 클릭합니다.

     

    이벤트 소스(Event Sources)의 Controls-stop 을 선택하고, 이벤트의 Value Change를 선택합니다. 

    이벤트 소스는 어떤 객체에 대해서 이벤트가 동작하는지를 확인하는지를 정하는 것이고, 이벤트는 어떤 이벤트가 발생했는지를 정하는 것입니다. 여기서는 스톱 버튼(이벤트 소스)을 클릭해서 값이 변경(이벤트)되는 것을 감지하도록 이벤트를 설정한 것입니다. 

     

    추가한 이벤트 케이스에 스탑 컨트롤의 터미널을 넣어주고, While 루프의 정지 조건에 연결해 줍니다.

     

    여기까지 하면, 우리가 만든 프로그램은 '정지 버튼을 눌렀을 때'를 이벤트 구조가 감지하여 'While 루프를 정지'하도록 하는 이벤트를 만든 것입니다. 


    3. 확인버튼을 눌렀을 때 메세지 보여주기

    이번에는 확인 버튼을 눌렀을 때 메세지를 보여주는 이벤트를 만들어 보도록 하겠습니다. 기본적인 순서는 정지 버튼을 만들었을 때와 같습니다.

    먼저 확인 버튼을 프론트 패널에 추가합니다.

     

    이벤트 구조의 셀렉터 레이블을 오른쪽 클릭 - 이벤트 케이스 추가하기(Add Event Case...)를 클릭합니다.

     

    이벤트 소스로 OK Button을 선택하고, 이벤트로 Value Change 를 선택합니다.

     

    블록 다이어그램에서 OK 버튼 터미널을 OK 버튼 이벤트 케이스 안에 위치하도록 합니다.

     

    OK 버튼 이벤트 케이스 안에 단일 버튼 대화 상자(One Btn Dialog) 함수를 추가하고, 입력에 문자열 메세지를 연결해 줍니다.

     

    프로그램을 실행해서 확인 버튼을 눌러 메세지가 출력되는지 확인해 봅니다.