05-09-2022 02:26 PM
Hello,
I am facing a bit of an odd problem. I got an intrument with a driver library and this is working so far. The problem is that this is only meant for GPIB and people want to control it over its serial port. So I modified the initialize VI to do the proper setup in case a com port is selected instead of GPIB and now I can successfully control the device over serial with the VIs from the library.
What doesn't work however is read from the instrument as it turns out that over serial it will send some additional lines at the start of every message that do not get send over GPIB and thus confuse the VIs from the library. Of course it is not difficult to discard those lines after reading, but I would have to do it for every single read operation in this instrument driver library and this is hugel.
So I thought if I could somehow change all calls to VISA read to my own VI which includes the discarding, everything would be fine. But I did not find a way to do this. Does anyone know how this is done or how to do it in a better way? Of course I could go through virtual com ports and a seperate program but I want to avoid additional software installation at the user PC.
Thanks in advance to everyone, I hope you can help.
Solved! Go to Solution.
05-09-2022 05:38 PM
The best way is to create a copy of the whole instrument library and create a VI scripting tool that will go into every VI and add your parsing to discard those extra lines for every VISA read operation.
05-09-2022 10:33 PM - edited 05-09-2022 10:35 PM
Well I would just make a VI that has VISA Read and the code to discard the "extra" inside of it.
Then use the Search and Replace function to replace every "VISA Read" in your project with that VI.
That will get your project working.
Then maybe take the time to fix the library so it can handle either GPIB or Serial and submit it to the Instrument Driver Network for others to use.
05-12-2022 12:55 PM
Thanks for your help. I tried exactly that, had the read and discard VI ready and then just accidently found how to get rid of the whole problem. It turned out that those extra messages were part of an undocumented feature that I accidently switched on and now off again.
Unfortunately more issues appeared. I fixed some of them and got it to read a waveform in a basic way. At that point, it became clear that the process is so much slower than GPIB that it is just not practical. The intrument does only allow slow baudrates. So people agreed to buying a GPIB adapter.
Anyway thanks again for the fast help.