Skip to search.

Breaking News Visit Yahoo! News for the latest.

×Close this window

ASCOM-Talk · ASCOM Initiative Discussion List

The Yahoo! Groups Product Blog

Check it out!

Group Information

  • Members: 3685
  • Category: Astronomy
  • Founded: Nov 21, 2000
  • Language: English
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Hear how Yahoo! Groups has changed the lives of others. Take me there.

Messages

Advanced
Messages Help
Messages 201 - 230 of 30128   Oldest  |  < Older  |  Newer >  |  Newest
Messages: Show Message Summaries Sort by Date ^  
#201 From: "Bob Denny" <rdenny@...>
Date: Fri Jun 8, 2001 1:32 pm
Subject: Chooser Generalization
rdenny@...
Send Email Send Email
 
Hello --

I'm going to make the Chooser a general purpose device, not just for
Telescope drivers. I'll make it default to behave as it does now, so
none of the code in existing drivers will have to change. HOWEVER, the
interface to the Chooser will change, with the addition of a DriverType
property (default = "Telescope"), and this will necessitate rebuilding
existing drivers that are early-bound to the DriverHelper.* objects.

The Profile object will change as well, to generalize the Register
method to handle registering devices other than Telescope (Dome,
Focuser, Camera, etc).

Arne Danielsen - I will rebuild the Vixen driver from the sources you
supplied and that's what will be in the ASCOM Platform installer.

John Oliver - You will have to recompile your RHO18 driver after you
install the new ASCOM Platform installer.

   -- Bob

#202 From: John Oliver <oliver@...>
Date: Fri Jun 8, 2001 1:35 pm
Subject: Re: [ASCOM] Chooser Generalization
oliver@...
Send Email Send Email
 
Bob Denny wrote:

> Hello --
>
> I'm going to make the Chooser a general purpose device, not just for
> Telescope drivers. I'll make it default to behave as it does now, so
> none of the code in existing drivers will have to change. HOWEVER, the
> interface to the Chooser will change, with the addition of a DriverType
> property (default = "Telescope"), and this will necessitate rebuilding
> existing drivers that are early-bound to the DriverHelper.* objects.
>
> The Profile object will change as well, to generalize the Register
> method to handle registering devices other than Telescope (Dome,
> Focuser, Camera, etc).
>
> Arne Danielsen - I will rebuild the Vixen driver from the sources you
> supplied and that's what will be in the ASCOM Platform installer.
>
> John Oliver - You will have to recompile your RHO18 driver after you
> install the new ASCOM Platform installer.
>
>   -- Bob

That's OK ... I recompile it about 3 times a day now anyway :)

Keep up the good work.

--
John

#203 From: "Douglas B. George" <dgeorge@...>
Date: Mon Jun 11, 2001 3:32 pm
Subject: Telescope Interface
dgeorge@...
Send Email Send Email
 
Michael Stewart of LSU recently asked me for a suggestion for a standardized
telescope interface.  I thought I would echo my response in this forum for
comment.

We've developed ASCOM interfaces for MaxIm DL's camera control and for Apogee's
new camera drivers.  The former has a lot of extras that are not directly
related to camera control, like calibration, saving files, and autoguider
control.  The latter is rather complex because it covers a lot of optional modes
like TDI, yet it isn't entirely generic because all of their cameras have fairly
consistent capabilities.

My main thought is to keep it simple.  Here is an interface subset that I think
will meet most needs:

BinX
Property
         CCDCamera.BinX (Short)
Syntax
         CCDCamera.BinX [= Short]
Remarks
Sets the binning factor for the X axis if XYBinning is True. Sets the binning
factor for the X and Y axis if XYBinning is False. Also returns the current
value.

BinY
Property
         CCDCamera.BinY (Short)
Syntax
         CCDCamera.BinY [= Short]
Remarks
Sets the binning factor for the Y axis if XYBinning is True. Ignored if
XYBinning is False. Also returns the current value.

CameraXSize
Property
         CCDCamera.CameraXSize (read only, Short)
Syntax
         CCDCamera.CameraXSize
Remarks
Returns the width of the CCD camera chip in pixels.

CameraYSize
Property
         CCDCamera.CameraYSize (read only, Short)
Syntax
         CCDCamera.CameraYSize
Remarks
Returns the height of the CCD camera chip in pixels.

CanSetTemperature
Property
         CCDCamera.CanSetTemperature (read only, Boolean)
Syntax
         CCDCamera.CanSetTemperature
Remarks
If True, the camera's cooler setpoint can be adjusted. If False, the camera
either uses open-loop cooling or does not have the ability to adjust temperature
from software, and setting the TemperatureSetpoint property has no effect.

CoolerOn
Property
         CCDCamera.CoolerOn (Boolean)
Syntax
         CCDCamera.CoolerOn [= Boolean]
Remarks
Turns on and off the camera cooler, and returns the current on/off state. For
most cameras it is recommended to set the cooler setpoint to a high temperature
(say +20C) first, and wait a period of time before shutting off the cooler.

HasShutter
Property
         CCDCamera.HasShutter (read only, Boolean)
Syntax
         CCDCamera.HasShutter
Remarks
If True, the camera has a built-in shutter. If False, the camera does not have a
shutter. If there is no shutter, the Expose command will ignore the Light
parameter.

ImageArray
Property
         CCDCamera.ImageArray  (read only, Short)
Syntax
         CCDCamera.ImageArray
Remarks
Returns a safearray of Long of size SubframeXSize * SubframeYSize containing the
pixel values from the last exposure. Note: if SubframeXSize or SubframeYSize is
changed after a call to Expose it will have no effect on the size of this array.

ImageReady
Property
         CCDCamera.ImageReady (read only, Short)
Syntax
         CCDCamera.ImageReady
Remarks
If True, there is an image buffer from the camera available. If False, no buffer
is available and attempts to use the ImageArray method will produce an error.

LinkEnabled
Property
         CCDCamera.LinkEnabled (Boolean)
Syntax
         CCDCamera.LinkEnabled [= Boolean]
Remarks
Controls the link between MaxIm CCD and the camera. Set True to enable the link.
The settings for the camera, autoguider, and filter wheel have previously been
selected in the SettingsHIDD_SETTINGS tab (the settings are remembered between
sessions).
After enabling the link, it is advisable to check the value. It will return True
if the link-up was successful; False if not.
Set False to disable the link.

MaxBinX
Property
         CCDCamera.MaxBinX (read only, Short)
Syntax
         CCDCamera.MaxBinX
Remarks
If XYBinning = False, returns the maximum allowed binning factor. If XYBinning =
True, returns the maximum allowed binning factor for the X axis.

MaxBinY
Property
         CCDCamera.MaxBinY (read only, Short)
Syntax
         CCDCamera.MaxBinY
Remarks
If XYBinning = False, equals MaxBinX. If XYBinning = True, returns the maximum
allowed binning factor for the Y axis.

NumX
Property
         CCDCamera.NumX (Short)
Syntax
         CCDCamera.NumX [= Short]
Remarks
Sets the subframe width. Also returns the current value.

NumY
Property
         CCDCamera.NumY (Short)
Syntax
         CCDCamera.NumY [= Short]
Remarks
Sets the subframe height. Also returns the current value.

PowerOfTwoBinning
Property
         CCDCamera.PowerOfTwoBinning(read only, Boolean)
Syntax
         CCDCamera.PowerOfTwoBinning
Remarks
If True, the camera can only support the following binning factors: 1, 2, 4, 8,
16; subject to the limitation that the bin factor shall not be greater than
MaxBinX or MaxBinY as appropriate. If False, any value between 1 and MaxBinX or
MaxBinY will be allowed.

PixelSizeX
Property
         CCDCamera.PixelSizeX(read only, Double)
Syntax
         CCDCamera.PixelSizeX
Remarks
Returns the width of the CCD chip pixels in microns, as provided by the camera
driver. If the driver does not report a value it will return 1.

PixelSizeY
Property
         CCDCamera.PixelSizeY(read only, Double)
Syntax
         CCDCamera.PixelSizeY
Remarks
Returns the height of the CCD chip pixels in microns, as provided by the camera
driver. If the driver does not report a value it will return 1.

StartX
Property
         CCDCamera.StartX (Short)
Syntax
         CCDCamera.StartX [= Short]
Remarks
Sets the subframe start position for the X axis. Also returns the current value.

StartY
Property
         CCDCamera.StartY (Short)
Syntax
         CCDCamera.StartY [= Short]
Remarks
Sets the subframe start position for the Y axis. Also returns the current value.

ShutterOpen
Property
         CCDCamera.ShutterOpen (read only,Boolean)
Syntax
         CCDCamera.ShutterOpen
