I just stumpled uppon the fact that the test field of the SMU-driver class handles over the entered “Value in V or A” field content as string. This causes an error (“>” not supported between instances of ‘str’ and ‘int’) in the current drivers of the E3631A and E3632A as they are applying value dependend checks prior to applying the voltages to make sure the requested voltages fit into the maximum capabilities of the chosen channels.
It is not a problem to adapt the drivers by just doing an on-the-fly conversion of self.value in the respective if-cases as it should do nothing to the values handed over by the sweep value table despite those being already in float format. But is this the intended behaviour or shoud the program take care that the test field values are handed over as float?
it is good practice to convert the self.value variable in the “apply” phase of a driver to the type that you can process. This is because values could be handed over not only from the SMU module (Sweep editor / Value in V or A field) but also from other modules like ReadValues, CustomFunction, Calc and it could always be a string.
It means that we could indeed handover the value in the field “Value in V or A” as float to make the handling more safe but at the same it is still better to do type conversion on your own in the driver. I will add a backlog item. Because it is not urgent, we will process next time we revise the SMU module.
Thanks a lot for reporting the issue. I will also add a note to the driver development guide in the Wiki.