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: 3669
  • 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 189 - 218 of 29972   Oldest  |  < Older  |  Newer >  |  Newest
Messages: Show Message Summaries Sort by Date ^  
#189 From: "Mike Stewart" <stewart@...>
Date: Tue Jun 5, 2001 4:25 pm
Subject: Dome Proposal
stewart@...
Send Email Send Email
 
Hello,

This is my first posted message on the ASCOM talk site, so I probably
should introduce myself.

My name is Michael Stewart.  I work for Dr. Greg Guzik at LSU.  I am
currently developing remote telescope control software (TCP/IP client/
server based control software).  We have a good deal of the code currently
working (i.e. can control the dome and the telescope through
PC-TCS Native protocol, the apogee camera through Maxim, and some other
observatory features over the internet).  But, we are not ASCOM compliant
and would very
much like to meet the standards in order to become ASCOM compliant (at least
on
the tcp/ip client end).

I was thinking that we could come up with a ASCOM Dome standard and
implement
it as a new class.  I've taken a crack at it, and would very much like
some input/advice.  I envision this as an ASCOM Dome template much like the
ASCOM
Telescope template in ASCOM Beta Version 5.

Please add to/change as you see fit.


Michael Stewart


Possible Dome Class:

Properties
----------

    Get CanAutoDome As Boolean            Returns true if driver is cabable
of
                                          autodome

    Get CanOpenUpperShutter As Boolean    Returns true if driver is cabable
of
                                          opening an upper shutter

    Get CanOpenLowerShutter As Boolean    Returns true if driver is cabable
of
                                          opening a lower shutter

    Get CanGetDomeAzimuth As Boolean      Returns true if driver is cabable
of
                                          retreiving dome azimuth

    Get CanSetDomeAzimuth As Boolean      Returns true if driver is cabable
of
                                          setting dome azimuth

    Get CanStowDome As Boolean            Returns true if driver is cabable
of
                                          stowing the dome.

    Get Connected As Boolean              Return true if link connected to
dome control.

    Let Connected(ByVal val As Boolean)   Set to true to connect link to dome
control.

    Get DriverInfo As String              Descriptive and version information
about this
                                          ASCOM dome driver

    Get Description As String             The long description of the dome

    Get Name As String                    The short name of the dome, for
display purposes

    Get AutoDome As Boolean               Returns true if autodome is ON

    Get UpperShutter As Boolean           Returns true if open shutter is
open,
                                          false if it is closed or in motion

    Get LowerShutter As Boolean           Returns true if lower shutter is
open,
                                          false if it is closed or in motion

    Get UpperShutterStatus As domeStatus  Returns an enumerated type defined
within
                                          the Dome class:

                                                       Public Enum domeStatus
                                                          mtnUnknown = 48
                                                          domeOpen = 49
                                                          domeClosed = 50
                                                          domeMotion = 51
                                                       End Enum

    Get LowerShutterStatus As domeStatus  Returns enumerated status of the
lower
                                          shutter.

    Get DomeAzimuth As Double             Returns the current dome Azimuth

    Get StowDome As Boolean               Returns true if the dome is in the
stow
                                          position.

Methods
-------

    AutoDomeON() As Boolean              Turn ON autodome; Return true if
successful

    AutoDomeOFF() As Boolean             Turn OFF autodome; Return true if
successful

    OpenUpperShutter() As Boolean        Open the upper shutter; Return true
if successful

    CloseUpperShutter() As Boolean       Close the upper shutter; Return true
if successful

    OpenLowerShutter() As Boolean        Open the lower shutter; Return true
if successful

    CloseLowerShutter() As Boolean       Close the lower shutter; Return true
if successful

    StowDome() As Boolean                Move the dome to stow position;
Return true if successful

    RotateDomeAbsolute
          (ByVal val As Double)
           As Boolean                    Rotate the dome to the azimuth
'val'; Return true if successful

    RotateDomeRelative
          (ByVal val As Double)
           As Boolean                    Rotate the dome relative to current
