00001
00013 #ifndef ALTA_INCLUDE_H__
00014 #define ALTA_INCLUDE_H__
00015
00016 #include <string>
00017
00018 #include "ApogeeCam.h"
00019
00020
00021 class DLL_EXPORT Alta : public ApogeeCam
00022 {
00023 public:
00024 Alta();
00025
00026 virtual ~Alta();
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 Init();
00034
00035 void StartExposure( double Duration, bool IsLight );
00036
00037 CameraStatusRegs GetStatus();
00038 Apg::Status GetImagingStatus();
00039
00040 void GetImage( std::vector<uint16_t> & out );
00041
00042 void StopExposure( bool Digitize );
00043
00044 uint32_t GetAvailableMemory();
00045
00053 void SetCcdAdc12BitGain( uint16_t gain );
00054
00062 void SetCcdAdc12BitOffset( uint16_t offset );
00063
00070 uint16_t GetCcdAdc12BitGain();
00071
00078 uint16_t GetCcdAdc12BitOffset();
00079
00086 double GetCcdAdc16BitGain();
00087
00088 int32_t GetNumAds();
00089 int32_t GetNumAdChannels();
00090
00091 double GetCoolerDrive();
00092
00097 void SetFanMode( Apg::FanMode mode, bool PreCondCheck = true );
00098
00103 Apg::FanMode GetFanMode();
00104
00105 double GetTempHeatsink();
00106
00113 std::string GetMacAddress();
00114
00115 protected:
00116 Alta(const std::string & ioType,
00117 const std::string & DeviceAddr);
00118
00119 void ExposureAndGetImgRC(uint16_t & r, uint16_t & c);
00120 uint16_t ExposureZ();
00121 uint16_t GetImageZ();
00122 uint16_t GetIlluminationMask();
00123 void CreateCamIo(const std::string & ioType,
00124 const std::string & DeviceAddr);
00125
00126 void FixImgFromCamera( const std::vector<uint16_t> & data,
00127 std::vector<uint16_t> & out, int32_t rows, int32_t cols);
00128
00129 private:
00130
00131 void VerifyCamId();
00132 void CfgCamFromId( uint16_t CameraId );
00133 uint16_t GetPixelShift();
00134
00135 void Init12BitCcdAdc();
00136 void StopExposureModeTdiKinetics( bool Digitize );
00137
00138
00139 const std::string m_fileName;
00140
00141
00142
00143
00144 Alta(const Alta&);
00145 Alta& operator=(Alta&);
00146 };
00147
00148 #endif