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

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

Classes

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

Functions

def GREBTest.resetSettings ()
 Reset the board settings for use in between tests. More...
 
def GREBTest.exitScript ()
 Reset settings and exit. More...
 
def GREBTest.readRails (railType, count=0, uBound=20, lBound=-20)
 Reads the upper and lower voltages for a rail type (RG, SClk, PClk) and rejects if nonsensible. More...
 
def GREBTest.voltsToRailDAC (V, rf, ri)
 Given a voltage, return a pair of voltage, shift DAC values. More...
 
def GREBTest.setRGRailVoltage (lowV, highV, rf=25.0, ri=10.0)
 Set the voltage for the RG rail system. More...
 
def GREBTest.setSCKRailVoltage (lowV, highV, rf=25.0, ri=10.0)
 Set the voltage for the SCK rail system. More...
 
def GREBTest.setPCKRailVoltage (lowV, highV, rf=25.0, ri=10.0)
 Set the voltage for the SCK rail system. More...
 
def GREBTest.convert (value, type_)
 Converts a value to the specified type. More...
 
def GREBTest.printv (string)
 Print if verbose is enabled. More...
 

Detailed Description

Suite of tests for the GREB 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

To run:

  • Ensure Jython console is running (./JythonConsole or the bootstrapper program)
  • Ensure rebRun.sh g is running
  • "python GREBTest.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 GREBTest.convert (   value,
  type_ 
)

Converts a value to the specified type.

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

Reset settings and exit.

Usually catches ^C.

def GREBTest.printv (   string)

Print if verbose is enabled.

def GREBTest.readRails (   railType,
  count = 0,
  uBound = 20,
  lBound = -20 
)

Reads the upper and lower voltages for a rail type (RG, SClk, PClk) and rejects if nonsensible.

Parameters
railType"RG", "SCK", or "PCK" - specifies the type of rail to read
uBoundUpper bound on sensible voltage
lBoundLower bound on sensible voltage
def GREBTest.resetSettings ( )

Reset the board settings for use in between tests.

def GREBTest.setPCKRailVoltage (   lowV,
  highV,
  rf = 25.0,
  ri = 10.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 GREBTest.setRGRailVoltage (   lowV,
  highV,
  rf = 25.0,
  ri = 10.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 GREBTest.setSCKRailVoltage (   lowV,
  highV,
  rf = 25.0,
  ri = 10.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 GREBTest.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)