Thanks for your answer.
I will have a look at Pawel's code. I doubt it is easy to understand (asynchronous communications and multithreaded applications are usually not the easiest ones!)
Hello,
Actually some time ago I was thinking too about writing an implementation for Prologix boards, based on the SerialDevice implementation. However, as I understand these boards cannot reliably transfer binary data (even if the manual says the opposite) since the EOI signal is always translated to a character, whith a risk of a premature abort. Though, if you understand better the explanations about EOI handling in the Prologix manual then let me know. However if you only have text responses from your instrument then it can work (but I was reluctant to make an incomplete implementation).
I don't have experience with Prologix board and I don't own any but I think you can first try to use the SerialDevice class without any modifications in the code. Then of course, from the class' point of view, all gpib addresses are bound to the same device therefore there is no command-response interleaving. Then also the gpib serial poll won't be used but if you don't have slow devices on the bus you won't notice much difference.
You will just need to integrate the Prologix gpib commands in the command string.
3. When you select the INTERFACE Com Port, the default configuration is COM1:9600,N,8,1,CRLF
Except the com port which must be set to the Prologix virtual COM Port, are all other parameters significant and correct?
Furthermore, how do I specify the GPIB address? there is no input field for it???
This class is for serial ports, it only needs the COM port number and its configuration. You will find the meaning of these parameters in the class' documentation on the CodeProject page.
9600 is for baudrate, the baudrate must match the one used by Prologix but I don't know what is the default settings for it.
N,8,1 should be correct.
Prologix uses only one line terminator character, either CR or LF, so I would replace CRLF by LF to avoid double line terminations.
Prologix boards don't use any specific gpib driver, all gpib commands are integrated in the command string sent via the serial connection, to have the board recognize the gpib commands you have to add a prefix "++", For example, to send the command
"*IDN?" to the gpib address 5 and get the response the command would be : "++addr 5\n*IDN?\n++read".
Note that the "auto" mode should be disabled.
But I can't test it.
Otherwise the SerialDevice class can be easily adapted to include the ++ commands automatically, I can help you with it. If it works well I might add it in some next release.
(...) I doubt it is easy to understand (asynchronous communications and multithreaded applications are usually not the easiest ones!)
The asynchronous/multithreaded aspects are handled in the main code (IO Device) but you won't see much of it in the implementation code, so that writing implementations is simple. Look at the section "writing implementations" in the article.
Have fun!
Pawel