public abstract class SynchronousCcdDriver extends AbstractCcdDriver implements Continuous
CcdDriver.expose(), CcdDriver.exposeBias(), and
CcdDriver.exposeDark() methods. This abstract base class allows the
#startExpose and #startDarkExpose to be wrapped around.AsynchronousCcdDriver| Modifier and Type | Class and Description |
|---|---|
protected class |
SynchronousCcdDriver.ExposureThread
An exposure thread simly calls
CcdDriver.expose() or CcdDriver.exposeDark(),
depending on the argument it was constructed with. |
private class |
SynchronousCcdDriver.MakeImage
The thread that does continuous exposures.
|
private class |
SynchronousCcdDriver.ReduceImage
This thread does the reduction of CCD data to a level that a list of
detected stars can be retrieved.
|
static class |
SynchronousCcdDriver.ThreadShot
Class to take a ccd driver as the first command line argument, open it
and make a science exposure.
|
AbstractCcdDriver.Endurance, AbstractCcdDriver.Exposure, AbstractCcdDriver.Shot| Modifier and Type | Field and Description |
|---|---|
private Object |
ccdlock
And my lock.
|
private static long |
CONTJOIN |
private int |
curcount
The current exposure number, used by exposure thread, set reduced.
|
private SynchronousCcdDriver.MakeImage |
doexpose
For continuous exposures.
|
private SynchronousCcdDriver.ReduceImage |
doreduce
For continuous exposures.
|
private Thread |
running
A thread that exposes.
|
KEY_AMPLIFIERS, KEY_AREAREADOUT, KEY_COLUMNPOST, KEY_COLUMNPRIOR, KEY_COLUMNREADOUT, KEY_FIXEDREADOUT, KEY_INITSIZE, KEY_MAXTIME, KEY_MINTIME, KEY_ROWPOST, KEY_ROWPRIOR, KEY_ROWREADOUT, KEY_XBINNING, KEY_XCHIPSIZE, KEY_XDETECTORSIZE, KEY_XORIGIN, KEY_XSIZE, KEY_YBINNING, KEY_YCHIPSIZE, KEY_YDETECTORSIZE, KEY_YORIGIN, KEY_YSIZEKEY_DRIVERNAMEKEY_LISTSEPARATOR, KEY_MAPKEYVALUECHAR, KEY_MAPSEPARATORFITSEXTENSIONCONFIG, KEY_CLASS| Modifier | Constructor and Description |
|---|---|
protected |
SynchronousCcdDriver(Map<String,String> info)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
cancelContinuous()
Stops a continuous guiding exposure.
|
boolean |
ensureReady()
We are ready if we either have no exposure thread or if this thread is
dead.
|
protected Thread |
getRunning() |
boolean |
isExposing()
We are exposing if the
running thread is not equal null and
alive. |
boolean |
isReadingOut()
We are exposing if the
running thread is not equal null and
alive. |
boolean |
startContinuous(ReadoutProviding frame,
ImageProcessing process)
Starts a continuous guiding exposure.
|
void |
stopContinuous()
Asks for the continuous loop of exposures to stop.
|
Thread |
threadedBiasExpose()
Starts a bias exposure.
|
Thread |
threadedDarkExpose()
Starts a dark exposure.
|
Thread |
threadedExpose()
Starts an exposure.
|
getDetectorSize, getMaximumExposureTime, getMinimumExposureTime, getReadoutMaximum, getReadoutTime, init, open, openControllercreateDriver, equals, getDriverName, hashCodeaugment, augment, augment, augment, augment, clone, defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsEnums, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, initProperties, isNew, parseObject, parseObject, reload, reload, removeProperty, requires, rescanned, setObject, setProperties, setProperty, stringProperties, toStringfinalize, getClass, notify, notifyAll, wait, wait, waitexpose, exposeBias, exposeDark, getBinning, getCcdInfo, getData, getDetectorSize, getExposureTime, getMaximumExposureTime, getMinimumExposureTime, getReadoutMaximum, getReadoutTime, getWindow, setBinning, setExposureTime, setWindowclose, getDriverName, isOpen, openinitprivate static final long CONTJOIN
private Thread running
threadedExpose().private SynchronousCcdDriver.MakeImage doexpose
private SynchronousCcdDriver.ReduceImage doreduce
private int curcount
private final Object ccdlock
protected SynchronousCcdDriver(Map<String,String> info)
AbstractCcdDriver.open().public Thread threadedExpose() throws IOException
CcdDriver.expose() method. The thread returned will be interrupted
if an I/O error occurs during reading.threadedExpose in interface CcdDriverIOException - Any subclass of IOException.exposepublic Thread threadedDarkExpose() throws IOException
CcdDriver.exposeDark() method. The thread returned will be
interrupted if an I/O error occurs during reading.threadedDarkExpose in interface CcdDriverIOException - Any subclass of IOException.exposepublic Thread threadedBiasExpose() throws IOException
CcdDriver.exposeDark() method. The thread returned will be
interrupted if an I/O error occurs during reading.threadedBiasExpose in interface CcdDriverIOException - Any subclass of IOException.exposepublic boolean isExposing()
running thread is not equal null and
alive.isExposing in interface CcdDriverpublic boolean isReadingOut()
running thread is not equal null and
alive.isReadingOut in interface CcdDriverpublic boolean ensureReady()
ensureReady in interface CcdDriverpublic boolean startContinuous(ReadoutProviding frame, ImageProcessing process)
stopContinuous(), each new
image is piped after arrival to
ImageProcessing.processFits(MFits, Rectangle, Dimension, double, Date, int)
.startContinuous in interface Continuouspublic void cancelContinuous()
cancelContinuous in interface ContinuousContinuous.stopContinuous()public void stopContinuous()
ContinuousstopContinuous in interface ContinuousContinuous.cancelContinuous()protected Thread getRunning()