public class TS8Subsystem extends Object implements org.lsst.ccs.framework.HasLifecycle, org.lsst.ccs.monitor.Monitor.AlarmHandler
| Modifier and Type | Field and Description |
|---|---|
protected String |
fileNamePattern |
protected String |
outputDirectory |
| Constructor and Description |
|---|
TS8Subsystem(org.lsst.ccs.utilities.ccd.Geometry geometry,
org.lsst.ccs.drivers.reb.ClientFactory clientFactory)
Main constructor for the TS8Subsystem, normally invoked from the
corresponding groovy file.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addBinaryTable(String pddatfile,
String fitsfile,
String extnam,
String c1name,
String c2name,
double tstart) |
void |
build() |
String |
checkCurrents(int rebnum) |
String |
checkCurrents(int rebnum,
boolean checkCCDI) |
String |
checkCurrentsAndTemperatures() |
String |
checkCurrentsAndTemperatures(int rebnum) |
String |
checkCurrentsAndTemperatures(int rebnum,
boolean checkCCDI) |
boolean |
checkREBState(int rebnum)
check the power state of a REB
|
String |
checkTemperatures(int rebnum) |
double |
chooseTestVolt(double proposedVoltage,
double full_target)
Choose the test voltage to use based on the target voltage
|
protected void |
clearNonStickyHeaderKeywordValues() |
String |
clearREBCfg(int rebnum)
Clear REB config
|
List<String> |
exposeAcquireAndSave()
Start an acquisition and save the resulting images for the given
parameters.
|
List<String> |
exposeAcquireAndSave(long exposureTimeInMillis)
Start an acquisition and save the resulting images for the given
parameters.
|
List<String> |
exposeAcquireAndSave(long exposureTimeInMillis,
boolean openShutter)
Start an acquisition and save the resulting images for the given
parameters.
|
List<String> |
exposeAcquireAndSave(long exposureTimeInMillis,
boolean openShutter,
boolean actuateXED)
Start an acquisition and save the resulting images for the given
parameters.
|
List<String> |
exposeAcquireAndSave(long exposureTimeInMillis,
boolean openShutter,
boolean actuateXED,
String filePattern)
Start an acquisition and save the resulting images for the given
parameters.
|
String |
exposeAcquireAndSaveVerbose(long exposureTimeInMillis,
boolean openShutter,
boolean actuateXED,
String filePattern)
Start an acquisition and save the resulting images for the given
parameters.
|
double |
getFluxStats(String fitsfile) |
org.lsst.ccs.subsystem.rafts.data.RaftState |
getFullState()
Gets the full monitoring state.
|
List<Integer> |
loadSequencerAndReDimension(String seq,
int prerows,
int readrows,
int postrows,
int precols,
int readcols,
int postcols)
loadSequence with modified geometry
|
void |
postInit() |
void |
postStart() |
String |
powerOff()
Safely power off
|
String |
powerOff(int rebnum)
Safely power off
|
String |
powerOffNow(int rebnum)
power OFF sensors of a REB immediately
|
String |
powerOn()
Safely power on the Raft
|
String |
powerOn(int rebnum)
Safely power on the Raft
|
String |
printGeometry(int depth) |
String |
printHeaderSpecifications() |
boolean |
processAlarm(int event,
int parm,
String cause,
String alarmName) |
void |
raiseAlert(String alertmsg,
org.lsst.ccs.bus.states.AlertState severity) |
int |
readRegister(String rebId,
int address)
Read a register address on a Reb.
|
String |
resetREBCfg(org.lsst.ccs.subsystem.rafts.REBDevice rebDevice)
Clear REB config
|
void |
setCCDHeader(String ccdId,
String headerName,
Object headerValue,
boolean sticky)
Set a key for the Primary header of a given CCD identified by its id.
|
void |
setCCDLocation(int serial,
int parallel,
String ccdName)
Sets the name of the CCD at the given location.
|
void |
setCcdType(String ccdType) |
void |
setDefaultActuateXED(boolean actuate)
Set the exposure default Actuated XED.
|
void |
setDefaultExposureTime(int millis)
Set the default exposure time in milliseconds.
|
void |
setDefaultOpenShutter(boolean open)
Set the default open shutter flag for an exposure.
|
void |
setHeader(String headerName,
Object headerValue,
boolean sticky)
Set a key for the Primary header of all CCDs.
|
void |
setImageType(String itype) |
void |
setLsstSerialNumber(String ccdId,
String serialNumber) |
void |
setManufacturerSerialNumber(String ccdId,
String serialNumber) |
void |
setMeasuredCCDBSS(String ccdId,
double hvbss) |
void |
setMeasuredCCDTemperature(String ccdId,
double ccdtemp) |
void |
setMonoWavelength(double wl) |
void |
setRaftName(String raftName)
Set the name of the raft.
|
void |
setRebName(int parallel,
String rebName)
Set the name of the reb at the given parallel position.
|
void |
setRunNumber(String runNumber)
Set the RunNumber.
|
void |
setSeqInfo(Integer seqNum) |
void |
setSequencerExposureTime(int millis)
Set the default exposure time in milliseconds.
|
void |
setTestStand(String tsname) |
void |
setTestType(String ttype) |
String |
showAllREBCfg()
Get the configuration for all REB devices
|
void |
showPhotoDiodeAnalysis(String pddatfile) |
String |
showREBCfg(int rebnum) |
void |
Sleep(double secs)
Sleep - what a waste
**************************************************************************
|
void |
writeRegister(String rebId,
int address,
int value)
Write a register address on a Reb.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitinit, postBuild, postShutdown, shutdown, startprotected final String outputDirectory
protected final String fileNamePattern
public TS8Subsystem(org.lsst.ccs.utilities.ccd.Geometry geometry,
org.lsst.ccs.drivers.reb.ClientFactory clientFactory)
geometry - The initial geometry. This is used for ???clientFactory - The ClientFactoryused to create the interfaces to
the DAQ, or null to use the default ClientFactory. See
TS8ClientFactorySimulation for an
alternative factory which can be used for simulations.public void postInit()
postInit in interface org.lsst.ccs.framework.HasLifecyclepublic void build()
build in interface org.lsst.ccs.framework.HasLifecyclepublic void postStart()
postStart in interface org.lsst.ccs.framework.HasLifecycle@ConfigurationParameterChanger public void setCcdType(String ccdType)
public boolean processAlarm(int event,
int parm,
String cause,
String alarmName)
processAlarm in interface org.lsst.ccs.monitor.Monitor.AlarmHandler@Command(description="Print Header specifications",
type=QUERY)
public String printHeaderSpecifications()
@Command(description="Print Geometry",
type=QUERY)
public String printGeometry(@Argument(defaultValue="0")
int depth)
@Command(description="Set the output directory for fits files",
type=QUERY)
public void setCCDLocation(int serial,
int parallel,
String ccdName)
throws IllegalArgumentException
serial - The serial position of the CCDparallel - The parallel position of the CCDccdName - The name of the CCD at the given positionIllegalArgumentException - if the serial or parallel position are
illegal.@Command(description="Set the name of the raft",
type=QUERY)
public void setRaftName(String raftName)
raftName - The name of the raft.@Command(description="Set the name of the reb at a given parallel position",
type=QUERY)
public void setRebName(int parallel,
String rebName)
throws IllegalArgumentException
parallel - The parallel position of the Reb.rebName - The new name of the rebIllegalArgumentException - if the parallel position is illegal.@Command(description="Set the run number",
type=QUERY)
public void setRunNumber(String runNumber)
runNumber - The run Number@Command(type=ACTION,
description="checks all currents")
public String checkCurrentsAndTemperatures()
@Command(type=ACTION,
description="checks all currents")
public String checkTemperatures(int rebnum)
@Command(type=ACTION,
description="checks all currents")
public String checkCurrentsAndTemperatures(int rebnum)
@Command(type=ACTION,
description="checks all currents")
public String checkCurrentsAndTemperatures(int rebnum,
boolean checkCCDI)
@Command(type=ACTION,
description="checks all currents")
public String checkCurrents(int rebnum)
@Command(type=ACTION,
description="checks all currents")
public String checkCurrents(int rebnum,
boolean checkCCDI)
@Command(type=ACTION,
description="clear REB config for a given REB ID")
public String clearREBCfg(int rebnum)
throws Exception
rebnum - The number of the REB to have its config clearedException@Command(type=ACTION,
description="reset REB config")
public String resetREBCfg(org.lsst.ccs.subsystem.rafts.REBDevice rebDevice)
throws Exception
rebDevice - The REB device to have its config clearedException@Command(type=QUERY,
description="raise subsystem alert")
public void raiseAlert(String alertmsg,
org.lsst.ccs.bus.states.AlertState severity)
@Command(type=ACTION,
description="show REB config for all REBS")
public String showAllREBCfg()
@Command(type=ACTION,
description="show REB config for a given REB ID")
public String showREBCfg(int rebnum)
public double chooseTestVolt(double proposedVoltage,
double full_target)
@Command(type=ACTION,
description="safe power on")
public String powerOn()
@Command(type=ACTION,
description="safe power on")
public String powerOn(int rebnum)
@Command(type=ACTION,
description="check state of REB biases")
public boolean checkREBState(int rebnum)
@Command(type=ACTION,
description="safe power off")
public String powerOff()
@Command(type=ACTION,
description="safe power off")
public String powerOff(int rebnum)
@Command(type=ACTION,
description="immediate power off")
public String powerOffNow(int rebnum)
@Command(description="Read a register address",
type=QUERY)
public int readRegister(String rebId,
int address)
rebId - The rebId: "Reb0", "R11:Reb0"address - The address of the register to read.@Command(description="load sequencer and adjust row and col parameters") public List<Integer> loadSequencerAndReDimension(@Argument(description="sequencer filename") String seq, @Argument(description="Number of rows to skip before window") int prerows, @Argument(description="Number of rows of the window") int readrows, @Argument(description="Number of rows after window") int postrows, @Argument(description="Number of columns to skip before readout window, including prescan") int precols, @Argument(description="Number of columns to read") int readcols, @Argument(description="Number of columns to discard after window ") int postcols) throws Exception
seq - prerows - readrows - postrows - precols - readcols - postcols - Exception@Command(description="Write a register address",
type=ACTION)
public void writeRegister(String rebId,
int address,
int value)
rebId - The id of the Reb: "Reb0", "R11:Reb0"address - The address to write to.value - The value to set the address to.@Command(description="Set a primary header value for all CCDs",
type=QUERY)
public void setHeader(String headerName,
Object headerValue,
@Argument(defaultValue="true")
boolean sticky)
headerName - The name of the Header to setheaderValue - The corresponding valuesticky - Boolean value to specify if the provided Header keyword
value should be used across exposures. The default value is true. If
false is provided, the provided Header keyword value will be reset after
each exposure.@Command(description="Set a primary header value for a given CCD",
type=QUERY)
public void setCCDHeader(String ccdId,
String headerName,
Object headerValue,
@Argument(defaultValue="true")
boolean sticky)
ccdId - The CCD idheaderName - The name of the Header to setheaderValue - The corresponding valuesticky - Boolean value to specify if the provided Header keyword
value should be used across exposures. The default value is true. If
false is provided, the provided Header keyword value will be reset after
each exposure.@Command(description="Start an acquisition and save the images to fits.",
type=ACTION)
public List<String> exposeAcquireAndSave()
throws IOException,
InterruptedException,
org.lsst.ccs.drivers.reb.REBException
org.lsst.ccs.drivers.reb.REBException - If there is an error interacting with the REBsIOException - if there is an error while writing the fits files.InterruptedException - If there is an interrupt waiting for the
image acquisition to complete@Command(description="Start an acquisition and save the images to fits.",
type=ACTION)
public List<String> exposeAcquireAndSave(long exposureTimeInMillis)
throws IOException,
InterruptedException,
org.lsst.ccs.drivers.reb.REBException
exposureTimeInMillis - The exposure time in millisecondsorg.lsst.ccs.drivers.reb.REBException - If there is an error interacting with the REBsIOException - if there is an error while writing the fits files.InterruptedException - If there is an interrupt waiting for the
image acquisition to complete@Command(description="Start an acquisition and save the images to fits.",
type=ACTION)
public List<String> exposeAcquireAndSave(long exposureTimeInMillis,
boolean openShutter)
throws IOException,
InterruptedException,
org.lsst.ccs.drivers.reb.REBException
exposureTimeInMillis - The exposure time in millisecondsopenShutter - True/false if the shutter should be openorg.lsst.ccs.drivers.reb.REBException - If there is an error interacting with the REBsIOException - if there is an error while writing the fits files.InterruptedException - If there is an interrupt waiting for the
image acquisition to complete@Command(description="Start an acquisition and save the images to fits.",
type=ACTION)
public List<String> exposeAcquireAndSave(long exposureTimeInMillis,
boolean openShutter,
boolean actuateXED)
throws IOException,
InterruptedException,
org.lsst.ccs.drivers.reb.REBException
exposureTimeInMillis - The exposure time in millisecondsopenShutter - True/false if the shutter should be openactuateXED - True/false if the FE55 should be involvedorg.lsst.ccs.drivers.reb.REBException - If there is an error interacting with the REBsIOException - if there is an error while writing the fits files.InterruptedException - If there is an interrupt waiting for the
image acquisition to complete@Command(description="Start an acquisition and save the images to fits.",
type=ACTION)
public List<String> exposeAcquireAndSave(long exposureTimeInMillis,
boolean openShutter,
boolean actuateXED,
String filePattern)
throws org.lsst.ccs.drivers.reb.REBException,
IOException,
InterruptedException
exposureTimeInMillis - The exposure time in millisecondsopenShutter - True/false if the shutter should be openactuateXED - True/false if the FE55 should be involvedfilePattern - The filePattern for the output fits filesorg.lsst.ccs.drivers.reb.REBException - If there is an error interacting with the REBsIOException - if there is an error while writing the fits files.InterruptedException - If there is an interrupt waiting for the
image acquisition to complete@Command(description="Start an acquisition and save the images to fits.",
type=ACTION)
public String exposeAcquireAndSaveVerbose(long exposureTimeInMillis,
boolean openShutter,
boolean actuateXED,
String filePattern)
throws IOException,
InterruptedException,
org.lsst.ccs.drivers.reb.REBException
exposureTimeInMillis - The exposure time in millisecondsopenShutter - True/false if the shutter should be openorg.lsst.ccs.drivers.reb.REBException - If there is an error interacting with the REBsIOException - if there is an error while writing the fits files.InterruptedException - If there is an interrupt waiting for the
image acquisition to complete@Command(description="Set the default exposure time.",
type=ACTION)
public void setDefaultExposureTime(int millis)
throws Exception
millis - Exposure time in milliseconds.Exception@Command(description="Set the sequencer exposure time.",
type=ACTION)
public void setSequencerExposureTime(int millis)
throws Exception
millis - Exposure time in milliseconds.Exception@Command(description="Set the exposure default open shutter flag.",
type=ACTION)
public void setDefaultOpenShutter(boolean open)
open - True/False if the shutter should be opened during the
exposure.@Command(description="Set the exposure default XED actuation.",
type=ACTION)
public void setDefaultActuateXED(boolean actuate)
actuate - True/False for XED actuation.@Command(type=QUERY,
description="Gets the full Raft module state")
public org.lsst.ccs.subsystem.rafts.data.RaftState getFullState()
protected void clearNonStickyHeaderKeywordValues()
@Command(type=QUERY,
description="Set the LSST assigned CCD Serial Number")
public void setLsstSerialNumber(String ccdId,
String serialNumber)
@Command(type=QUERY,
description="Set the Measured CCD Temperature")
public void setMeasuredCCDTemperature(String ccdId,
double ccdtemp)
@Command(type=QUERY,
description="Set the Measured CCD HVBias")
public void setMeasuredCCDBSS(String ccdId,
double hvbss)
@Command(type=QUERY,
description="Set the Monochromator Wavelength")
public void setMonoWavelength(double wl)
@Command(type=QUERY,
description="Set the Manufacturer assigned CCD Serial Number")
public void setManufacturerSerialNumber(String ccdId,
String serialNumber)
@Command(type=QUERY,
description="Sets the test type property for the output filename")
public void setTestType(String ttype)
@Command(type=QUERY,
description="Sets the name of the test stand station")
public void setTestStand(String tsname)
@Command(type=QUERY,
description="Sets the image type property for the output filename")
public void setImageType(String itype)
@Command(type=QUERY,
description="Sets the sequence info property for the output filename")
public void setSeqInfo(Integer seqNum)
@Command public void showPhotoDiodeAnalysis(String pddatfile) throws IOException, nom.tam.fits.FitsException
IOExceptionnom.tam.fits.FitsException@Command public void addBinaryTable(String pddatfile, String fitsfile, String extnam, String c1name, String c2name, double tstart) throws IOException, nom.tam.fits.FitsException
IOExceptionnom.tam.fits.FitsException@Command public double getFluxStats(String fitsfile) throws nom.tam.fits.FitsException, IOException
nom.tam.fits.FitsExceptionIOExceptionpublic void Sleep(double secs)
Copyright © 2019 LSST. All rights reserved.