어플리케이션에서 LabVIEW 클래스 및 인터페이스 사용하기
- 업데이트 날짜:2025-08-27
- 3분 (읽기 시간)
LabVIEW 클래스 및 인터페이스는 사용자 정의된 데이터 타입입니다. LabVIEW 클래스 및 인터페이스 개발자가 이러한 데이터 타입을 생성하고 배포합니다. LabVIEW 클래스 또는 인터페이스의 사용자는 LabVIEW 클래스나 인터페이스를 생성하는 방법을 알아야 할 필요는 없지만, 어플리케이션에서 클래스나 인터페이스가 정의하는 데이터 타입을 사용하는 방법과 LabVIEW 클래스나 인터페이스를 사용하는 코드를 디버깅할 때 이용할 수 있는 정보, 그리고 새로운 버전의 LabVIEW 클래스나 인터페이스가 프로그래머가 작성한 어플리케이션에 미칠 수 있는 영향에 대해 이해해야 합니다.
클래스 또는 인터페이스의 인스턴스 생성하기
LabVIEW 클래스 또는 인터페이스는 프로젝트 내에 있을 필요가 없습니다. 팔레트에 LabVIEW 클래스 또는 인터페이스를 추가하여 쉽게 클래스나 인터페이스를 찾아서 블록다이어그램이나 프런트패널 윈도우에 끌어올 수 있습니다. 받거나 생성한 LabVIEW 클래스 또는 인터페이스의 인스턴스를 생성하려면, 클래스 라이브러리 파일 .lvclass를 사용하고자 하는 프런트패널 또는 블록다이어그램에 컨트롤이나 상수로 놓습니다. LabVIEW 사용자 정의 데이터 타입을 다른 LabVIEW 데이터 타입과 유사하게 사용할 수 있습니다.
클래스 탐색기 윈도우를 사용하여, 블록다이어그램에서 LabVIEW 클래스나 인터페이스의 멤버 VI를 놓을 수 있습니다.
LabVIEW 클래스 및 인터페이스 강제 변환하기
LabVIEW는 다음 규칙을 사용하여 클래스와 인터페이스를 가장 가까운 공통 상위 클래스 또는 인터페이스로 강제 변환합니다.
- 입력 클래스와 인터페이스가 서로 관련되어 있지 않은 경우, LabVIEW는 입력을 LabVIEW 객체로 강제 변환합니다.
- 입력 클래스와 인터페이스에 클래스나 인터페이스에 상관없이 하나의 공통 상위 항목만 있는 경우, LabVIEW는 입력을 공통 상위 항목으로 강제 변환합니다.
- 입력 클래스와 인터페이스에 여러 개의 공통 상위 항목이 있고 그 중 하나가 클래스인 경우, LabVIEW는 입력을 공통 상위 클래스로 강제 변환합니다. LabVIEW가 입력을 공통 상위 인터페이스로 강제 변환하게 하려면, [보다 일반적인 클래스로] 함수를 사용하여 입력 중 하나를 원하는 상위 타입으로 캐스트합니다.
- 입력 클래스와 인터페이스에 여러 개의 공통 상위 항목이 있고 그것이 모두 인터페이스인 경우, LabVIEW에서 VI는 깨집니다. LabVIEW가 입력을 공통 상위 인터페이스로 강제 변환하게 하려면, [보다 일반적인 클래스로] 함수를 사용하여 입력 중 하나를 원하는 상위 타입으로 캐스트합니다.
잠금 상태의 LabVIEW 클래스 또는 인터페이스에서 기본 도움말과 프로브 사용하기
LabVIEW 클래스 또는 인터페이스 개발자는 클래스나 인터페이스를 배포할 때 LabVIEW 클래스나 인터페이스를 잠금으로 설정할 수 있습니다. LabVIEW 클래스 또는 인터페이스 개발자가 LabVIEW 클래스나 인터페이스를 잠금으로 설정하면, 기본 도움말 윈도우는 오직 클래스나 인터페이스의 데이터 타입 및 개발자가 제공하는 클래스에 대한 설명만을 디스플레이합니다. LabVIEW는 또한 잠금 상태의 클래스나 인터페이스의 일반 프로브에서도 클래스나 인터페이스의 데이터 타입만을 디스플레이합니다. LabVIEW 클래스나 인터페이스의 멤버가 아닌 사용자 프로브를 생성할 수 있지만, 멤버가 아닌 사용자 프로브는 오직 클래스나 인터페이스의 퍼블릭 인터페이스만을 디스플레이할 수 있습니다. LabVIEW 클래스 또는 인터페이스 개발자는 또한 클래스나 인터페이스에 대해 사용자 기본 프로브를 설정하여 디버깅을 위한 특정 클래스 또는 인터페이스 정보를 제공할 수 있습니다. LabVIEW 클래스 또는 인터페이스 개발자와 같이 작업하여 LabVIEW 클래스나 인터페이스 작업을 하는 데에 필요한 적절한 수준의 문서 또는 프로브 정보를 제공할 수 있도록 합니다.
다이나믹 디스패치 VI
LabVIEW 클래스 또는 인터페이스의 일부 멤버 VI는 다이나믹 디스패치일 수 있습니다. 다이나믹 디스패치 메소드는 다형성 VI와 유사합니다. 다형성 VI는 사용자가 연결하는 데이터 타입에 따라 어떤 VI를 호출할지 결정하는 반면에, 다이나믹 디스패치 메소드는 런타임이 시작될 때까지 대기한 후 입력에 도착하는 데이터에 따라 클래스 계층구조에서 호출할 멤버 VI를 결정합니다. LabVIEW 클래스 또는 인터페이스 와이어가 자신의 데이터 타입 또는 모든 직하위 데이터 타입을 전달할 수 있기 때문에, LabVIEW는 런타임에 클래스 계층구조의 어느 멤버 VI를 실행할지 결정합니다. 블록다이어그램의 다이나믹 디스패치 멤버 VI를 더블 클릭하여 블록다이어그램 상에 있는 특정 VI를 볼 수 있습니다. 클래스 계층구조의 다른 다이나믹 디스패치 멤버 VI를 보려면, 클래스 계층구조 안에 있는 각각의 개별 VI를 봐야 합니다.
데이터 변경하기
LabVIEW 클래스 또는 인터페이스의 버전 번호를 추적하는 것은 LabVIEW 클래스나 인터페이스를 통해 어플리케이션을 개발하는 LabVIEW 클래스 사용자에게 유용합니다. 예를 들어, 클래스의 프라이빗 데이터 컨트롤에서 부호없는 32비트 정수를 사용하는 어플리케이션 상에 사용자가 LabVIEW 클래스를 갖는 경우가 있습니다. LabVIEW 클래스 개발자는 프라이빗 데이터 컨트롤의 숫자형 컨트롤을 배정도 부동수로 변경시키는 LabVIEW 클래스 버전을 사용자에게 보낼 수 있습니다. LabVIEW가 버전 변경사항을 추적하며 모든 LabVIEW 클래스에서 어떻게 데이터를 패턴화 및 패턴화 해제하는지 알고 있기 때문에, 사용자는 이전 버전의 LabVIEW 클래스를 새로운 버전으로 대체하고 어떠한 변경도 없이 프로그램을 실행할 수 있습니다.