quadEM  7-0
CCDMultiTrack.h
Go to the documentation of this file.
1 
11 #ifndef CCD_MULTI_TRACK_H
12 #define CCD_MULTI_TRACK_H
13 
14 #include <asynPortDriver.h>
15 #include <NDAttributeList.h>
16 #include <ADCoreAPI.h>
17 
19 {
20  asynPortDriver* mPortDriver;
21 
22  int mCCDMultiTrackStart;
23  int mCCDMultiTrackEnd;
24  int mCCDMultiTrackBin;
25 
26  std::vector<int> mTrackStart;
27  std::vector<int> mTrackEnd;
28  std::vector<int> mTrackBin;
29 
30 public:
31  size_t size() const {
32  return mTrackStart.size();
33  }
34  int CCDMultiTrackStart() const {
35  return mCCDMultiTrackStart;
36  }
37  int CCDMultiTrackEnd() const {
38  return mCCDMultiTrackEnd;
39  }
40  int CCDMultiTrackBin() const {
41  return mCCDMultiTrackBin;
42  }
43  int TrackStart(size_t TrackNum) const {
44  return (TrackNum < mTrackStart.size()) ? mTrackStart[TrackNum] : 0;
45  };
46  int TrackEnd(size_t TrackNum) const {
47  return (TrackNum < mTrackEnd.size()) ? mTrackEnd[TrackNum] : TrackStart(TrackNum);
48  }
49  int TrackHeight(size_t TrackNum) const {
50  return TrackEnd(TrackNum) + 1 - TrackStart(TrackNum);
51  }
52  int TrackBin(size_t TrackNum) const {
53  return (TrackNum < mTrackBin.size()) ? mTrackBin[TrackNum] : TrackHeight(TrackNum);
54  }
55  int DataHeight() const;
56  int DataHeight(size_t TrackNum) const {
57  return TrackHeight(TrackNum) / TrackBin(TrackNum);
58  }
59 
61  asynStatus writeInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements);
62 
63  void storeTrackAttributes(NDAttributeList* pAttributeList);
64 
65 private:
66  void writeTrackStart(epicsInt32 *value, size_t nElements);
67  void writeTrackEnd(epicsInt32 *value, size_t nElements);
68  void writeTrackBin(epicsInt32 *value, size_t nElements);
69 
70 };
71 
72 #endif //CCD_MULTI_TRACK_H
int CCDMultiTrackBin() const
Definition: CCDMultiTrack.h:40
Base class for asyn port drivers; handles most of the bookkeeping for writing an asyn port driver wit...
Definition: asynPortDriver.h:45
int CCDMultiTrackStart() const
Definition: CCDMultiTrack.h:34
int TrackEnd(size_t TrackNum) const
Definition: CCDMultiTrack.h:46
int CCDMultiTrackEnd() const
Definition: CCDMultiTrack.h:37
size_t size() const
Definition: CCDMultiTrack.h:31
NDAttributeList.h.
Definition: NDAttributeList.h:21
Area Detector class enabling multi-ROI driver for the Andor CCD.
Definition: CCDMultiTrack.h:18
int TrackHeight(size_t TrackNum) const
Definition: CCDMultiTrack.h:49
#define ADCORE_API
Definition: ADCoreAPI.h:41
int TrackBin(size_t TrackNum) const
Definition: CCDMultiTrack.h:52
int TrackStart(size_t TrackNum) const
Definition: CCDMultiTrack.h:43
int DataHeight(size_t TrackNum) const
Definition: CCDMultiTrack.h:56