00001 00013 #ifndef CAMGEN2BASE_INCLUDE_H__ 00014 #define CAMGEN2BASE_INCLUDE_H__ 00015 00016 #include "ApogeeCam.h" 00017 #include <string> 00018 00019 class DLL_EXPORT CamGen2Base : public ApogeeCam 00020 { 00021 public: 00022 virtual ~CamGen2Base(); 00023 00024 CameraStatusRegs GetStatus(); 00025 Apg::Status GetImagingStatus(); 00026 00027 void GetImage( std::vector<uint16_t> & out ); 00028 00029 void StopExposure( bool Digitize ); 00030 00031 uint32_t GetAvailableMemory(); 00032 00033 int32_t GetNumAds(); 00034 00035 double GetCoolerDrive(); 00036 00041 void SetFanMode( Apg::FanMode mode, bool PreCondCheck = true ); 00042 00047 Apg::FanMode GetFanMode(); 00048 00049 protected: 00050 CamGen2Base(const uint16_t FirmwareRev, 00051 const uint16_t Id, 00052 CamModel::PlatformType platform); 00053 00054 CamGen2Base(CamModel::PlatformType platform); 00055 00056 uint16_t ExposureZ(); 00057 00058 uint16_t GetImageZ(); 00059 00060 uint16_t GetIlluminationMask(); 00061 00062 void DefaultStartExposure( double Duration, bool IsLight ); 00063 00064 private: 00065 const std::string m_fileName; 00066 00067 //disabling the copy ctor and assignment operator 00068 //generated by the compiler - don't want them 00069 //Effective C++ Item 6 00070 CamGen2Base(const CamGen2Base&); 00071 CamGen2Base& operator=(CamGen2Base&); 00072 }; 00073 00074 #endif