azimuth
                                         +/- val; Return true if successful

    SetUpDialog()                        Brings up the setup dialog box; used
to
                                         set up any required settings, eg.
COM Port.

#190 From: John Oliver <oliver@...>
Date: Tue Jun 5, 2001 5:11 pm
Subject: Re: [ASCOM] Dome Proposal
oliver@...
Send Email Send Email
 
Mike Stewart wrote:

> Hello,
>
> This is my first posted message on the ASCOM talk site, so I probably
> should introduce myself.
>
> My name is Michael Stewart.  I work for Dr. Greg Guzik at LSU.  I am
> currently developing remote telescope control software (TCP/IP client/
> server based control software).  We have a good deal of the code currently
> working (i.e. can control the dome and the telescope through
> PC-TCS Native protocol, the apogee camera through Maxim, and some other
> observatory features over the internet).  But, we are not ASCOM compliant
> and would very
> much like to meet the standards in order to become ASCOM compliant (at least
> on
> the tcp/ip client end).
>
> I was thinking that we could come up with a ASCOM Dome standard and
> implement
> it as a new class.  I've taken a crack at it, and would very much like
> some input/advice.  I envision this as an ASCOM Dome template much like the
> ASCOM
> Telescope template in ASCOM Beta Version 5.
>
> Please add to/change as you see fit.
>
>
> Michael Stewart

At first glance, this appears to work for me. Our dome shutter control
has just been succesfully tested so  I will be writing a dome object
over the next few weeks and I will use this template and report comments
here.  Note: I don't know what "autodome" refers to ... possible a
system of automatic dome rotation slaved to telescope position?  Do we
need to define azimuth zero location?  I mention this because
astronomers use both N and S as azimuth 0 degrees.
--
John Oliver
Astronomy Department
University of Florida

#191 From: "Bob Denny" <rdenny@...>
Date: Wed Jun 6, 2001 2:05 pm
Subject: Re: [ASCOM] Dome Proposal
rdenny@...
Send Email Send Email
 
Mike --

This looks VERY well thought out. Congratulations. I have a few
comments:

(1) The DomeAzimuth property could be named just Azimuth. In code it
would be

   Set dome = CreateObject("LSU.Dome")
   az = dome.DomeAzimuth

or more simply

   az = dome.Azimuth

Since the Azimuth property belongs to the Dome object anyway, the 'Dome"
part of the property name is redundant.

(2) Likewise the StowDome property could be named Stowed

(3) Rather than use a RotateDome() method, consider Property Let
Azimuth. It's simpler and you are changing the Azimuth property anyway.
See my notes on asynchronous operation below. To do a relative move (and
eliminate the RotateDomeRelative() method):

    dome.Azimuth = dome.Azimuth + 25.5  ' Move 25.5 deg from cur pos

(4) AutoDomeON()/AutoDomeOFF() could be a Get/Let Auto property:

    dome.Auto = True

and the benefit is

    If dome.Auto Then ...

(5) In order to simplify and at the same time generalize the shutter
control, consider Open() and Close() and the Get ShutterStatus property
which take parameters:

      Public Enum ShutterType
          domeShutter = x
          domeUpperShutter = x + 1
          domeLowerShutter = y + 2
      End Enum

and make the two function calls have Default parameters with the default
value domeShutter. On a single shutter dome, this would eliminate the
Upper and Lower and the requirement for explaining that Upper means
"the" shutter on a single shutter dome, so calling dome.Open() would
just open it, etc. On a multi-shutter dome, you would call
dome.Open(domeUpperShutter) or dome.Open(domeLowerShutter).  Also, you
could call dome.Open() or dome.Open(domeShutter) on a multi-shutter dome
and have both/all shutters open.

(6) I might add a Status property for the dome itself. You could return
at least 'still', 'motion', 'stowed' and maybe some sort of "weather
failsafe" condition and stuff like that. This would eliminate the
separate StowDome or Stowed property, and provide an extensible general
way of inquiring about status.

