01-25-2006 02:12 AM
01-31-2006 09:22 AM
02-02-2006 08:43 AM
Robert,
It looks like the the GPIB interface is set to "Terminate Read On EOS" with the EOS byte set to 0A. If the terminate mode is changed to EOI (uncheck the terminate read on EOS box in properties for the GPIB card) or change the IVI driver to not select this mode it may help.
02-02-2006 08:54 AM
02-02-2006 09:06 AM
02-02-2006 11:39 PM - edited 02-02-2006 11:39 PM
To enable/disable termination character on read, call VISA viSetAttribute() function for the VI_ATTR_TERMCHAR_EN attribute. Setting it FALSE disables unexpected read termination even if a termination character byte (normally 0x0A) is encountered on read. This approcah is common for GPIB and Serial.
vs = viSetAttribute( vi, VI_ATTR_TERMCHAR_EN, VI_FALSE);
However, this function requires the ViSession parameter for the associated VISA session. Unfortunately IVI-C drivers (including both specific drivers and class drivers) do not export VISA Session value for the client application. Therefore I believe there is no way to call arbitrary VISA functions that require the VISA session handle from outside the IVI-C driver. The only way is customize the IVI-C driver source and rebuild it, if its source code is provided. The <prefix>_WriteInstrData() and <prefix>_ReadInstrData() are just thin wrappers for viWrite() and viRead() calls.
Mind that the ViSession value that each of IVI-C driver function takes as the 1st parameter is an IVI session handle and not a VISA session. Therefore you can't pass the IVI session to VISA functions such as viWrite() or viSetAttribute(). On the other hand, the ViSession value that each VXI Plug&Play driver function takes is exactly the VISA session that is used inside the instrument driver for VISA I/O operations, therefore you can call arbitrary VISA functions from ouside the driver.
このメッセージは 02-03-2006 02:40 PMに Makoto が編集しています。
02-02-2006 11:55 PM