I'm connecting to a Rigol DZ1000 Oscilloscope via USB and using the :DISP:DATA? ON,0,PNG command to grab a screenshot. Reading out the data in blocks of 65535 bytes until there is no more (see attached vi).
This normally works fine but yesterday I was getting a timeout error. I fired up IO Trace and got this:
> 783. viRead (USB0::0x1AB1::0x04CE::DS1ZA201305475::INSTR (0x00000001), "#9000045852‰PNG.......", 65536 (0x10000), 45864 (0xB328)) > Process ID: 0x000039C8 Thread ID: 0x00001760 > Start Time: 13:13:54.1169 Call Duration 00:00:10.4323 > Status: 0xBFFF0015 (VI_ERROR_TMO) You can see that 45864 bytes were received, which is exactly what was specified by the binary data header (45852 data bytes + 11 header bytes + 1 termination char)
I dumped the reply string into a binary file and set the scope to run so it show something else on the screen. Sure enough the error went away. I also dumped a good result into a file. Then I tried to figure out what the problem may have been but I didn't get anywhere. Any ideas? Sure looks like a bug in VISA read or perhaps an incorrectly escaped reply from the scope?
It's very easy to "convert" the reply into the screenshot - just remove the leading 15 bytes (4 bytes from WriteBinayFile and 11 bytes from the scope header). And yes, both data files display just fine as PNG. I don't think PNG does internal checksum so byte errors would be hard to spot.
Any ideas what could have caused that timeout?
Can you take a look at this?
The only work around I found is to dynamically open the connection with an external VI to make it fail so the second time it works.
If anyone has an instrument that communicate trough TCP-IP with VI, please try on your side with LabVIEW 2018 and visa 18.
I wanted to cross post metux's discovery here asap, and have a separate discussion.
Metux's original post:
The recent Linux driver package introduces a CRITICAL security vulnerability:
It adds additional yum/zypper repos, but explicitly disabling package signing and using unencrypted HTTP transport. That way, it's pretty trivial to completely takeover the affected systems, by injecting malicious packages.
DO NOT INSTALL THIS BROKEN SOFTWARE - IT IS DANGEROUS !
CERT and BSI are already notified.
By Nishar Federer
I need to make an application , which has to send a hexa decimal data from labview to the protocol via RS232.I have sent a single data block(1Byte) and i was able to receive the acknowledgement properly.
But if i send a 9 bytes of Data through VISA via RS232, I am not getting any output at all , But if I send the same data block through different application, I am able to receive data . Can anyone suggest me way to resolve the issue or Better way to do this??
I have attached my vI with this . I am struggling at this point for so long.