
Block Transfers using HP VXIplug&play Drivers
The following extended SICL function is unique to the HP E8491A and is used for block transfers over the bus:
iblockmovex
Additionally, the extended SICL functions shown below must be used when porting SICL programs to the IEEE 1394 bus from other I/O interfaces:
imapx iunmapx
ipeekx8, ipeekx16, ipeekx32 ipokex8, ipokex16, ipokex32
These functions are covered in detail in the SICL documentation.
The following examples demonstrate how to set up and perform block transfers using HP VXIplug&play and HP VISA functions.
This program performs a block transfer of 2,000 readings using the HP E1563A digitizer and its VXIplug&play driver.
//1563VPNP.CPP - This program transfers a block of 2,000 readings from the
//HP E1563 digitizer to the computer using the VXIplug&play driver’s
//hpe1563_fetchAll_Q function. 2,000 readings is the maximum number of
//readings that can be transferred using the function.
#include "hpe1563.h"// include the driver header file #include <stdio.h>
#include <stdlib.h> #include <windows.h>
//project files: 1563vpnp.cpp, hpe1563.lib
//Specify the addressing path.
#define E1563 "VXI0::64::INSTR" // VXI addressing
// prototypes
void check(ViSession vi, ViStatus error);
void main(void)
{
ViSession vi; ViStatus errStatus; ViInt16 rdgs[2000];
ViInt16 *dataPtr;// pointer to cast readings to
int i;
long dataArrayLen=2000;// return 2,000 readings using // hpe1563_fetchAll_Q
ViInt32 numRdgs;
ViChar err_message[256];
dataPtr = rdgs;// set pointer to rdgs array
Chapter 3 | VXI Programming Using the IEEE 1394 Serial Bus 37 |