Skip to content

Commit fde826d

Browse files
Merged in AndorCamera (pull request #80)
AndorCamera
2 parents a2c80b2 + 7137b92 commit fde826d

File tree

11 files changed

+2914
-0
lines changed

11 files changed

+2914
-0
lines changed

AndorSolis/__init__.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#####################################################################
2+
# #
3+
# /labscript_devices/AndorSolis/__init__.py #
4+
# #
5+
# Copyright 2019, Monash University and contributors #
6+
# #
7+
# This file is part of labscript_devices, in the labscript suite #
8+
# (see http://labscriptsuite.org), and is licensed under the #
9+
# Simplified BSD License. See the license.txt file in the root of #
10+
# the project for the full license. #
11+
# #
12+
#####################################################################
Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
# Andor Capabilities classes from C header file & SDK docs
2+
3+
import enum
4+
5+
class caps_mask:
6+
@classmethod
7+
def check(cls, mask):
8+
""" Convenience method. Return a list of every flag in a mask """
9+
return [flag.name for flag in cls.__members__.values() if flag & mask]
10+
11+
class acq_mode(caps_mask, enum.IntEnum):
12+
SINGLE = 1
13+
VIDEO = 2
14+
ACCUMULATE = 4
15+
KINETIC = 8
16+
FRAMETRANSFER = 16
17+
FASTKINETICS = 32
18+
OVERLAP = 64
19+
20+
class read_mode(caps_mask, enum.IntEnum):
21+
FULLIMAGE = 1
22+
SUBIMAGE = 2
23+
SINGLETRACK = 4
24+
FVB = 8
25+
MULTITRACK = 16 # ... drifting?
26+
RANDOMTRACK = 32
27+
MULTITRACKSCAN = 64
28+
29+
class trigger_mode(caps_mask, enum.IntEnum):
30+
INTERNAL = 1
31+
EXTERNAL = 2
32+
EXTERNAL_FVB_EM = 4
33+
CONTINOUS = 8
34+
EXTERNALSTART = 16
35+
EXTERNALEXPOSURE = 32 # Deprecated 32 BULB for EXTERNALEXPOSURE
36+
INVERTED = 0x40
37+
EXTERNAL_CHARGESHIFTING = 0x80
38+
39+
class camera_type(enum.IntEnum):
40+
PDA = 0
41+
IXON = 1
42+
ICCD = 2
43+
EMCCD = 3
44+
CCD = 4
45+
ISTAR = 5
46+
VIDEO = 6
47+
IDUS = 7
48+
NEWTON = 8
49+
SURCAM = 9
50+
USBICCD = 10
51+
LUCA = 11
52+
RESERVED = 12
53+
IKON = 13
54+
INGAAS = 14
55+
IVAC = 15
56+
UNPROGRAMMED = 16
57+
CLARA = 17
58+
USBISTAR = 18
59+
SIMCAM = 19
60+
NEO = 20
61+
IXONULTRA = 21
62+
VOLMOS = 22
63+
IVAC_CCD = 23
64+
ASPEN = 24
65+
ASCENT = 25
66+
ALTA = 26
67+
ALTAF = 27
68+
IKONXL = 28
69+
RES1 = 29
70+
71+
@classmethod
72+
def get_type(cls, camtype):
73+
return [flag.name for flag in cls.__members__.values() if flag == camtype]
74+
75+
class pixel_mode(caps_mask, enum.IntEnum):
76+
x8BIT = 1
77+
x14BIT = 2
78+
x16BIT = 4
79+
x32BIT = 8
80+
MONO = 0x000000
81+
RGB = 0x010000
82+
CMY = 0x020000
83+
84+
class set_functions(caps_mask, enum.IntEnum):
85+
VREADOUT = 0x01
86+
HREADOUT = 0x02
87+
TEMPERATURE = 0x04
88+
MCPGAIN = 0x08 # Deprecated 0x08 GAIN/ICCDGAIN for MCPGAIN
89+
EMCCDGAIN = 0x10
90+
BASELINECLAMP = 0x20
91+
VSAMPLITUDE = 0x40
92+
HIGHCAPACITY = 0x80
93+
BASELINEOFFSET = 0x0100
94+
PREAMPGAIN = 0x0200
95+
CROPMODE = 0x0400
96+
DMAPARAMETERS = 0x0800
97+
HORIZONTALBIN = 0x1000
98+
MULTITRACKHRANGE = 0x2000
99+
RANDOMTRACKNOGAPS = 0x4000
100+
EMADVANCED = 0x8000
101+
GATEMODE = 0x010000
102+
DDGTIMES = 0x020000
103+
IOC = 0x040000
104+
INTELLIGATE = 0x080000
105+
INSERTION_DELAY = 0x100000
106+
GATE_STEP = 0x200000 # GATEDELAYSTEP (?)
107+
TRIGGERTERMINATION = 0x400000
108+
EXTENDEDNIR = 0x800000
109+
SPOOLTHREADCOUNT = 0x1000000
110+
REGISTERPACK = 0x2000000
111+
PRESCANS = 0x4000000
112+
GATEWIDTHSTEP = 0x8000000
113+
EXTENDED_CROP_MODE = 0x10000000
114+
SUPERKINETICS = 0x20000000
115+
TIMESCAN = 0x40000000
116+
117+
class get_functions(caps_mask, enum.IntEnum):
118+
TEMPERATURE = 0x01
119+
TARGETTEMPERATURE = 0x02
120+
TEMPERATURERANGE = 0x04
121+
DETECTORSIZE = 0x08
122+
MCPGAIN = 0x10 # Deprecated 0x10 GAIN/ICCDGAIN for MCPGAIN
123+
EMCCDGAIN = 0x20
124+
HVFLAG = 0x40
125+
GATEMODE = 0x80
126+
DDGTIMES = 0x0100
127+
IOC = 0x0200
128+
INTELLIGATE = 0x0400
129+
INSERTION_DELAY = 0x0800
130+
GATESTEP = 0x1000 # GATEDELAYSTEP (?)
131+
PHOSPHORSTATUS = 0x2000
132+
MCPGAINTABLE = 0x4000
133+
BASELINECLAMP = 0x8000
134+
GATEWIDTHSTEP = 0x10000
135+
136+
class features(caps_mask, enum.IntEnum):
137+
POLLING = 1
138+
EVENTS = 2
139+
SPOOLING = 4
140+
SHUTTER = 8
141+
SHUTTEREX = 16
142+
EXTERNAL_12C = 32
143+
SATURATIONEVENT = 64
144+
FANCONTROL = 128
145+
MIDFANCONTROL = 256
146+
TEMPERATUREDURINGACQUISITION = 512
147+
KEEPCLEANCONTROL = 1024
148+
DDGLITE = 0x0800
149+
FTEXTERNALEXPOSURE = 0x1000
150+
KINETICEXTERNALEXPOSURE = 0x2000
151+
DACCONTROL = 0x4000
152+
METADATA = 0x8000
153+
IOCONTROL = 0x10000
154+
PHOTONCOUNTING = 0x20000
155+
COUNTCONVERT = 0x40000
156+
DUALMODE = 0x80000
157+
OPTACQUIRE = 0x100000
158+
REALTIMESPURIOUSNOISEFILTER = 0x200000
159+
POSTPROCESSSPURIOUSNOISEFILTER = 0x400000
160+
DUALPREAMPGAIN = 0x800000
161+
DEFECT_CORRECTION = 0x1000000
162+
STARTOFEXPOSURE_EVENT = 0x2000000
163+
ENDOFEXPOSURE_EVENT = 0x4000000
164+
CAMERALINK = 0x8000000
165+
FIFOFULL_EVENT = 0x10000000
166+
SENSOR_PORT_CONFIGURATION = 0x20000000
167+
SENSOR_COMPENSATION = 0x40000000
168+
IRIG_SUPPORT = 0x80000000
169+
170+
class em_gain(caps_mask, enum.IntEnum):
171+
x8_BIT = 1
172+
x12_BIT = 2
173+
LINEAR12 = 4
174+
REAL12 = 8

0 commit comments

Comments
 (0)