Here's the log from Linux. I tried doing it with ivi - sure enough, same thing as with usbtmc.
Code:
import ivi
pps = ivi.rigol.rigolDP832("USB::6833::3601::DP8C162951547::INSTR")
pps.utility.reset()
print pps.identity.instrument_serial_number
pps.outputs[1].voltage_level = 12.0
pps.outputs[1].enabled = True
print pps.outputs[1].measure('voltage')
print pps.outputs[1].measure('current')
After running this script several times (in this case, 3 times, but historically anywhere between 1 and 10 times), the following error is produced, and the Rigol must be restarted to re-establish communication. This occurs even if only write commands are sent.
Traceback (most recent call last):
File "iviplatypus.py", line 3, in <module>
pps = ivi.rigol.rigolDP832("USB::6833::3601::DP8C162951547::INSTR")
File "/usr/local/lib/python2.7/dist-packages/python_ivi-0.14.4-py2.7.egg/ivi/rigol/rigolDP832.py", line 35, in __init__
super(rigolDP832, self).__init__(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/python_ivi-0.14.4-py2.7.egg/ivi/rigol/rigolDP800.py", line 35, in __init__
super(rigolDP800, self).__init__(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/python_ivi-0.14.4-py2.7.egg/ivi/rigol/rigolBaseDCPwr.py", line 43, in __init__
super(rigolBaseDCPwr, self).__init__(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/python_ivi-0.14.4-py2.7.egg/ivi/scpi/dcpwr.py", line 48, in __init__
super(Base, self).__init__(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/python_ivi-0.14.4-py2.7.egg/ivi/extra/common.py", line 33, in __init__
super(SerialNumber, self).__init__(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/python_ivi-0.14.4-py2.7.egg/ivi/scpi/common.py", line 104, in __init__
super(SelfTest, self).__init__(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/python_ivi-0.14.4-py2.7.egg/ivi/dcpwr.py", line 56, in __init__
super(Base, self).__init__(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/python_ivi-0.14.4-py2.7.egg/ivi/ivi.py", line 1691, in __init__
self.initialize(resource, id_query, reset, **kw)
File "/usr/local/lib/python2.7/dist-packages/python_ivi-0.14.4-py2.7.egg/ivi/scpi/dcpwr.py", line 82, in _initialize
super(Base, self)._initialize(resource, id_query, reset, **keywargs)
File "/usr/local/lib/python2.7/dist-packages/python_ivi-0.14.4-py2.7.egg/ivi/ivi.py", line 1777, in _initialize
self._interface = usbtmc.Instrument(resource)
File "/usr/local/lib/python2.7/dist-packages/python_usbtmc-0.5-py2.7.egg/usbtmc/usbtmc.py", line 237, in __init__
self.device.set_interface_altsetting()
File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 832, in set_interface_altsetting
self._ctx.managed_set_interface(self, interface, alternate_setting)
File "/usr/local/lib/python2.7/dist-packages/usb/core.py", line 179, in managed_set_interface
self.backend.set_interface_altsetting(self.handle, i.bInterfaceNumber, alt)
File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 743, in set_interface_altsetting
altsetting))
File "/usr/local/lib/python2.7/dist-packages/usb/backend/libusb1.py", line 552, in _check
raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno None] Other error
Exception usb.core.USBError: USBError(19, u'No such device (it may have been disconnected)') in <bound method Device.__del__ of <DEVICE ID 1ab1:0e11 on Bus 001 Address 006>> ignored
Before, I had also done a system lsusb call just before the pps = ... line. The Rigol appears in the usb listing up till that line itself - then it disappears after the error. It seems unlikely to me that the issues in Windows and Linux are related (due to failing at different lines etc.), but I thought I might as well put everything down.
...