pyhard2: object-oriented device driver development kit written in Python

I developed a DDK mostly targeting the development of serial drivers. I believe it may be of interest to some people here.

The driver library is fairly stable now as it consists of less than 200 lines of Python code. The point here is not so much the amount of code but the simple design.

Secondly, drivers can be "installed" in a Qt4 GUI (that I call a Controller) on the basis of one Controller per serial port but the library happily handles several nodes per serial port. Qt4 is used extensively to thread the communication, monitor data history, periodically log recorded data to disk, run simple (time,setpoint) programs, etc. Everything driver-related is in the classes: class DriverItem(QtGui.QStandardItem) and class DriverModel(QtGui.QStandardItemModel) in the file pyhard2/driver/__init__.py

Finally, I also have a Dashboard that can open several Controllers in a tabbed interface. The dashboard can also be used to present an overview of whatever is running in the controllers and display data monitors on a single page.

I have builtin support for the SCPI protocol and DAQ hardware via ni-daqmx drivers on Windows (and comedi on Linux, although I could not test this one recently). GUIs are designed using Qt Designer. I also have a software PID that can be used with the drivers. Refactoring the PID library is on my TODO list, but it works now anyway.

I refactored everything this summer. The libraries are now, I believe, fairly simple to understand and do what I need. I would be happy if it can be useful to this community. I would also very very much welcome feedback.

Everything is open source (GPLv3), runs on Windows, Linux, and OS X.

documentation on sourceforge: http://pyhard2.sourceforge.net
download: pyhard2, control hardware from python download | SourceForge.net
code on github: GitHub - Synss/pyhard2: control hardware from python