User manual

Programmer’s Guide Page 14 of 64
The calls to Acqrs_InitWithOptions are needed to obtain the instrumentID’s. The physical digitizers were already
initialized when AcqrsD1_multiInstrumentAutoDefine was called.
The digitizers within a single MultiInstrument are numbered from 0 to (NbrModulesInInstrument 1). In Acqiris
CC10x compactPCI crates, the module 0 is always closest to the controller slot, i.e. module numbers increase with
increasing front panel slot numbers. This statement is also applicable to CC121 crate configurations with both an
Acqiris acquisition module in one of the last 7 slots and with the PC running under Windows 2000/XP/Vista/7
(32/64). Users of other systems or crates may need to provide AqGeo.map files to give the driver needed
information. The GeoMapper application described in the User Manuals can create this file. For details on channel
and trigger source numbering, please refer to section 3.16, AS BUS OPERATION.
The master module is automatically chosen, according to these rules:
AS bus
If modules of different memory lengths are combined, only modules with the shortest memory length can be
master modules
The master module is chosen as near as possible to the center module, in order to minimize propagation
delays.
AS bus 2 U1065A 6U digitizers
The master module is chosen as near as possible to the center module, in order to minimize propagation
delays. There can be at most 5 modules in the MultiInstrument.
AS bus 2 U1062A 3U and U1071A PCI digitizers
The master module will be the rightmost of up to 3 modules.
The function Acqrs_getInstrumentData will return the information about the master module. If you want control
over which module is the master, and in which order they should appear, use the manual definition, described in the
next section.
3.2.8. Manual Definition of MultiInstruments
The function AcqrsD1_multiInstrDefine permits a 'manual' definition of how to combine multiple digitizers with
the AS bus. It cannot be used for AS bus 2 instruments.
Use a code fragment like the following one for the manual combination of digitizers:
ViSession instrumentID[10], idList[6];
long nbrInstruments;
ViStatus status;
ViString options = "cal=0"; // since calibration will be performed explicitly
later
status = Acqrs_getNbrInstruments(&nbrInstruments);
// Initialize the digitizers
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]));
}
// Now combine the first 3 digitizers (in inverse order)
idList[0] = instrumentID[2];
idList[1] = instrumentID[1];
idList[2] = instrumentID[0];
ViSession multiInstrID;
ViSession masterIndex = instrumentID[1];
long nbrInList = 3;
status = AcqrsD1_multiInstrDefine(idList, nbrInList, masterIndex,
&multiInstrID);
status = Acqrs_calibrate(multiInstrID);