본문 바로가기
Engineering

[LabVIEW] LabVIEW에서 ActiveX를 이용한 IP Camera 영상 출력

by 투썬 아빠 2009. 8. 24.




MFC에 이어 이번에는 LabVIEW에서 IP Camera의 영상을 출력 시켜보도록 하자.

바로 앞의 포스트를 참고하여 IP Camera제어를 위한 SDK를 다운로드 및 등록을 우선적으로 하자.
그리고 LabVIEW에서 ActiveX 라이브러리를 사용하는 법을 알아보도록 하자.

LabVIEW에서 ActiveX를 사용하는 법은 쉽다면 쉽고 어렵다면 어려운데..
깊게 들어가지 말고 IP Camera제어를 위한 라이브러리를 쓰면서 간략하게 알아보는 방향으로 하겠다.
자세한 내용은 http://zone.ni.com/devzone/cda/tut/p/id/2983를 참고 하시길~~~
(영문이니..... 잘 해석 하시기 바랍니다.)

LabVIEW를 이용한 ActiveX 제어의 순서는 아래 그림과 같다.

 1) 관련 ActiveX라이브러리를 Open
 2) Property Node와 Invoke Node를 이용하여 설정 및 함수 실행
 3) ActiveX를 Close

간단하지 않은가??

함수 팔레트를 보면 다양한 ActiveX 컨트롤들이 있다.

그럼 이제부터 LabVIEW에서 IP Camera의 영상을 출력시켜 보자.

1) 블록 다이어그램에서 우클릭을 하여
     연결 -> ActiveX -> Automation Open을 블록 다이어그램(이하 BD)에 붙인다.

 2) Automation Open 우클릭 -> ActiveX 클래스 선택 -> 탐색을 클릭
    하면 아래와 같은 창이 나타난다.

                                                    '타입'에서 Camera Control 1.0 Version 1.0 선택-> 확인 클릭

                                               위와 같이 'Automation Oepn'에 라이브러리가 연결 되었다면 성공~!

3) Property Node와 Invoke Node를 사용 한다
    Porperty Node는 환경 설정과 관련된 함수들이 존재하고
    Invoke Node는 동작과 관련된 함수들이 존재한다.
   
    각 노드의 '프로퍼티' '메소드'를 클릭하면 사용 가능한 함수들이 나온다.
    (단, Automation Open과 Wire가 연결되어 있어야만 한다!)


                  
영상을 출력 시기키 위하여서는 좌측 그림과 같이 Setting할 필요가 있다.

'모든 것을 쓰기로 변경'한 다음
환경에 맞게 UserName,Password, IP주소, Port 를 설정하고
VideoConnectionType은 '0'으로 한다.


<Property Node>

     StartReceiveVideo는 반환값이 있는 함수이므로 '읽기'상태로 둔다.


   <Invoke Node>

4) Close Reference를 이용하여 종료를 한다.

 5) 완성 BD

동작 순서는 Automation Open -> PropertyNode -> Invoke Node -> Close Reference이다.
환경에 맞게 Property Node의 값을 설정하고 Invoke Node에서 StartReceiveVideo를 실행하면 영상이 출력된다.
While루프에서는 StartReceiveVideo의 반환값이 0이 아니면 반복하는 조건을 설정한다.


출력 결과를 보자......



아무래도 원하는 것은 LabVIEW의 프론트패널에서 출력되는것이겠으나.....
출력을 시켰을때 모니터 왼쪽 구석에 영상이 출력되었다.(영상 크기는 디폴트로 640*480이다.)
영상 출력 위치 조정 및 영상 처리를 위해서는 아직 더 알아보아야 하는것이 사실이다.

댓글