libapogee
3.0.2865
|
00001 00013 #ifndef CAMERASTATUSREGS_INCLUDE_H__ 00014 #define CAMERASTATUSREGS_INCLUDE_H__ 00015 00016 #include <string> 00017 #include <stdint.h> 00018 #include "DefDllExport.h" 00019 00020 class DLL_EXPORT CameraStatusRegs 00021 { 00022 public: 00023 #pragma pack( push, 1 ) 00024 00025 struct BasicStatus 00026 { 00028 uint16_t TempHeatSink; 00030 uint16_t TempCcd; 00032 uint16_t CoolerDrive; 00034 uint16_t InputVoltage; 00036 uint16_t TdiCounter; 00038 uint16_t SequenceCounter; 00040 uint16_t Status; 00042 uint16_t uFrame; 00044 uint32_t FetchCount; 00046 uint8_t DataAvailFlag; 00047 }; 00048 #pragma pack( pop ) 00049 00050 #pragma pack( push, 1 ) 00051 00052 struct AdvStatus 00053 { 00055 uint16_t TempHeatSink; 00057 uint16_t TempCcd; 00059 uint16_t CoolerDrive; 00061 uint16_t InputVoltage; 00063 uint16_t TdiCounter; 00065 uint16_t SequenceCounter; 00067 uint16_t Status; 00069 uint16_t uFrame; 00071 uint16_t MostRecentFrame; 00073 uint16_t ReadyFrame; 00075 uint16_t CurrentFrame; 00077 uint32_t FetchCount; 00079 uint8_t DataAvailFlag; 00080 00081 }; 00082 #pragma pack( pop ) 00083 00084 CameraStatusRegs(); 00085 CameraStatusRegs(const CameraStatusRegs::AdvStatus & adv); 00086 CameraStatusRegs(const CameraStatusRegs::BasicStatus & basic); 00087 virtual ~CameraStatusRegs(); 00088 00089 uint16_t GetTempHeatSink() { return m_TempHeatSink; } 00090 uint16_t GetTempCcd() { return m_TempCcd; } 00091 uint16_t GetCoolerDrive() { return m_CoolerDrive; } 00092 uint16_t GetInputVoltage() { return m_InputVoltage; } 00093 uint16_t GetTdiCounter() { return m_TdiCounter; } 00094 uint16_t GetSequenceCounter() { return m_SequenceCounter; } 00095 uint16_t GetStatus() const { return m_Status; } 00096 uint16_t GetuFrame() { return m_uFrame; } 00097 uint16_t GetMostRecentFrame() { return m_MostRecentFrame; } 00098 uint16_t GetReadyFrame() { return m_ReadyFrame; } 00099 uint16_t GetCurrentFrame() { return m_CurrentFrame ; } 00100 uint32_t GetFetchCount() { return m_FetchCount; } 00101 bool GetDataAvailFlag() const { return ( (m_DataAvailFlag & 0x1) ? true:false); } 00102 00103 void QueryStatusRegs( uint16_t & StatusReg, 00104 uint16_t & HeatsinkTempReg, 00105 uint16_t & CcdTempReg, 00106 uint16_t & CoolerDriveReg, 00107 uint16_t & VoltageReg, 00108 uint16_t & TdiCounter, 00109 uint16_t & SequenceCounter, 00110 uint16_t & MostRecentFrame, 00111 uint16_t & ReadyFrame, 00112 uint16_t & CurrentFrame); 00113 00114 std::string GetStatusStr() const; 00115 00116 void Update(const CameraStatusRegs::AdvStatus & adv); 00117 void Update(const CameraStatusRegs::BasicStatus & basic); 00118 00119 private: 00120 uint16_t m_TempHeatSink; 00121 uint16_t m_TempCcd; 00122 uint16_t m_CoolerDrive; 00123 uint16_t m_InputVoltage; 00124 uint16_t m_TdiCounter; 00125 uint16_t m_SequenceCounter; 00126 uint16_t m_Status; 00127 uint16_t m_uFrame; 00128 uint16_t m_MostRecentFrame; 00129 uint16_t m_ReadyFrame; 00130 uint16_t m_CurrentFrame; 00131 uint32_t m_FetchCount; 00132 uint8_t m_DataAvailFlag; 00133 00134 }; 00135 00136 #endif