psi46/pxar — pull request #209 by cfangmeier (2014-08-20 18:51:03+00:00)
Title: Refactoring of IVCurve Test

This pull request includes major refactoring of PixTestIV and supplementary code.

* The RS232 implementation has been almost completely rewritten in a more c++ style, object-oriented fashion.
* Removed largely redundant write and read functions needed for echoing(Iseg) and non-echoing(Keithley) supplies. New implementation simply has a function `serial.setRemoveEcho(bool)` that instructs the code whether to expect echoing or not.
* The previous implementation for the Keithley2410 would set the voltage to 100 during startup for unknown reasons. It is theorized that when a sweep is then started at a lower voltage, the capacitive load would discharge, resulting in negative currents at low voltages. This has been removed.
* The current compliance is now settable via the GUI
* The Get/Set current compliance functions are now properly implemented for the Keithley2410
* The Iseg implementation has been refactored to use the updated RS232 interface as well, but since I do not have one of these devices, I cannot test it.
* Sweeps done using the Keithley2410 now use the built-in sweep functionality of the Keithley. Non-built-in sweeps still supported for other supplies.
* Voltage, time, and current setting from the GUI are now interpreted as doubles, rather than integers. This means sweeps with steps of less than 1 volt are now possible.
* The C++ standard was previously unspecified(It was probably using c++98 or c++03). It is now specified to use c++11. This pull request contains code depending on C++11 features, specifically the `to_string(x)` helper function.

This resolves issue #183.