areaDetector 3-14
EPICS areaDetector framework
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
30public:
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
60 CCDMultiTrack(asynPortDriver* asynPortDriver);
61 asynStatus writeInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements);
62
63 void storeTrackAttributes(NDAttributeList* pAttributeList);
64
65private:
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
#define ADCORE_API
Definition ADCoreAPI.h:41
Area Detector class enabling multi-ROI driver for the Andor CCD.
Definition CCDMultiTrack.h:19
int TrackStart(size_t TrackNum) const
Definition CCDMultiTrack.h:43
int TrackHeight(size_t TrackNum) const
Definition CCDMultiTrack.h:49
int CCDMultiTrackEnd() const
Definition CCDMultiTrack.h:37
int DataHeight(size_t TrackNum) const
Definition CCDMultiTrack.h:56
size_t size() const
Definition CCDMultiTrack.h:31
int CCDMultiTrackStart() const
Definition CCDMultiTrack.h:34
int CCDMultiTrackBin() const
Definition CCDMultiTrack.h:40
int TrackBin(size_t TrackNum) const
Definition CCDMultiTrack.h:52
int TrackEnd(size_t TrackNum) const
Definition CCDMultiTrack.h:46
NDAttributeList.h.
Definition NDAttributeList.h:21