개발/기술문의

LabVIEW/STM32 등 개발문의 -> jexe0716@gmail.com 으로 연락부탁드립니다.

LabVIEW

디자인 패턴(2)

jexe 2021. 1. 14. 19:53
반응형

멀티 루프 디자인 패턴은 단일 루프보다 큰 프로젝트에서 사용되며, 특히 실무에서 생산자/소비자 데이터 패턴을 사용하는 것을 많이 봐왔다(ex 병원 내 환자들과 간호사 간의 N:1 데이터 통신). 특히 데이터 손실이나 동기화에 대한 이해가 중요하기 때문에 별개로 글을 작성할 계획이다.

 

 

병렬구조

- 두 개 이상의 While loop 서로 다른 실행 주기를 가지고 동시에 다양한 테스크를 처리.

- 단 실행 중에는 While loop 간의 데이터 이동이 없는 독립적인 일을 처리할 때 적합.

-멀티 루프 간의 데이터 공유에 대해서는 추후에 작성(동기화 제외).

 

 

마스터/슬레이브(Master/Slave) 디자인 패턴

- 알림자 함수 사용.

-슬레이브 루프가 마스터 루프에 동기화되어 실행.

-버퍼 구조가 아니기 때문에 데이터 손실 가능성 있음.

 

 

생산자/소비자 데이터(Producer/Consumer Data) 디자인 패턴

- 큐 함수 사용.

-큐 함수는 버터구조(FIFO:First In First Out)로 되어 있기 때문에 데이터 손실이 없음.

-구조의 특성상 소비자 루프의 동작은 생산자 루프에 의해 결정됨(타이밍 함수의 위치를 보라).

 

 

생산자/소비자 이벤트(Producer/Consumer Event) 디자인 패턴

-'생산자/소비자 데이터' 와는 생산자 루프 내 구조 차이(이벤트 구조냐, 케이스 구조냐).

-큐 함수 사용.

-프로젝트의 크기를 고려하여 '사용자 인터페이스 이벤트 핸들러 디자인 패턴(단일루프구조) 또는 생산자/소비자 이벤트 패턴 선택.

 

 

 

 

Reference

1. LabVIEW의 정석(기본편)_손혜영 저

2. LabVIEW 데이터 수집 및 분석_곽두영

반응형

'LabVIEW' 카테고리의 다른 글

USB8452 | I2C제어 및 간단한 profile 입력하기  (0) 2021.02.28
LINX | LabVIEW를 이용한 Arduino I2C 제어  (0) 2021.02.01
Analog Input(유한샘플)  (0) 2021.01.18
1차 LPF 구현 (basic)  (0) 2021.01.14
디자인 패턴(1)  (0) 2021.01.14