public class REBDevice
extends org.lsst.ccs.monitor.Device
implements org.lsst.ccs.ConfigurationListener, org.lsst.ccs.framework.ClearAlertHandler, org.lsst.ccs.config.ConfigurationBulkChangeHandler
| Modifier and Type | Class and Description |
|---|---|
static class |
REBDevice.AdcData |
| Modifier and Type | Field and Description |
|---|---|
static int |
CHAN_HTR_POWER |
static int |
CHAN_HTR_VOLTS |
static int |
CHAN_RTD_INT_TEMP |
static int |
CHAN_RTD_INT_VOLT |
static int |
CHAN_TOTAL_POWER |
protected int |
configCcdMask |
protected int |
hdwTypeI |
protected int |
hwVersion |
static int |
NUM_HTR_CHANS |
static int |
NUM_RTD_CHANS |
static String |
RAFTS |
static String |
RAFTS_LIMITS |
static String |
RAFTS_POWER |
protected int |
realCcdMask |
static int |
TYPE_ASP_TEMP |
static int |
TYPE_BD_POWER |
static int |
TYPE_BD_TEMP |
static int |
TYPE_BIAS_VOLT |
static int |
TYPE_CCD_CURR |
static int |
TYPE_CR_VOLT |
static int |
TYPE_HEATER |
static int |
TYPE_HV_SWITCH |
static int |
TYPE_RTD |
| Constructor and Description |
|---|
REBDevice() |
| Modifier and Type | Method and Description |
|---|---|
void |
build()
Early initialization (build phase).
|
org.lsst.ccs.framework.ClearAlertHandler.ClearAlertCode |
canClearAlert(org.lsst.ccs.bus.data.Alert alert,
org.lsst.ccs.bus.states.AlertState alertState)
Callback to clear an
Alert instance. |
int |
checkAspics()
Checks loaded ASPIC configuration data.
|
protected int[] |
checkChannel(String name,
int hwChan,
String type,
String subtype)
Checks a channel's parameters for validity.
|
String |
checkDacsCalibration()
Get voltage differences between setpoint and readback for Bias and Clock
rails to assist with calibration of setpoint to raw ADC conversion
|
void |
clearUpdateCCDsPowerState() |
protected void |
close()
Closes the connection.
|
void |
configurationChanged(org.lsst.ccs.bus.data.ConfigurationInfo newConfigurationInfo,
org.lsst.ccs.bus.data.ConfigurationInfo oldConfigurationInfo,
org.lsst.ccs.ConfigurationListener.ConfigurationOperation configOperation)
Triggers activities when configuration is changed
1st use is to update CCDsPowerState if relevant parameters changed
|
static String |
getAdcName(int adc)
Gets the name of of a slow ADC.
|
int |
getCcdMask()
Gets the mask of CCDs being used.
|
String |
getCCDsPowerState()
measure power state of ccds, user version
turns off CCDs on error
|
org.lsst.ccs.utilities.ccd.CCDType |
getCcdType()
Gets the CCD type.
|
protected String |
getGroupForChannel(org.lsst.ccs.monitor.Channel ch) |
int |
getHdwType()
Gets the hardware type.
|
org.lsst.ccs.utilities.ccd.CCDType |
getHwCcdType()
Gets the hardware CCD type.
|
int |
getHwVersion()
Gets the hardware version.
|
int |
getId()
Gets the REB ID.
|
String |
getIfcName()
Gets the network interface name.
|
ImageData |
getImage(int offset,
int count)
Gets a portion of the current image.
|
ImageData |
getImage(int ccd,
int offset,
int count)
Gets a portion of the current image.
|
org.lsst.ccs.drivers.reb.ImageMetadata |
getImageMetadata()
Gets the DAQ metadata for the current image.
|
ImageProc |
getImageProc()
Gets the associated image processor.
|
double |
getMaxDelta()
Get config param maxDelta
|
double |
getMaxStep()
Get config param maxStep
|
double |
getMinTol()
Get config param minTol
|
String |
getMonitorTasks() |
int |
getRaftNumber()
Gets the raft number.
|
REB |
getREBConfig()
Gets the REB configuration data.
|
org.lsst.ccs.utilities.ccd.Reb |
getRebGeometry() |
int |
getRebNumber()
Gets the REB number.
|
StatusData |
getRebStatus()
Gets the REB status block.
|
int |
getRebType()
Gets the REB type.
|
RegisterData |
getRegister(int address,
int count)
Gets the contents of REB registers.
|
SequencerProc |
getSequencer()
Gets the associated sequencer.
|
long |
getSerialNumber()
Gets the serial number.
|
long |
getTime()
Gets the time base as Unix time.
|
long |
getTime(String rSet) |
int |
getUnders()
Gets the bit mask of DAC channels under threshold
|
boolean |
getUpdateCCDsPowerState() |
protected void |
initChannel(String name,
int id,
int hwChan,
int type,
int subtype)
Initializes a channel (in this case only checks HW channel number).
|
protected void |
initDevice()
Performs basic initialization.
|
protected void |
initialize()
Performs full initialization.
|
boolean |
isBackBiasOn()
Gets the back bias on state.
|
boolean |
isSerialNumValid()
Gets whether the serial number is valid.
|
int |
loadAspics(boolean all)
Loads configuration data to the ASPICs.
|
int |
loadDeltaDacs(boolean all)
Loads configured bias and clcock DAC values.
|
void |
pauseMonitorTasks(String... taskNames) |
void |
postStart() |
void |
powerCCDs(boolean on)
Performs CCD power on/off sequences.
|
void |
powerCCDsOff()
Performs CCD power off sequence.
|
void |
powerCCDsOn()
Performs CCD power on sequence.
|
void |
readAllAdcs(List<REBDevice.AdcData> dataList)
Reads all the ADCs and adds them to data list.
|
protected double |
readChannel(int hwChan,
int type)
Reads a channel.
|
protected void |
readChannelGroup()
Reads grouped channels.
|
protected void |
readChannelGroup(String group) |
double |
readChannelNow(int hwChan,
int type)
Reads a channel immediately.
|
double[] |
readPowerAdcs()
Reads the board power ADCs.
|
double[] |
readPowerAdcs(List<REBDevice.AdcData> dataList)
Reads the board power ADCs and adds them to data list.
|
int |
readSeqIdleState()
Reads the sequencer idle state lines.
|
double[] |
readSlowAdcs(List<REBDevice.AdcData> dataList)
Reads the clock and bias voltage slow ADCs and adds them to data list.
|
int |
resetAspics()
Resets the ASPICs.
|
void |
resetFrontEnd()
Resets the front end.
|
void |
resumeMonitorTasks(String... taskNames) |
void |
setAllAspic(String parmName,
int val,
boolean commit) |
void |
setAllAspicGain(int gain)
Transversal setting of all Gains for the Aspics of this reb.
|
void |
setAllAspicRc(int rc)
Transversal setting of all Rcs for the Aspics of this reb.
|
void |
setAllAspicTM(boolean tm)
Transversal setting of all TM for the Aspics of this reb.
|
void |
setBackBias(boolean value)
Turns back bias on or off.
|
void |
setCCDClocksLow()
Sets Sequencer Clock lines to low state
Corrupts the sequencer file -- needs strategy revision
Needed in [WG]REB power management but incomplete
|
void |
setCcdType(org.lsst.ccs.utilities.ccd.CCDType ccdType)
Sets the CCD type.
|
void |
setClientFactory(org.lsst.ccs.drivers.reb.ClientFactory factory)
Sets the client factory.
|
void |
setFitsConditions(String filter,
double temperature,
double wavelength)
Sets the FITS file test conditions.
|
void |
setHeater(int heater,
double volts)
Sets a heater voltage.
|
void |
setHeaterPower(int heater,
double power)
Sets heater power.
|
protected void |
setOnline(boolean online) |
void |
setREBConfig(REB reb)
Sets the REB configuration data.
|
void |
setRebGeometry(org.lsst.ccs.utilities.ccd.Reb reb) |
void |
setRegister(int address,
int[] values)
Sets the contents of REB registers.
|
void |
setScienceCCD(boolean useScience)
Sets whether a science CCD is being used on a WREB.
|
void |
setTime()
Sets the time base to the current system time.
|
void |
setUpdateCCDsPowerState() |
void |
simulateDisconnection()
Simulate a disconnect
|
void |
testCCDShorts()
Performs CCD shorts test.
|
void |
triggerMonitorTasks(String... taskNames) |
String |
updateDacsCalibration()
Get voltage differences between setpoint and readback for Bias and Clock
rails to assist with calibration of setpoint to raw ADC conversion
|
void |
validateBulkChange(Map<String,Object> params)
Validates configuration parameter change.
|
void |
writeSeqIdleState(int value)
Writes the sequencer idle state lines.
|
addLine, checkHardware, checkHwLine, checkLine, checkOnline, checkTimeout, configure, disable, dropChannel, enable, getDeviceMonitorUpdateTasks, getFullName, getMonitorUpdateTasksForChannels, getName, getOutputLines, getPath, init, initChannel, initSensors, isHwLineSet, isLineSet, isOnline, isTimeout, readChannel, setHwLine, setLine, setLineWarm, setOutputLines, testOnlineclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitpublic static final String RAFTS
public static final String RAFTS_LIMITS
public static final String RAFTS_POWER
public static final int TYPE_BD_TEMP
public static final int TYPE_BD_POWER
public static final int TYPE_RTD
public static final int TYPE_ASP_TEMP
public static final int TYPE_BIAS_VOLT
public static final int TYPE_CCD_CURR
public static final int TYPE_CR_VOLT
public static final int TYPE_HEATER
public static final int TYPE_HV_SWITCH
public static final int CHAN_TOTAL_POWER
public static final int CHAN_HTR_VOLTS
public static final int CHAN_HTR_POWER
public static final int NUM_HTR_CHANS
public static final int CHAN_RTD_INT_TEMP
public static final int CHAN_RTD_INT_VOLT
public static final int NUM_RTD_CHANS
protected int hdwTypeI
protected int configCcdMask
protected volatile int realCcdMask
protected volatile int hwVersion
public void build()
build in interface org.lsst.ccs.framework.HasLifecyclepublic void setRebGeometry(org.lsst.ccs.utilities.ccd.Reb reb)
public org.lsst.ccs.utilities.ccd.Reb getRebGeometry()
public void postStart()
postStart in interface org.lsst.ccs.framework.HasLifecyclepublic void setUpdateCCDsPowerState()
@Command(type=ACTION,
description="Clear the updateCCDsPowerState flag")
public void clearUpdateCCDsPowerState()
@Command(type=QUERY,
description="Get the value of the updateCCDsPowerState flag")
public boolean getUpdateCCDsPowerState()
public void validateBulkChange(Map<String,Object> params)
validateBulkChange in interface org.lsst.ccs.config.ConfigurationBulkChangeHandlerparams - The map of configuration parameter valuespublic void configurationChanged(org.lsst.ccs.bus.data.ConfigurationInfo newConfigurationInfo,
org.lsst.ccs.bus.data.ConfigurationInfo oldConfigurationInfo,
org.lsst.ccs.ConfigurationListener.ConfigurationOperation configOperation)
configurationChanged in interface org.lsst.ccs.ConfigurationListenerparams - The map of configuration parameter values@Command(type=QUERY,
description="Get the REB ID")
public int getId()
@Command(type=QUERY,
description="Get the network interface name")
public String getIfcName()
@Command(type=QUERY,
description="Get the mask of CCDs being used")
public int getCcdMask()
public void setCcdType(org.lsst.ccs.utilities.ccd.CCDType ccdType)
ccdType - The CCD type@Command(type=QUERY,
description="Get the type of CCDs being used")
public org.lsst.ccs.utilities.ccd.CCDType getCcdType()
@Command(type=QUERY,
description="Get the hardware type of CCDs being used")
public org.lsst.ccs.utilities.ccd.CCDType getHwCcdType()
@Command(type=ACTION,
description="Set whether a WREB is using a science CCD")
public void setScienceCCD(@Argument(description="Whether a science CCD")
boolean useScience)
useScience - Whether it's a science CCDpublic void setClientFactory(org.lsst.ccs.drivers.reb.ClientFactory factory)
factory - The client factory@Command(type=QUERY,
description="Gets the REB type")
public int getRebType()
@Command(type=QUERY,
description="Gets the REB number")
public int getRebNumber()
@Command(type=QUERY,
description="Gets the raft number")
public int getRaftNumber()
@Command(type=QUERY,
description="Gets the hardware type")
public int getHdwType()
@Command(type=QUERY,
description="Get the hardware version")
public int getHwVersion()
@Command(type=QUERY,
description="Get the serial number")
public long getSerialNumber()
public boolean isSerialNumValid()
public org.lsst.ccs.framework.ClearAlertHandler.ClearAlertCode canClearAlert(org.lsst.ccs.bus.data.Alert alert,
org.lsst.ccs.bus.states.AlertState alertState)
Alert instance.
Return a ClearAlertCode for the provided Alert.canClearAlert in interface org.lsst.ccs.framework.ClearAlertHandleralert - The Alert instance to clear.alertState - The AlertState for the provided Alert.protected void initDevice()
initDevice in class org.lsst.ccs.monitor.Deviceprotected void initialize()
initialize in class org.lsst.ccs.monitor.Deviceprotected void close()
close in class org.lsst.ccs.monitor.Deviceprotected int[] checkChannel(String name, int hwChan, String type, String subtype) throws Exception
checkChannel in class org.lsst.ccs.monitor.Devicename - The channel namehwChan - The hardware channeltype - The channel type stringsubtype - The channel subtype stringException - If parameters are invalidprotected void initChannel(String name, int id, int hwChan, int type, int subtype)
initChannel in class org.lsst.ccs.monitor.Devicename - The channel nameid - The channel IDhwChan - The hardware channeltype - The channel typesubtype - The channel subtypeprotected String getGroupForChannel(org.lsst.ccs.monitor.Channel ch)
getGroupForChannel in class org.lsst.ccs.monitor.Deviceprotected void readChannelGroup(String group)
readChannelGroup in class org.lsst.ccs.monitor.Deviceprotected void readChannelGroup()
readChannelGroup in class org.lsst.ccs.monitor.Deviceprotected double readChannel(int hwChan,
int type)
readChannel in class org.lsst.ccs.monitor.DevicehwChan - The hardware channel numbertype - The encoded channel typepublic double readChannelNow(int hwChan,
int type)
readChannelNow in class org.lsst.ccs.monitor.DevicehwChan - The hardware channel numbertype - The encoded channel typepublic double[] readPowerAdcs()
throws RaftException
RaftExceptionpublic double[] readPowerAdcs(List<REBDevice.AdcData> dataList) throws RaftException
dataList - List to receive the read values, etcRaftExceptionpublic double[] readSlowAdcs(List<REBDevice.AdcData> dataList) throws RaftException
dataList - List to receive the read values, etcRaftExceptionpublic void readAllAdcs(List<REBDevice.AdcData> dataList) throws RaftException
dataList - List to receive the read values, etcRaftException@Command(type=ACTION,
description="get underMask protection register value")
public int getUnders()
throws RaftException
RaftExceptionpublic static String getAdcName(int adc)
adc - The ADC IDpublic int readSeqIdleState()
throws RaftException
RaftExceptionpublic void writeSeqIdleState(int value)
throws RaftException
value - The lines valueRaftException@Command(type=ACTION,
description="Sets the REB configuration data")
public void setREBConfig(@Argument(name="reb",description="REB configuration data")
REB reb)
throws RaftException
reb - The REB configuration (object)RaftException@Command(type=QUERY,
description="Gets the REB configuration data")
public REB getREBConfig()
@Command(type=CONFIGURATION,
description="Set TM for all ASPICs on this REB")
public void setAllAspicTM(boolean tm)
tm - true for TM, false for normal@Command(type=CONFIGURATION,
description="Set gain for all ASPICs on this REB")
public void setAllAspicGain(int gain)
gain - the new gain value@Command(type=CONFIGURATION,
description="Set RC for all ASPICs on this REB")
public void setAllAspicRc(int rc)
rc - the new rc valuepublic void setAllAspic(String parmName, int val, boolean commit)
@Command(type=ACTION,
description="Perform CCD power on/off sequence",
level=3)
public void powerCCDs(@Argument(description="Whether to power on")
boolean on)
throws RaftException
on - Whether to power on (true) or off (false)RaftException@Command(type=ACTION,
description="get CCD Power State",
level=3)
public String getCCDsPowerState()
throws RaftException
RaftException@Command(type=ACTION,
description="Perform CCD power on sequence",
level=3)
public void powerCCDsOn()
throws RaftException
RaftException@Command(type=ACTION,
description="Perform CCD power off sequence",
level=3)
public void powerCCDsOff()
throws RaftException
RaftException@Command(type=ACTION,
description="Set CCD Clock lines to low state",
level=3)
public void setCCDClocksLow()
throws RaftException
RaftException@Command(type=ACTION,
description="Report Bias, Clock lines set/read deltas and DAC calibration",
level=3)
public String checkDacsCalibration()
throws RaftException
RaftException@Command(type=ACTION,
description="Report and update Bias, Clock lines set/read deltas and DAC calibration",
level=3)
public String updateDacsCalibration()
throws RaftException
RaftException@Command(type=ACTION,
description="Perform CCD shorts test",
level=3)
public void testCCDShorts()
throws RaftException
RaftException@Command(type=ACTION,
description="Applies changed Bias and Clock DAC configuration values on Powered CCDs",
level=3)
public int loadDeltaDacs(@Argument(description="reload all (true) or changes only (false)")
boolean all)
throws RaftException
all - If true, all data are loaded; otherwise only changesRaftException - This is the user command, checks to verify CCDs are ON/DELTA and
only changes allowed by configuration system can be used
Updates the CCDsPowerState on success (eg. DELTA -> ON)@Command(type=ACTION,
description="Load configuration data to the ASPICs")
public int loadAspics(boolean all)
throws Exception
all - If true, all data are loaded; otherwise only changesException@Command(type=ACTION,
description="Reset the ASPICs")
public int resetAspics()
throws Exception
Exception@Command(type=ACTION,
description="Check loaded ASPIC configuration")
public int checkAspics()
throws Exception
Exception@Command(type=QUERY,
description="Get the back bias on state")
public boolean isBackBiasOn()
throws RaftException
RaftException@Command(type=ACTION,
description="Turn back bias on or off")
public void setBackBias(@Argument(description="The on state")
boolean value)
throws RaftException
value - The back bias on state to set (true or false)RaftException@Command(type=ACTION,
description="Set heater voltage")
public void setHeater(@Argument(description="Heater number")
int heater,
@Argument(description="The voltage")
double volts)
throws RaftException
heater - The heater number: 0 or 1volts - The voltage to setRaftException@Command(type=ACTION,
description="Set heater power")
public void setHeaterPower(@Argument(description="Heater number")
int heater,
@Argument(description="The power value")
double power)
throws RaftException
heater - The heater number: 0 or 1power - The power value to setRaftException@Command(type=ACTION,
description="Sets the time base to the current system time")
public void setTime()
throws RaftException
RaftException@Command(type=QUERY,
description="Gets the time base as Unix time")
public long getTime()
throws RaftException
RaftException@Command(type=QUERY,
description="Gets a trigger time as Unix time")
public long getTime(@Argument(name="regset",description="Register set name")
String rSet)
throws RaftException
RaftException@Command(type=ACTION,
description="Sets the FITS file test conditions")
public void setFitsConditions(@Argument(description="Filter name")
String filter,
@Argument(description="The temperature")
double temperature,
@Argument(description="The wavelength")
double wavelength)
filter - The filter nametemperature - The temperature set pointwavelength - The monochromator wavelength@Command(type=QUERY,
description="Get the DAQ metadata for the current image")
public org.lsst.ccs.drivers.reb.ImageMetadata getImageMetadata()
throws RaftException
RaftException@Command(type=QUERY,
description="Gets a portion of the current image")
public ImageData getImage(@Argument(description="Offset to the pixel data")
int offset,
@Argument(description="Number of pixels")
int count)
throws RaftException
offset - The offset (in pixels) to the first pixel data to obtain.count - The number of data pixels to obtain. If zero, all
the data, starting at offset, is obtained.RaftException@Command(type=QUERY,
description="Gets a portion of the current image")
public ImageData getImage(@Argument(description="CCD number")
int ccd,
@Argument(description="Offset to the pixel data")
int offset,
@Argument(description="Number of pixels")
int count)
throws RaftException
ccd - The CCD numberoffset - The offset (in pixels) to the first pixel data to obtain.count - The number of data pixels to obtain. If zero, all
the data, starting at offset, is obtained.RaftException@Command(type=ACTION,
description="Resets the front end")
public void resetFrontEnd()
throws RaftException
RaftException@Command(type=QUERY,
description="Gets the contents of REB registers")
public RegisterData getRegister(@Argument(description="Address of the first register")
int address,
@Argument(description="Number of registers to read")
int count)
throws RaftException
address - The address of the first register to readcount - The number of registers to readRaftException@Command(type=ACTION,
description="Sets the contents of REB registers")
public void setRegister(@Argument(description="Address of the first register")
int address,
@Argument(description="Values to write")
int[] values)
throws RaftException
address - The address of the first register to writevalues - The array of values to write to consecutive registersRaftException@Command(type=QUERY,
description="Gets the REB status block")
public StatusData getRebStatus()
throws RaftException
RaftExceptionpublic ImageProc getImageProc()
public SequencerProc getSequencer()
public double getMaxDelta()
public double getMaxStep()
public double getMinTol()
@Command(simulation=true) public void simulateDisconnection()
protected void setOnline(boolean online)
setOnline in class org.lsst.ccs.monitor.Device@Command(type=QUERY,
description="Show list of monitor-update task names")
public String getMonitorTasks()
@Command(type=QUERY,
description="Pause \"all\" or selected monitoring tasks")
public void pauseMonitorTasks(@Argument(description="tasks...")
String... taskNames)
@Command(type=QUERY,
description="Resume \"all\" or selected monitoring tasks")
public void resumeMonitorTasks(@Argument(description="tasks...")
String... taskNames)
@Command(type=QUERY,
description="Trigger \"all\" or selected monitoring tasks")
public void triggerMonitorTasks(@Argument(description="tasks...")
String... taskNames)
Copyright © 2020 LSST. All rights reserved.