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 StartExposure( double Duration, bool IsLight );
00034
00035 CameraStatusRegs GetStatus();
00036 Apg::Status GetImagingStatus();
00037
00038 void GetImage( std::vector<uint16_t> & out );
00039
00040 void StopExposure( bool Digitize );
00041
00042 uint32_t GetAvailableMemory();
00043
00051 void SetCcdAdc12BitGain( uint16_t gain );
00052
00060 void SetCcdAdc12BitOffset( uint16_t offset );
00061
00068 uint16_t GetCcdAdc12BitGain();
00069
00076 uint16_t GetCcdAdc12BitOffset();
00077
00084 double GetCcdAdc16BitGain();
00085
00086 int32_t GetNumAds();
00087 int32_t GetNumAdChannels();
00088
00089 double GetCoolerDrive();
00090
00095 void SetFanMode( Apg::FanMode mode, bool PreCondCheck = true );
00096
00101 Apg::FanMode GetFanMode();
00102
00103 double GetTempHeatsink();
00104
00111 std::string GetMacAddress();
00112
00113 protected:
00114 Alta(const std::string & ioType,
00115 const std::string & DeviceAddr);
00116
00117 void ExposureAndGetImgRC(uint16_t & r, uint16_t & c);
00118 uint16_t ExposureZ();
00119 uint16_t GetImageZ();
00120 uint16_t GetIlluminationMask();
00121 void CreateCamIo(const std::string & ioType,
00122 const std::string & DeviceAddr);
00123
00124 void FixImgFromCamera( const std::vector<uint16_t> & data,
00125 std::vector<uint16_t> & out, int32_t rows, int32_t cols);
00126
00127 private:
00128
00129 void VerifyCamId();
00130 void CfgCamFromId( uint16_t CameraId );
00131 uint16_t GetPixelShift();
00132
00133 void Init12BitCcdAdc();
00134 void StopExposureModeTdiKinetics( bool Digitize );
00135
00136
00137 const std::string m_fileName;
00138
00139
00140
00141
00142 Alta(const Alta&);
00143 Alta& operator=(Alta&);
00144 };
00145
00146 #endif