저는 Basic .NET 프로젝트에 대해서는 상당히 새로운 것이지만 현재 GPIB, USB 등과 같은 다양한 미디어에서 SCPI를 사용하여 통신하는 T & M 기기와 함께 사용할 테스트 시스템을 만들고자 시도 중입니다. Keysight IO 라이브러리 설치되었으며 VISA.NET 도움말 문서를 읽었습니다.어떤 IVI 참조를 사용해야합니까?
내 프로그램이 VISA 벤더 중립적 인 (가능한 한) 것이므로 Ivi.Visa
인터페이스를 통해서만 구현을 사용하기로 결정했습니다. 나는 다음과 같은 사이비 코드와 같은 악기 무언가와의 통신을 코딩의 생각 : 난 그냥 내가 이전에 내가 다른 문서에서 본 그 COM의 예를 생각하면서 주로 나이가 사용 언급 것을 그러나 언급
//Access implementation only via IVI interfaces to keep things vendor neutral
using Ivi.Visa;
// Get a session from the manager
var Session = (IGpibSession)GlobalResourceManager.Open(Alias, AccessMode, Timeout);
// Use the formatted IO interface of the session
var io = Session.FormattedIO;
// Some communication operations
// UserCommand is some faux type object
io.PrintfAndFlush("%s", UserCommand.ToString);
if (UserCommand.Query)
io.Scanf("%s", out UserCommand.Result);
// Doesn't seem to be any Close method on resource manager, session or interface?
Session.DiscardEvents(EventType.AllEnabled);
Session.Dispose();
, COM의 예입니다 여전히 참조됩니다 (예 : Sending SCPI/GPIB commands over USB from C#).
Visual Studio Reference Manager에서 더 자세히 살펴보면 VISA COM 유형 라이브러리뿐 아니라 악기 별 IVI 어셈블리 (예 : IVI Scope Assembly) 및 유사한 COM 유형 라이브러리 (예 : IviScope 3.0 Type Library).
나는 이것들이 무엇을 위해 무엇을 사용하고 사용하지 않을 것인지에 대해 다소 당황 스럽다!
모두 무엇입니까? 내말은, 그들 사이의 차이점은 무엇입니까? 왜 다른 것을 사용합니까? (차이점이나 일반적인 유스 케이스를 어딘가에서 간결하게 설명하는 출처가 있을지도 모른다.)
왜 아래 표와 가까운 표가 있습니까? – Toby