[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Cincinnati Status Report
Progress has been slow but steady here in Cincinnati. I have my acquisition
program nearly ready for use by anyone who's willing to run Windows 98 or ME
and also willing to live with less than complete code.
The system I've been developing has several advantages that I beleive make
it worthwhile.
* The system is script driven. Specifically with VBScript now but JScript
could be easily added. See below for a description of the scripting
language.
* The system has the ability to manage tasks in parallel. For example it
can expose an image or move the mount while the last image is being saved to
disk.
* The system can be run remotely using other programs such as Visual Basic,
Excel, or even Word.
* The system uses the cfitsio library to create files so the images should
be quite standard.
All that needs to be done now is to add some dialogs to set the localization
items such as latitude, longitude, altitude, site characters, telescope,
etc. All these items are already parameterized, I just need to copy the
dialogs from an old system so it should be ready by next weekend.
The scripting items run the system at a higher level than Michael's does so
it doesn't provide direct support for things like the DAC's those all of
those will be programmable through the above mentioned dialogs. The
scripting supports the following objects:
DecControl - controls the dec motor and the clamp motor
RAControl - controls the ra motor and provides ra and ha values
ImageControl - controls the CCD, shutters, memory card and file io
Each of these objects have both properties and methods. The properties give
you information about the system while the methods control what the system
does. Each of the properties and methods are listed below.
RAControl.HA - property giving the current hour angle in degrees
RAControl.RA - property giving the current right ascension in degrees
RAControl.TurnRAOn() - method that turns the ra motor on
RAControl.TurnRAOff() - method that turns the ra motor off
RAControl.FastForward() - method that sets the ra motor in fast forward
RAControl.Rewind() - method that sets the ra motor in rewind
RAControl.MoveToLimit() - method that moves the ra motor to the limit shitch
then turns it off
RAControl.MoveToRA(double ra) - method that moves the mo0unt to a specific
ra if possible
RAControl.MoveToHA(double ha) - method that moves the mo0unt to a specific
ha if possible
DecControl.Dec - property giving the declination angle in degrees
DecControl.IsClamped - true if the dec is clamped
DecControl.MoveToDec(double dec) - unclamps, moves the mount to a specific
dec if possible, then clamps
DecControl.MoveToLimit() - unclamps, moves the mount to the dec limit
switch, then clamps
DecControl.ClampOn() - clamps the dec axis
DecControl.ClampOff() - unclamps the dec axis
DecControl.Park() - moves to the limit switch then down to level
DecControl.Unpark() - moves up from level then down to limit switch
ImageControl.ClearCCD() - clears the ccd
ImageControl.SaveImages() - saves the contents of the memory card to files
ImageControl.ReadCCD() - reads the ccd into the memory card
ImageControl.TakeBiasExposure() - takes a bias exposure
ImageControl.TakeDarkExposure(double exposureLength) - takes a dark exposure
ImageControl.TakeFlatExposure(double exposureLength) - takes a flat exposure
ImageControl.TakeObjectExposure(double exposureLength) - takes an object
exposure
With these controls you can write programs to control the camera for as long
as you want.
For example the following vbscript program takes clears the ccd, takes a 10
second dark exposure, reads the dark image into the ccd, takes a 10 second
image exposure while the dark image is being saved then reads the object
exposure and saves it to disk.
ImageControl.ClearCCD
ImageControl.TakeDarkExposure 10.0
ImageControl.ReadCCD
ImageControl.SaveImages
ImageControl.TakeObjectExposure 10.0
ImageControl.ReadCCD
ImageControl.SaveImages
The program is smart enough to know that the TakeExposure and SaveImages can
be run in parallel. In fact the following program does the same thing as
the above program.
ImageControl.ClearCCD
ImageControl.TakeDarkExposure 10.0
ImageControl.ReadCCD
ImageControl.TakeObjectExposure 10.0
ImageControl.SaveImages
ImageControl.ReadCCD
ImageControl.SaveImages
Since the program is vbscript you have access to all the flow control. The
program below will follow a field across the sky until we reach a limit in
the hour angle.
RAControl.MoveToLimit
RAControl.TurnRAOn
ImageControl.ClearCCD
while RAControl.RA < 10.0
ImageControl.TakeObjectExposure 60.0
ImageControl.ReadCCD
ImageControl.SaveImages
wend
Again the program is smart enough to parallel the save images of the n'th
pass with the exposure of the n'th + 1 image. This makes it unnecessary to
clear the ccd before each exposure since the previous exposure's read
already did the task.
I will make the code for all this available by next weekend. Any
suggestions, comments, etc. are appreciated.
Thanks,
Mike G.