Asynchronous Operation: By including the "motion" returns in the status
properties, I assume you plan to have the actions be asynchronous. That
is, for example if you change the dome's azimuth, the method call or
property Let would return immediately (or raise an error if the change
could not even be started). Then a script could poll the status (or the
Azimuth property for the dome if you choose to do that) to determine
completion. I think it's really important to have this asynchronous
capability. You don't want a script or client to be trapped waiting for
the dome controller.

Again, this is a really well thought out design. Let's se what other
comments appear...

   -- Bob

#192 From: "Bob Denny" <rdenny@...>
Date: Wed Jun 6, 2001 2:07 pm
Subject: Re: [ASCOM] Dome Proposal
rdenny@...
Send Email Send Email
 
I think we could settle on N referenced azimuth for use in the
interface. I would not like to see it support multiple conventions. All
other ASCOM components use N referenced azimuth.

   -- Bob

John Oliver wrote:
> astronomers use both N and S as azimuth 0 degrees.

#193 From: John Oliver <oliver@...>
Date: Wed Jun 6, 2001 2:21 pm
Subject: Re: [ASCOM] Dome Proposal
oliver@...
Send Email Send Email
 
Bob Denny wrote:

> I think we could settle on N referenced azimuth for use in the
> interface. I would not like to see it support multiple conventions. All
> other ASCOM components use N referenced azimuth.
>
>   -- Bob
>
> John Oliver wrote:
>
>> astronomers use both N and S as azimuth 0 degrees.
>
>
> 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/

I agree, my comment was to indicate that the zero point intended should
be stated explicitly in the docs (as it should be for the other ASCOM
components and ACP).

--
John

#194 From: "Mike Stewart" <stewart@...>
Date: Wed Jun 6, 2001 7:25 pm
Subject: Dome Proposal Revision1
stewart@...
Send Email Send Email
 
Hello,

Thankyou Bob, and John for responding to the dome Proposal.
I have made the changes ya'll have suggested, and here is
another try at an ASCOM compliant Dome class.

To answer John's question about autodome,  Autodome is the ability for
the dome to synchronize its movements with the movement of the
telescope.

As for the Azimuth Control,  I will only use the azimuth control
in emergency situations.  In fact I may never use it.  I will
use the property Stowed, and the Property Auto exclusively.
I am unfamiliar with the best way to implement the azimuth control, so
please feel free to add/change in anyway that may benefit.

It seems that we may be getting closer to a dome class that could
earn the right to be called ASCOM compliant.  Tell me what you think.

And again, please make suggestions, changes, and additions.

I do have a question about the Chooser Object.

The Chooser Method within the Chooser object allows an ASCOM client
the ability to choose between different Telescope drivers.  But will
it allow the ability to choose between different Dome drivers?

Michael Stewart


Possible ASCOM Dome Class:

PROPERTIES--------------------------------------------
------------------------------------------------------

    Get CanSetAuto As Boolean

          Returns true if driver is cabable of autodome
------------------------------------------------------

    Get CanOpenShutter As Boolean

          Returns true if driver is cabable of
          opening any shutters.
------------------------------------------------------

    Get CanGetAzimuth As Boolean

          Returns true if driver is cabable of
          retreiving dome azimuth
------------------------------------------------------

    Get CanSetAzimuth As Boolean

          Returns true if driver is cabable of
          setting dome azimuth
------------------------------------------------------

    Get CanStow As Boolean

          Returns true if driver is cabable of
          stowing the dome.
------------------------------------------------------

    Get Connected As Boolean

          Return true if link connected to dome control.
------------------------------------------------------

    Let Connected(ByVal val As Boolean)

          Set to true to connect link to dome control.
------------------------------------------------------

    Get DriverInfo As String

          Descriptive and version information about this
          ASCOM dome driver
------------------------------------------------------

    Get Description As String

          The long description of the dome
------------------------------------------------------

    Get Name As String

          The short name of the dome, for display purposes
------------------------------------------------------

    Get Auto As Boolean

          Returns true if autodome is ON
