REB Functional Tests  1.0
Testing suite for the WREB, GREB, and VST readout boards
WREBTest.py File Reference

Suite of tests for the WREB controller board. More...

Classes

class  WREBTest.JythonInterface
 Some hacky workarounds to clean up the limited communication with the Jython interface. More...
 
class  WREBTest.IdleCurrentConsumption
 Test for idle current consumption in the WREB board. More...
 
class  WREBTest.ChannelTest
 Tests number of communicable channels available to the board. More...
 
class  WREBTest.ASPICcommsTest
 Tests that the board can communicate with the ASPICS. More...
 
class  WREBTest.SequencerToggling
 Toggles the sequencer outputs for the PCK/SCK/RG rails systems, switching the polarity. More...
 
class  WREBTest.CSGate
 Tests the current source gate. More...
 
class  WREBTest.PCKRails
 Test the parallel clock rail performance. More...
 
class  WREBTest.SCKRails
 Tests the serial clock rail performance. More...
 
class  WREBTest.SCKRailsDiverging
 Test the serial clock rail performance with a diverging voltage pattern. More...
 
class  WREBTest.RGRails
 Tests the reset gate rail performance. More...
 
class  WREBTest.RGRailsDiverging
 Tests the reset gate rail performance with a diverging voltage pattern. More...
 
class  WREBTest.OGBias
 Tests the output gate performance. More...
 
class  WREBTest.ODBias
 Tests the output drain performance. More...
 
class  WREBTest.GDBias
 Tests the guard drain performance. More...
 
class  WREBTest.RDBias
 Tests the reset drain performance. More...
 
class  WREBTest.TemperatureLogging
 Requests temperature logs for WREB.Temp(1-6) and CCD since the test started from the board's database. More...
 
class  WREBTest.ParameterLogging
 Periodically records specified values over the course of the testing sequence. More...
 
class  WREBTest.ASPICNoise
 Measure noise distribution in ASPICs for the unclamped, clamped, and reset cases. More...
 
class  WREBTest.ASPICLogging
 Continuously measure noise distribution in ASPICs. More...
 
class  WREBTest.Summary
 Summary object containing the needed information for the cover page. More...
 
class  WREBTest.FunctionalTest
 Runs the functional testing suite. More...
 
class  WREBTest.GUI
 Dialog-based GUI for displaying test progress and navigating options. More...
 

Functions

def WREBTest.resetSettings ()
 Reset the board settings for use in between tests. More...
 
def WREBTest.exitScript ()
 Reset settings and exit. More...
 
def WREBTest.stepRange (start, end, step)
 Generate a range object that can take non-integer steps. More...
 
def WREBTest.voltsToDAC (volt, Rfb, Rin)
 Generate a DAC code to correspond to a desired voltage. More...
 
def WREBTest.voltsToShiftedDAC (volt, shvolt, Rfb, Rin)
 Generate a shifted DAC code to correspond to a desired voltage in a rail system. More...
 
def WREBTest.voltsToRailDAC (V, rf, ri)
 Given a voltage, return a pair of voltage, shift DAC values. More...
 
def WREBTest.setRGRailVoltage (lowV, highV, rf=49.9, ri=20.0)
 Set the voltage for the RG rail system. More...
 
def WREBTest.setSCKRailVoltage (lowV, highV, rf=49.9, ri=20.0)
 Set the voltage for the SCK rail system. More...
 
def WREBTest.convert (value, type_)
 Converts a value to the specified type. More...
 
def WREBTest.printv (string)
 Print if verbose is enabled. More...
 

Detailed Description

Suite of tests for the WREB controller board.

This program communicates directly with the Jython interpreter to manipulate the board, so it does not need to be loaded into the Jython exectuor.

External dependencies:

  • astropy
  • numpy
  • matplotlib
  • Unix Dialogs installation (for GUI, optional)

To run:

  • "python REBTest.py [options]" Initial crashing yielding a ValueError is likely due to a crRun or JythonConsole crashing or not being loaded.

Tests are structured as classes with four required methods:

  • init sets initial variables; minimum required variables are self.title and self.status.
  • runTest is the body of the tests, running the code to execute the tests and storing the results to state variables.
  • summarize writes summary information to the summary object passed to it; this is used in generating the cover page.
  • report writes the portion of the pdf report that the test is responsible for. Tests are executed from a list of test objects defined in FunctionalTest().

This program communicates directly with the Jython interpreter to manipulate the board, so it does not need to be loaded into the Jython exectuor.

External dependencies:

  • astropy
  • numpy
  • matplotlib
  • Unix Dialogs installation (for GUI, optional)

To run:

  • Ensure Jython console is running (./JythonConsole or the bootstrapper program)
  • Ensure rebRun.sh w is running
  • "python WREBTest.py [options]" Initial crashing yielding a ValueError is likely due to a crRun or JythonConsole crashing or not being loaded.

Tests are structured as classes with four required methods:

  • init sets initial variables; minimum required variables are self.title and self.status.
  • runTest is the body of the tests, running the code to execute the tests and storing the results to state variables.
  • summarize writes summary information to the summary object passed to it; this is used in generating the cover page.
  • report writes the portion of the pdf report that the test is responsible for. Tests are executed from a list of test objects defined in FunctionalTest().

Function Documentation

def WREBTest.convert (   value,
  type_ 
)

Converts a value to the specified type.

Parameters
valueValue to be converted
type_Type to convert to.
Returns
Converted value
def WREBTest.exitScript ( )

Reset settings and exit.

Usually catches ^C.

def WREBTest.printv (   string)

Print if verbose is enabled.

def WREBTest.resetSettings ( )

Reset the board settings for use in between tests.

def WREBTest.setRGRailVoltage (   lowV,
  highV,
  rf = 49.9,
  ri = 20.0 
)

Set the voltage for the RG rail system.

Parameters
lowVDesired lower rail voltage.
highVDesired upper rail voltage
rfOptional op-amp Rf, defaults to 49.9 Ohm.
riOptional op-amp Ri, defaults to 20.0 Ohm.
def WREBTest.setSCKRailVoltage (   lowV,
  highV,
  rf = 49.9,
  ri = 20.0 
)

Set the voltage for the SCK rail system.

Parameters
lowVDesired lower rail voltage.
highVDesired upper rail voltage
rfOptional op-amp Rf, defaults to 49.9 Ohm.
riOptional op-amp Ri, defaults to 20.0 Ohm.
def WREBTest.stepRange (   start,
  end,
  step 
)

Generate a range object that can take non-integer steps.

Parameters
startStarting value
endEnding value
stepStep size
def WREBTest.voltsToDAC (   volt,
  Rfb,
  Rin 
)

Generate a DAC code to correspond to a desired voltage.

Parameters
voltDesired voltage level
RfbOp-amp Rf
RinOp-amp Ri
def WREBTest.voltsToRailDAC (   V,
  rf,
  ri 
)

Given a voltage, return a pair of voltage, shift DAC values.

Parameters
VDesired output voltage
rfOp-amp Rf
riOp-amp Ri
Returns
(voltage, shift voltage)
def WREBTest.voltsToShiftedDAC (   volt,
  shvolt,
  Rfb,
  Rin 
)

Generate a shifted DAC code to correspond to a desired voltage in a rail system.

Parameters
voltDesired voltage level
shvoltShifted voltage level
RfbOp-amp Rf
RinOp-amp Ri