libapogee
3.0.2865
|
00001 00012 #ifndef CAMERAMODEL_INCLUDE_H__ 00013 #define CAMERAMODEL_INCLUDE_H__ 00014 00015 #include <string> 00016 #include <vector> 00017 #include <stdint.h> 00018 #include "DefDllExport.h" 00019 00020 namespace CamInfo 00021 { 00022 struct DLL_EXPORT StrDb { 00023 std::string FactorySn; 00024 std::string CustomerSn; 00025 std::string Id; 00026 std::string Platform; 00027 std::string PartNum; 00028 std::string Ccd; 00029 std::string CcdSn; 00030 std::string CcdGrade; 00031 std::string ProcBoardRev; 00032 std::string DriveBoardRev; 00033 std::string Shutter; 00034 std::string WindowType; 00035 std::string MechCfg; 00036 std::string MechRev; 00037 std::string CoolingType; 00038 std::string FinishFront; 00039 std::string FinishBack; 00040 std::string MpiRev; 00041 std::string TestDate; 00042 std::string TestedBy; 00043 std::string TestedDllRev; 00044 std::string TestedFwRev; 00045 std::string Gain; 00046 std::string Noise; 00047 std::string Bias; 00048 std::string TestTemp; 00049 std::string DarkCount; 00050 std::string DarkDuration; 00051 std::string DarkTemp; 00052 std::string CoolingDelta; 00053 std::string Ad1Offset; 00054 std::string Ad1Gain; 00055 std::string Ad2Offset; 00056 std::string Ad2Gain; 00057 std::string Rma1; 00058 std::string Rma2; 00059 std::string Comment1; 00060 std::string Comment2; 00061 std::string Comment3; 00062 }; 00063 00064 std::vector< std::string > DLL_EXPORT MkStrVectFromStrDb( const CamInfo::StrDb & DbStruct ); 00065 CamInfo::StrDb DLL_EXPORT MkStrDbFromStrVect( const std::vector< std::string > & strVect ); 00066 CamInfo::StrDb DLL_EXPORT GetNoOpDb(); 00067 00068 } 00069 00074 namespace CamModel 00075 { 00077 enum DLL_EXPORT InterfaceType { 00079 UNKNOWN_INTERFACE, 00081 USB, 00083 ETHERNET 00084 }; 00085 00087 enum DLL_EXPORT PlatformType { 00089 UNKNOWN_PLATFORM, 00091 ALTAU, 00093 ALTAE, 00095 ASCENT, 00097 ASPEN, 00099 HIC, 00101 ALTAF, 00103 QUAD 00104 }; 00105 00106 bool DLL_EXPORT IsAlta(uint16_t FirmwareRev); 00107 bool DLL_EXPORT IsGen2Platform(uint16_t FirmwareRev); 00108 bool DLL_EXPORT IsFirmwareRevGood( uint16_t FirmwareRev ); 00109 00110 uint16_t DLL_EXPORT MaskRawId( uint16_t FirmwareRev, 00111 uint16_t CamId); 00112 00113 00114 CamModel::PlatformType DLL_EXPORT GetPlatformType( uint16_t FixedId, bool IsEthernet=false ); 00115 CamModel::PlatformType DLL_EXPORT GetPlatformType( const std::string & cameraLine ); 00116 std::string DLL_EXPORT GetPlatformStr(uint16_t FixedId, bool IsEthernet=false); 00117 std::string DLL_EXPORT GetModelStr( uint16_t CamId ); 00118 std::string DLL_EXPORT GetNoOpFirmwareRev(); 00119 00120 // Used to derive camera platform type from camera ID 00121 const uint16_t FIRMWARE_PLATFORM_MASK = 0xFF00; 00122 const uint16_t MAX_ALTA_FIRMWARE_REV = 0x0064; 00123 const uint16_t MIN_GEN2_FIRMWARE = 0x0064; 00124 const uint16_t MAX_GEN2_FIRMWARE = 0x0400; 00125 00126 00127 const uint16_t ALTA_CAMERA_ID_MASK = 0x007F; 00128 const uint16_t GEN2_CAMERA_ID_MASK = 0x01FF; 00129 00130 00131 const uint16_t NO_OP_FRMWR_REV = 0x0; 00132 } 00133 00138 namespace Apg 00139 { 00141 enum DLL_EXPORT Status 00142 { 00147 Status_ConnectionError = -3, 00151 Status_DataError = -2, 00154 Status_PatternError = -1, 00157 Status_Idle = 0, 00159 Status_Exposing = 1, 00162 Status_ImagingActive = 2, 00166 Status_ImageReady = 3, 00168 Status_Flushing = 4, 00170 Status_WaitingOnTrigger = 5 00171 }; 00172 00174 enum DLL_EXPORT CameraMode 00175 { 00180 CameraMode_Normal = 0, 00186 CameraMode_TDI = 1, 00189 CameraMode_Test = 2, 00195 CameraMode_ExternalTrigger = 3, 00199 CameraMode_ExternalShutter = 4, 00205 CameraMode_Kinetics = 5, 00209 CameraMode_Unknown = 6 00210 }; 00211 00213 enum DLL_EXPORT Resolution 00214 { 00216 Resolution_SixteenBit = 0, 00218 Resolution_TwelveBit = 1 00219 }; 00220 00221 00223 enum DLL_EXPORT AdcSpeed 00224 { 00226 AdcSpeed_Unknown, 00228 AdcSpeed_Normal, 00230 AdcSpeed_Fast, 00232 AdcSpeed_Video 00233 }; 00234 00236 enum DLL_EXPORT CoolerStatus 00237 { 00238 CoolerStatus_Off = 0, 00240 CoolerStatus_RampingToSetPoint = 1, 00242 CoolerStatus_AtSetPoint = 2, 00244 CoolerStatus_Revision = 3, 00246 CoolerStatus_Suspended = 4 00247 }; 00248 00250 enum DLL_EXPORT FanMode 00251 { 00253 FanMode_Off = 0, 00255 FanMode_Low = 1, 00257 FanMode_Medium = 2, 00259 FanMode_High = 3, 00261 FanMode_Unknown = 4 00262 }; 00263 00265 enum DLL_EXPORT LedState 00266 { 00267 LedState_Expose = 0, 00269 LedState_ImageActive = 1, 00271 LedState_Flushing = 2, 00273 LedState_ExtTriggerWaiting = 3, 00275 LedState_ExtTriggerReceived = 4, 00277 LedState_ExtShutterInput = 5, 00279 LedState_ExtStartReadout = 6, 00281 LedState_AtTemp = 7, 00283 LedState_Unknown = 8 00284 }; 00285 00287 enum DLL_EXPORT LedMode 00288 { 00290 LedMode_DisableAll = 0, 00292 LedMode_DisableWhileExpose = 1, 00294 LedMode_EnableAll = 2, 00296 LedMode_Unknown = 3 00297 }; 00298 00300 enum DLL_EXPORT TriggerMode 00301 { 00303 TriggerMode_Unknown, 00305 TriggerMode_Normal, 00307 TriggerMode_TdiKinetics, 00309 TriggerMode_ExternalShutter, 00311 TriggerMode_ExternalReadoutIo 00312 }; 00313 00315 enum DLL_EXPORT TriggerType 00316 { 00318 TriggerType_Unkown, 00320 TriggerType_Each, 00322 TriggerType_Group 00323 }; 00324 00326 enum DLL_EXPORT ShutterState 00327 { 00329 ShutterState_Unkown, 00331 ShutterState_Normal, 00333 ShutterState_ForceOpen, 00335 ShutterState_ForceClosed 00336 }; 00337 00341 enum DLL_EXPORT ErrorType 00342 { 00344 ErrorType_Connection = 0, 00348 ErrorType_Critical = 1, 00350 ErrorType_Serious = 2, 00352 ErrorType_Configuration, 00354 ErrorType_InvalidMode, 00356 ErrorType_InvalidOperation, 00358 ErrorType_InvalidUsage 00359 00360 }; 00361 00363 enum DLL_EXPORT SerialParity 00364 { 00366 SerialParity_Unknown = -1, 00368 SerialParity_None = 0, 00370 SerialParity_Odd = 1, 00372 SerialParity_Even = 2 00373 }; 00374 00376 enum DLL_EXPORT SerialFC 00377 { 00379 SerialFC_Unknown = -1, 00381 SerialFC_Off = 0, 00383 SerialFC_On = 1 00384 }; 00385 00386 } 00387 00388 #endif