LabVIEW / / 2022. 1. 23. 17:19

구조] LabVIEW 큐메시지핸들러 루프 구조 - 1

728x90
반응형

 

LabVIEW 는 데이터 흐름

LabVIEW QMH Loop

1. 들어가기

LabVEIW 기초를 하고 나서 프로그램을 하다보면, 쓰레드, 병렬처리, 데이터 전달방법 등 다양한 문제 혹은 잘하고 싶다라는 생각을 하게 될것이다. LabVIEW도 다른 프로그램 언어처럼 똑같다. 다만, 표현 방식이 다를 뿐이다.

 가끔 소스를 보다 보면, LabVIEW 가 병렬처리(혹은 쓰레드)가 편하다(?) 보니, while loop 를 남발하여 사용하는 경우가 많다. 필요하다면 써야 한다. 썼으면, 잘 마무리해서 프로그램을 짜야하는데, 그냥 남발만 해두었다. 지역 변수를 사용해서 종료하면 잘 종료가 되겠지, 전역변수 변수를 사용해서 하면 데이터가 잘 전달이 되겠지 하는.... (가끔 그랬으면 하고 바라기도 한다. 알아서 잘 되기를.....) 

지금 소개하는 QMH 구조를 잘 사용한다면, 좀 더 수정하기 쉽고, 보기 쉬운 프로그램을 짤 수 있을것이다.

 

2. QMH Loop

Queued Message Handler Loop 약어이다.

큐를 이용하여 데이터를 전달 여기서는 데이터와 상태를 이벤트 핸들링 루프에서 메시지 핸들링 루프로 전달한다.

 2.1 구성

 2.1.1 초기화

 사용자 이벤트와 큐를 생성하고 있다.

사용자 이벤트 및 큐 생성

 2.2.2 이벤트 핸들링 루프

사용자 이벤트, 버튼 이벤트등이 발생했을때, 처리하는 부분이다.

이벤트문에 의해 이벤트가 발생되기를 기다리고 있다 이벤트가 발생되면 해당 부분에 해당하는 메시지 핸들링 루프로 명령(케이스 선택) 및 데이터를 전달한다.

이벤트 핸들링 루프

 2.2.3 메시지 핸들링 루프

실제로 로직이 돌아가는 부분이라고 보면된다. 사용자 버튼이 눌러졌을때, 이를 실행하는 부분이 들어가는 곳이다.

Queue에 의해 전달된 명령에 의해 case를 선택하게 되고, 해당 case에 로직이 실행된다.

 

메시지 핸들링 루프

3. 구성요소

다음 구성요소는 QMH에 포함되어 있는 요소들이다. 이 요소들을 잘 이해한다면, 큰 프로그램을 짜는데 큰 어려움이 없을 것이다.

3.1 While Loop
3.2 Event
3.3 Case
3.4 Queue
3.5 User Event
3.6 Shift Register

 

 

 

728x90
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유