libapogee  3.0.2865
apogee/Quad.h
00001 
00013 #ifndef QUAD_INCLUDE_H__ 
00014 #define QUAD_INCLUDE_H__ 
00015 
00016 
00017 #include "CamGen2Base.h" 
00018 #include "CameraInfo.h" 
00019 #include <string>
00020 
00021 class DLL_EXPORT Quad: public CamGen2Base
00022 { 
00023     public: 
00024         Quad();
00025 
00026         virtual ~Quad(); 
00027 
00028         void OpenConnection( const std::string & ioType,
00029              const std::string & DeviceAddr,
00030              const uint16_t FirmwareRev,
00031              const uint16_t Id );
00032 
00033         void CloseConnection();
00034 
00035         void StartExposure( double Duration, bool IsLight );
00036 
00037         bool IsPixelReorderOn() { return m_DoPixelReorder; }
00038 
00039         void SetPixelReorder( const bool TurnOn ) { m_DoPixelReorder = TurnOn; }
00040 
00041         int32_t GetNumAdChannels();
00042 
00043         void Init();
00044 
00045         Apg::FanMode GetFanMode();
00046         void SetFanMode( Apg::FanMode mode, bool PreCondCheck = true );
00047 
00048     protected:
00049         Quad(const std::string & ioType,
00050              const std::string & DeviceAddr);
00051         
00052         void FixImgFromCamera( const std::vector<uint16_t> & data,
00053             std::vector<uint16_t> & out,  int32_t rows, int32_t cols );
00054 
00055         void CreateCamIo(const std::string & ioType,
00056             const std::string & DeviceAddr);
00057 
00058         bool IsRoiCenteredAndSymmetric(uint16_t ccdLen, uint16_t startingPos,  uint16_t roiLen );
00059 
00060         void ExposureAndGetImgRC(uint16_t & r, uint16_t & c);
00061 
00062     private:
00063         void UpdateCfgWithStrDbInfo();
00064         void FullCtorInit( const std::string & ioType,
00065                 const std::string & DeviceAddr );
00066 
00067         void CfgCamFromId( uint16_t CameraId );
00068         void VerifyCamId();
00069 
00070         const std::string m_fileName;
00071         bool m_DoPixelReorder;
00072 
00073         Quad(const Quad&);
00074         Quad& operator=(Quad&);
00075 }; 
00076 
00077 #endif