Remarks
If True, the camera shutter is currently open. If False, the shutter is
currently closed.

TemperatureSetpoint
Property
         CCDCamera.TemperatureSetpoint (Short)
Syntax
         CCDCamera.TemperatureSetpoint [= Double]
Remarks
Sets the camera cooler setpoint in degrees Celsius, and returns the current
setpoint. The valid range is +100C to -100C. Attempts to change the temperature
setpoint for cameras for which CanSetTemperature is False will be ignored.

Temperature
Property
         CCDCamera.Temperature  (read only, Double)
Syntax
         CCDCamera.Temperature
Remarks
Returns the current CCD temperature in degrees Celsius. Only valid if
CanControlTemperature is True and CoolerOn is True.

XYBinning
Property
         CCDCamera.XYBinning (read only, Short)
Syntax
         CCDCamera.XYBinning
Remarks
If True, the camera can have different binning on the X and Y axes, as
determined by BinX and BinY. If False, the binning must be equal on the X and Y
axes, and is determined only by BinX.

AbortExposure
Syntax
         CCDCamera.AbortExposure()
Parameters
         None.
Returns
         Nothing.
Remarks
Aborts the current exposure, if any, and returns the camera to Idle state.

Expose
Syntax
         CCDCamera.Expose ( Duration, Light, Filter )
Parameters
         Double Duration - Duration of exposure in seconds
         Short Light - 1 for light frame, 0 for dark frame (ignored if no
shutter)
         Short Filter - Index of filter to use; first filter is 0 (ignored if no
         filter wheel)
Returns
         Boolean - True if successful
Remarks
Starts an exposure. Use ImageReady to check when the exposure is complete. An
error occurs if the exposure cannot be started.


It might also be good to have a SetupDialog method similar to the Telsecope
object.


--
Doug George

=============================================================
      Diffraction Limited                Cyanogen Division
      Industrial Products                Astronomy Products
http://www.diffractionlimited.com     http://www.cyanogen.com
  dgeorge@...        dgeorge@...
     Phone:  (613) 225-9852            Sales:  (613) 225-2732
      Fax:  (613) 225-9688              Fax:  (613) 225-9688
=============================================================

#204 From: "Jim Vail" <jimvail@...>
Date: Mon Jun 11, 2001 8:13 pm
Subject: RE: [ASCOM] Telescope Interface
jimvail@...
Send Email Send Email
 
Doug,

My Meade 416 XTE sometimes gets "out of sync" when I run a script.  For some
reason, the shutter indication is "open" when the camera is connected.  If I
try to image, I just get an error.  I'd like to be able to check the status
of the shutter, and if it's open, be able to close it.  Would having the
ShutterOpen property |not| be read only, let me do this?  i.e.,:

ShutterOpen
Property
         CCDCamera.ShutterOpen (Boolean)
Syntax
         CCDCamera.ShutterOpen
Remarks
If True, the camera shutter is currently open. If False, the shutter is
currently closed.  If set False, the shutter is commanded closed.

Jim Vail


> -----Original Message-----
> From: Douglas B. George [mailto:dgeorge@...]
> Sent: Monday, June 11, 2001 8:32 AM
> To: ASCOM-Talk@yahoogroups.com
> Subject: [ASCOM] Telescope Interface
>
>
> Michael Stewart of LSU recently asked me for a suggestion for a
> standardized
> telescope interface.  I thought I would echo my response in this forum for
> comment.
>
> We've developed ASCOM interfaces for MaxIm DL's camera control
> and for Apogee's
> new camera drivers.  The former has a lot of extras that are not directly
> related to camera control, like calibration, saving files, and autoguider
> control.  The latter is rather complex because it covers a lot of
> optional modes
> like TDI, yet it isn't entirely generic because all of their
> cameras have fairly
> consistent capabilities.
>
> My main thought is to keep it simple.  Here is an interface
> subset that I think
> will meet most needs:
>
> BinX
> Property
>         CCDCamera.BinX (Short)
> Syntax
>         CCDCamera.BinX [= Short]
> Remarks
> Sets the binning factor for the X axis if XYBinning is True. Sets
> the binning
> factor for the X and Y axis if XYBinning is False. Also returns
> the current
> value.
>
> BinY
> Property
>         CCDCamera.BinY (Short)
> Syntax
>         CCDCamera.BinY [= Short]
> Remarks
> Sets the binning factor for the Y axis if XYBinning is True. Ignored if
> XYBinning is False. Also returns the current value.
>
> CameraXSize
> Property
>         CCDCamera.CameraXSize (read only, Short)
> Syntax
>         CCDCamera.CameraXSize
> Remarks
> Returns the width of the CCD camera chip in pixels.
>
> CameraYSize
> Property
>         CCDCamera.CameraYSize (read only, Short)
> Syntax
>         CCDCamera.CameraYSize
> Remarks
> Returns the height of the CCD camera chip in pixels.
>
> CanSetTemperature
> Property
>         CCDCamera.CanSetTemperature (read only, Boolean)
> Syntax
>         CCDCamera.CanSetTemperature
> Remarks
> If True, the camera's cooler setpoint can be adjusted. If False,
> the camera
> either uses open-loop cooling or does not have the ability to
> adjust temperature
> from software, and setting the TemperatureSetpoint property has no effect.
>
> CoolerOn
> Property
>         CCDCamera.CoolerOn (Boolean)
> Syntax
>         CCDCamera.CoolerOn [= Boolean]
> Remarks
> Turns on and off the camera cooler, and returns the current
> on/off state. For
> most cameras it is recommended to set the cooler setpoint to a
> high temperature
> (say +20C) first, and wait a period of time before shutting off
> the cooler.
>
> HasShutter
> Property
>         CCDCamera.HasShutter (read only, Boolean)
> Syntax
>         CCDCamera.HasShutter
> Remarks
> If True, the camera has a built-in shutter. If False, the camera
> does not have a
> shutter. If there is no shutter, the Expose command will ignore the Light
> parameter.
>
> ImageArray
> Property
>         CCDCamera.ImageArray  (read only, Short)
> Syntax
>         CCDCamera.ImageArray
> Remarks
> Returns a safearray of Long of size SubframeXSize * SubframeYSize
> containing the
> pixel values from the last exposure. Note: if SubframeXSize or
> SubframeYSize is
> changed after a call to Expose it will have no effect on the size
> of this array.
>
> ImageReady
> Property
>         CCDCamera.ImageReady (read only, Short)
> Syntax
>         CCDCamera.ImageReady
> Remarks
> If True, there is an image buffer from the camera available. If
> False, no buffer
> is available and attempts to use the ImageArray method will
> produce an error.
>
> LinkEnabled
> Property
>         CCDCamera.LinkEnabled (Boolean)
> Syntax
>         CCDCamera.LinkEnabled [= Boolean]
> Remarks
> Controls the link between MaxIm CCD and the camera. Set True to
> enable the link.
> The settings for the camera, autoguider, and filter wheel have
> previously been
> selected in the SettingsHIDD_SETTINGS tab (the settings are
> remembered between
> sessions).
> After enabling the link, it is advisable to check the value. It
> will return True
> if the link-up was successful; False if not.
> Set False to disable the link.
>
> MaxBinX
> Property
>         CCDCamera.MaxBinX (read only, Short)
> Syntax
>         CCDCamera.MaxBinX
> Remarks
> If XYBinning = False, returns the maximum allowed binning factor.
> If XYBinning =
> True, returns the maximum allowed binning factor for the X axis.
>
> MaxBinY
> Property
>         CCDCamera.MaxBinY (read only, Short)
> Syntax
>         CCDCamera.MaxBinY
> Remarks
> If XYBinning = False, equals MaxBinX. If XYBinning = True,
> returns the maximum
> allowed binning factor for the Y axis.
>
> NumX
> Property
>         CCDCamera.NumX (Short)
> Syntax
>         CCDCamera.NumX [= Short]
> Remarks
> Sets the subframe width. Also returns the current value.
>
> NumY
> Property
>         CCDCamera.NumY (Short)
> Syntax
>         CCDCamera.NumY [= Short]
> Remarks
> Sets the subframe height. Also returns the current value.
>
> PowerOfTwoBinning
> Property
>         CCDCamera.PowerOfTwoBinning(read only, Boolean)
> Syntax
>         CCDCamera.PowerOfTwoBinning
> Remarks
> If True, the camera can only support the following binning
> factors: 1, 2, 4, 8,
> 16; subject to the limitation that the bin factor shall not be
> greater than
> MaxBinX or MaxBinY as appropriate. If False, any value between 1
> and MaxBinX or
> MaxBinY will be allowed.
>
> PixelSizeX
> Property
>         CCDCamera.PixelSizeX(read only, Double)
> Syntax
>         CCDCamera.PixelSizeX
> Remarks
> Returns the width of the CCD chip pixels in microns, as provided
> by the camera
> driver. If the driver does not report a value it will return 1.
>
> PixelSizeY
> Property
>         CCDCamera.PixelSizeY(read only, Double)
> Syntax
>         CCDCamera.PixelSizeY
> Remarks
> Returns the height of the CCD chip pixels in microns, as provided
> by the camera
> driver. If the driver does not report a value it will return 1.
>
> StartX
> Property
>         CCDCamera.StartX (Short)
> Syntax
>         CCDCamera.StartX [= Short]
> Remarks
> Sets the subframe start position for the X axis. Also returns the
> current value.
>
> StartY
> Property
>         CCDCamera.StartY (Short)
> Syntax
>         CCDCamera.StartY [= Short]
> Remarks
> Sets the subframe start position for the Y axis. Also returns the
> current value.
>
> ShutterOpen
> Property
>         CCDCamera.ShutterOpen (read only,Boolean)
> Syntax
>         CCDCamera.ShutterOpen
> Remarks
> If True, the camera shutter is currently open. If False, the shutter is
> currently closed.
>
> TemperatureSetpoint
> Property
>         CCDCamera.TemperatureSetpoint (Short)
> Syntax
>         CCDCamera.TemperatureSetpoint [= Double]
> Remarks
> Sets the camera cooler setpoint in degrees Celsius, and returns
> the current
> setpoint. The valid range is +100C to -100C. Attempts to change
> the temperature
> setpoint for cameras for which CanSetTemperature is False will be
> ignored.
>
> Temperature
> Property
>         CCDCamera.Temperature  (read only, Double)
> Syntax
>         CCDCamera.Temperature
> Remarks
> Returns the current CCD temperature in degrees Celsius. Only valid if
> CanControlTemperature is True and CoolerOn is True.
>
> XYBinning
> Property
>         CCDCamera.XYBinning (read only, Short)
> Syntax
>         CCDCamera.XYBinning
> Remarks
> If True, the camera can have different binning on the X and Y axes, as
> determined by BinX and BinY. If False, the binning must be equal
> on the X and Y
> axes, and is determined only by BinX.
>
> AbortExposure
> Syntax
>         CCDCamera.AbortExposure()
> Parameters
>         None.
> Returns
>         Nothing.
> Remarks
> Aborts the current exposure, if any, and returns the camera to Idle state.
>
> Expose
> Syntax
>         CCDCamera.Expose ( Duration, Light, Filter )
> Parameters
>         Double Duration - Duration of exposure in seconds
>         Short Light - 1 for light frame, 0 for dark frame (ignored if no
> shutter)
>         Short Filter - Index of filter to use; first filter is 0
> (ignored if no
>         filter wheel)
> Returns
>         Boolean - True if successful
> Remarks
> Starts an exposure. Use ImageReady to check when the exposure is
> complete. An
> error occurs if the exposure cannot be started.
>
>
> It might also be good to have a SetupDialog method similar to the
> Telsecope
> object.
>
>
> --
> Doug George
>
> =============================================================
>      Diffraction Limited                Cyanogen Division
>      Industrial Products                Astronomy Products
> http://www.diffractionlimited.com     http://www.cyanogen.com
>  dgeorge@...        dgeorge@...
>     Phone:  (613) 225-9852            Sales:  (613) 225-2732
>      Fax:  (613) 225-9688              Fax:  (613) 225-9688
> =============================================================
>
> To unsubscribe from this group, send an email to:
> ASCOM-Talk-unsubscribe@egroups.com
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>

#205 From: "Douglas B. George" <dgeorge@...>
Date: Mon Jun 11, 2001 8:53 pm
Subject: Re: [ASCOM] Telescope Interface
dgeorge@...
Send Email Send Email
 
Jim Vail wrote:
>
> My Meade 416 XTE sometimes gets "out of sync" when I run a script.  For some
> reason, the shutter indication is "open" when the camera is connected.  If I
> try to image, I just get an error.  I'd like to be able to check the status
> of the shutter, and if it's open, be able to close it.  Would having the
> ShutterOpen property |not| be read only, let me do this?  i.e.,:

It wouldn't help; you can't force the shutter on a 416XTE.  The camera's
interface doesn't provide that level of control.

That particular camera model is, ah, fussy.  If it generates an error condition,
your best bet is to shut down the link, wait 30 seconds, and try to start it
again.  If that doesn't clear the problem, you have to power down and restart.

Doug


--
Doug George

=============================================================
      Diffraction Limited                Cyanogen Division
      Industrial Products                Astronomy Products
http://www.diffractionlimited.com     http://www.cyanogen.com
  dgeorge@...        dgeorge@...
     Phone:  (613) 225-9852            Sales:  (613) 225-2732
      Fax:  (613) 225-9688              Fax:  (613) 225-9688
=============================================================

#206 From: "Bob Denny" <rdenny@...>
Date: Mon Jun 11, 2001 9:20 pm
Subject: [ANN] Telescope Standard & Platform Kit
rdenny@...
Send Email Send Email
 
It's a banner day! Thanks to all of your inputs, testing,
implementation, and support, the ASCOM Telescope Driver Interface
Specification (1.4) is completed and hereby released! The last
little delta was the addition of the PulseGuide() method and
CanPulseGuide property. I added it, rebuilt the drivers, and
notified John Oliver.

I have also completed the ASCOM Platform 1.0 Setup package
(formerly known as the SDK). It is desinged for installation as
part of your end-user applications. I have committed to the group
to maintain the Platform Setup package, including new and repaired
drivers, at reasonable intervals.

Please download and install the ASCOM Platform 1.0 Setup package
as soon as you can. The beta SDKs are now obsolete.

                            **********
                            * NOTICE *
                            **********

The DriverHelper.Chooser and DriverHelper.Profile objects have
changed, forcing a major revision in the scripting interfaces. If
you have written anything that "early binds" to DriverHelper.*
you'll need to recompile. In VB, go to Project/References,
UNCHECK "ASCOM Scope Driver Helper Objects", close the References
dialog, reopen it, and re-check that item. Then rebuild the EXE
or DLL. My apologies for this, but I decided to generalize the
Chooser so it can be used to choose any arbitrary object type
(not just Telescope).

If you're just using the drivers, or have not yet developed any drivers,
you don't have to do anything about this issue.

Thanks again for all of your help and support. Onward! We're
working on Camera, Focuser, and Dome now...

   -- Bob

#207 From: "Douglas B. George" <dgeorge@...>
Date: Tue Jun 12, 2001 3:49 pm
Subject: Camera Interface Standard
dgeorge@...
Send Email Send Email
 
Bob asked me to repost this proposal because the original subject line was on
another thread.  I've also taken the time to expand the commentary that was in
my original posting.

Several people have mentioned to me that they would like to see a standardized
CCD camera interface.  We've developed a couple of different ASCOM-compliant
camera interfaces (MaxIm DL/CCD and the new Apogee camera drivers).  Both of
those have extra features above and beyond what I would consider necessary for a
baseline interface.

My thought is to keep it simple.  We could add all sorts of bells and whistles
like drift scanning, but that would really complicate testing and make it harder
for people to develop new drivers.  Manufacturers who want to add extra features
can either (a) add extra proprietary properties and methods to the standard
object (as long as the interface works correctly if those extra features are
ignored), or (b) add a second object with their own custom properties and
methods.  I like (a) but I'd like some feedback on that.

