I'm a bit confused with respect to TerminationCharacterEnabled and TerminationCharacter (MessageBasedSession).
I guess the same holds for the C equivalents (VI_ATTR_TERMCHAR_EN and VI_ATTR_TERMCHAR).
Are these only used during VISA read operations ?
I have an older type of instrument (HP4142) which expects either CR/LF or LF as terminating character before it starts processing commands.
The support for EOI is not clearly explained in the manual and referred to as CR/LF^EOI

.
Some tests learn that indeed using EOI only is not enough.
As such sending "*IDN?" without trailing '\n' doesn't work for this instrument because it's waiting for remaining commands.
Sending "*IDN?\n" does work.
Because it works with TerminationCharacterEnabled = false, it means that the HP4142 uses the EOI line to indicate that it has finished sending data.
Again this is poorly explained in the 4142 manual as CR/LF^EOI

.
Then I tried sending "*IDN?" without trailing '\n' once more after setting TerminationCharacterEnabled = true and TerminationCharacter = 0x0A.
I hoped that VISA would then add a trailing '\n' to my command.
It didn't work. As such I tend to believe that indeed TerminationCharacterEnabled and TerminationCharacter are only used during read operations.
Anyone out there to confirm the above or to disagree ?
This brings me to a 2nd question.
What is the equivalent of CR/LF on a Windows machine ?
Is it 0x0A or 0x0D0A ?
If it is the latter, how can it be specified as TerminationCharacter, which expects one byte ?
My understanding is that 0x0A corresponds to CR/LF on a Windows machine, while 0x0D0A is required on a Linux/Unix machine. Correct ?
Thanks.
Frans.