안녕하세요. 구스입니다. 이 글에서는 NI 드라이버에서 제공하는 C API를 통해서 Wrapper Class를 만들어보는 방법에 대해서 알아보도록 하겠습니다. NI 제품군 드라이버는 매번 업데이트가 될 때마다, C API가 추가적으로 업데이트 되어 지원이 됩니다. 이러한 C API를 .NET 환경에서 사용하기 위해서는 Wrapper Class가 필요하게 되지요. Wrapper Class는 .NET의 Invoke 함수(P/Invoke)를 이용하여 Unmanaged 코드를 .NET 어플리케이션에서 사용할 수 있게 도와주는 역할을 합니다. 아래의 글은 P/Invoke 함수를 통해서 Wrapper Class를 어떻게 생성하고 실질적으로 코드에서 어떻게 사용되는지 여부를 보여줍니다. 본 예제는 NI SCOPE 드..
이 글에서는 NI 제품군(DAQmx, VISA, 488.2, RFmx, FGEN, DMM, HSDIO, DCPower, Scope, Switch, NI-IMAQ와 IMAQdx)를 사용할 때 .NET 개발 환경에서 어플리케이션 개발의 가능성에 대해서 설명을 드리고자 합니다. 1. Measurement Studio에 대해서 National Instruments(이하 NI)는 데이터 수집, PXI 장비, 시리얼, USB, GPIB등을 사용하는 Third Party 장비에 대한 .NET 드라이버 API를 지원하고 있습니다. .NET 개발자들을 위해서 NI는 NI Measurement Studio를 통해서 Native .NET API를 제공하고 있습니다. NI Measurement Studio는 .NET 개발 툴..
cRIO-9082에 처음으로 Windows Embedded Standard 7을 설치하고 LabVIEW 2013 SP1, FPGA Module, Xilinx 14.4를 설치한 뒤, FPGA 코드를 컴파일 하고자 하면 아래와 같은 에러가 발생합니다. 물론 다른 PC에서도 동일한 증상입니다. 본 증상은 LabVIEW 2013 혹은 LabVIEW 2013 SP1에서 발생합니다. 따라서 뒤에서 알려드리는 패치의 경우 자신이 설치된 버전에 맞는 패치를 다운로드 받아서 설치해야 합니다. 본 에러가 발생하는 이유는 FPGA Xilinx Compile Tool 14.4는 .NET Framework 4.5 이상 버전일 때 동작이 됩니다. 하지만 PC에 4.5 이상의 버전이 설치가 되어 있지 않다면 FPGA 컴파일 시 요..
LabVIEW는 기본적으로 LabVIEW의 버전에 맞게 내부적으로 사용할 수 있는 .NET Framework의 버전이 다릅니다. LabVIEW에서 사용할 수 있는 .NET Framework의 버전은 .NET Common Language Runtime(CLR)의 버전에 따라 결정이 됩니다. 크게 CLR은 2.0과 4.0 버전으로 구분할 수 있는데 LabVIEW는 버전에 따라 기본적으로 사용하는 CLR의 버전이 다릅니다. CLR과 LabVIEW와의 호환성은 아래와 같습니다. CLR과 .NET Framework의 버전을 많이 헷갈려하시는데요. CLR과 .NET Framework 버전 사이의 호환성은 아래와 같습니다. 아래의 표를 보면 알 수 있듯이 .NET Framework 4.0 이후 버전 CLR 4.0이고..
오늘은 스택과 힙메모리의 차이에 대해서 알아보도록 하겠습니다. C#에서도 당연히 스택기반의 메모리와 힙 기반의 메모리를 제공합니다. C#에서 이 메모리들의 구조를 확인하기 위해서는 먼저 값 형식(Value Type)과 참조 형식(Reference Type)에 대해서 알고 있어야합니다. 값 형식과 참조 형식에 대한 정의는 아래와 같습니다. 값 형식 : 값을 변수에 넣는 데이터 형식참조 형식 : 변수에 대한 위치(메모리 위치)를 담는 데이터 형식 간단하게 값 형식과 참조 형식에 대해서 알아보았습니다. 그럼 변수를 값에 넣을 때 메모리 구조에서 어떻게 처리되는지를 알아 보겠습니다. 먼저 값 형식을 통해서 변수에 값을 넣게 되면 스택 메모리에 변수의 값이 저장됩니다. 그럼 스택 구조를 먼저 알아보도록 하겠습니다..