I'm writing a new IVI driver for an instrument, using LabWindows/CVI. There are two "sessions" generated and used in the driver. Both are of type ViSession.
The vi session is generated by xxx_IviInit(...) in the xxx_InitWithOptions routine and returned to the user.
The io session is generated by viOpen (...) in the xxx_IviInit routine, and stored in the IVI_ATTR_IO_SESSION attribute.
What is the difference between the two, and when should I use which? If I understand it correctly, vi refers to a specific instance of the driver itself (the user may, for instance, the same driver twice, for two different instruments of the same type). io refers to the VISA communications session and a specific comm port, and is only used when actually communicating with the instrument. Correct? Does the io session have any attributes associated with it? e.g.
xxx_SetAttributeViBoolean (io, ChannelNamePtr, attribute name, VI_FALSE);
Paul