------------------------------------------------------

    Let Auto(ByVal val As Boolean)

          Set to true to enable autodome.
          Autodome syncs the movement of the
          dome with the movement of the telescope.
------------------------------------------------------

    Get ShutterStatus(Optional val As ShutterType = domeShutter) As
ShutterStatusType
          (This maybe better suited as a Method; I don't know.)

          I believe the Optional keyword allows the method to
          be called with no arguments at all.  If the method
          is called with no arguments, ShutterStatus should default
          to retrieving a shutter status left up to
          specific implementation

          Public Enum ShutterStatusType
              shutterUnknown = x
              shutterOPen = x + 1
              shutterClosed = x + 2
              shutterMotion = x + 3
          End Enum

          Public Enum ShutterType
              domeShutter = x
              domeUpperShutter = x + 1
              domeLowerShutter = x + 2
          End Enum
------------------------------------------------------

    Get Azimuth As Double

         Returns the current dome Azimuth
------------------------------------------------------

    Let Azimuth(ByVal val As Double) As Boolean

          Set the absolute or relative value of the
          of the dome azimuth.  Return true if operation
          successfully started.  This would be an
          asynchronous operation.  i.e. The ASCOM client
          is not hung until the dome is completed the rotation.
          This also means that the client will not know
          for sure that the dome has been successfully rotated
          until the client polls for an updated dome azimuth.
------------------------------------------------------

    Get Stowed As Boolean

          Returns true if the dome is in the stow
          position.
------------------------------------------------------

    Let Stowed(ByVal val As Boolean)

          Set to true to stow the dome. i.e. Returns the dome
          to a predefined position.

          This is necessary for our observatory (Highland Road
          Park Observatory) HRPO.  The electrical connection needed
          in order to open/close the shutters is only made when the
          dome is at a pre-defined azimuth.  It is cleaner to
          implement:
              dome.Stowed = true

          then it is to:
              dome.Azimuth = "some save pre-defined azimuth"
------------------------------------------------------

    Get Status As DomeStatusType

          Public Enum DomeStatusType
              domeStowed = x
              domeStill = x + 1
              domeMotion = x + 2

              "Please add to this DomeStatusType"
          End Enum

In regards to message 191, point (6), from Bob Denny;
would it be better to instead of
having a Get/Let Stowed, do the following?

    Let Status(ByVal val As DomeStatusType) As Boolean

          If DomeStatusType = domeStowed then Stow the Dome,

              If DomeStatusType = domeStill then

                  If DomeStatusType = domeMotion then
                      abort the domeMotion (dome rotation)
------------------------------------------------------


METHODS ----------------------------------------------
------------------------------------------------------

    OpenShutter(Optional val As ShutterType = domeShutter) As Boolean

         Open the upper, lower, or both shutters;
         Return true if successful.
         Asynchronous operation.
         If the method
         is called with no arguments, OpenShutter should default
         to opening whichever shutter or shutters.  Left up to
         specific implementation.
------------------------------------------------------

    CloseShutter(Optional val As ShutterType = domeShutter) As Boolean

         Close the upper shutter; Return true if successful.
         Asynchronous operation.
------------------------------------------------------
    SetUpDialog()

         Brings up the setup dialog box; used to
         set up any required settings, eg. COM Port.

#195 From: stewart@...
Date: Thu Jun 7, 2001 7:38 pm
Subject: Re: PROPOSAL: Focuser Interface
stewart@...
Send Email Send Email
 
Hello everybody,

I was wondering if an ASCOM Focuser Interface
has been agreed upon.

If it has, could somebody please post the ASCOM
Focuser class template?

If not, is there an ASCOM Focuser Interface that is
close to becoming ASCOM compliant?

If so, could somebody please post that Focuser class
template?


Thankyou
Michael

#196 From: "Douglas B. George" <dgeorge@...>
Date: Thu Jun 7, 2001 8:16 pm
Subject: Telescope interface
dgeorge@...
Send Email Send Email
 
A suggestion for the telescope interface:

Guide ( Direction, Time )

Direction:  1 = North
             2 = South
             3 = East
             4 = West

Time:       integer in milliseconds


--
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
=============================================================

#197 From: "Douglas B. George" <dgeorge@...>
Date: Thu Jun 7, 2001 9:55 pm
Subject: Re: [ASCOM] Re: PROPOSAL: Focuser Interface
dgeorge@...
Send Email Send Email
 
stewart@... wrote:
>
> I was wondering if an ASCOM Focuser Interface
> has been agreed upon.

It has not been finalized as yet.

> If it has, could somebody please post the ASCOM
> Focuser class template?
>
> If not, is there an ASCOM Focuser Interface that is
> close to becoming ASCOM compliant?

I put forward a proposal for a focuser interface that I have been developing.
There are have been a few comments on it in this forum.

> If so, could somebody please post that Focuser class
> template?

This is the most recent version posted:

Properties
----------

Link         Read/Write       Set true to connect link to focuser, false
                               to shut down link

Absolute     Readonly         returns True if the focuser control is
                               capable of absolute positioning.  If True,
                               the Move command takes an absolute number.
                               If False, the move command is relative
                               (e.g. +/- N steps).

StepSize     Readonly         reports the step size in microns.  (I'm not
                               using this currently, but it might be helpful
                               for setting up the autofocus.)

MaxStep      Readonly         returns the maximum step range when
                               operating in Absolute mode.  The step range
                               of the focuser will be from 0 to MaxStep.
                               Not used in relative mode.

IsMoving     Readonly         returns true if the focuser is moving,
                               false if not.  New commands cannot be
                               issued while the focuser is moving.

Position     Readonly         returns the current position of the focuser

TempComp     Read/Write       set true to turn on temperature compensation
                               mode.  Move commands are not permitted while
                               temperature compensation is on.

TempCompAvailable Readonly    returns True if the focuser has built-in
                               temperature compensation capability

Temperature  Readonly         returns current temperature in Degrees C
                               if available; otherwise returns 100.0C

MaxIncrement Readonly         returns the maximum increment allowed for
                               relative moves; absolute positioning focuser
                               will usuall return the same value as
                               MaxStep


Methods
-------

SetupDialog  No parameters    Brings up the setup dialog box; used to
                               set up any required settings, eg. COM Port.

Move         long Position    Commands the focuser to move to an absolute
                               position.  Only available if Absolute is true.



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
=============================================================

#198 From: "Bob Denny" <rdenny@...>
Date: Fri Jun 8, 2001 12:05 am
Subject: Re: [ASCOM] Telescope interface
rdenny@...
Send Email Send Email
 
Got it. I'll try to sneak this into the final interface spec and
supplied drivers. It will be implemented only in the Meade.Telescope
driver.

   -- Bob

#199 From: John Oliver <oliver@...>
Date: Fri Jun 8, 2001 9:41 am
Subject: Re: [ASCOM] Telescope interface
oliver@...
Send Email Send Email
 
Bob Denny wrote:
>
> Got it. I'll try to sneak this into the final interface spec and
> supplied drivers. It will be implemented only in the Meade.Telescope
> driver.
>
>   -- Bob
>
> 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/

And of course the RHO18 spec :) ... will you add support for this in
ACP2?

John

#200 From: "Bob Denny" <rdenny@...>
Date: Fri Jun 8, 2001 1:03 pm
Subject: Re: [ASCOM] Telescope interface
rdenny@...
Send Email Send Email
 
John --

I'm adding this for Doug, assuming that he has an immediate need for
being to move the scope at "guide" rates. I'm not sure what ACP would
use it for. If you want to implement it in the RHO18 driver, great! I'll
post the exact definition ASAP, along with a ZIP file containing the
updated template, FYI.

I'm going to make a few other last minute changes to the ASCOM stuff,
then release the package as the "Platform Installer" instead of an SDK.
I hope to have this completed in days not weeks.

   -- Bob

#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

Messages 189 - 218 of 29972   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