Below is an interface that I think will meet most needs.  It tries to
accommodate variations in camera designs as much as possible without making it
too complex.  In particular, it accomodates cameras with different binning
configurations (some will do 1,2,3; others 1,2,4,8; some allow for different
binning on the two axes; others not).
FYI, subframe regions (StartX, StartY, NumX, NumY) are input in binned
coordinates; e.g. full frame on a 512 square sensor binned 2x2 is NumX = 256,
NumY = 256.  (I've seen interface definitions where subframes are specified in
unbinned pixels and it's intrinsically confusing.)

Please note that the interface is designed to work as either an EXE or DLL, so
the image is passed back as a SAFEARRAY of Long (unsigned 16-bit numbers aren't
supported by Automation).

BinX
Property
         CCDCamera.BinX (Short)
Syntax
         CCDCamera.BinX [= Short]
Remarks
Sets the binning factor for the X axis if XYBinning is True. Sets the binning
factor for the X and Y axis if XYBinning is False. Also returns the current
value.

BinY
Property
         CCDCamera.BinY (Short)
Syntax
         CCDCamera.BinY [= Short]
Remarks
Sets the binning factor for the Y axis if XYBinning is True. Ignored if
XYBinning is False. Also returns the current value.

CameraXSize
Property
         CCDCamera.CameraXSize (read only, Short)
Syntax
         CCDCamera.CameraXSize
Remarks
Returns the width of the CCD camera chip in pixels.

CameraYSize
Property
         CCDCamera.CameraYSize (read only, Short)
Syntax
         CCDCamera.CameraYSize
Remarks
Returns the height of the CCD camera chip in pixels.

CanSetTemperature
Property
         CCDCamera.CanSetTemperature (read only, Boolean)
Syntax
         CCDCamera.CanSetTemperature
Remarks
If True, the camera's cooler setpoint can be adjusted. If False, the camera
either uses open-loop cooling or does not have the ability to adjust temperature
from software, and setting the TemperatureSetpoint property has no effect.

CoolerOn
Property
         CCDCamera.CoolerOn (Boolean)
Syntax
         CCDCamera.CoolerOn [= Boolean]
Remarks
Turns on and off the camera cooler, and returns the current on/off state. For
most cameras it is recommended to set the cooler setpoint to a high temperature
(say +20C) first, and wait a period of time before shutting off the cooler.

HasShutter
Property
         CCDCamera.HasShutter (read only, Boolean)
Syntax
         CCDCamera.HasShutter
Remarks
If True, the camera has a built-in shutter. If False, the camera does not have a
shutter. If there is no shutter, the Expose command will ignore the Light
parameter.

ImageArray
Property
         CCDCamera.ImageArray  (read only, Short)
Syntax
         CCDCamera.ImageArray
Remarks
Returns a safearray of Long of size NumX * NumY containing the pixel values from
the last exposure. Note: if NumX or NumY is changed after a call to Expose it
will have no effect on the size of this array.

ImageReady
Property
         CCDCamera.ImageReady (read only, Short)
Syntax
         CCDCamera.ImageReady
Remarks
If True, there is an image buffer from the camera available. If False, no buffer
is available and attempts to use the ImageArray method will produce an error.

LinkEnabled
Property
         CCDCamera.LinkEnabled (Boolean)
Syntax
         CCDCamera.LinkEnabled [= Boolean]
Remarks
Controls the link between MaxIm CCD and the camera. Set True to enable the link.
The settings for the camera, autoguider, and filter wheel have previously been
selected in the SettingsHIDD_SETTINGS tab (the settings are remembered between
sessions).
After enabling the link, it is advisable to check the value. It will return True
if the link-up was successful; False if not.
Set False to disable the link.

MaxBinX
Property
         CCDCamera.MaxBinX (read only, Short)
Syntax
         CCDCamera.MaxBinX
Remarks
If XYBinning = False, returns the maximum allowed binning factor. If XYBinning =
True, returns the maximum allowed binning factor for the X axis.

MaxBinY
Property
         CCDCamera.MaxBinY (read only, Short)
Syntax
         CCDCamera.MaxBinY
Remarks
If XYBinning = False, equals MaxBinX. If XYBinning = True, returns the maximum
allowed binning factor for the Y axis.

NumX
Property
         CCDCamera.NumX (Short)
Syntax
         CCDCamera.NumX [= Short]
Remarks
Sets the subframe width. Also returns the current value.

NumY
Property
         CCDCamera.NumY (Short)
Syntax
         CCDCamera.NumY [= Short]
Remarks
Sets the subframe height. Also returns the current value.

PowerOfTwoBinning
Property
         CCDCamera.PowerOfTwoBinning(read only, Boolean)
Syntax
         CCDCamera.PowerOfTwoBinning
Remarks
If True, the camera can only support the following binning factors: 1, 2, 4, 8,
16; subject to the limitation that the bin factor shall not be greater than
MaxBinX or MaxBinY as appropriate. If False, any value between 1 and MaxBinX or
MaxBinY will be allowed.

PixelSizeX
Property
         CCDCamera.PixelSizeX(read only, Double)
Syntax
         CCDCamera.PixelSizeX
Remarks
Returns the width of the CCD chip pixels in microns, as provided by the camera
driver. If the driver does not report a value it will return 1.

PixelSizeY
Property
         CCDCamera.PixelSizeY(read only, Double)
Syntax
         CCDCamera.PixelSizeY
Remarks
Returns the height of the CCD chip pixels in microns, as provided by the camera
driver. If the driver does not report a value it will return 1.

StartX
Property
         CCDCamera.StartX (Short)
Syntax
         CCDCamera.StartX [= Short]
Remarks
Sets the subframe start position for the X axis. Also returns the current value.

StartY
Property
         CCDCamera.StartY (Short)
Syntax
         CCDCamera.StartY [= Short]
Remarks
Sets the subframe start position for the Y axis. Also returns the current value.

ShutterOpen
Property
         CCDCamera.ShutterOpen (read only,Boolean)
Syntax
         CCDCamera.ShutterOpen
Remarks
If True, the camera shutter is currently open. If False, the shutter is
currently closed.

TemperatureSetpoint
Property
         CCDCamera.TemperatureSetpoint (Short)
Syntax
         CCDCamera.TemperatureSetpoint [= Double]
Remarks
Sets the camera cooler setpoint in degrees Celsius, and returns the current
setpoint. The valid range is +100C to -100C. Attempts to change the temperature
setpoint for cameras for which CanSetTemperature is False will be ignored.

Temperature
Property
         CCDCamera.Temperature  (read only, Double)
Syntax
         CCDCamera.Temperature
Remarks
Returns the current CCD temperature in degrees Celsius. Only valid if
CanControlTemperature is True and CoolerOn is True.

XYBinning
Property
         CCDCamera.XYBinning (read only, Short)
Syntax
         CCDCamera.XYBinning
Remarks
If True, the camera can have different binning on the X and Y axes, as
determined by BinX and BinY. If False, the binning must be equal on the X and Y
axes, and is determined only by BinX.

AbortExposure
Syntax
         CCDCamera.AbortExposure()
Parameters
         None.
Returns
         Nothing.
Remarks
Aborts the current exposure, if any, and returns the camera to Idle state.

Expose
Syntax
         CCDCamera.Expose ( Duration, Light, Filter )
Parameters
         Double Duration - Duration of exposure in seconds
         Short Light - 1 for light frame, 0 for dark frame (ignored if no
shutter)
         Short Filter - Index of filter to use; first filter is 0 (ignored if no
         filter wheel)
Returns
         Boolean - True if successful
Remarks
Starts an exposure. Use ImageReady to check when the exposure is complete. An
error occurs if the exposure cannot be started.


It might also be good to have a SetupDialog method similar to the Telsecope
object.



--
Doug George

=============================================================
      Diffraction Limited                Cyanogen Division
      Industrial Products                Astronomy Products
http://www.diffractionlimited.com     http://www.cyanogen.com
  dgeorge@...        dgeorge@...
     Phone:  (613) 225-9852            Sales:  (613) 225-2732
      Fax:  (613) 225-9688              Fax:  (613) 225-9688
=============================================================

#208 From: "Douglas B. George" <dgeorge@...>
Date: Tue Jun 12, 2001 4:02 pm
Subject: Re: A possible ASCOM Camera Interface
dgeorge@...
Send Email Send Email
 
Mike Stewart wrote:
>
> Doug,
>
> Thankyou for sending me the soon to be ASCOM camera interface.
> I have some suggestions and questions.

FYI, I'm cross-posting my reply to the ASCOM-Talk list.

> - I really need to be able to pull JPGs and FITs across a network
>   via TCP/IP.  Could we add a couple of methods/properties to the camera
> interface?
>
>         1. (Method) SaveImage(ByVal val As ImageType) As Boolean
>                 - return TRUE if successful.
>
>                 - Public Enum ImageType
>                         imageJPG = x
>                         imageFIT = x + 1
>                         ...
>                   End Enum
>
>                 - This will allow a TCP/IP client the ability to have a Camera
server
>                   save an image in a given format.  (JPG and FIT are the only
ones
>               I know about).

I have fundamental issues with this.  It would require all camera interfaces to
include JPEG & FITS I/O modules (TIFF? BMP? PNG? SBIG?), which is inefficient
and a barrier to the development of new interfaces (since every developer would
have to write them!).  The various file formats have all sorts of limitations
and options (e.g. JPEG is 8 bit... how to save 16-bit image?), and this would
have to be accomodated.

It would be more appropriate for someone to create a separate helper object
which can write various file formats to disk.  (FYI, this capability is included
in MaxIm DL V3 via an ASCOM interface.)

>         2. (Property) Get ImageSize(ByVal val As ImageType) As Long
>
>                 - return the size of the (ImageType) image.

This would be redundant.  The information is automatically included in the
ImageArray because it is a SAFEARRAY.  To determine the size of the array itself
you can read CameraXSize and CameraYSize.

>         3. (Property) Get Image(ByVal val As ImageType) As Byte Array
>                 - return (ImageType) image as a byte Array.  The (Camera
ActiveX)/(TCP/IP)
>                   client can then save the image to a file.

This would be a linear array of size NumX * NumY * 2?  Probably simpler to have
a helper object to save the image as mentioned above.

>  Do you envision the ASCOM Camera Interface simply being a wrapper for the
> Maxim_dl ActiveX exe for your purposes?

As a minimum.  We already have an ASCOM-compliant camera interface.  If our
existing interface is non-compliant with the new standardized interface, we will
just expose a second interface object.  Ultimately, we will likely adopt it for
our internal interface between our application and our camera drivers.  This
would allow others to plug in their interfaces into MaxIm DL.

>  Also, Thankyou for the Focuser Interface.  I had one question about it.
>
>  Should the property Link be named Connected so that it matches the
> Telescope and Dome Interfaces?

Well, it isn't necessary for the interface methods and properties to match
between the various interfaces, but it doesn't hurt either.  You will note that
my camera proposal is different again... it says "LinkEnabled" instead of
"Connected" or "Link".

Doug George

=============================================================
      Diffraction Limited                Cyanogen Division
      Industrial Products                Astronomy Products
http://www.diffractionlimited.com     http://www.cyanogen.com
  dgeorge@...        dgeorge@...
     Phone:  (613) 225-9852            Sales:  (613) 225-2732
      Fax:  (613) 225-9688              Fax:  (613) 225-9688
=============================================================

#209 From: stewart@...
Date: Tue Jun 12, 2001 9:01 pm
Subject: [ASCOM] Re: PROPOSAL: Focuser Interface
stewart@...
Send Email Send Email
 
What data types do StepSize, MaxStep, and MaxIncrement return?

#210 From: "Douglas B. George" <dgeorge@...>
Date: Tue Jun 12, 2001 9:27 pm
Subject: Re: [ASCOM] Re: PROPOSAL: Focuser Interface
dgeorge@...
Send Email Send Email
 
stewart@... wrote:
>
> What data types do StepSize, MaxStep, and MaxIncrement return?

StepSize returns a float
MaxStep returns a long
MaxIncrement returns a long

Doug George

=============================================================
      Diffraction Limited                Cyanogen Division
      Industrial Products                Astronomy Products
http://www.diffractionlimited.com     http://www.cyanogen.com
  dgeorge@...        dgeorge@...
     Phone:  (613) 225-9852            Sales:  (613) 225-2732
      Fax:  (613) 225-9688              Fax:  (613) 225-9688
=============================================================

#211 From: etinoue@...
Date: Wed Jun 13, 2001 5:17 pm
Subject: Re: A possible ASCOM Camera Interface
etinoue@...
Send Email Send Email
 
A couple comments on the clipped notes below:

> > - I really need to be able to pull JPGs and FITs across a network
> >   via TCP/IP.  Could we add a couple of methods/properties to the
camera
> > interface?
> >
> >         1. (Method) SaveImage(ByVal val As ImageType) As Boolean
> >                 - return TRUE if successful.
> >
> >                 - Public Enum ImageType
> >                         imageJPG = x
> >                         imageFIT = x + 1
> >                         ...
> >                   End Enum
> >
> >                 - This will allow a TCP/IP client the ability to
have a Camera server
> >                   save an image in a given format.  (JPG and FIT
are the only ones
> >               I know about).
>
> I have fundamental issues with this.  It would require all camera
interfaces to
> include JPEG & FITS I/O modules (TIFF? BMP? PNG? SBIG?), which is
inefficient
> and a barrier to the development of new interfaces (since every
developer would
> have to write them!).  The various file formats have all sorts of
limitations
> and options (e.g. JPEG is 8 bit... how to save 16-bit image?), and
this would
> have to be accomodated.
>
> It would be more appropriate for someone to create a separate
helper object
> which can write various file formats to disk.  (FYI, this
capability is included
> in MaxIm DL V3 via an ASCOM interface.)
>

I second that. Having a single group of image save/load routines
would be vastly superior and would much better assure that everyone
who wrote compliant code could read and write everybody's images.
Currently, with the use of subformats, proprietary tags, signed vs.
unsigned, etc., it can be a challenge to load an image in a program
other than the one in which it was saved.

> >         2. (Property) Get ImageSize(ByVal val As ImageType) As
Long
> >
> >                 - return the size of the (ImageType) image.
>
> This would be redundant.  The information is automatically included
in the
> ImageArray because it is a SAFEARRAY.  To determine the size of the
array itself
> you can read CameraXSize and CameraYSize.
>

From what I can tell of the MS documentation on SAFEARRAYs, you can
indeed extract the dimensions of the array. However, I can't tell if
they guarantee that the size is just the dimensions multiplied
together.

However, I do know in general that it is dangerous to assume that
ImageSize = xSize * ySize * bytesPerPixel. I have worked with some
cameras and their associated underlying imaging libraries that must
work on a four byte boundary, for example. So the image size in bytes
is often larger than what would be indicated by the number of pixels
in the image itself.

Also, another comment:
>NumX
>Property
>        CCDCamera.NumX (Short)
>Syntax
>        CCDCamera.NumX [= Short]
>Remarks
>Sets the subframe width. Also returns the current value.
>
>NumY
>Property
>        CCDCamera.NumY (Short)
>Syntax
>        CCDCamera.NumY [= Short]
>Remarks
>Sets the subframe height. Also returns the current value.

It's probably too late to alter this naming, but if the chance is
there, I'd lobby to pick more meaningful naming. Someone looking at
code and seeing myCamera.NumX would have no idea what the variable
did. Why not use something like CCDCamera.RegionYSize or
CCDCamera.RegionHeight?

Regards,
Ted Inoue

#212 From: "Douglas B. George" <dgeorge@...>
Date: Wed Jun 13, 2001 6:04 pm
Subject: Re: [ASCOM] Re: A possible ASCOM Camera Interface
dgeorge@...
Send Email Send Email
 
etinoue@... wrote:

> >From what I can tell of the MS documentation on SAFEARRAYs, you can
> indeed extract the dimensions of the array. However, I can't tell if
> they guarantee that the size is just the dimensions multiplied
> together.
>
> However, I do know in general that it is dangerous to assume that
> ImageSize = xSize * ySize * bytesPerPixel. I have worked with some
> cameras and their associated underlying imaging libraries that must
> work on a four byte boundary, for example. So the image size in bytes
> is often larger than what would be indicated by the number of pixels
> in the image itself.

The bytes per pixel for the SAFEARRAY is determined by the data type.

> It's probably too late to alter this naming, but if the chance is
> there, I'd lobby to pick more meaningful naming. Someone looking at
> code and seeing myCamera.NumX would have no idea what the variable
> did. Why not use something like CCDCamera.RegionYSize or
> CCDCamera.RegionHeight?

Didn't think of that at the time!

Doug


--
Doug George

=============================================================
      Diffraction Limited                Cyanogen Division
      Industrial Products                Astronomy Products
http://www.diffractionlimited.com     http://www.cyanogen.com
  dgeorge@...        dgeorge@...
     Phone:  (613) 225-9852            Sales:  (613) 225-2732
      Fax:  (613) 225-9688              Fax:  (613) 225-9688
=============================================================

#213 From: "Dustin Moore" <dustin.moore@...>
Date: Thu Jun 14, 2001 1:31 am
Subject: Julian Date Calculation
dustin.moore@...
Send Email Send Email
 
The helper class util no longer includes a Util.SysJulianDate
or a Util.SysUTCDate. Is there a cute way to calculate the
current time or UTC date from the system clock?

#214 From: "Bob Denny" <rdenny@...>
Date: Thu Jun 14, 2001 1:58 am
Subject: Re: [ASCOM] Julian Date Calculation
rdenny@...
Send Email Send Email
 
Wow those were eliminated last year! I thinned the helper to include
only those things that would be of common interest to driver writers,
not general programming :-))) The ACP2 Util class has them, and much
more. THe Helper.Util is just a subset of ACP.Util that I carved out and
released open source.

   -- Bob


