User manual
Programmer’s Guide    Page 18 of 66 
3.2.1.  PCI & VXI Identification by Order Found 
If you don‟t know which and/or how many Acqiris instruments are present on the machine, use this code fragment:  
ViSession instrumentID[10]; 
long nbrInstruments; 
ViStatus status; 
ViString options = ""; 
status = Acqrs_getNbrInstruments(&nbrInstruments); 
// Initialize the instruments 
for (long i = 0; i < nbrInstruments; i++) 
{ 
  char resourceName[20]; 
  sprintf(resourceName, "PCI::INSTR%d", i); 
  status = Acqrs_InitWithOptions(resourceName, VI_FALSE, VI_FALSE, 
options, &(instrumentID[i])); 
} 
The resource name must be of the form “PCI::INSTR0”, “PCI::INSTR1”, etc. This is true in spite of the fact that all 
PCI,  cPCI,  and  VXI  instruments  will  be  found.  The  integer  part  of  the  resource  name  will  be  referred  to  as  the 
deviceIndex. The API contains a function, Acqrs_getDevTypeByIndex, to allow you to determine the family of an 
instrument before actually initializing it. 
If there are several instruments in the system, the order in which they are found is not obvious. It depends on the 
Windows  2000/XP/Vista/7  (32/64)  Configuration  Manager  implementation,  on  the  PCI  bus  topology  in  your 
computer, and possibly on the BIOS. 
3.2.2.  PCI Identification by Serial Number 
All Acqiris instruments are labeled with a unique serial number. For PCI digitizers you will find it on the front panel 
and for CompactPCI instruments it is on the right injector/ejector handle. This same serial number is coded into an 
on-board EEPROM that is read by the Device Driver upon initialization. You can therefore ask to initialize a specific 
instrument by specifying its serial number:  
ViSession instrumentID; 
Acqrs_InitWithOptions("PCI::SER10047", VI_FALSE, VI_FALSE, "", 
&instrumentID); 
Note that the serial number must be contiguous to the keyword SER; leading zeros are accepted. 
3.2.3.  PCI Identification by Bus/Slot Number 
While initialization by serial number is easy to implement, it has the drawback that anytime an instrument is replaced 
by another one (e.g. if a failure occurred), the program has to be modified. The Acqiris API offers the possibility of 
specifying the logical position of the device at initialization: 
ViSession instrumentID; 
Acqrs_InitWithOptions("PCI::BUS02::SLOT06", VI_FALSE, VI_FALSE, "", 
&instrumentID); 
Again, the bus and slot numbers must be contiguous to the keywords BUS and SLOT; leading zeros are accepted. 
Unfortunately, it is not obvious at all by simple inspection, which bus and slot number a given PCI device occupies. 
One way to find out is to use AcqirisLive and to observe the bus/slot numbers that can be found under the Help menu 
selection in Instrument Information. Another way is to use the auto-identification initialization method and then to 
interrogate each device with: 
ViSession instrumentID; 
char name[20]; 
long serialNbr, busNbr, slotNbr; 
Acqrs_getInstrumentData(instrumentID, name, &serialNbr, &busNbr, 
&slotNbr); 










