There seems to be a growing interest on the forum in terms of cross-platform, extensible instrument control that isn't tied to a specific vendor. I have been working for some time on a collection of Python scripts that make up a cross-platform instrument control solution called Python IVI.
http://github.com/alexforencich/python-iviThe idea is to create an abstraction layer that makes using various instruments straightforward, based on the IVI standard. Python IVI can then leverage Python VXI11, Python USBTMC, PySerial, and Linux GPIB to communicate with instruments. Python VXI11 is a pure Python VXI11 driver for LAN based instruments while Python USBTMC leverages PyUSB for instruments that support USBTMC. Everything except Linux GPIB support is cross-platform and has been tested in Linux, Windows, and Mac OS. Python IVI is also written so that it will work correctly in both Python 2 and Python 3.
Python IVI is desgined so that it is easy to extend its functionality either with additional instrument control protocols (say, serial to GPIB devices like the Prologix units) or additional instruments.
Currently, Python IVI supports a number of different instrument families - Agilent Infiniivision and Infiniium oscilloscopes, Agilent and Tektronix programmable power supplies, HP spectrum analyzers, Tektronix AWGs, and a number of other odds and ends. Things like waveform and screenshot readout are supported for most instruments.
I would love for Python IVI to support a wide range of instruments, especially Rigol oscilloscopes. Unfortunately, I cannot write drivers for instruments that I do not have access to, so I would like to call upon anyone who is interested in extensible instrument control to lend a hand.
If anyone here finds Python IVI useful and wishes to contribute, I would me more than happy to include your changes in Python IVI so that it can become an even more useful tool.