Hi,
The termination character is particulary useful for serial communication, since there isn't any other way to detect that the transmitter has finish sending a message. GPIB has a dedicated line to indicate the receiver that the message has ended.
Let's consider the case of not having a termination character for serial communication. Every time you call VISA read with serial you have two options to terminate the operation: giving the exact count of bytes you are going to read or waiting for the timeout.
If your device always send X number of bytes after a query, you can make your VISA reads count 5. You don't need the termination since you know that after 5 bytes the message is over.
This is not the behavior of most instruments. Most instrumen
ts will respond with different message lengths based on the query. In this case, the count should allow you to receive the longest message. If a shorter message is receive, the read will not return until the timeout expires. If your timeout is 10 seconds, you are making EVERY read from the instrument 10 seconds long. Not very efficient. you can set the timeout to a shorter time, but if it is too short you might timeout before getting the whole message.
The termination character allows VISA to know when the end of the message is. After the end is received there is no need to wait any more and VISA returns. This is the optimal case, since every read executes as long as it needs.
Hope this clears things up.
DiegoF
National Instruments.