17#include <CArcDeviceDllMain.h>
24#if defined( linux ) || defined( __linux )
25 #include <sys/types.h>
28using namespace std::string_literals;
75 virtual constexpr std::string_view
toString(
void ) = 0;
83 virtual bool isOpen(
void )
noexcept;
89 virtual void open(
const std::uint32_t uiDeviceNumber = 0 ) = 0;
97 virtual void open(
const std::uint32_t uiDeviceNumber,
const std::uint32_t uiBytes ) = 0;
107 virtual void open(
const std::uint32_t uiDeviceNumber,
const std::uint32_t uiRows,
const std::uint32_t uiCols ) = 0;
138 virtual void reMapCommonBuffer(
const std::uint32_t uiBytes = 0 );
144 virtual void fillCommonBuffer(
const std::uint16_t uwValue = 0 );
149 virtual std::uint8_t* commonBufferVA(
void );
155 virtual std::uint64_t commonBufferPA(
void );
160 virtual std::uint64_t commonBufferSize(
void );
166 virtual std::uint32_t
getId(
void ) = 0;
201 virtual std::uint32_t
command(
const std::initializer_list<const std::uint32_t>& tCmdList ) = 0;
208 virtual void command(
const std::initializer_list<const std::uint32_t>& tCmdList, std::uint32_t uiExpectedReply );
245 virtual void setupController(
bool bReset,
bool bTdl,
bool bPower,
const std::uint32_t uiRows,
const std::uint32_t uiCols,
const std::filesystem::path& tTimFile,
246 const std::filesystem::path& tUtilFile = std::filesystem::path(),
const std::filesystem::path& tPciFile = std::filesystem::path(),
247 bool* pAbort =
nullptr );
255 virtual void loadControllerFile(
const std::filesystem::path& tFilename,
bool bValidate =
true,
bool* pAbort =
nullptr );
263 virtual void setImageSize(
const std::uint32_t uiRows,
const std::uint32_t uiCols );
269 virtual std::uint32_t getImageRows(
void );
275 virtual std::uint32_t getImageCols(
void );
352 virtual std::uint32_t getCCParams(
void );
360 virtual bool isCCParamSupported(
const std::uint32_t uiParameter );
366 virtual bool isCCD(
void );
372 virtual bool isBinningSet(
void );
385 virtual void setBinning(
const std::uint32_t uiRows,
const std::uint32_t uiCols,
const std::uint32_t uiRowFactor,
const std::uint32_t uiColFactor, std::uint32_t* pBinRows =
nullptr, std::uint32_t* pBinCols =
nullptr );
393 virtual void unSetBinning(
const std::uint32_t uiRows,
const std::uint32_t uiCols );
425 virtual void setSubArray( std::uint32_t& uiOldRows, std::uint32_t& uiOldCols,
const std::uint32_t uiRow,
const std::uint32_t uiCol,
const std::uint32_t uiSubRows,
const std::uint32_t uiSubCols,
const std::uint32_t uiBiasOffset,
const std::uint32_t uiBiasWidth );
432 virtual void unSetSubArray(
const std::uint32_t uiRows,
const std::uint32_t uiCols );
439 virtual bool isSyntheticImageMode(
void );
446 virtual void setSyntheticImageMode(
bool bMode );
456 virtual void setOpenShutter(
bool bShouldOpen );
467 virtual void expose(
const float fExpTime,
const std::uint32_t uiRows,
const std::uint32_t uiCols,
const bool* pAbort =
nullptr,
arc::gen3::CExpIFace* pExpIFace =
nullptr,
bool bOpenShutter =
true );
484 virtual void continuous(
const std::uint32_t uiRows,
const std::uint32_t uiCols,
const std::uint32_t uiNumOfFrames,
const float fExpTime,
const bool* pAbort =
nullptr,
arc::gen3::CConIFace* pConIFace =
nullptr,
bool bOpenShutter =
true );
489 virtual void stopContinuous(
void );
523 virtual bool containsError(
const std::uint32_t uiWord )
noexcept;
531 virtual bool containsError(
const std::uint32_t uiWord,
const std::uint32_t uiWordMin,
const std::uint32_t uiWordMax )
noexcept;
536 virtual const std::string getNextLoggedCmd(
void );
541 virtual std::uint32_t getLoggedCmdCount(
void );
551 virtual void setLogCmds(
bool bOnOff )
noexcept;
563 virtual double getArrayTemperature(
void );
569 virtual double getArrayTemperatureDN(
void );
575 virtual void setArrayTemperature(
double gTempVal );
582 virtual void loadTemperatureCtrlData(
const std::filesystem::path& tFilename );
589 virtual void saveTemperatureCtrlData(
const std::filesystem::path& tFilename );
594 static constexpr auto CTLR_CMD_MAX =
static_cast< std::uint32_t
>( 6 );
599 static constexpr auto READ_TIMEOUT =
static_cast< std::uint32_t
>( 200 );
604 static constexpr auto NOPARAM =
static_cast< std::uint32_t
>( 0xFF000000 );
616 virtual void setDefaultTemperatureValues(
void )
noexcept;
624 virtual double ADUToVoltage(
const std::uint32_t uiAdu,
bool bArc12 =
false,
bool bHighGain =
false ) noexcept;
632 virtual
double voltageToADU( const
double gVoltage,
bool bArc12 = false,
bool bHighGain = false ) noexcept;
641 virtual
double calculateAverageTemperature(
void );
650 virtual
double calculateVoltage( const
double gTemperature );
658 virtual
double calculateTemperature( const
double gVoltage );
667 virtual std::uint32_t getContinuousImageSize( const std::uint32_t uiImageSize ) = 0;
675 virtual std::uint32_t smallCamDLoad( const std::uint32_t uiBoardId, const std::vector<std::uint32_t>* pvData ) = 0;
683 virtual
void loadSmallCamControllerFile( const std::filesystem::path& tFilename, [[maybe_unused]]
bool bValidate,
bool* pAbort =
nullptr );
691 virtual
void loadGen23ControllerFile( const std::filesystem::path& tFilename,
bool bValidate,
bool* pAbort =
nullptr ) = 0;
698 virtual
void setByteSwapping(
void ) = 0;
707 virtual const std::
string formatDLoadString( const std::uint32_t uiReply, const std::uint32_t uiBoardId, const std::vector<std::uint32_t>* pvData );
711 double m_gTmpCtrl_DT670Coeff1;
712 double m_gTmpCtrl_DT670Coeff2;
713 double m_gTmpCtrl_SDAduOffset;
714 double m_gTmpCtrl_SDAduPerVolt;
715 double m_gTmpCtrl_HGAduOffset;
716 double m_gTmpCtrl_HGAduPerVolt;
717 double m_gTmpCtrl_SDVoltTolerance;
718 double m_gTmpCtrl_SDDegTolerance;
719 std::uint32_t m_gTmpCtrl_SDNumberOfReads;
720 std::uint32_t m_gTmpCtrl_SDVoltToleranceTrials;
727 arc::gen3::arcDevHandle_t m_hDevice;
729 arc::gen3::device::ImgBuf_t m_tImgBuffer;
730 std::uint32_t m_uiCCParam;
Definition: CArcDevice.h:59
virtual bool isReadout(void)=0
virtual void mapCommonBuffer(const std::size_t uiBytes=0)=0
virtual std::uint32_t getId(void)=0
virtual void open(const std::uint32_t uiDeviceNumber=0)=0
virtual constexpr std::string_view toString(void)=0
virtual void close(void)=0
virtual ~CArcDevice(void)=default
virtual std::uint32_t getPixelCount(void)=0
virtual void open(const std::uint32_t uiDeviceNumber, const std::uint32_t uiBytes)=0
virtual void resetController(void)=0
virtual std::uint32_t getStatus(void)=0
virtual bool isControllerConnected(void)=0
virtual void open(const std::uint32_t uiDeviceNumber, const std::uint32_t uiRows, const std::uint32_t uiCols)=0
virtual std::uint32_t command(const std::initializer_list< const std::uint32_t > &tCmdList)=0
virtual std::uint32_t getFrameCount(void)=0
virtual std::uint32_t getCRPixelCount(void)=0
virtual void clearStatus(void)=0
virtual void unMapCommonBuffer(void)=0
virtual void stopExposure(void)=0
virtual void loadDeviceFile(const std::filesystem::path &tFile)=0
virtual std::uint32_t getControllerId(void)=0
virtual void set2xFOTransmitter(bool bOnOff)=0
virtual void reset(void)=0
virtual bool getCommonBufferProperties(void)=0
Definition: CConIFace.h:30
Definition: CExpIFace.h:32
Definition: TempCtrl.h:61
Definition: CArcDevice.h:42
std::uint16_t * pUserAddr
Definition: CArcDevice.h:43
std::uint64_t ulPhysicalAddr
Definition: CArcDevice.h:44
std::uint64_t ulSize
Definition: CArcDevice.h:45