libapogee
3.0.2865
|
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