• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

kstars

ApnCamera.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *                                                                         *
00003  *   This program is free software; you can redistribute it and/or modify  *
00004  *   it under the terms of the GNU General Public License as published by  *
00005  *   the Free Software Foundation; either version 2 of the License, or     *
00006  *   (at your option) any later version.                                   *
00007  *                                                                         *
00008  ***************************************************************************/
00009 // ApnCamera.h: interface for the CApnCamera class.
00010 //
00012 
00013 #if !defined(AFX_APNCAMERA_H__CF513996_359F_4103_BBA6_2C730AE2C301__INCLUDED_)
00014 #define AFX_APNCAMERA_H__CF513996_359F_4103_BBA6_2C730AE2C301__INCLUDED_
00015 
00016 #include "Apogee.h"
00017 #include "Apn.h"
00018 #include "FpgaRegs.h"
00019 
00020 #include "ApnCamData.h"
00021 #include "ApnCamData_CCD3011HS.h"
00022 #include "ApnCamData_CCD3011LS.h"
00023 #include "ApnCamData_CCD4240HS.h"
00024 #include "ApnCamData_CCD4240LS.h"
00025 #include "ApnCamData_CCD4710HS.h"
00026 #include "ApnCamData_CCD4710LS.h"
00027 #include "ApnCamData_CCD4720HS.h"
00028 #include "ApnCamData_CCD4720LS.h"
00029 #include "ApnCamData_CCD5520HS.h"
00030 #include "ApnCamData_CCD5520LS.h"
00031 #include "ApnCamData_CCD5710HS.h"
00032 #include "ApnCamData_CCD5710LS.h"
00033 #include "ApnCamData_CCD7700HS.h"
00034 #include "ApnCamData_CCD7700LS.h"
00035 #include "ApnCamData_KAF0261E.h"
00036 #include "ApnCamData_KAF0401E.h"
00037 #include "ApnCamData_KAF1001E.h"
00038 #include "ApnCamData_KAF1301E.h"
00039 #include "ApnCamData_KAF1401E.h"
00040 #include "ApnCamData_KAF1602E.h"
00041 #include "ApnCamData_KAF16801E.h"
00042 #include "ApnCamData_KAF3200E.h"
00043 #include "ApnCamData_KAF4202.h"
00044 #include "ApnCamData_KAF6303E.h"
00045 #include "ApnCamData_TH7899.h"
00046 
00047 #include "ApnCamData_CCD4710LS2.h"
00048 #include "ApnCamData_CCD4710LS3.h"
00049 #include "ApnCamData_CCD4710LS4.h"
00050 #include "ApnCamData_CCD4710LS5.h"
00051 
00052 
00053 class CApnCamera  
00054 {
00055 public:
00056     CApnCamera();
00057     ~CApnCamera();
00058 
00059     bool InitDriver( unsigned long  CamIdA, 
00060                              unsigned short CamIdB, 
00061                              unsigned long  Option );
00062 
00063     bool CloseDriver();
00064     long PreStartExpose( unsigned short BitsPerPixel );
00065     long PostStopExposure( bool DigitizeData );
00066 
00067     bool GetImageData( unsigned short *pImageData, 
00068                                unsigned short &Width,
00069                                unsigned short &Height,
00070                                unsigned long  &Count );
00071 
00072     bool GetLineData( unsigned short *pLineBuffer,
00073                               unsigned short &Size );       
00074 
00075     long Read( unsigned short reg, unsigned short& val );
00076     long Write( unsigned short reg, unsigned short val );
00077 
00078     long WriteMultiSRMD( unsigned short reg, 
00079                                  unsigned short val[], 
00080                                  unsigned short count );
00081     
00082     long WriteMultiMRMD( unsigned short reg[], 
00083                                  unsigned short val[], 
00084                                  unsigned short count );
00085     
00086     long QueryStatusRegs( unsigned short& StatusReg,
00087                                   unsigned short& HeatsinkTempReg,
00088                                   unsigned short& CcdTempReg,
00089                                   unsigned short& CoolerDriveReg,
00090                                   unsigned short& VoltageReg,
00091                                   unsigned short& TdiCounter,
00092                                   unsigned short& SequenceCounter );
00093 
00094         void SetNetworkTransferMode( Apn_NetworkMode TransferMode );
00095 
00096     long InitDefaults();
00097 
00098     bool Expose( double Duration, bool Light );
00099     bool BufferImage(char *bufferName );
00100     bool BufferDriftScan(char *bufferName, int delay, int rowCount, int nblock , int npipe);
00101 
00102     bool StopExposure( bool DigitizeData );
00103     
00104     bool ResetSystem();
00105     bool PauseTimer( bool PauseState );
00106     
00107 
00108     unsigned short      GetExposurePixelsH();
00109     unsigned short      GetExposurePixelsV();
00110 
00111     bool                read_Present();
00112     unsigned short      read_FirmwareVersion();
00113 
00114     bool                read_ShutterState();
00115     bool                read_DisableShutter();
00116     void                write_DisableShutter( bool DisableShutter );
00117     bool                read_ForceShutterOpen();
00118     void                write_ForceShutterOpen( bool ForceShutterOpen );
00119     bool                read_ShutterAmpControl();
00120     void                write_ShutterAmpControl( bool ShutterAmpControl );
00121     
00122     bool                read_ExternalIoReadout();
00123     void                write_ExternalIoReadout( bool ExternalIoReadout );
00124     bool                read_FastSequence();
00125     void                write_FastSequence( bool FastSequence );
00126 
00127     Apn_CameraMode      read_CameraMode();
00128     void                write_CameraMode( Apn_CameraMode CameraMode );
00129 
00130     void                write_DataBits( Apn_Resolution BitResolution );
00131 
00132     Apn_Status          read_ImagingStatus();
00133 
00134     Apn_LedMode         read_LedMode();
00135     void                write_LedMode( Apn_LedMode LedMode );
00136     Apn_LedState        read_LedState( unsigned short LedId );
00137     void                write_LedState( unsigned short LedId, Apn_LedState LedState );
00138 
00139     bool                read_CoolerEnable();
00140     void                write_CoolerEnable( bool CoolerEnable );
00141     Apn_CoolerStatus    read_CoolerStatus();
00142     double              read_CoolerSetPoint();
00143     void                write_CoolerSetPoint( double SetPoint );
00144     double              read_CoolerBackoffPoint();
00145     void                write_CoolerBackoffPoint( double BackoffPoint );
00146     double              read_CoolerDrive();
00147     double              read_TempCCD();
00148     double              read_TempHeatsink();
00149     Apn_FanMode         read_FanMode();
00150     void                write_FanMode( Apn_FanMode FanMode );
00151 
00152     void                write_RoiBinningH( unsigned short BinningH );
00153     void                write_RoiBinningV( unsigned short BinningV );
00154 
00155     void                write_RoiPixelsV( unsigned short PixelsV );
00156 
00157     void                write_RoiStartY( unsigned short StartY );
00158 
00159         unsigned short          read_MaxBinningV();
00160     unsigned short      read_OverscanColumns();
00161 
00162     double              read_ShutterStrobePosition();
00163     void                write_ShutterStrobePosition( double Position );
00164     double              read_ShutterStrobePeriod();
00165     void                write_ShutterStrobePeriod( double Period );
00166 
00167     double              read_SequenceDelay();
00168     void                write_SequenceDelay( double Delay );
00169     bool                read_VariableSequenceDelay();
00170     void                write_VariableSequenceDelay( bool VariableSequenceDelay );
00171     unsigned short      read_ImageCount();
00172     void                write_ImageCount( unsigned short Count );
00173 
00174     unsigned short      read_SequenceCounter();
00175     unsigned short      read_TDICounter();
00176     unsigned short      read_TDIRows();
00177     void                write_TDIRows( unsigned short TdiRows );
00178     double              read_TDIRate();
00179     void                write_TDIRate( double TdiRate );
00180     unsigned short      read_IoPortAssignment();
00181     void                write_IoPortAssignment( unsigned short IoPortAssignment );
00182     unsigned short      read_IoPortDirection();
00183     void                write_IoPortDirection( unsigned short IoPortDirection );
00184     unsigned short      read_IoPortData();
00185     void                write_IoPortData( unsigned short IoPortData );
00186 
00187     unsigned short      read_TwelveBitGain();
00188     void                write_TwelveBitGain( unsigned short TwelveBitGain );
00189 
00190     double              read_InputVoltage();
00191     long                read_AvailableMemory();
00192 
00193     double              read_MaxExposureTime();
00194 
00195     Apn_NetworkMode     read_NetworkTransferMode();
00196     void                write_NetworkTransferMode( Apn_NetworkMode TransferMode );
00197 
00198     double              read_TestLedBrightness();
00199     void                write_TestLedBrightness( double TestLedBrightness );
00200 
00201 
00202     // Public helper function
00203     bool                ImageReady();
00204     void                SignalImagingDone();
00205 
00206 
00207     // Variables
00208     Apn_Interface   m_CameraInterface;
00209 
00210     CApnCamData     *m_ApnSensorInfo;
00211 
00212     unsigned short  m_RoiStartX, m_RoiStartY;
00213     unsigned short  m_RoiPixelsH, m_RoiPixelsV;
00214     unsigned short  m_RoiBinningH, m_RoiBinningV;
00215     
00216     bool            m_DigitizeOverscan;
00217     Apn_Resolution  m_DataBits;
00218 
00219 /* was private: */
00220 
00221     // General helper functions
00222     long LoadVerticalPattern();
00223     long LoadClampPattern();
00224     long LoadSkipPattern();
00225     long LoadRoiPattern( unsigned short Binning );
00226 
00227     long WriteHorizontalPattern( APN_HPATTERN_FILE *Pattern, 
00228                                  unsigned short reg, 
00229                                  unsigned short binning );
00230     
00231     long InitTwelveBitAD();
00232     long WriteTwelveBitOffset();
00233 
00234     void UpdateGeneralStatus();
00235 
00236     // Internal private variables
00237     bool            m_ResetVerticalArrays;
00238 
00239     // Camera state variables
00240     Apn_CameraMode  m_pvtCameraMode;
00241 
00242     Apn_NetworkMode m_pvtNetworkTransferMode;
00243     
00244     unsigned short  m_pvtImageCount;
00245     unsigned short  m_pvtTDIRows;
00246     double          m_pvtTDIRate;
00247 
00248     double          m_pvtSequenceDelay;
00249     double          m_pvtShutterStrobePosition;
00250     double          m_pvtShutterStrobePeriod;
00251 
00252     unsigned short  m_pvtExposurePixelsH, m_pvtExposurePixelsV;
00253 
00254     unsigned short  m_pvtTwelveBitGain;
00255 
00256     Apn_LedMode     m_pvtLedMode;
00257     Apn_LedState    m_pvtLedStateA;
00258     Apn_LedState    m_pvtLedStateB;
00259     
00260     double          m_pvtTestLedBrightness;
00261 
00262     bool            m_pvtCoolerEnable;
00263     Apn_FanMode     m_pvtFanMode;
00264 
00265     double          m_pvtCoolerBackoffPoint;
00266 
00267     Apn_CoolerStatus    m_pvtCoolerStatus;
00268     Apn_Status          m_pvtImagingStatus;
00269     bool                m_pvtShutterState;
00270     bool                m_pvtImageInProgress;
00271     bool                m_pvtImageReady;
00272 
00273     unsigned short  m_pvtStatusReg;
00274 
00275     double          m_pvtCoolerDrive;
00276     double          m_pvtCurrentHeatsinkTemp;
00277     double          m_pvtCurrentCcdTemp;
00278     
00279     double          m_pvtInputVoltage;
00280     unsigned short  m_pvtIoPortAssignment;
00281     unsigned short  m_pvtIoPortDirection;
00282 
00283 /* added USB/NET specifics */
00284     unsigned short m_pvtBitsPerPixel;
00285     unsigned short m_pvtWidth;
00286     unsigned short m_pvtHeight;
00287 
00288 
00289 /* added sensor data mirrors */
00290     bool        sensorInfo();
00291     char        m_Sensor[20];
00292     char        m_CameraModel[20];
00293     unsigned short  m_CameraId;
00294     bool        m_InterlineCCD;
00295     bool        m_SupportsSerialA;
00296     bool        m_SupportsSerialB;
00297     bool        m_SensorTypeCCD;
00298     unsigned short  m_TotalColumns;
00299     unsigned short  m_ImagingColumns;
00300     unsigned short  m_ClampColumns;
00301     unsigned short  m_PreRoiSkipColumns;
00302     unsigned short  m_PostRoiSkipColumns;
00303     unsigned short  m_OverscanColumns;
00304     unsigned short  m_TotalRows;
00305     unsigned short  m_ImagingRows;
00306     unsigned short  m_UnderscanRows;
00307     unsigned short  m_OverscanRows;
00308     unsigned short  m_VFlushBinning;
00309     bool        m_HFlushDisable;
00310     unsigned short  m_ShutterCloseDelay;
00311     double      m_PixelSizeX;
00312     double      m_PixelSizeY;
00313     bool        m_Color;
00314 //  double      m_ReportedGainTwelveBit;
00315     double      m_ReportedGainSixteenBit;
00316     double      m_MinSuggestedExpTime;
00317 //  unsigned short  m_TempRegRate;
00318     unsigned short  m_TempRampRateOne;
00319     unsigned short  m_TempRampRateTwo;
00320     unsigned short  m_DefaultGainTwelveBit;
00321     unsigned short  m_DefaultOffsetTwelveBit;
00322     unsigned short  m_DefaultRVoltage;
00323 
00324 };
00325 
00326 #endif // !defined(AFX_APNCAMERA_H__CF513996_359F_4103_BBA6_2C730AE2C301__INCLUDED_)
00327 
00328 
00329 
00330 
00331 
00332 

kstars

Skip menu "kstars"
  • Main Page
  • Modules
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • keduca
  • kstars
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal