Caveats
This following are caveats to consider when programming registers using the NI-IMAQdx software.
Endianness—Data that spans multiple bytes, such as a quadlet, may be written left-to-right or right-to-left. The method with which data is written is called endianness. Two types of endianness exist: big endian and little endian.
Byte Array—Many cameras allow register-level access to more than 32 bits of data per communication request. In most cases, you can safely write and read a large, contiguous block of data to and from the connected camera. Some cameras fail when trying to access large payloads. If the camera does not successfully transfer an array of bytes, attempt to transfer the smaller packets of data one at a time.
The ethernet and IEEE 1394 bus transports data using the big endian method. However, Windows and LabVIEW RT host machines accept little endian data. To correct for this discrepancy, NI-IMAQdx byte-swaps every quadlet that is read or written with low-level register primitives.
Timing—Many cameras are responsive to successive register accesses. In most cases, you can safely read and write registers as quickly as possible. Some cameras lock up under stressed conditions. The camera driver inserts an artificial delay between register accesses. You can change this artificial delay in the registry under the following registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\niimaqdxk\Parameters\AsyncTransferDelay.
The key specifies the millisecond value to delay before each transaction. After changing the value, reboot the host computer to enable the changes.
Note Changing this delay affects the entire driver, not just register-level access. |
Invalid Memory Location—The NI-IMAQdx software allows access to register locations that do not exist. If an error occurs while accessing the register, check the validity of the register location.