Dustin Moore wrote:
>
> The helper class util no longer includes a Util.SysJulianDate
> or a Util.SysUTCDate. Is there a cute way to calculate the
> current time or UTC date from the system clock?
>
> To unsubscribe from this group, send an email to:
> ASCOM-Talk-unsubscribe@egroups.com
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

#215 From: "Bob Denny" <rdenny@...>
Date: Mon Jun 18, 2001 5:58 pm
Subject: Re: [ASCOM] Camera Interface Standard
rdenny@...
Send Email Send Email
 
Doug --

The camera interface proposal looks good! Of course I have a few
comments :-)

I abslutely agree with "keep it simple"

I'm almost neutral about adding "extension" properties and methods to
the base standard versus using two interfaces. I assume we're not
talking about interfaces in the low-level COM sense, but separate
CoClasses (MaxIM.Camera and MaxIm.CameraExtraStuff or whatever), right?
Automation (and by extension ASCOM) can't handle CoClasses with multiple
COM interfaces (well, execpt IUnknown and IDispatch of course!).

CCDCamera.CameraX/YSize - These could be properties Rows and Columns. At
a minimum, the "camera" in the property name might be considered
redunant. Cosmetic at best.

CCDCamera.ImageArray - Probably should be a SAFEARRAY of VARIANT
containing VT_LONG, not SAFEARRAY of long. I think you actually do this
in Maxim, so this may jsut be a clarification. Script engines require
SAFEARRAY of VARIANT.

