1,10 → 1,12 |
#include <ansi_c.h> |
#include <utility.h> |
#include <gpib.h> |
#include "prologix.h" |
#include "K617.h" |
|
K617STATUS K617Stat; |
static int gdev,iret; |
static int K617_Interface,K617_Port,K617_Gdev; |
static int iret; |
|
void GpibError(char *msg) { |
|
48,26 → 50,41 |
printf ("\n"); |
|
/* Call ibonl to take the device and interface offline */ |
ibonl (gdev,0); |
ibonl (K617_Gdev,0); |
|
exit(1); |
} |
|
void _VI_FUNC K617_open (int interface, int primary_addr, int secondary_addr, |
int timeout) |
void _VI_FUNC K617_open (int interface, int port, int primary_addr, |
int secondary_addr, int timeout) |
{ |
char cmd[100]; |
/* |
gdev = OpenDev ("GPIB0", ""); |
K617_Gdev = OpenDev ("GPIB0", ""); |
if (ibsta & ERR) GpibError("OpenDev Error"); |
iret = ibpad (gdev, 0); |
iret = ibpad (K617_Gdev, 0); |
if (ibsta & ERR) GpibError("OpenDev Error"); |
iret = ibsad (gdev, NO_SAD); |
iret = ibtmo (gdev, T10s); |
iret = ibeot (gdev, 1); |
iret = ibeos (gdev, 0); |
iret = ibsad (K617_Gdev, NO_SAD); |
iret = ibtmo (K617_Gdev, T10s); |
iret = ibeot (K617_Gdev, 1); |
iret = ibeos (K617_Gdev, 0); |
*/ |
gdev = ibdev(interface,primary_addr,secondary_addr,timeout,1,0); |
if (ibsta & ERR) GpibError("OpenDev Error"); |
K617_Interface=interface; |
K617_Port=port; |
switch (K617_Interface){ |
case 1: |
PROLOGIX_Open (K617_Port); |
sprintf(cmd,"++addr %0d",primary_addr); |
PROLOGIX_Send (cmd); |
PROLOGIX_Send ("++auto 0"); |
PROLOGIX_Send ("++eoi 1"); |
PROLOGIX_Send ("++eot_enable 0"); |
PROLOGIX_Send ("++read_tmo_ms 1000"); |
break; |
default: |
K617_Gdev = ibdev(K617_Port,primary_addr,secondary_addr,timeout,1,0); |
if (ibsta & ERR) GpibError("OpenDev Error"); |
} |
Delay(GDELAY); |
return; |
} |
74,17 → 91,29 |
|
void _VI_FUNC K617_clear (void) |
{ |
iret = ibclr (gdev); /* Clear the device */ |
if (ibsta & ERR) GpibError("OpenDev Error"); |
Delay(GDELAY); |
switch (K617_Interface){ |
case 1: |
PROLOGIX_Send("++clr"); |
break; |
default: |
iret = ibclr (K617_Gdev); // Clear the device |
if (ibsta & ERR) GpibError("OpenDev Error"); |
} |
// Delay(GDELAY); |
Delay(2.); |
return; |
|
} |
|
void _VI_FUNC K617_send (char *cmd, int len) |
{ |
iret = ibwrt (gdev, cmd, len); |
if (ibsta & ERR) GpibError("OpenDev Error"); |
switch (K617_Interface){ |
case 1: |
PROLOGIX_Send(cmd); |
break; |
default: |
iret = ibwrt (K617_Gdev, cmd, len); |
if (ibsta & ERR) GpibError("OpenDev Error"); |
} |
Delay(GDELAY); |
return; |
} |
91,10 → 120,17 |
|
int _VI_FUNC K617_receive (char *response, int maxbyt) |
{ |
iret = ibrd (gdev, response, maxbyt); |
if (ibsta & ERR) GpibError("OpenDev Error"); |
response[ibcntl]=0; |
return ibcntl; |
switch (K617_Interface){ |
case 1: |
PROLOGIX_Send("++read eoi"); |
return PROLOGIX_Receive (response,maxbyt); |
break; |
default: |
iret = ibrd (K617_Gdev, response, maxbyt); |
if (ibsta & ERR) GpibError("OpenDev Error"); |
response[ibcntl]=0; |
return ibcntl; |
} |
} |
|
void _VI_FUNC K617_status (void) |
110,7 → 146,9 |
&K617Stat.vsource_operate,&K617Stat.read_mode, |
&K617Stat.data_prefix,&K617Stat.display, |
&K617Stat.data_store,&K617Stat.srq,&K617Stat.eoi,K617Stat.terminator); |
K617_send ("X", 1); |
// printf("617FRRCZNTOBGDQMMKYY\n"); |
// printf("%s\n",cres); |
// K617_send ("X", 1); |
return; |
} |
|
222,9 → 260,15 |
|
void _VI_FUNC K617_close (void) |
{ |
// iret = CloseDev (gdev); |
iret = ibonl(gdev, 0); /* Take the device offline */ |
if (ibsta & ERR) GpibError("OpenDev Error"); |
// iret = CloseDev (K617_Gdev); |
switch (K617_Interface){ |
case 1: |
PROLOGIX_Close(); |
break; |
default: |
iret = ibonl(K617_Gdev, 0);// Take the device offline |
if (ibsta & ERR) GpibError("OpenDev Error"); |
} |
return; |
} |
|
241,31 → 285,33 |
|
if (InitCVIRTE (hInstance, 0, 0) == 0) return -1; /* out of memory */ |
|
K617_open (0, 3, 0, 13); |
/* |
K617_open (1,5,3,0,13); |
K617_clear (); |
K617_current_mode (4); |
K617_zero_correct (1); |
K617_data_format (0); |
K617_trigger_mode (0); |
K617_trigger_mode (1); |
K617_vsource_set (-100.); |
K617_vsource_operate (1); |
*/ |
K617_status (); |
|
value=K617_get(cres, &i); |
K617_status(); |
|
value=K617_get(cres,&i); |
printf("%s, %lg, %d\n",cres,value,i); |
|
value=K617_vsource_get(); |
printf("%lg\n",value); |
value=K617_get(cres,&i); |
printf("%s, %lg, %d\n",cres,value,i); |
|
value=K617_get(cres, &i); |
value=K617_get(cres,&i); |
printf("%s, %lg, %d\n",cres,value,i); |
|
value=K617_get(cres,&i); |
printf("%s, %lg, %d\n",cres,value,i); |
value=K617_get(cres,&i); |
printf("%s, %lg, %d\n",cres,value,i); |
Delay(5); |
// K617_vsource_operate (0); |
K617_vsource_operate (0); |
|
K617_close (); |
K617_close(); |
|
return 0; |
} |