//install SICL error handler ionerror(I_ERROR_EXIT);
//open a (SICL) interface session to the E8491A
//open a (SICL) device session to the E1410 e8491 = iopen("vxi");
e1410 = iopen("vxi,24");
//read the VXI resource manager information in order to determine
//the E8491A shared memory starting address
ivxirminfo(e8491, 0, &info); start_addr = info.memstart;
//convert address from pages to an address start_addr = (start_addr*256);
//map E8491A memory space for transfer of readings from
//E8491A shared memory to the computer
map = imapx(e8491, I_MAP_SHARED, 0, 1);
//set a 5s timeout period to allow functions to complete itimeout(e8491, 5000);
itimeout(e1410, 5000);
//configure the multimeter for DCV measurements iprintf(e1410, "CONF:VOLT:DC 30.0\n");
//set a 10 us aperture time iprintf(e1410, "VOLT:APER
//set 8000 readings
iprintf(e1410, "SAMP:COUN 8000\n");
//store the readings in HP E8491A shared memory
//specify the E8491A shared memory base address iprintf(e1410, "MEM:VME:ADDR %d\n", start_addr);
//specify the amount of memory required
//(8000 readings * 8 bytes/reading)
iprintf(e1410, "MEM:VME:SIZE 64000\n");
//enable the reading to be stored iprintf(e1410, "MEM:VME:STAT 1\n");
//initiate the multimeter to take the readings iprintf(e1410, "INIT\n");
//pause 30s to allow readings to complete and to transfer
//to shared memory
Sleep (30000);
Chapter 3 | VXI Programming Using the IEEE 1394 Serial Bus 55 |