AndorCamera.sip 3.45 KB
Newer Older
claustre's avatar
claustre committed
1 2 3 4 5 6

namespace Andor
{
%TypeHeaderCode
#include <AndorCamera.h>
%End
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
    enum SpoolingMethod
    {
        SM_SEQ_INT32 = 0,
        SM_ACCUMULATION_DEPENDEND,
        SM_SEQ_INT16,
        SM_MULTI_DIRS,
        SM_RAM,
        SM_16BIT_FITS,
        SM_SIF,
        SM_16BIT_TIFF,
        SM_MULTI_DIRS_COMP
    };

    enum HighCapacityMode
    {
        HIGH_SENSITIVITY = 0,
        HIGH_CAPACITY
    };

    enum GateMode
    {
       FIRE_ANDED_WITH_GATE = 0,
       FIRE_ONLY,
       SMB_GATE_ONLY,
       GATING_ON,
       GATING_OFF,
       DDG
    };

    enum ReadMode
    {
        FULL_VERTICAL_BINNING = 0,
        MULTI_TRACK,
        RANDOM_TRACK,
        SINGLE_TRACK,
        IMAGE
    };

45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
  class Camera
  {
%TypeHeaderCode
#include <AndorCamera.h>
%End

  public:

    enum Status {
      Ready, Exposure, Readout, Latency, Fault
    };

    enum ShutterMode{
      FRAME,
      MANUAL
    };


claustre's avatar
claustre committed
63 64 65
    Camera(const std::string& config_path,int camera_number=0);
    ~Camera();

66
    void prepareAcq();
claustre's avatar
claustre committed
67 68 69 70 71 72 73 74 75
    void startAcq();
    void stopAcq();

    void getImageType(ImageType& type /Out/);
    void setImageType(ImageType type);

    void getDetectorType(std::string& type /Out/);
    void getDetectorModel(std::string& model /Out/);
    void getDetectorImageSize(Size& size /Out/);
76
    HwBufferCtrlObj* getBufferCtrlObj();
claustre's avatar
claustre committed
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

    void setTrigMode(TrigMode  mode);
    void getTrigMode(TrigMode& mode /Out/);
	
    void setExpTime(double  exp_time);
    void getExpTime(double& exp_time /Out/);

    void setLatTime(double  lat_time);
    void getLatTime(double& lat_time /Out/);

    void getExposureTimeRange(double& min_expo /Out/, double& max_expo /Out/);
    void getLatTimeRange(double& min_lat /Out/, double& max_lat /Out/);

    void setNbFrames(int  nb_frames);
    void getNbFrames(int& nb_frames /Out/);

    void checkRoi(const Roi& set_roi, Roi& hw_roi /Out/);
    void setRoi(const Roi& set_roi);
    void getRoi(Roi& hw_roi /Out/);

    void checkBin(Bin& /In,Out/);
    void setBin(const Bin&);
    void getBin(Bin& /Out/);

101 102 103 104 105 106 107 108 109
    void setShutterOpenTime(double tm);
    void getShutterOpenTime(double& tm /Out/);
    void setShutterCloseTime(double tm);
    void getShutterCloseTime(double& tm /Out/);
    void setShutter(bool flag);
    void getShutter(bool& flag /Out/);
    void setShutterMode(ShutterMode mode);
    void getShutterMode(ShutterMode& mode /Out/);

110
    void getPixelSize(double& xsize /Out/, double& ysize /Out/);
claustre's avatar
claustre committed
111 112 113 114 115 116

    void getStatus(Andor::Camera::Status& status /Out/);

    void initialiseController();
    void initAdcSpeed();
    void setAdcSpeed(int adc);
117
    void getAdcSpeed(int& adc /Out/);
118
    void getAdcSpeedInMhz(float& adc /Out/);
119 120 121
    void initVsSpeed();
    void setVsSpeed(int vss);
    void getVsSpeed(int& vss /Out/);
claustre's avatar
claustre committed
122 123
    void initPGain();
    void setPGain(int gain);
124
    void getPGain(int& gain /Out/);
claustre's avatar
claustre committed
125 126 127 128 129
    void setFastExtTrigger(bool flag);
    void getFastExtTrigger(bool& flag /Out/);
    void setShutterLevel(int level);
    void getShutterLevel(int& level /Out/);
    void setTemperatureSP(int temp);
claustre's avatar
claustre committed
130
    void getTemperatureSP(int& temp);
claustre's avatar
claustre committed
131 132 133 134
    void getTemperature(int& temp /Out/);
    void setCooler(bool flag);
    void getCooler(bool& flag /Out/);
    void getCoolingStatus(std::string& status /Out/);
135 136 137 138
    void setSpooling(bool flag, Andor::SpoolingMethod method, std::string path, int frameBufferSize);
    void setHighCapacity(Andor::HighCapacityMode mode);
    void setGateMode(Andor::GateMode mode);
    //void setReadMode(Andor::ReadMode mode);
139
    
claustre's avatar
claustre committed
140 141 142
  };

};