CCDCamera.ImageArray - It might be useful to look around at the objects
and controls that handle image format conversion and compression (e.g.
LEADTools, etc.) to see how they expect image arrays to be supplied.
Besides the basic SAFEARRAY (which is ESSENTIAL), it might be good to
have some other "opaque" datatype that could be fed to these components
without having to write error-prone and possibly slow conversion code.

CCDCamera.LinkEnabled - Might be Connected to correspond with the
property in Telescope.

CCCDCamera.LinkEnabled - Should raise an error if the connection failed,
setting it to True, as well as returning False from subsequent checks of
the property value.

CCDCamera.PixelSizeX/Y - I am opposed to using "magic" values to
indicate errors. If the camera doesn't support returning the X/Y pixel
dimensions, then it should raise an automation exception.

In the Telescope standard, a specific error code is designated to mean
"not supported". The error code is, in VB, vbObjectError + &H400, in
C++, FACILITY_ITF + 0x400. Something like this should be adopted in the
Camera standard, and that same value probably should be used. Also, in
Telescope, the error messages returned by "not supported" must include
what it is that isn't supported, not just "unsupported" or something
akin to the old BASIC "syntax error" :-))) In the same vein, the

If the link is disconnected, does the cooler shut off? This could be a
concern. I vote for not changing cooler state unless CoolerOn property
is explicitly changed.

There should be specific language prohibiting timing windows between
Expose() and ShutterOpen. There must be no possibility of reading
ShutterOpen=False between the return of Expose() and the completion of
the exposure.

CCDCamera.StartX/Y - 0-based pixels or 1-based? Of course it should be
0, right? But FITS starts with 1...

If Camera.HasShutter = False, then calling Camera.Expose(duration,
False, filter) should raise an exception indicating that the dark frame
cannot be taken because the camera has no shutter.

I ABSOLUTELY AGREE that there must be a SetupDialog function.

   -- Bob

#216 From: "Douglas B. George" <dgeorge@...>
Date: Mon Jun 18, 2001 8:34 pm
Subject: Re: [ASCOM] Camera Interface Standard
dgeorge@...
Send Email Send Email
 
Bob Denny wrote:
>
> I'm almost neutral about adding "extension" properties and methods to
> the base standard versus using two interfaces. I assume we're not
> talking about interfaces in the low-level COM sense, but separate
> CoClasses (MaxIM.Camera and MaxIm.CameraExtraStuff or whatever), right?
> Automation (and by extension ASCOM) can't handle CoClasses with multiple
> COM interfaces (well, execpt IUnknown and IDispatch of course!).

Well, of course they could have extra interfaces.  But I was thinking that there
could be extra properties and methods that would be for proprietary features.
However, they would be required to be fully operational without reference to
these extra interface elements.

> CCDCamera.CameraX/YSize - These could be properties Rows and Columns. At
> a minimum, the "camera" in the property name might be considered
> redunant. Cosmetic at best.

There's a reason for that.  It is to prevent any confusion with the subframe
size.

> CCDCamera.ImageArray - Probably should be a SAFEARRAY of VARIANT
> containing VT_LONG, not SAFEARRAY of long. I think you actually do this
> in Maxim, so this may jsut be a clarification. Script engines require
> SAFEARRAY of VARIANT.

Unfortunately, SAFEARRAY of VARIANT consumes waaaay too much memory.  26 bytes
per pixel!  Try transferring a 6 megapixel image this way... it'll bring ANY
computer to it's knees.

> CCDCamera.ImageArray - It might be useful to look around at the objects
> and controls that handle image format conversion and compression (e.g.
> LEADTools, etc.) to see how they expect image arrays to be supplied.
> Besides the basic SAFEARRAY (which is ESSENTIAL), it might be good to
> have some other "opaque" datatype that could be fed to these components
> without having to write error-prone and possibly slow conversion code.

Personally, I'd prefer to leave such enhancements to a separate helper object.

> CCDCamera.LinkEnabled - Might be Connected to correspond with the
> property in Telescope.

No objection there.

> CCCDCamera.LinkEnabled - Should raise an error if the connection failed,
> setting it to True, as well as returning False from subsequent checks of
> the property value.

Yes.

> CCDCamera.PixelSizeX/Y - I am opposed to using "magic" values to
> indicate errors. If the camera doesn't support returning the X/Y pixel
> dimensions, then it should raise an automation exception.

Okay.

> In the Telescope standard, a specific error code is designated to mean
> "not supported". The error code is, in VB, vbObjectError + &H400, in
> C++, FACILITY_ITF + 0x400. Something like this should be adopted in the
> Camera standard, and that same value probably should be used. Also, in
> Telescope, the error messages returned by "not supported" must include
> what it is that isn't supported, not just "unsupported" or something
> akin to the old BASIC "syntax error" :-))) In the same vein, the

Okay.

> If the link is disconnected, does the cooler shut off? This could be a
> concern. I vote for not changing cooler state unless CoolerOn property
> is explicitly changed.

The answer to that should be "no".

> There should be specific language prohibiting timing windows between
> Expose() and ShutterOpen. There must be no possibility of reading
> ShutterOpen=False between the return of Expose() and the completion of
> the exposure.

I suppose, although ShutterOpen should not be used to determine end of
exposure.  It's really intended for display purposes only.  To be honest, I
wouldn't be opposed to deleting this item as unnecessary.

> CCDCamera.StartX/Y - 0-based pixels or 1-based? Of course it should be
> 0, right? But FITS starts with 1...

Zero.

> If Camera.HasShutter = False, then calling Camera.Expose(duration,
> False, filter) should raise an exception indicating that the dark frame
> cannot be taken because the camera has no shutter.

I think the parameter should just be ignored if not HasShutter.

> I ABSOLUTELY AGREE that there must be a SetupDialog function.

Ok.

Thanks for the feedback!

Doug George

=============================================================
      Diffraction Limited                Cyanogen Division
      Industrial Products                Astronomy Products
http://www.diffractionlimited.com     http://www.cyanogen.com
  dgeorge@...        dgeorge@...
     Phone:  (613) 225-9852            Sales:  (613) 225-2732
      Fax:  (613) 225-9688              Fax:  (613) 225-9688
=============================================================

#217 From: "Bob Denny" <rdenny@...>
Date: Tue Jun 19, 2001 4:29 am
Subject: Re: [ASCOM] Camera Interface Standard
rdenny@...
Send Email Send Email
 
> ShutterOpen should not be used to determine end of exposure

Why not? I'd like to use it to determine when it is safe to move the
telescope, so that slewing and downloading could be overlapped for
maximum data acquisition efficiency. Is this not the intent of
ShutterOpen?

   -- Bob

#218 From: "Bob Denny" <rdenny@...>
Date: Tue Jun 19, 2001 4:32 am
Subject: Re: [ASCOM] Camera Interface Standard
rdenny@...
Send Email Send Email
 
Oops, one more:

> > If Camera.HasShutter = False, then calling Camera.Expose(duration,
> > False, filter) should raise an exception indicating that the dark
> > frame cannot be taken because the camera has no shutter.

> I think the parameter should just be ignored if not HasShutter.

Well, if someone calls Camera.Expose(foo, True, bar) and gets an image,
it should be a Dark exposure. That is, the call to Expose() should
either produce the intended result or an error. It is, IMHO, a bug if
you call for a dark and get a light frame and no error.

   -- BOb

#219 From: "Arne Danielsen" <arnedani@...>
Date: Tue Jun 19, 2001 3:44 pm
Subject: Re: [ASCOM] Chooser Generalization
arnedani@...
Send Email Send Email
 
