Cómo utilizar VS2010 para llamar a visa para el control del programa
1. Primero instale la biblioteca de controladores proporcionada por NI en la computadora y luego busque los archivos de biblioteca y encabezados correspondientes en la computadora
Directorio de archivos: C:\Program Files ( x86) \IVI Foundation\VISA\WinNT
?Los archivos lib están en: lib\msc\visa32.lib y ivi.lib
?Los archivos de encabezado están en: include
2. Agregar la biblioteca al proyecto
El blogger copió directamente el archivo de la biblioteca y el archivo de encabezado correspondiente al directorio del proyecto y luego agregó una referencia a la biblioteca lib en el proyecto. Se hace referencia a la operación de la biblioteca de Visa en vs2010 de la siguiente manera:
1 Menú?Proyecto—gt; Propiedades de configuración—gt; , como: visa32.lib;
p>
? O use el código #pragma comment(lib, "visa32.lib") en el archivo fuente cpp. En este momento, se realizará la recompilación. muestra un error: fatal
error LNK1104: no se puede abrir el archivo "my_API.lib",? La razón debería ser que el compilador no sabe dónde encontrar nuestra biblioteca, resolvámoslo a continuación
?
2 Luego agregue la ruta del archivo de la biblioteca al proyecto, agregue una ruta de biblioteca adicional:
?"Project-gt; Properties-gt; Configuration properties-gt; Connector-gt; General-gt; Directorio de biblioteca adicional" Haga clic en la flecha hacia abajo a la derecha y agregue aquí La ruta donde se encuentra nuestra biblioteca.
F:\my_program\meiyong\PPPP_Decode_ETIM; o ../ ../PPPP_Decode_ETIM, ?
Y después de probar, el archivo del proyecto .vcxproj El directorio es el directorio actual. Es mejor configurarlo en el directorio actual. Esto está bien.
3. Utilice la biblioteca de visa en el proyecto
En el siguiente código, en VS2010, consulte la identificación del instrumento llamando a la biblioteca de visa y enviando *IDN?#include?"visa/include/visa.h "
#include?"visa/include/ivi.h"
#pragma?comment(lib, "visa32.lib")
#pragma? comentario(lib, "ivi.lib")
/*----- -------------------------- ------------------------ ----------------------*/
/*?Declaración de definición de macro?*/
/*-- -------------------------- ------------------------ -------------------------- */
#define?MAX_SCPI_LENGTH?255?//?Comando SCPI máximo? p>
#define?DEFAULT_TIMEOUT?5000//?Tiempo de espera: 5000 ms
int ?main(void)
{
ViStatus?nReturnStatus?= ?0;?//?Guardar el valor devuelto
ViSession?rmSession?=?0 , pnInstrHandle;
ViUInt32?retCnt
?=?0;
ViByte?wrtBuf[MAX_SCPI_LENGTH];?//?Búfer de escritura
ViByte?rdBuf[MAX_SCPI_LENGTH];?//?Búfer de lectura
int?Return_Count;
nReturnStatus?=?viOpenDefaultRM?(amp;rmSession);
nReturnStatus?=?viOpen?(rmSession,?"TCPIP0::172.141. 114.6: :5001::SOCKET",?VI_NULL,?VI_NULL,?amp;pnInstrHandle);
/*-?Configure?VISA?Formatted?I/O?-------- -- ---------------------*/
nReturnStatus?=?viSetAttribute?(pnInstrHandle, ?VI_ATTR_TMO_VALUE , ?DEFAULT_TIMEOUT); //Establecer tiempo de espera
nReturnStatus?=?viSetAttribute?(pnInstrHandle, ?VI_ATTR_SUPPRESS_END_EN, ?VI_FALSE); //No enviar terminador
nReturnStatus ?= ?viSetAttribute?(pnInstrHandle, ?VI_ATTR_SEND_END_EN, ?VI_FALSE); //No recibe el terminador
nReturnStatus?=?viQueryf?(pnInstrHandle, ?"*IDN?\n", ?"s ", ?rdBuf);
viClose?(pnInstrHandle);
viClose?(rmSession);
return?0;
}