Bob,

Sorry about the late response! I've been away to Boston, MA for a while and have
just got back.

----- Original Message -----
From: "Bob Denny" <rdenny@...>
To: "ASCOM Talk" <ASCOM-Talk@yahoogroups.com>
Sent: Friday, June 08, 2001 3:32 PM
Subject: [ASCOM] Chooser Generalization


>
> Arne Danielsen - I will rebuild the Vixen driver from the sources you
> supplied and that's what will be in the ASCOM Platform installer.
>

This sounds good!! I've downloaded the new ASCOM Platform, but I haven't had any
time to play around with it yet.

Thnx,
Arne
--
Arne Danielsen
Langhussenter 15, 1405 Langhus, Norway
mailto:arne.danielsen@...
http://arnedani.home.online.no/
N59°45'14"  E10°50'38" A115m

#220 From: "Dustin Moore" <dustin.moore@...>
Date: Mon Jun 25, 2001 4:23 am
Subject: LXP Driver can't do short slews
dustin.moore@...
Send Email Send Email
 
Someone needs to correct me if I'm wrong, (wouldn't be the
first time this week), but I've been having problems with
very short slews and the LXP code and I think I know the problem.

To paraphrase the code in SlewToTargetAsync()

Public Sub SlewToTargetAsync()

  If (R.A. Slew Distance) > 27 ArcSec Or (Dec Slew Distance) > 28.8
ArcSec Then

     Me.CommandBlind "MS"
     [handle reported failures]
     [check that scope is actually moving, else retry]
  End If

  m_bSlewing = True

End Sub


Now, it seems to me that if you have a very short slew then the
slewing flag will be set without actually having commanded the
slew with Me.CommandBlind "MS". I could not get any of my short slews
to go last night and at the moment I believe this to be the
obvious source.

#221 From: "Bob Denny" <rdenny@...>
Date: Tue Jun 26, 2001 4:11 am
Subject: Re: [ASCOM] LXP Driver can't do short slews
rdenny@...
Send Email Send Email
 
Dustin --

You're right that the m_bSlewing will get set whether or not the scope
was actually moved. However, the next check to see if the scope is
slewing should report false, and clear the m_bSlewing flag. If you look
at the logic in m_Timer_Tick() you'll see the slew sensing logic. By
setting the m_bSlewing flag unconditionally, it will go through the
post-slew delay (end tix) and settling logic whether a slew was actually
commanded or not.

What problems _are_ you having with very short slews, and what is "very
short". What scope are you using?

   -- Bob

#222 From: "Dustin Moore" <dustin.moore@...>
Date: Tue Jun 26, 2001 6:29 am
Subject: Re: [ASCOM] LXP Driver can't do short slews
dustin.moore@...
Send Email Send Email
 
--- In ASCOM-Talk@y..., "Bob Denny" <rdenny@d...> wrote:

> What problems _are_ you having with very short slews, and what is "very
> short". What scope are you using?

After a more rigorous study of the Bartel scope Lx200 emulation
it is clear that it doesn't execute the slews to a precision of
greater than one arc-minute. A symptom of this is that the LXP driver
is unable to start slews of under one arc-minute and after retrying
five times delivers the "Unknown Lx200 error."

This is in no way the fault of the LXP driver. I think the proper thing
to do is for me to write an ASCOM telescope driver just for the
Bartel system.

I've bothered Bob way too many times this week but it's only because
the software he has sponsored is so great.

#223 From: charlie@...
Date: Tue Jun 26, 2001 11:26 am
Subject: ASCOM Roof Class
charlie@...
Send Email Send Email
 
I am building a roll off roof in the near future for my scope. I
would like to control it remotely via script just like any other
ASCOM object.

The following is my proposed class interface for the roof. It was
based loosely on a similar proposal from Mike Stewart on this group.

'Description:
'This .exe will have a UI for local control, and will expose the
following
'properties and methods.  The ASCOM server computer will link to an
embeded micro
'black box over a serial link. The roof will be actually closed by a
cable/weight
'system, with the motor energised only to open the roof; a brake will
then be
'energised to hold the roof open. Any system malfunction will then
automatially
'close the roof.


   'PROPERTIES--------------------------------------------

  Public Property Let Connect(ByVal bConnected As Boolean)
          'return error if not able to connect
          'set to true to connect link to  microcontroller.

  End Property

Public Property Get Connected() As Boolean
          'Return true if link connected to  control.

   End Property

Public Property Get DriverInfo() As String
          'Descriptive and version information about this
          'ASCOM  driver
          DriverInfo = "This driver opens and closes a roll off "
  End Property

Public Property Get Description() As String
         'The long description of the roof driver /hardware combo
  End Property

Public Property Get Name() As String
          'The short name of the roof control, for display purposes
   End Property

Public Property Get Closed() As Boolean
         'Returns true if the roof is in the closed
         'position.
   End Property

Public Property Get Opened() As Boolean
         'Returns true if roof in fully opened position.
         'Must be received at least every "keep_open" minutes or micro
will shut
         'roof as a fail safe measure. If "keep_open" minutes set to
0, keep open
         'failsafe is disabled.

   End Property

Public Property Get Moving() As Boolean
         'Returns true if roof in motion
   End Property

'METHODS ----------------------------------------------

Public Sub OpenNow()
         'Return true if successful.
End Sub

Public Sub CloseNow()
         'Return true if successful.
End Sub

Public Sub SetUpDialog()
         'Brings up the setup dialog to
         'set up COM Port and "keep_open" minutes.
End Sub


Please make any suggestions, comments, etc.

Thank you.

Charlie Habekost

#224 From: "Bob Denny" <rdenny@...>
Date: Tue Jun 26, 2001 2:10 pm
Subject: Re: [ASCOM] LXP Driver can't do short slews
rdenny@...
Send Email Send Email
 
Dustin --

I guess one way to handle it would be to modify the LXP driver and
re-save it as a "Bartels" driver. Another solution would be to modify
the Bartels software so it acts more like the LX200. But that would mean
everyone with a Bartels drive would have to update before using ASCOM.
Is the Bartels drive a microprocessor-based system? So you'd have to
change PROMs? If so, the latter solution is not too practical...

   -- Bob

#225 From: "Bob Denny" <rdenny@...>
Date: Tue Jun 26, 2001 2:12 pm
Subject: Re: [ASCOM] ASCOM Roof Class
rdenny@...
Send Email Send Email
 
I'd like to see Charlie Habekost's Roof and Mike Stewart's Dome classes
integrated into one.

#226 From: "Mike Stewart" <stewart@...>
Date: Tue Jun 26, 2001 4:06 pm
Subject: RE: [ASCOM] ASCOM Roof Class
stewart@...
Send Email Send Email
 
Charlie,

I believe the dome class that I have proposed has all of the
functionality that you require. The following properties and
methods are identical in both the Roof Class and the Dome class:

Properties
  Read/Write Connect
  Read       DriverInfo
  Read       Name
  Read       Description

Methods
             SetupDialog

As far as the shutter status (roof status) and open and close,

The Roof's class properties Get Open and Get Closed are the same as
the Dome's class property Get ShutterStatus.

The Roof's class methods OpenNow and CloseNow are the same as
the Dome's class methods openShutter and closeShutter.

If you feel like the dome class does not contain all of the functionality
that you need, lets add to it (dome class).  There is no point in having two
seperate
ASCOM classes which ultimately do the same thing.  As for the name of the
class, Roof vs. Dome, I prefer Dome, but let's see how everybody else feels.



-----Original Message-----
From: charlie@... [mailto:charlie@...]
Sent: Tuesday, June 26, 2001 6:26 AM
To: ASCOM-Talk@yahoogroups.com
Subject: [ASCOM] ASCOM Roof Class


I am building a roll off roof in the near future for my scope. I
would like to control it remotely via script just like any other
ASCOM object.

The following is my proposed class interface for the roof. It was
based loosely on a similar proposal from Mike Stewart on this group.

'Description:
'This .exe will have a UI for local control, and will expose the
following
'properties and methods.  The ASCOM server computer will link to an
embeded micro
'black box over a serial link. The roof will be actually closed by a
cable/weight
'system, with the motor energised only to open the roof; a brake will
then be
'energised to hold the roof open. Any system malfunction will then
automatially
'close the roof.


   'PROPERTIES--------------------------------------------

  Public Property Let Connect(ByVal bConnected As Boolean)
          'return error if not able to connect
          'set to true to connect link to  microcontroller.

  End Property

Public Property Get Connected() As Boolean
          'Return true if link connected to  control.

   End Property

Public Property Get DriverInfo() As String
          'Descriptive and version information about this
          'ASCOM  driver
          DriverInfo = "This driver opens and closes a roll off "
  End Property

Public Property Get Description() As String
         'The long description of the roof driver /hardware combo
  End Property

Public Property Get Name() As String
          'The short name of the roof control, for display purposes
   End Property

Public Property Get Closed() As Boolean
         'Returns true if the roof is in the closed
         'position.
   End Property

Public Property Get Opened() As Boolean
         'Returns true if roof in fully opened position.
         'Must be received at least every "keep_open" minutes or micro
will shut
         'roof as a fail safe measure. If "keep_open" minutes set to
0, keep open
         'failsafe is disabled.

   End Property

Public Property Get Moving() As Boolean
         'Returns true if roof in motion
   End Property

'METHODS ----------------------------------------------

Public Sub OpenNow()
         'Return true if successful.
End Sub

Public Sub CloseNow()
         'Return true if successful.
End Sub

Public Sub SetUpDialog()
         'Brings up the setup dialog to
         'set up COM Port and "keep_open" minutes.
End Sub


Please make any suggestions, comments, etc.

Thank you.

Charlie Habekost


To unsubscribe from this group, send an email to:
ASCOM-Talk-unsubscribe@egroups.com



Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

#227 From: John Oliver <oliver@...>
Date: Tue Jun 26, 2001 4:21 pm
Subject: Re: [ASCOM] ASCOM Roof Class
oliver@...
Send Email Send Email
 
Mike Stewart wrote:

> Charlie,
>
> I believe the dome class that I have proposed has all of the
> functionality that you require. The following properties and
> methods are identical in both the Roof Class and the Dome class:
>
> Properties
>  Read/Write Connect
>  Read       DriverInfo
>  Read       Name
>  Read       Description
>
> Methods
>             SetupDialog
>
> As far as the shutter status (roof status) and open and close,
>
> The Roof's class properties Get Open and Get Closed are the same as
> the Dome's class property Get ShutterStatus.
>
> The Roof's class methods OpenNow and CloseNow are the same as
> the Dome's class methods openShutter and closeShutter.
>
> If you feel like the dome class does not contain all of the functionality
> that you need, lets add to it (dome class).  There is no point in having two
> seperate
> ASCOM classes which ultimately do the same thing.  As for the name of the
> class, Roof vs. Dome, I prefer Dome, but let's see how everybody else feels.
>

I agree ... the functionality is there in the dome class.  However, how
about changing the terminology to that used above in the roof class for
more generality?  So use
Get Open/Closed   and OpenNow/CloseNow

--
John Oliver

#228 From: "Mike Stewart" <stewart@...>
Date: Tue Jun 26, 2001 4:44 pm
Subject: RE: [ASCOM] ASCOM Roof Class
stewart@...
Send Email Send Email
 
Well, there is no property Get Open and Get Closed there is only
one property which returns an enumerated type called Get ShutterStatus.
I can't think of better terminology for this property.

As far as the the OpenNow and CloseNow terminology, how about simply
Open and Close instead of openShutter and closeShutter. This way, when
implimented it would be:

    dome.Open
    dome.Close

Michael Stewart


-----Original Message-----
From: John Oliver [mailto:oliver@...]
Sent: Tuesday, June 26, 2001 11:21 AM
To: ASCOM-Talk@yahoogroups.com
Subject: Re: [ASCOM] ASCOM Roof Class


Mike Stewart wrote:

> Charlie,
>
> I believe the dome class that I have proposed has all of the
> functionality that you require. The following properties and
> methods are identical in both the Roof Class and the Dome class:
>
> Properties
>  Read/Write Connect
>  Read       DriverInfo
>  Read       Name
>  Read       Description
>
> Methods
>             SetupDialog
>
> As far as the shutter status (roof status) and open and close,
>
> The Roof's class properties Get Open and Get Closed are the same as
> the Dome's class property Get ShutterStatus.
>
> The Roof's class methods OpenNow and CloseNow are the same as
> the Dome's class methods openShutter and closeShutter.
>
> If you feel like the dome class does not contain all of the functionality
> that you need, lets add to it (dome class).  There is no point in having
two
> seperate
> ASCOM classes which ultimately do the same thing.  As for the name of the
> class, Roof vs. Dome, I prefer Dome, but let's see how everybody else
feels.
>

I agree ... the functionality is there in the dome class.  However, how
about changing the terminology to that used above in the roof class for
more generality?  So use
Get Open/Closed   and OpenNow/CloseNow

--
John Oliver


To unsubscribe from this group, send an email to:
ASCOM-Talk-unsubscribe@egroups.com



Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

#229 From: charlie@...
Date: Tue Jun 26, 2001 11:07 pm
Subject: Re: [ASCOM] LXP Driver can't do short slews
charlie@...
Send Email Send Email
 
Bob-

Mel's system is run on a pc (dos), and is disk based, written in
borland c++ v4.5, and as such is very maintainable. If anyone knows
exactly what is wrong, I am sure that Mel will be happy for the
feedback. He has been willing in the past to make any code changes
needed, esp if it is considered a bug.

I made changes to the source that Mel incorporated so that it is not
necessary for me to recompile each time a new version is released.

The source is available at:scope-drive@yahoogroups.com, and revisions
come out about every month or more.

Charlie Habekost

--- In ASCOM-Talk@y..., "Bob Denny" <rdenny@d...> wrote:
> Dustin --
>
> I guess one way to handle it would be to modify the LXP driver and
> re-save it as a "Bartels" driver. Another solution would be to
modify
> the Bartels software so it acts more like the LX200. But that would
mean
> everyone with a Bartels drive would have to update before using
ASCOM.
> Is the Bartels drive a microprocessor-based system? So you'd have to
> change PROMs? If so, the latter solution is not too practical...
>
>   -- Bob

#230 From: charlie@...
Date: Tue Jun 26, 2001 11:21 pm
Subject: Re: [ASCOM] ASCOM Roof Class
charlie@...
Send Email Send Email
 
Bob, Mike and John-

I agree, I just don't know how Mike and I will use the same class to
talk to different micros; if it is just a matter of agreeing on a
common class_to_micro instruction set and protocol I think why not?

Maybe I am missing something; I am sure that I am a newbie to this
area of programming. Feel free to clue me in.

I used CloseNow OpenNow, since close and open are keywords and I got
an error when I tried to make. Again see para above.

Charlie Habekost






--- In ASCOM-Talk@y..., "Mike Stewart" <stewart@p...> wrote:
> Well, there is no property Get Open and Get Closed there is only
> one property which returns an enumerated type called Get
ShutterStatus.
> I can't think of better terminology for this property.
>
> As far as the the OpenNow and CloseNow terminology, how about simply
> Open and Close instead of openShutter and closeShutter. This way,
when
> implimented it would be:
>
>    dome.Open
>    dome.Close
>
> Michael Stewart
>
>
> -----Original Message-----
> From: John Oliver [mailto:oliver@a...]
> Sent: Tuesday, June 26, 2001 11:21 AM
> To: ASCOM-Talk@y...
> Subject: Re: [ASCOM] ASCOM Roof Class
>
>
> Mike Stewart wrote:
>
> > Charlie,
> >
> > I believe the dome class that I have proposed has all of the
> > functionality that you require. The following properties and
> > methods are identical in both the Roof Class and the Dome class:
> >
> > Properties
> >  Read/Write Connect
> >  Read       DriverInfo
> >  Read       Name
> >  Read       Description
> >
> > Methods
> >             SetupDialog
> >
> > As far as the shutter status (roof status) and open and close,
> >
> > The Roof's class properties Get Open and Get Closed are the same
as
> > the Dome's class property Get ShutterStatus.
> >
> > The Roof's class methods OpenNow and CloseNow are the same as
> > the Dome's class methods openShutter and closeShutter.
> >
> > If you feel like the dome class does not contain all of the
functionality
> > that you need, lets add to it (dome class).  There is no point in
having
> two
> > seperate
> > ASCOM classes which ultimately do the same thing.  As for the
name of the
> > class, Roof vs. Dome, I prefer Dome, but let's see how everybody
else
> feels.
> >
>
> I agree ... the functionality is there in the dome class.  However,
how
> about changing the terminology to that used above in the roof class
for
> more generality?  So use
> Get Open/Closed   and OpenNow/CloseNow
>
> --
> John Oliver
>
>
> To unsubscribe from this group, send an email to:
> ASCOM-Talk-unsubscribe@egroups.com
>
>
>
> Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/

Messages 201 - 230 of 30128   Oldest  |  < Older  |  Newer >  |  Newest
Add to My Yahoo!      XML What's This?

Copyright © 2010 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines NEW - Help