diff --git a/andor/andor_tcl.c b/andor/andor_tcl.c
index 18f035e..20a6ec6 100644
--- a/andor/andor_tcl.c
+++ b/andor/andor_tcl.c
@@ -131,7 +131,7 @@ void copyline (int *tobuf, int *frombuf, int count, int offset);
void create_fits_header(fitsfile *fptr);
/**
- * \brief Store iamge data to FITS file
+ * \brief Store image data to FITS file
* \param cameraId Andor camera number , 0 or 1
* \param filename Name of FITS file
* \param iexp Number of frame (for Kinetics acquisition)
@@ -157,7 +157,7 @@ int cAndorDisplaySingle(int cameraId, int ifft);
/**
- * \brief Store iamge data to FITS file, support ROI and binning
+ * \brief Store image data to FITS file, support ROI and binning
* \param cameraId Andor camera number , 0 or 1
* \param filename Name of FITS file
* \param iexp Number of frame (for Kinetics acquisition)
diff --git a/cleanRestart.geminiN b/cleanRestart.geminiN
index 46619b5..badf213 100755
--- a/cleanRestart.geminiN
+++ b/cleanRestart.geminiN
@@ -4,6 +4,9 @@
# hardware and software
#
export INSTRUMENT alopeke
+pkill -9 wish
+pkill -9 ds9red
+pkill -9 ds9blue
tclsh $HOME/speckle-control/gui-scripts/powerControl.tcl cleanRestart
$HOME/speckle-control/setDevicePermissions
$HOME/speckle-control/startspeckle2
diff --git a/cleanRestart.geminiS b/cleanRestart.geminiS
index b406466..c3f22d6 100755
--- a/cleanRestart.geminiS
+++ b/cleanRestart.geminiS
@@ -4,6 +4,9 @@
# hardware and software
#
export INSTRUMENT zorro
+pkill -9 wish
+pkill -9 ds9red
+pkill -9 ds9blue
tclsh $HOME/speckle-control/gui-scripts/powerControl.tcl cleanRestart
$HOME/speckle-control/setDevicePermissions
$HOME/speckle-control/startspeckle2
diff --git a/cleanRestart.wiyn b/cleanRestart.wiyn
index 6951979..2ce1b0c 100755
--- a/cleanRestart.wiyn
+++ b/cleanRestart.wiyn
@@ -4,6 +4,9 @@
# hardware and software
#
export INSTRUMENT wiyn
+pkill -9 wish
+pkill -9 ds9red
+pkill -9 ds9blue
tclsh $HOME/speckle-control/gui-scripts/powerControl.tcl cleanRestart
$HOME/speckle-control/setDevicePermissions
$HOME/speckle-control/startspeckle2
diff --git a/doc/.~lock.user-guide.odt# b/doc/.~lock.user-guide.odt#
new file mode 100644
index 0000000..0ff38bf
--- /dev/null
+++ b/doc/.~lock.user-guide.odt#
@@ -0,0 +1 @@
+,rfactory,localhost.localdomain,07.03.2021 14:34,file:///home/rfactory/.config/libreoffice/4;
\ No newline at end of file
diff --git a/doc/Andor SIF API.pdf b/doc/Andor SIF API.pdf
new file mode 100644
index 0000000..6bf512f
Binary files /dev/null and b/doc/Andor SIF API.pdf differ
diff --git a/doc/Software Development Kit.pdf b/doc/Software Development Kit.pdf
new file mode 100644
index 0000000..d40d5a9
Binary files /dev/null and b/doc/Software Development Kit.pdf differ
diff --git a/doc/code/html/_gen_one_linux_u_s_b_8cpp.html b/doc/code/html/_gen_one_linux_u_s_b_8cpp.html
index 8da17cd..5d37fb7 100644
--- a/doc/code/html/_gen_one_linux_u_s_b_8cpp.html
+++ b/doc/code/html/_gen_one_linux_u_s_b_8cpp.html
@@ -201,7 +201,7 @@
This function initializes all the items of the ANDOR_CFG global array to a default value of ? to ensure that we can easily see when they are assigned actual values via the Andor library wrapped calls.
-Set inital default values in the SharedMem2 shared memory area which is used for high speed data sharing with the Andor camera servers
-Print contents of SharedMem2 shared memory area which is used for high speed data sharing with the Andor camera servers
-Test setting values in the SharedMem2 shared memory area which is used for high speed data sharing with the Andor camera servers
-
diff --git a/doc/code/html/andor_8tcl_source.html b/doc/code/html/andor_8tcl_source.html
index 6f6a98e..ef6e9e2 100644
--- a/doc/code/html/andor_8tcl_source.html
+++ b/doc/code/html/andor_8tcl_source.html
@@ -148,1048 +148,1060 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
53 proc initCameraConfig { id } {
-
-
55 foreach c "exposure_time temperature cam_frames_per_second missed_frames__second usb_frames_per_second preamp_gain vertical_speed horizontal_speeds hbin vbin hstart hend vstart vend read_mode acquisition_mode width height shutter amplifier npixx npixy minimum_temperature maximum_temperature target_temperature temperature_status running usb_running camlink_running num_preamp_gains preamp_gain_index em_advanced minimum_em_gain maximum_em_gain em_gain num_vertical_speeds vertical_speed_index num_horizontal_speeds horizontal_speed_index" {
-
56 set ANDOR_CFG($id,$c) "?"
-
-
-
-
-
-
-
-
-
-
-
67 proc printCapabilities { fid } {
-
-
-
-
71 foreach c "ulSize ulAcqModes ulReadModes ulTriggerModes ulCameraType ulPixelMode ulSetFunctions ulGetFunctions ulFeatures ulPCICard ulEMGainCapability ulFTReadModes" {
-
72 puts $fid "$c = [AndorCapabilities_[set c]_get $ANDOR_CAP]"
-
-
-
-
-
-
-
-
-
-
-
83 proc printCameraConfig { fid id } {
-
-
85 foreach c "exposure_time temperature cam_frames_per_second missed_frames__second usb_frames_per_second preamp_gain vertical_speed horizontal_speeds hbin vbin hstart hend vstart vend read_mode acquisition_mode width height shutter amplifier npixx npixy minimum_temperature maximum_temperature target_temperature temperature_status running usb_running camlink_running num_preamp_gains preamp_gain_index em_advanced minimum_em_gain maximum_em_gain em_gain num_vertical_speeds vertical_speed_index num_horizontal_speeds horizontal_speed_index" {
-
86 puts $fid "$c = $ANDOR_CFG($id,$c)"
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
65 proc initCameraConfig { id } {
+
+
67 foreach c "exposure_time temperature cam_frames_per_second missed_frames__second usb_frames_per_second preamp_gain vertical_speed horizontal_speeds hbin vbin hstart hend vstart vend read_mode acquisition_mode width height shutter amplifier npixx npixy minimum_temperature maximum_temperature target_temperature temperature_status running usb_running camlink_running num_preamp_gains preamp_gain_index em_advanced minimum_em_gain maximum_em_gain em_gain num_vertical_speeds vertical_speed_index num_horizontal_speeds horizontal_speed_index" {
+
68 set ANDOR_CFG($id,$c) "?"
+
+
+
+
+
+
+
+
+
+
+
79 proc printCapabilities { fid } {
+
+
+
+
83 foreach c "ulSize ulAcqModes ulReadModes ulTriggerModes ulCameraType ulPixelMode ulSetFunctions ulGetFunctions ulFeatures ulPCICard ulEMGainCapability ulFTReadModes" {
+
84 puts $fid "$c = [AndorCapabilities_[set c]_get $ANDOR_CAP]"
+
+
+
+
+
+
+
+
+
-
-
-
-
98 proc initds9 { shmid width height } {
-
-
-
101 exec xpaset -p ds9 source $SPECKLE_DIR/andor/ds9refresher.tcl
-
102 exec xpaset -p ds9 shm array shmid $shmid \\\[xdim=$width,ydim=$height,bitpix=32\\\]
-
-
-
-
-
-
-
-
-
111 proc refreshds9 { delta count } {
-
112 exec xpaset -p ds9 tcl \{refinit $delta $count\}
-
113 exec xpaset -p ds9 tcl refresher
-
-
-
-
-
-
+
95 proc printCameraConfig { fid id } {
+
+
97 foreach c "exposure_time temperature cam_frames_per_second missed_frames__second usb_frames_per_second preamp_gain vertical_speed horizontal_speeds hbin vbin hstart hend vstart vend read_mode acquisition_mode width height shutter amplifier npixx npixy minimum_temperature maximum_temperature target_temperature temperature_status running usb_running camlink_running num_preamp_gains preamp_gain_index em_advanced minimum_em_gain maximum_em_gain em_gain num_vertical_speeds vertical_speed_index num_horizontal_speeds horizontal_speed_index" {
+
98 puts $fid "$c = $ANDOR_CFG($id,$c)"
+
+
+
+
+
+
+
+
+
+
+
+
110 proc initds9 { shmid width height } {
+
+
+
113 exec xpaset -p ds9 source $SPECKLE_DIR/andor/ds9refresher.tcl
+
114 exec xpaset -p ds9 shm array shmid $shmid \\\[xdim=$width,ydim=$height,bitpix=32\\\]
+
+
+
+
+
-
-
-
-
-
125 proc initads9 { shmid width height } {
-
126 global SPECKLE_DIR DS9
-
-
128 exec xpaset -p $DS9 source $SPECKLE_DIR/andor/ds9refresher.tcl
-
129 exec xpaset -p $DS9 shm array shmid $shmid \\\[xdim=$width,ydim=$height,bitpix=32\\\]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
143 proc refreshads9 { delta count } {
-
-
145 exec xpaset -p $DS9 tcl \{refinit $delta $count\}
-
146 exec xpaset -p $DS9 tcl refresher
-
-
-
-
+
+
+
123 proc refreshds9 { delta count } {
+
124 exec xpaset -p ds9 tcl \{refinit $delta $count\}
+
125 exec xpaset -p ds9 tcl refresher
+
+
+
+
+
+
+
+
+
+
+
+
137 proc initads9 { shmid width height } {
+
138 global SPECKLE_DIR DS9
+
+
140 exec xpaset -p $DS9 source $SPECKLE_DIR/andor/ds9refresher.tcl
+
141 exec xpaset -p $DS9 shm array shmid $shmid \\\[xdim=$width,ydim=$height,bitpix=32\\\]
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
159 proc connectToAndors { } {
-
160 global ANDOR_SOCKET INSTRUMENT
-
161 set ANDOR_SOCKET(red) 0
-
162 set ANDOR_SOCKET(blue) 0
-
-
164 set s2001 [socket localhost 2001]
-
165 fconfigure $s2001 -buffering line
-
166 puts $s2001 "whicharm"
-
-
168 debuglog "Server at socket 2001 is $rec arm"
-
169 set INSTRUMENT($rec) 1
-
-
-
172 set ANDOR_SOCKET($rec) $s2001
-
173 set s2002 [socket localhost 2002]
-
174 fconfigure $s2002 -buffering line
-
175 puts $s2002 "whicharm"
-
-
177 debuglog "Server at socket 2002 is $rec arm"
-
178 set ANDOR_SOCKET($rec) $s2002
-
179 set INSTRUMENT($rec) 1
-
-
181 if { $ANDOR_SOCKET(red) == 0} {
-
182 debuglog "No connecton to Red arm camera"
-
-
-
185 if { $ANDOR_SOCKET(blue) == 0} {
-
186 debuglog "No connecton to Blue arm camera"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
203 proc commandAndor { arm cmd {echk 1} } {
-
204 global ANDOR_SOCKET SCOPE INSTRUMENT
-
205 if { $ANDOR_SOCKET($arm) == 0} {
-
206 debuglog "WARNING : $arm arm camera not connected : $arm $cmd $echk"
-
-
-
209 if { $INSTRUMENT($arm)} {
-
210 if { [string range $cmd 0 3] == "grab"} {
-
-
212 set nrchk "$SCOPE(datadir)/$SCOPE(imagename)[
format %4.4d $SCOPE(seqnum)]r.fits"
-
213 if { [file exists $nrchk]} {
-
214 set it [
tk_dialog .d "File exists" "The file named\n $nrchk\n already exists" {} -1 OK]
-
215 debuglog "Cannot overwrite file $nrchk"
-
-
-
218 set nbchk "$SCOPE(datadir)/$SCOPE(imagename)[
format %4.4d $SCOPE(seqnum)]b.fits"
-
219 if { [file exists $nbchk]} {
-
220 set it [
tk_dialog .d "File exists" "The file named\n $nbchk\n already exists" {} -1 OK]
-
221 debuglog "Cannot overwrite file $nbchk"
-
-
-
-
-
226 debuglog "Commanding Andor $arm : $cmd"
-
227 puts $ANDOR_SOCKET($arm) $cmd
-
228 gets $ANDOR_SOCKET($arm) result
-
-
230 debuglog "Commanding Andor $arm : $cmd - DISABLED"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
244 proc flushAndors { } {
-
-
246 if { $ANDOR_SOCKET(red) > 0} {
-
247 while { [gets $ANDOR_SOCKET(red) result] > -1} {
set x 1}
-
-
249 if { $ANDOR_SOCKET(blue) > 0} {
-
250 while { [gets $ANDOR_SOCKET(blue) result] > -1} {
set x 1}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
265 proc commandCameras { cmd {echk 1} } {
-
-
-
268 if { $INSTRUMENT(clone)} {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
285 proc oldvideomode { } {
-
286 global LASTACQ STATUS SCOPE ACQREGION INSTRUMENT ANDOR_CFG
-
287 set ANDOR_CFG(videomode) 1
-
-
-
290 exec rm -f $SCOPE(datadir)/videomode_red.fits
-
291 exec rm -f $SCOPE(datadir)/videomode_blue.fits
-
-
-
-
-
296 mimicMode red temp "[
format %5.1f [
lindex $redtemp 0]] degC"
-
297 mimicMode blue temp "[
format %5.1f [
lindex $bluetemp 0]] degC"
-
298 .main.rcamtemp configure -text "[
format %5.1f [
lindex $redtemp 0]] degC"
-
299 .main.bcamtemp configure -text "[
format %5.1f [
lindex $bluetemp 0]] degC"
-
300 if { $LASTACQ == "fullframe"} {
-
-
-
-
304 commandAndor red "grabroi $SCOPE(exposure) $ACQREGION(rxs) $ACQREGION(rys) $ACQREGION(geom)"
-
305 commandAndor blue "grabroi $SCOPE(exposure) $ACQREGION(bxs) $ACQREGION(bys) $ACQREGION(geom)"
-
-
307 if { $STATUS(abort) == 0} {
-
308 if { $SCOPE(exposure) > 0.0} {
-
-
-
-
312 .main.video configure -relief sunken -fg yellow
-
313 .main.observe configure -fg LightGray -relief sunken -command ""
-
314 .main.abort configure -fg black -relief raised
-
315 after [
expr int($SCOPE(exposure)*1000)+100] videomode
-
-
317 .main.video configure -relief raised -fg black
-
318 .main.observe configure -fg black -relief raised -command startsequence
-
319 .main.abort configure -fg gray -relief sunken
-
320 set ANDOR_CFG(videomode) 0
-
-
-
-
-
-
-
-
-
-
-
331 proc startfastvideo { } {
-
332 global STATUS ANDOR_CFG
-
333 if { $STATUS(observing) == 0} {
-
-
335 set ANDOR_CFG(waskinetic) $ANDOR_CFG(kineticMode)
-
336 set ANDOR_CFG(kineticMode) 1
-
337 set ANDOR_CFG(videomode) 1
-
338 catch {updateGeminiTelemetry}
-
-
-
-
342 .lowlevel.datarate configure -text ""
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
365 proc fastvideomode { } {
-
366 global STATUS SCOPE ACQREGION CAMSTATUS ANDOR_CFG INSTRUMENT
-
367 global ANDOR_CCD ANDOR_EMCCD LASTACQ NEXTVIDEO
-
-
-
-
-
372 if { $STATUS(abort) == 0 && $STATUS(observing) == 0 && $ANDOR_CFG(videomode) == 1} {
-
373 .main.video configure -relief sunken -fg yellow
-
374 .main.observe configure -fg LightGray -relief sunken -command ""
-
375 .main.abort configure -fg black -relief raised
-
-
-
378 if { $redtemp == "" || $bluetemp == ""} {
-
379 debuglog "******************Failed to get temp**********************"
-
-
381 mimicMode red temp "[
format %5.1f [
lindex $redtemp 0]] degC"
-
382 mimicMode blue temp "[
format %5.1f [
lindex $bluetemp 0]] degC"
-
383 .main.rcamtemp configure -text "[
format %5.1f [
lindex $redtemp 0]] degC"
-
384 .main.bcamtemp configure -text "[
format %5.1f [
lindex $bluetemp 0]] degC"
-
-
386 set perrun [
expr int(100 * ($CAMSTATUS(blue,TKinetics) / $SCOPE(exposure)))]
-
387 if { $perrun > 100} {
set perrun 100}
-
388 if { $perrun < 20} {
set perrun 20}
-
389 if { $SCOPE(exposure) > 1.0} {
set perrun 2}
-
390 if { $STATUS(exposureMode) == "clone"} {
-
391 set SCOPE(exposureRed) $SCOPE(exposure)
-
-
393 commandAndor red "setbinning $ANDOR_CFG(binning) $ANDOR_CFG(binning)"
-
394 commandAndor blue "setbinning $ANDOR_CFG(binning) $ANDOR_CFG(binning)"
-
-
-
-
-
-
400 commandAndor blue "numberaccumulations $SCOPE(numaccum)"
-
-
-
403 commandAndor red "preampgain $CAMSTATUS(red,PreAmpGain)"
-
404 commandAndor blue "preampgain $CAMSTATUS(blue,PreAmpGain)"
-
405 if { $INSTRUMENT(red,emccd)} {
-
-
-
-
-
-
-
-
-
414 if { $INSTRUMENT(blue,emccd)} {
-
-
416 commandAndor blue "emadvanced $INSTRUMENT(blue,highgain)"
-
-
-
-
-
-
-
-
-
425 commandAndor red "setbinning $ANDOR_CFG(binning) $ANDOR_CFG(binning)"
-
426 commandAndor blue "setbinning $ANDOR_CFG(binning) $ANDOR_CFG(binning)"
-
427 commandAndor red "fastVideo $SCOPE(exposure) $ACQREGION(rxs) $ACQREGION(rys) $ACQREGION(geom) $perrun"
-
428 commandAndor blue "fastVideo $SCOPE(exposure) $ACQREGION(bxs) $ACQREGION(bys) $ACQREGION(geom) $perrun"
-
429 if { $SCOPE(exposure) > 0.0} {
-
-
-
-
433 debuglog "Fast video start exp=$SCOPE(exposure) for $perrun frames"
-
434 set NEXTVIDEO [after [
expr int($SCOPE(exposure)*$perrun*1000)+1000] fastvideomode]
-
-
436 after cancel $NEXTVIDEO
-
437 andorSetControl 0 abort 1
-
-
439 .main.video configure -relief raised -fg black
-
440 .main.observe configure -fg black -relief raised -command startsequence
-
441 .main.abort configure -fg gray -relief sunken
-
442 if { $ANDOR_CFG(waskinetic) == 0} {
-
443 set ANDOR_CFG(kineticMode) 0
-
-
-
-
-
448 set ANDOR_CFG(videomode) 0
-
-
-
-
-
453 set CAMSTATUS(blue,TKinetics) .06
-
454 set CAMSTATUS(red,TKinetics) .06
-
-
-
-
-
-
-
-
-
-
464 proc startoldvideomode { } {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
480 proc showControl { } {
-
-
482 foreach p "min peak frame lucky luckythresh" {
-
483 puts stdout "Camera $i : $p = [andorGetControl $i $p]"
-
-
-
486 puts stdout "Global : showfft = [andorGetControl $i showfft]"
-
487 puts stdout "Global : savelucky = [andorGetControl $i savelucky]"
-
488 puts stdout "Global : showlucky = [andorGetControl $i showlucky]"
-
489 puts stdout "Global : abort = [andorGetControl $i abort]"
-
-
-
-
-
-
-
-
-
498 proc testControl { } {
-
499 andorSetControl 0 luckythresh 99
-
500 andorSetControl 1 luckythresh 123
-
501 andorSetControl 0 showfft 0
-
502 andorSetControl 0 savelucky 0
-
503 andorSetControl 0 showlucky 0
-
504 andorSetControl 0 abort 0
-
-
-
-
-
-
-
-
512 proc initControl { } {
-
513 andorSetControl 0 luckythresh 99
-
514 andorSetControl 1 luckythresh 99
-
515 andorSetControl 0 frame 0
-
516 andorSetControl 1 frame 0
-
517 andorSetControl 0 showfft 0
-
518 andorSetControl 0 savelucky 0
-
519 andorSetControl 0 showlucky 0
-
520 andorSetControl 0 abort 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
537 proc acquireCubes { } {
-
538 global INSTRUMENT SCOPE LASTACQ ACQREGION ANDOR_CFG FWHEELS
-
539 set n [
expr $ACQREGION(xe) - $ACQREGION(xs) +1]
-
540 if { $INSTRUMENT(red)} {
-
-
542 commandAndor red "grabcube $FWHEELS(red,exposure) $ACQREGION(rxs) $ACQREGION(rys) [
expr $ACQREGION(geom)/$ANDOR_CFG(binning)] $SCOPE(numframes)"
-
-
-
545 if { $INSTRUMENT(blue)} {
-
-
547 commandAndor blue "grabcube $FWHEELS(blue,exposure) $ACQREGION(bxs) $ACQREGION(bys) [
expr $ACQREGION(geom)/$ANDOR_CFG(binning)] $SCOPE(numframes)"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
562 proc acquireFrames { } {
-
563 global INSTRUMENT SCOPE LASTACQ FWHEELS
-
564 if { $INSTRUMENT(red)} {
-
-
-
567 set LASTACQ fullframe
-
-
569 if { $INSTRUMENT(blue)} {
-
-
-
572 set LASTACQ fullframe
-
-
-
-
-
-
-
-
-
-
-
-
-
585 proc acquireTest { } {
-
586 global INSTRUMENT SCOPE LASTACQ FWHEELS
-
587 if { $INSTRUMENT(red)} {
-
-
-
590 if { $INSTRUMENT(blue)} {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
606 proc resetAndors { mode } {
-
607 global SPECKLE_DIR ANDOR_SOCKET ACQREGION LASTACQ
-
608 debuglog "Resetting Andors for $mode"
-
609 catch {commandAndor red shutdown; close $ANDOR_SOCKET(red)}
-
610 catch {commandAndor blue shutdown; close $ANDOR_SOCKET(blue)}
-
611 if { $mode == "fullframe"} {
-
612 exec xterm -e "$SPECKLE_DIR/andor/andorServer.tcl 1 1 1024 1 1024" &
-
-
614 exec xterm -e "$SPECKLE_DIR/andor/andorServer.tcl 2 1 1024 1 1024" &
-
615 set LASTACQ fullframe
-
-
617 exec xterm -e "$SPECKLE_DIR/andor/andorServer.tcl 1 $ACQREGION(xs) $ACQREGION(xe) $ACQREGION(ys) $ACQREGION(ye)" &
-
618 exec xterm -e "$SPECKLE_DIR/andor/andorServer.tcl 2 $ACQREGION(xs) $ACQREGION(xe) $ACQREGION(ys) $ACQREGION(ye)" &
-
-
620 set SCOPE(numframes) 1000
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
641 proc resetSingleAndors { mode } {
-
642 global SPECKLE_DIR ANDOR_SOCKET ACQREGION LASTACQ env
-
643 debuglog "Resetting Andors for $mode"
-
644 catch {commandAndor red shutdown; close $ANDOR_SOCKET(red)}
-
645 catch {commandAndor blue shutdown; close $ANDOR_SOCKET(blue)}
-
646 set geom2 "+20+800"
set geom1 "+1100+800"
-
647 if { $env(GEMINISITE) == "north"} {
-
648 set geom1 "+20+800"
set geom2 "+1100+800"
-
-
-
-
-
653 if { $mode == "fullframe"} {
-
654 exec xterm -geometry $geom1 -e "$SPECKLE_DIR/andor/andorCameraServer.tcl 1 1 1024 1 1024" &
-
655 exec xterm -geometry $geom2 -e "$SPECKLE_DIR/andor/andorCameraServer.tcl 2 1 1024 1 1024" &
-
656 set LASTACQ fullframe
-
-
658 exec xterm -geometry $geom1 -e "$SPECKLE_DIR/andor/andorCameraServer.tcl 1 $ACQREGION(xs) $ACQREGION(xe) $ACQREGION(ys) $ACQREGION(ye)" &
-
659 exec xterm -geometry $geom2 -e "$SPECKLE_DIR/andor/andorCameraServer.tcl 2 $ACQREGION(xs) $ACQREGION(xe) $ACQREGION(ys) $ACQREGION(ye)" &
-
-
661 set SCOPE(numframes) 1000
-
-
-
-
665 after 5000 updateTemps
-
-
-
-
-
670 set ANDOR_CFG(videomode) 0
-
-
672 set ANDOR_MODES(readout) "full_vertical_binning multi_track random_track single_track image"
-
673 set ANDOR_MODES(acquisition) "single_scan accumulate kinetics fast_kinetics run_till_abort"
-
674 set ANDOR_MODES(shutter) "auto open close"
-
675 set ANDOR_MODES(amplifier) "emccd ccd"
-
676 set ANDOR_MODES(temperature) "off stablized not_reached drift not_stabilized"
-
-
678 set ANDOR_SHUTTER(auto) 0
-
679 set ANDOR_SHUTTER(open) 1
-
680 set ANDOR_SHUTTER(close) 2
+
155 proc refreshads9 { delta count } {
+
+
157 exec xpaset -p $DS9 tcl \{refinit $delta $count\}
+
158 exec xpaset -p $DS9 tcl refresher
+
+
+
+
+
+
+
+
+
+
+
+
+
171 proc connectToAndors { } {
+
172 global ANDOR_SOCKET INSTRUMENT
+
173 set ANDOR_SOCKET(red) 0
+
174 set ANDOR_SOCKET(blue) 0
+
+
176 set s2001 [socket localhost 2001]
+
177 fconfigure $s2001 -buffering line
+
178 puts $s2001 "whicharm"
+
+
180 debuglog "Server at socket 2001 is $rec arm"
+
181 set INSTRUMENT($rec) 1
+
+
+
184 set ANDOR_SOCKET($rec) $s2001
+
185 set s2002 [socket localhost 2002]
+
186 fconfigure $s2002 -buffering line
+
187 puts $s2002 "whicharm"
+
+
189 debuglog "Server at socket 2002 is $rec arm"
+
190 set ANDOR_SOCKET($rec) $s2002
+
191 set INSTRUMENT($rec) 1
+
+
193 if { $ANDOR_SOCKET(red) == 0} {
+
194 debuglog "No connecton to Red arm camera"
+
+
+
197 if { $ANDOR_SOCKET(blue) == 0} {
+
198 debuglog "No connecton to Blue arm camera"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
215 proc commandAndor { arm cmd {echk 1} } {
+
216 global ANDOR_SOCKET SCOPE INSTRUMENT
+
217 if { $ANDOR_SOCKET($arm) == 0} {
+
218 debuglog "WARNING : $arm arm camera not connected : $arm $cmd $echk"
+
+
+
221 if { $INSTRUMENT($arm)} {
+
222 if { [string range $cmd 0 3] == "grab"} {
+
+
224 set nrchk "$SCOPE(datadir)/$SCOPE(imagename)[
format %4.4d $SCOPE(seqnum)]r.fits"
+
225 if { [file exists $nrchk]} {
+
226 set it [
tk_dialog .d "File exists" "The file named\n $nrchk\n already exists" {} -1 OK]
+
227 debuglog "Cannot overwrite file $nrchk"
+
+
+
230 set nbchk "$SCOPE(datadir)/$SCOPE(imagename)[
format %4.4d $SCOPE(seqnum)]b.fits"
+
231 if { [file exists $nbchk]} {
+
232 set it [
tk_dialog .d "File exists" "The file named\n $nbchk\n already exists" {} -1 OK]
+
233 debuglog "Cannot overwrite file $nbchk"
+
+
+
+
+
238 debuglog "Commanding Andor $arm : $cmd"
+
239 puts $ANDOR_SOCKET($arm) $cmd
+
240 gets $ANDOR_SOCKET($arm) result
+
+
242 debuglog "Commanding Andor $arm : $cmd - DISABLED"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
256 proc flushAndors { } {
+
+
258 if { $ANDOR_SOCKET(red) > 0} {
+
259 while { [gets $ANDOR_SOCKET(red) result] > -1} {
set x 1}
+
+
261 if { $ANDOR_SOCKET(blue) > 0} {
+
262 while { [gets $ANDOR_SOCKET(blue) result] > -1} {
set x 1}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
277 proc commandCameras { cmd {echk 1} } {
+
+
+
280 if { $INSTRUMENT(clone)} {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
297 proc oldvideomode { } {
+
298 global LASTACQ STATUS SCOPE ACQREGION INSTRUMENT ANDOR_CFG
+
299 set ANDOR_CFG(videomode) 1
+
+
+
302 exec rm -f $SCOPE(datadir)/videomode_red.fits
+
303 exec rm -f $SCOPE(datadir)/videomode_blue.fits
+
+
+
+
+
308 mimicMode red temp "[
format %5.1f [
lindex $redtemp 0]] degC"
+
309 mimicMode blue temp "[
format %5.1f [
lindex $bluetemp 0]] degC"
+
310 .main.rcamtemp configure -text "[
format %5.1f [
lindex $redtemp 0]] degC"
+
311 .main.bcamtemp configure -text "[
format %5.1f [
lindex $bluetemp 0]] degC"
+
312 if { $LASTACQ == "fullframe"} {
+
+
+
+
316 commandAndor red "grabroi $SCOPE(exposure) $ACQREGION(rxs) $ACQREGION(rys) $ACQREGION(geom)"
+
317 commandAndor blue "grabroi $SCOPE(exposure) $ACQREGION(bxs) $ACQREGION(bys) $ACQREGION(geom)"
+
+
319 if { $STATUS(abort) == 0} {
+
320 if { $SCOPE(exposure) > 0.0} {
+
+
+
+
324 .main.video configure -relief sunken -fg yellow
+
325 .main.observe configure -fg LightGray -relief sunken -command ""
+
326 .main.abort configure -fg black -relief raised
+
327 after [
expr int($SCOPE(exposure)*1000)+100] videomode
+
+
329 .main.video configure -relief raised -fg black
+
330 .main.observe configure -fg black -relief raised -command startsequence
+
331 .main.abort configure -fg gray -relief sunken
+
332 set ANDOR_CFG(videomode) 0
+
+
+
+
+
+
+
+
+
+
+
343 proc startfastvideo { } {
+
344 global STATUS ANDOR_CFG
+
345 if { $STATUS(observing) == 0} {
+
+
347 set ANDOR_CFG(waskinetic) $ANDOR_CFG(kineticMode)
+
348 set ANDOR_CFG(kineticMode) 1
+
349 set ANDOR_CFG(videomode) 1
+
350 catch {updateGeminiTelemetry}
+
+
+
+
354 .lowlevel.datarate configure -text ""
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
377 proc fastvideomode { } {
+
378 global STATUS SCOPE ACQREGION CAMSTATUS ANDOR_CFG INSTRUMENT
+
379 global ANDOR_CCD ANDOR_EMCCD LASTACQ NEXTVIDEO
+
+
+
+
+
384 if { $STATUS(abort) == 0 && $STATUS(observing) == 0 && $ANDOR_CFG(videomode) == 1} {
+
385 .main.video configure -relief sunken -fg yellow
+
386 .main.observe configure -fg LightGray -relief sunken -command ""
+
387 .main.abort configure -fg black -relief raised
+
+
+
390 if { $redtemp == "" || $bluetemp == ""} {
+
391 debuglog "******************Failed to get temp**********************"
+
+
393 mimicMode red temp "[
format %5.1f [
lindex $redtemp 0]] degC"
+
394 mimicMode blue temp "[
format %5.1f [
lindex $bluetemp 0]] degC"
+
395 .main.rcamtemp configure -text "[
format %5.1f [
lindex $redtemp 0]] degC"
+
396 .main.bcamtemp configure -text "[
format %5.1f [
lindex $bluetemp 0]] degC"
+
+
398 set perrun [
expr int(100 * ($CAMSTATUS(blue,TKinetics) / $SCOPE(exposure)))]
+
399 if { $perrun > 100} {
set perrun 100}
+
400 if { $perrun < 20} {
set perrun 20}
+
401 if { $SCOPE(exposure) > 1.0} {
set perrun 2}
+
402 if { $STATUS(exposureMode) == "clone"} {
+
403 set SCOPE(exposureRed) $SCOPE(exposure)
+
+
405 commandAndor red "setbinning $ANDOR_CFG(binning) $ANDOR_CFG(binning)"
+
406 commandAndor blue "setbinning $ANDOR_CFG(binning) $ANDOR_CFG(binning)"
+
+
+
+
+
+
412 commandAndor blue "numberaccumulations $SCOPE(numaccum)"
+
+
+
415 commandAndor red "preampgain $CAMSTATUS(red,PreAmpGain)"
+
416 commandAndor blue "preampgain $CAMSTATUS(blue,PreAmpGain)"
+
417 if { $INSTRUMENT(red,emccd)} {
+
+
+
+
+
+
+
+
+
426 if { $INSTRUMENT(blue,emccd)} {
+
+
428 commandAndor blue "emadvanced $INSTRUMENT(blue,highgain)"
+
+
+
+
+
+
+
+
+
437 commandAndor red "setbinning $ANDOR_CFG(binning) $ANDOR_CFG(binning)"
+
438 commandAndor blue "setbinning $ANDOR_CFG(binning) $ANDOR_CFG(binning)"
+
439 commandAndor red "fastVideo $SCOPE(exposure) $ACQREGION(rxs) $ACQREGION(rys) $ACQREGION(geom) $perrun"
+
440 commandAndor blue "fastVideo $SCOPE(exposure) $ACQREGION(bxs) $ACQREGION(bys) $ACQREGION(geom) $perrun"
+
441 if { $SCOPE(exposure) > 0.0} {
+
+
+
+
445 debuglog "Fast video start exp=$SCOPE(exposure) for $perrun frames"
+
446 set NEXTVIDEO [after [
expr int($SCOPE(exposure)*$perrun*1000)+1000] fastvideomode]
+
+
448 after cancel $NEXTVIDEO
+
449 andorSetControl 0 abort 1
+
+
451 .main.video configure -relief raised -fg black
+
452 .main.observe configure -fg black -relief raised -command startsequence
+
453 .main.abort configure -fg gray -relief sunken
+
454 if { $ANDOR_CFG(waskinetic) == 0} {
+
455 set ANDOR_CFG(kineticMode) 0
+
+
+
+
+
460 set ANDOR_CFG(videomode) 0
+
+
+
+
+
465 set CAMSTATUS(blue,TKinetics) .06
+
466 set CAMSTATUS(red,TKinetics) .06
+
+
+
+
+
+
+
+
+
+
476 proc startoldvideomode { } {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
492 proc showControl { } {
+
+
494 foreach p "min peak frame lucky luckythresh" {
+
495 puts stdout "Camera $i : $p = [andorGetControl $i $p]"
+
+
+
498 puts stdout "Global : showfft = [andorGetControl $i showfft]"
+
499 puts stdout "Global : savelucky = [andorGetControl $i savelucky]"
+
500 puts stdout "Global : showlucky = [andorGetControl $i showlucky]"
+
501 puts stdout "Global : abort = [andorGetControl $i abort]"
+
+
+
+
+
+
+
+
+
510 proc testControl { } {
+
511 andorSetControl 0 luckythresh 99
+
512 andorSetControl 1 luckythresh 123
+
513 andorSetControl 0 showfft 0
+
514 andorSetControl 0 savelucky 0
+
515 andorSetControl 0 showlucky 0
+
516 andorSetControl 0 abort 0
+
+
+
+
+
+
+
+
524 proc initControl { } {
+
525 andorSetControl 0 luckythresh 99
+
526 andorSetControl 1 luckythresh 99
+
527 andorSetControl 0 frame 0
+
528 andorSetControl 1 frame 0
+
529 andorSetControl 0 showfft 0
+
530 andorSetControl 0 savelucky 0
+
531 andorSetControl 0 showlucky 0
+
532 andorSetControl 0 abort 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
549 proc acquireCubes { } {
+
550 global INSTRUMENT SCOPE LASTACQ ACQREGION ANDOR_CFG FWHEELS
+
551 set n [
expr $ACQREGION(xe) - $ACQREGION(xs) +1]
+
552 if { $INSTRUMENT(red)} {
+
+
554 commandAndor red "grabcube $FWHEELS(red,exposure) $ACQREGION(rxs) $ACQREGION(rys) [
expr $ACQREGION(geom)/$ANDOR_CFG(binning)] $SCOPE(numframes)"
+
+
+
557 if { $INSTRUMENT(blue)} {
+
+
559 commandAndor blue "grabcube $FWHEELS(blue,exposure) $ACQREGION(bxs) $ACQREGION(bys) [
expr $ACQREGION(geom)/$ANDOR_CFG(binning)] $SCOPE(numframes)"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
574 proc acquireFrames { } {
+
575 global INSTRUMENT SCOPE LASTACQ FWHEELS
+
576 if { $INSTRUMENT(red)} {
+
+
+
579 set LASTACQ fullframe
+
+
581 if { $INSTRUMENT(blue)} {
+
+
+
584 set LASTACQ fullframe
+
+
+
+
+
+
+
+
+
+
+
+
+
597 proc acquireTest { } {
+
598 global INSTRUMENT SCOPE LASTACQ FWHEELS
+
599 if { $INSTRUMENT(red)} {
+
+
+
602 if { $INSTRUMENT(blue)} {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
618 proc resetAndors { mode } {
+
619 global SPECKLE_DIR ANDOR_SOCKET ACQREGION LASTACQ
+
620 debuglog "Resetting Andors for $mode"
+
621 catch {commandAndor red shutdown; close $ANDOR_SOCKET(red)}
+
622 catch {commandAndor blue shutdown; close $ANDOR_SOCKET(blue)}
+
623 if { $mode == "fullframe"} {
+
624 exec xterm -e "$SPECKLE_DIR/andor/andorServer.tcl 1 1 1024 1 1024" &
+
+
626 exec xterm -e "$SPECKLE_DIR/andor/andorServer.tcl 2 1 1024 1 1024" &
+
627 set LASTACQ fullframe
+
+
629 exec xterm -e "$SPECKLE_DIR/andor/andorServer.tcl 1 $ACQREGION(xs) $ACQREGION(xe) $ACQREGION(ys) $ACQREGION(ye)" &
+
630 exec xterm -e "$SPECKLE_DIR/andor/andorServer.tcl 2 $ACQREGION(xs) $ACQREGION(xe) $ACQREGION(ys) $ACQREGION(ye)" &
+
+
632 set SCOPE(numframes) 1000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
653 proc resetSingleAndors { mode } {
+
654 global SPECKLE_DIR ANDOR_SOCKET ACQREGION LASTACQ env
+
655 debuglog "Resetting Andors for $mode"
+
656 catch {commandAndor red shutdown; close $ANDOR_SOCKET(red)}
+
657 catch {commandAndor blue shutdown; close $ANDOR_SOCKET(blue)}
+
658 set geom2 "+20+800"
set geom1 "+1100+800"
+
659 if { $env(GEMINISITE) == "north"} {
+
660 set geom1 "+20+800"
set geom2 "+1100+800"
+
+
+
+
+
665 if { $mode == "fullframe"} {
+
666 exec xterm -geometry $geom1 -e "$SPECKLE_DIR/andor/andorCameraServer.tcl 1 1 1024 1 1024" &
+
667 exec xterm -geometry $geom2 -e "$SPECKLE_DIR/andor/andorCameraServer.tcl 2 1 1024 1 1024" &
+
668 set LASTACQ fullframe
+
+
670 exec xterm -geometry $geom1 -e "$SPECKLE_DIR/andor/andorCameraServer.tcl 1 $ACQREGION(xs) $ACQREGION(xe) $ACQREGION(ys) $ACQREGION(ye)" &
+
671 exec xterm -geometry $geom2 -e "$SPECKLE_DIR/andor/andorCameraServer.tcl 2 $ACQREGION(xs) $ACQREGION(xe) $ACQREGION(ys) $ACQREGION(ye)" &
+
+
673 set SCOPE(numframes) 1000
+
+
+
+
677 after 5000 updateTemps
+
+
+
-
682 set ANDOR_READMODE(FULL_VERTICAL_BINNING) 0
-
683 set ANDOR_READMODE(MULTI_TRACK) 1
-
684 set ANDOR_READMODE(RANDOM_TRACK) 2
-
685 set ANDOR_READMODE(SINGLE_TRACK) 3
-
686 set ANDOR_READMODE(IMAGE) 4
-
-
688 set ANDOR_ACQMODE(SINGLE_SCAN) 1
-
689 set ANDOR_ACQMODE(ACCUMULATE) 2
-
690 set ANDOR_ACQMODE(KINETICS) 3
-
691 set ANDOR_ACQMODE(FAST_KINETICS) 4
-
692 set ANDOR_ACQMODE(RUN_TILL_ABORT) 5
+
682 set ANDOR_CFG(videomode) 0
+
+
684 set ANDOR_MODES(readout) "full_vertical_binning multi_track random_track single_track image"
+
685 set ANDOR_MODES(acquisition) "single_scan accumulate kinetics fast_kinetics run_till_abort"
+
686 set ANDOR_MODES(shutter) "auto open close"
+
687 set ANDOR_MODES(amplifier) "emccd ccd"
+
688 set ANDOR_MODES(temperature) "off stablized not_reached drift not_stabilized"
+
+
690 set ANDOR_SHUTTER(auto) 0
+
691 set ANDOR_SHUTTER(open) 1
+
692 set ANDOR_SHUTTER(close) 2
-
-
-
-
697 set ANDOR_TEMPERATURE(OFF) 0
-
698 set ANDOR_TEMPERATURE(STABILIZED) 1
-
699 set ANDOR_TEMPERATURE(NOT_REACHED) 2
-
700 set ANDOR_TEMPERATURE(DRIFT) 3
-
701 set ANDOR_TEMPERATURE(NOT_STABILIZED) 4
-
-
703 set ANDOR_DEF(exposure_time) 0.04
-
704 set ANDOR_DEF(shutter) $ANDOR_SHUTTER(close)
-
705 set ANDOR_DEF(hbin) 1
-
706 set ANDOR_DEF(vbin) 1
-
707 set ANDOR_DEF(hstart) 1
-
708 set ANDOR_DEF(hend) 1024
-
709 set ANDOR_DEF(vstart) 1
-
710 set ANDOR_DEF(vend) 1024
-
711 set ANDOR_DEF(amplifier) $ANDOR_CCD
-
712 set ANDOR_DEF(ccd_horizontal_speed 0
-
713 set ANDOR_DEF(emccd_horizontal_speed) 1
-
714 set ANDOR_DEF(em_advanced) 0
-
715 set ANDOR_DEF(camera_link) 0
-
716 set ANDOR_DEF(head) "DU888_BV"
-
717 set ANDOR_DEF(acquisition_mode) "single_scan"
-
718 set ANDOR_DEF(int_time) 0.04
-
719 set ANDOR_DEF(kinetic_time) 0.0
-
720 set ANDOR_DEF(num_exposures) 1
-
721 set ANDOR_DEF(exposure_total) 1
-
722 set ANDOR_DEF(read_mode) "Image"
-
723 set ANDOR_DEF(fullframe) "1,1024,1,1024"
-
724 set ANDOR_DEF(roi) "200, 456, 200, 456"
-
725 set ANDOR_DEF(datatype) "Counts"
-
726 set ANDOR_DEF(calibration_type) "Pixel number"
-
727 set ANDOR_DEF(calibration_units) 0
-
728 set ANDOR_DEF(trigger) "Internal"
-
729 set ANDOR_DEF(calibration) "0,1,0,0"
-
730 set ANDOR_DEF(sw_version) "4.27.30001.0"
-
731 set ANDOR_DEF(total_exposure) 0.04
-
732 set ANDOR_DEF(temperature) -60.
-
733 set ANDOR_DEF(readout_time) 5.0E-08
-
734 set ANDOR_DEF(system_type) 0
-
735 set ANDOR_DEF(gain) 0
-
736 set ANDOR_DEF(em_gain) 0
-
737 set ANDOR_DEF(vclock_amp) 0
-
738 set ANDOR_DEF(vertical_speed) 4.33E-06
-
739 set ANDOR_DEF(amplifier) "CCD"
-
740 set ANDOR_DEF(preamp_gain) 2.
-
741 set ANDOR_DEF(target_temperature) -60.
-
742 set ANDOR_DEF(base_clamp) 1
-
743 set ANDOR_DEF(prescans) 0
-
744 set ANDOR_DEF(flipx) 0
-
745 set ANDOR_DEF(flipy) 0
-
746 set ANDOR_DEF(convert_mode) 0
-
747 set ANDOR_DEF(conversion) 1
-
748 set ANDOR_DEF(sensitivity) 4.17358
-
749 set ANDOR_DEF(frame_count) 1
-
-
-
752 set ANDOR_CFG(vertical_speeds) "4.33,2.2,1.13,0.6"
-
753 set ANDOR_CFG(readoutrate,ccd) "1.0,0.1"
-
754 set ANDOR_CFG(readoutrate,emccd) "30,20,10,1"
-
755 set ANDOR_CFG(preampgains) "1,2"
-
756 set ANDOR_CFG(minexposure,ccd) 1.1
-
757 set ANDOR_CFG(minexposure,emccd) 0.015
-
-
759 set ANDORCODE(DRV_ERROR_CODES) 20001
-
760 set ANDORCODE(DRV_SUCCESS) 20002
-
761 set ANDORCODE(DRV_VXDNOTINSTALLED) 20003
-
762 set ANDORCODE(DRV_ERROR_SCAN) 20004
-
763 set ANDORCODE(DRV_ERROR_CHECK_SUM) 20005
-
764 set ANDORCODE(DRV_ERROR_FILELOAD) 20006
-
765 set ANDORCODE(DRV_UNKNOWN_FUNCTION) 20007
-
766 set ANDORCODE(DRV_ERROR_VXD_INIT) 20008
-
767 set ANDORCODE(DRV_ERROR_ADDRESS) 20009
-
768 set ANDORCODE(DRV_ERROR_PAGELOCK) 20010
-
769 set ANDORCODE(DRV_ERROR_PAGEUNLOCK) 20011
-
770 set ANDORCODE(DRV_ERROR_BOARDTEST) 20012
-
771 set ANDORCODE(DRV_ERROR_ACK) 20013
-
772 set ANDORCODE(DRV_ERROR_UP_FIFO) 20014
-
773 set ANDORCODE(DRV_ERROR_PATTERN) 20015
-
-
775 set ANDORCODE(DRV_ACQUISITION_ERRORS) 20017
-
776 set ANDORCODE(DRV_ACQ_BUFFER) 20018
-
777 set ANDORCODE(DRV_ACQ_DOWNFIFO_FULL) 20019
-
778 set ANDORCODE(DRV_PROC_UNKONWN_INSTRUCTION) 20020
-
779 set ANDORCODE(DRV_ILLEGAL_OP_CODE) 20021
-
780 set ANDORCODE(DRV_KINETIC_TIME_NOT_MET) 20022
-
781 set ANDORCODE(DRV_ACCUM_TIME_NOT_MET) 20023
-
782 set ANDORCODE(DRV_NO_NEW_DATA) 20024
-
783 set ANDORCODE(KERN_MEM_ERROR) 20025
-
784 set ANDORCODE(DRV_SPOOLERROR) 20026
-
785 set ANDORCODE(DRV_SPOOLSETUPERROR) 20027
-
786 set ANDORCODE(DRV_FILESIZELIMITERROR) 20028
-
787 set ANDORCODE(DRV_ERROR_FILESAVE) 20029
-
-
789 set ANDORCODE(DRV_TEMPERATURE_CODES) 20033
-
790 set ANDORCODE(DRV_TEMPERATURE_OFF) 20034
-
791 set ANDORCODE(DRV_TEMPERATURE_NOT_STABILIZED) 20035
-
792 set ANDORCODE(DRV_TEMPERATURE_STABILIZED) 20036
-
793 set ANDORCODE(DRV_TEMPERATURE_NOT_REACHED) 20037
-
794 set ANDORCODE(DRV_TEMPERATURE_OUT_RANGE) 20038
-
795 set ANDORCODE(DRV_TEMPERATURE_NOT_SUPPORTED) 20039
-
796 set ANDORCODE(DRV_TEMPERATURE_DRIFT) 20040
-
-
798 set ANDORCODE(DRV_TEMP_CODES) 20033
-
799 set ANDORCODE(DRV_TEMP_OFF) 20034
-
800 set ANDORCODE(DRV_TEMP_NOT_STABILIZED) 20035
-
801 set ANDORCODE(DRV_TEMP_STABILIZED) 20036
-
802 set ANDORCODE(DRV_TEMP_NOT_REACHED) 20037
-
803 set ANDORCODE(DRV_TEMP_OUT_RANGE) 20038
-
804 set ANDORCODE(DRV_TEMP_NOT_SUPPORTED) 20039
-
805 set ANDORCODE(DRV_TEMP_DRIFT) 20040
-
-
807 set ANDORCODE(DRV_GENERAL_ERRORS) 20049
-
808 set ANDORCODE(DRV_INVALID_AUX) 20050
-
809 set ANDORCODE(DRV_COF_NOTLOADED) 20051
-
810 set ANDORCODE(DRV_FPGAPROG) 20052
-
811 set ANDORCODE(DRV_FLEXERROR) 20053
-
812 set ANDORCODE(DRV_GPIBERROR) 20054
-
813 set ANDORCODE(DRV_EEPROMVERSIONERROR) 20055
-
-
815 set ANDORCODE(DRV_DATATYPE) 20064
-
816 set ANDORCODE(DRV_DRIVER_ERRORS) 20065
-
817 set ANDORCODE(DRV_P1INVALID) 20066
-
818 set ANDORCODE(DRV_P2INVALID) 20067
-
819 set ANDORCODE(DRV_P3INVALID) 20068
-
820 set ANDORCODE(DRV_P4INVALID) 20069
-
821 set ANDORCODE(DRV_INIERROR) 20070
-
822 set ANDORCODE(DRV_COFERROR) 20071
-
823 set ANDORCODE(DRV_ACQUIRING) 20072
-
824 set ANDORCODE(DRV_IDLE) 20073
-
825 set ANDORCODE(DRV_TEMPCYCLE) 20074
-
826 set ANDORCODE(DRV_NOT_INITIALIZED) 20075
-
827 set ANDORCODE(DRV_P5INVALID) 20076
-
828 set ANDORCODE(DRV_P6INVALID) 20077
-
829 set ANDORCODE(DRV_INVALID_MODE) 20078
-
830 set ANDORCODE(DRV_INVALID_FILTER) 20079
-
-
832 set ANDORCODE(DRV_I2CERRORS) 20080
-
833 set ANDORCODE(DRV_I2CDEVNOTFOUND) 20081
-
834 set ANDORCODE(DRV_I2CTIMEOUT) 20082
-
835 set ANDORCODE(DRV_P7INVALID) 20083
-
836 set ANDORCODE(DRV_P8INVALID) 20084
-
837 set ANDORCODE(DRV_P9INVALID) 20085
-
838 set ANDORCODE(DRV_P10INVALID) 20086
-
839 set ANDORCODE(DRV_P11INVALID) 20087
-
-
841 set ANDORCODE(DRV_USBERROR) 20089
-
842 set ANDORCODE(DRV_IOCERROR) 20090
-
843 set ANDORCODE(DRV_VRMVERSIONERROR) 20091
-
844 set ANDORCODE(DRV_GATESTEPERROR) 20092
-
845 set ANDORCODE(DRV_USB_INTERRUPT_ENDPOINT_ERROR) 20093
-
846 set ANDORCODE(DRV_RANDOM_TRACK_ERROR) 20094
-
847 set ANDORCODE(DRV_INVALID_TRIGGER_MODE) 20095
-
848 set ANDORCODE(DRV_LOAD_FIRMWARE_ERROR) 20096
-
849 set ANDORCODE(DRV_DIVIDE_BY_ZERO_ERROR) 20097
-
850 set ANDORCODE(DRV_INVALID_RINGEXPOSURES) 20098
-
851 set ANDORCODE(DRV_BINNING_ERROR) 20099
-
852 set ANDORCODE(DRV_INVALID_AMPLIFIER) 20100
-
853 set ANDORCODE(DRV_INVALID_COUNTCONVERT_MODE) 20101
-
-
855 set ANDORCODE(DRV_ERROR_NOCAMERA) 20990
-
856 set ANDORCODE(DRV_NOT_SUPPORTED) 20991
-
857 set ANDORCODE(DRV_NOT_AVAILABLE) 20992
-
-
859 set ANDORCODE(DRV_ERROR_MAP) 20115
-
860 set ANDORCODE(DRV_ERROR_UNMAP) 20116
-
861 set ANDORCODE(DRV_ERROR_MDL) 20117
-
862 set ANDORCODE(DRV_ERROR_UNMDL) 20118
-
863 set ANDORCODE(DRV_ERROR_BUFFSIZE) 20119
-
864 set ANDORCODE(DRV_ERROR_NOHANDLE) 20121
-
-
866 set ANDORCODE(DRV_GATING_NOT_AVAILABLE) 20130
-
867 set ANDORCODE(DRV_FPGA_VOLTAGE_ERROR) 20131
-
-
869 set ANDORCODE(DRV_OW_CMD_FAIL) 20150
-
870 set ANDORCODE(DRV_OWMEMORY_BAD_ADDR) 20151
-
871 set ANDORCODE(DRV_OWCMD_NOT_AVAILABLE) 20152
-
872 set ANDORCODE(DRV_OW_NO_SLAVES) 20153
-
873 set ANDORCODE(DRV_OW_NOT_INITIALIZED) 20154
-
874 set ANDORCODE(DRV_OW_ERROR_SLAVE_NUM) 20155
-
875 set ANDORCODE(DRV_MSTIMINGS_ERROR) 20156
-
-
877 set ANDORCODE(DRV_OA_NULL_ERROR) 20173
-
878 set ANDORCODE(DRV_OA_PARSE_DTD_ERROR) 20174
-
879 set ANDORCODE(DRV_OA_DTD_VALIDATE_ERROR) 20175
-
880 set ANDORCODE(DRV_OA_FILE_ACCESS_ERROR) 20176
-
881 set ANDORCODE(DRV_OA_FILE_DOES_NOT_EXIST) 20177
-
882 set ANDORCODE(DRV_OA_XML_INVALID_OR_NOT_FOUND_ERROR) 20178
-
883 set ANDORCODE(DRV_OA_PRESET_FILE_NOT_LOADED) 20179
-
884 set ANDORCODE(DRV_OA_USER_FILE_NOT_LOADED) 20180
-
885 set ANDORCODE(DRV_OA_PRESET_AND_USER_FILE_NOT_LOADED) 20181
-
886 set ANDORCODE(DRV_OA_INVALID_FILE) 20182
-
887 set ANDORCODE(DRV_OA_FILE_HAS_BEEN_MODIFIED) 20183
-
888 set ANDORCODE(DRV_OA_BUFFER_FULL) 20184
-
889 set ANDORCODE(DRV_OA_INVALID_STRING_LENGTH) 20185
-
890 set ANDORCODE(DRV_OA_INVALID_CHARS_IN_NAME) 20186
-
891 set ANDORCODE(DRV_OA_INVALID_NAMING) 20187
-
892 set ANDORCODE(DRV_OA_GET_CAMERA_ERROR) 20188
-
893 set ANDORCODE(DRV_OA_MODE_ALREADY_EXISTS) 20189
-
894 set ANDORCODE(DRV_OA_STRINGS_NOT_EQUAL) 20190
-
895 set ANDORCODE(DRV_OA_NO_USER_DATA) 20191
-
896 set ANDORCODE(DRV_OA_VALUE_NOT_SUPPORTED) 20192
-
897 set ANDORCODE(DRV_OA_MODE_DOES_NOT_EXIST) 20193
-
898 set ANDORCODE(DRV_OA_CAMERA_NOT_SUPPORTED) 20194
-
899 set ANDORCODE(DRV_OA_FAILED_TO_GET_MODE) 20195
-
-
901 set ANDORCODE(DRV_PROCESSING_FAILED) 20211
-
-
903 set ANDORCODE(AC_ACQMODE_SINGLE) 1
-
904 set ANDORCODE(AC_ACQMODE_VIDEO) 2
-
905 set ANDORCODE(AC_ACQMODE_ACCUMULATE) 4
-
906 set ANDORCODE(AC_ACQMODE_KINETIC 8)
-
907 set ANDORCODE(AC_ACQMODE_FRAMETRANSFER) 16
-
908 set ANDORCODE(AC_ACQMODE_FASTKINETICS) 32
-
909 set ANDORCODE(AC_ACQMODE_OVERLAP) 64
-
-
911 set ANDORCODE(AC_READMODE_FULLIMAGE) 1
-
912 set ANDORCODE(AC_READMODE_SUBIMAGE) 2
-
913 set ANDORCODE(AC_READMODE_SINGLETRACK) 4
-
914 set ANDORCODE(AC_READMODE_FVB) 8
-
915 set ANDORCODE(AC_READMODE_MULTITRACK) 16
-
916 set ANDORCODE(AC_READMODE_RANDOMTRACK) 32
-
917 set ANDORCODE(AC_READMODE_MULTITRACKSCAN) 64
-
-
919 set ANDORCODE(AC_TRIGGERMODE_INTERNAL) 1
-
920 set ANDORCODE(AC_TRIGGERMODE_EXTERNAL) 2
-
921 set ANDORCODE(AC_TRIGGERMODE_EXTERNAL_FVB_EM) 4
-
922 set ANDORCODE(AC_TRIGGERMODE_CONTINUOUS) 8
-
923 set ANDORCODE(AC_TRIGGERMODE_EXTERNALSTART) 16
-
924 set ANDORCODE(AC_TRIGGERMODE_EXTERNALEXPOSURE) 32
-
925 set ANDORCODE(AC_TRIGGERMODE_INVERTED) 0x40
-
926 set ANDORCODE(AC_TRIGGERMODE_EXTERNAL_CHARGESHIFTING) 0x80
-
-
-
929 set ANDORCODE(AC_TRIGGERMODE_BULB) 32
+
694 set ANDOR_READMODE(FULL_VERTICAL_BINNING) 0
+
695 set ANDOR_READMODE(MULTI_TRACK) 1
+
696 set ANDOR_READMODE(RANDOM_TRACK) 2
+
697 set ANDOR_READMODE(SINGLE_TRACK) 3
+
698 set ANDOR_READMODE(IMAGE) 4
+
+
700 set ANDOR_ACQMODE(SINGLE_SCAN) 1
+
701 set ANDOR_ACQMODE(ACCUMULATE) 2
+
702 set ANDOR_ACQMODE(KINETICS) 3
+
703 set ANDOR_ACQMODE(FAST_KINETICS) 4
+
704 set ANDOR_ACQMODE(RUN_TILL_ABORT) 5
+
+
+
+
+
709 set ANDOR_TEMPERATURE(OFF) 0
+
710 set ANDOR_TEMPERATURE(STABILIZED) 1
+
711 set ANDOR_TEMPERATURE(NOT_REACHED) 2
+
712 set ANDOR_TEMPERATURE(DRIFT) 3
+
713 set ANDOR_TEMPERATURE(NOT_STABILIZED) 4
+
+
715 set ANDOR_DEF(exposure_time) 0.04
+
716 set ANDOR_DEF(shutter) $ANDOR_SHUTTER(close)
+
717 set ANDOR_DEF(hbin) 1
+
718 set ANDOR_DEF(vbin) 1
+
719 set ANDOR_DEF(hstart) 1
+
720 set ANDOR_DEF(hend) 1024
+
721 set ANDOR_DEF(vstart) 1
+
722 set ANDOR_DEF(vend) 1024
+
723 set ANDOR_DEF(amplifier) $ANDOR_CCD
+
724 set ANDOR_DEF(ccd_horizontal_speed 0
+
725 set ANDOR_DEF(emccd_horizontal_speed) 1
+
726 set ANDOR_DEF(em_advanced) 0
+
727 set ANDOR_DEF(camera_link) 0
+
728 set ANDOR_DEF(head) "DU888_BV"
+
729 set ANDOR_DEF(acquisition_mode) "single_scan"
+
730 set ANDOR_DEF(int_time) 0.04
+
731 set ANDOR_DEF(kinetic_time) 0.0
+
732 set ANDOR_DEF(num_exposures) 1
+
733 set ANDOR_DEF(exposure_total) 1
+
734 set ANDOR_DEF(read_mode) "Image"
+
735 set ANDOR_DEF(fullframe) "1,1024,1,1024"
+
736 set ANDOR_DEF(roi) "200, 456, 200, 456"
+
737 set ANDOR_DEF(datatype) "Counts"
+
738 set ANDOR_DEF(calibration_type) "Pixel number"
+
739 set ANDOR_DEF(calibration_units) 0
+
740 set ANDOR_DEF(trigger) "Internal"
+
741 set ANDOR_DEF(calibration) "0,1,0,0"
+
742 set ANDOR_DEF(sw_version) "4.27.30001.0"
+
743 set ANDOR_DEF(total_exposure) 0.04
+
744 set ANDOR_DEF(temperature) -60.
+
745 set ANDOR_DEF(readout_time) 5.0E-08
+
746 set ANDOR_DEF(system_type) 0
+
747 set ANDOR_DEF(gain) 0
+
748 set ANDOR_DEF(em_gain) 0
+
749 set ANDOR_DEF(vclock_amp) 0
+
750 set ANDOR_DEF(vertical_speed) 4.33E-06
+
751 set ANDOR_DEF(amplifier) "CCD"
+
752 set ANDOR_DEF(preamp_gain) 2.
+
753 set ANDOR_DEF(target_temperature) -60.
+
754 set ANDOR_DEF(base_clamp) 1
+
755 set ANDOR_DEF(prescans) 0
+
756 set ANDOR_DEF(flipx) 0
+
757 set ANDOR_DEF(flipy) 0
+
758 set ANDOR_DEF(convert_mode) 0
+
759 set ANDOR_DEF(conversion) 1
+
760 set ANDOR_DEF(sensitivity) 4.17358
+
761 set ANDOR_DEF(frame_count) 1
+
+
+
764 set ANDOR_CFG(vertical_speeds) "4.33,2.2,1.13,0.6"
+
765 set ANDOR_CFG(readoutrate,ccd) "1.0,0.1"
+
766 set ANDOR_CFG(readoutrate,emccd) "30,20,10,1"
+
767 set ANDOR_CFG(preampgains) "1,2"
+
768 set ANDOR_CFG(minexposure,ccd) 1.1
+
769 set ANDOR_CFG(minexposure,emccd) 0.015
+
+
771 set ANDORCODE(DRV_ERROR_CODES) 20001
+
772 set ANDORCODE(DRV_SUCCESS) 20002
+
773 set ANDORCODE(DRV_VXDNOTINSTALLED) 20003
+
774 set ANDORCODE(DRV_ERROR_SCAN) 20004
+
775 set ANDORCODE(DRV_ERROR_CHECK_SUM) 20005
+
776 set ANDORCODE(DRV_ERROR_FILELOAD) 20006
+
777 set ANDORCODE(DRV_UNKNOWN_FUNCTION) 20007
+
778 set ANDORCODE(DRV_ERROR_VXD_INIT) 20008
+
779 set ANDORCODE(DRV_ERROR_ADDRESS) 20009
+
780 set ANDORCODE(DRV_ERROR_PAGELOCK) 20010
+
781 set ANDORCODE(DRV_ERROR_PAGEUNLOCK) 20011
+
782 set ANDORCODE(DRV_ERROR_BOARDTEST) 20012
+
783 set ANDORCODE(DRV_ERROR_ACK) 20013
+
784 set ANDORCODE(DRV_ERROR_UP_FIFO) 20014
+
785 set ANDORCODE(DRV_ERROR_PATTERN) 20015
+
+
787 set ANDORCODE(DRV_ACQUISITION_ERRORS) 20017
+
788 set ANDORCODE(DRV_ACQ_BUFFER) 20018
+
789 set ANDORCODE(DRV_ACQ_DOWNFIFO_FULL) 20019
+
790 set ANDORCODE(DRV_PROC_UNKONWN_INSTRUCTION) 20020
+
791 set ANDORCODE(DRV_ILLEGAL_OP_CODE) 20021
+
792 set ANDORCODE(DRV_KINETIC_TIME_NOT_MET) 20022
+
793 set ANDORCODE(DRV_ACCUM_TIME_NOT_MET) 20023
+
794 set ANDORCODE(DRV_NO_NEW_DATA) 20024
+
795 set ANDORCODE(KERN_MEM_ERROR) 20025
+
796 set ANDORCODE(DRV_SPOOLERROR) 20026
+
797 set ANDORCODE(DRV_SPOOLSETUPERROR) 20027
+
798 set ANDORCODE(DRV_FILESIZELIMITERROR) 20028
+
799 set ANDORCODE(DRV_ERROR_FILESAVE) 20029
+
+
801 set ANDORCODE(DRV_TEMPERATURE_CODES) 20033
+
802 set ANDORCODE(DRV_TEMPERATURE_OFF) 20034
+
803 set ANDORCODE(DRV_TEMPERATURE_NOT_STABILIZED) 20035
+
804 set ANDORCODE(DRV_TEMPERATURE_STABILIZED) 20036
+
805 set ANDORCODE(DRV_TEMPERATURE_NOT_REACHED) 20037
+
806 set ANDORCODE(DRV_TEMPERATURE_OUT_RANGE) 20038
+
807 set ANDORCODE(DRV_TEMPERATURE_NOT_SUPPORTED) 20039
+
808 set ANDORCODE(DRV_TEMPERATURE_DRIFT) 20040
+
+
810 set ANDORCODE(DRV_TEMP_CODES) 20033
+
811 set ANDORCODE(DRV_TEMP_OFF) 20034
+
812 set ANDORCODE(DRV_TEMP_NOT_STABILIZED) 20035
+
813 set ANDORCODE(DRV_TEMP_STABILIZED) 20036
+
814 set ANDORCODE(DRV_TEMP_NOT_REACHED) 20037
+
815 set ANDORCODE(DRV_TEMP_OUT_RANGE) 20038
+
816 set ANDORCODE(DRV_TEMP_NOT_SUPPORTED) 20039
+
817 set ANDORCODE(DRV_TEMP_DRIFT) 20040
+
+
819 set ANDORCODE(DRV_GENERAL_ERRORS) 20049
+
820 set ANDORCODE(DRV_INVALID_AUX) 20050
+
821 set ANDORCODE(DRV_COF_NOTLOADED) 20051
+
822 set ANDORCODE(DRV_FPGAPROG) 20052
+
823 set ANDORCODE(DRV_FLEXERROR) 20053
+
824 set ANDORCODE(DRV_GPIBERROR) 20054
+
825 set ANDORCODE(DRV_EEPROMVERSIONERROR) 20055
+
+
827 set ANDORCODE(DRV_DATATYPE) 20064
+
828 set ANDORCODE(DRV_DRIVER_ERRORS) 20065
+
829 set ANDORCODE(DRV_P1INVALID) 20066
+
830 set ANDORCODE(DRV_P2INVALID) 20067
+
831 set ANDORCODE(DRV_P3INVALID) 20068
+
832 set ANDORCODE(DRV_P4INVALID) 20069
+
833 set ANDORCODE(DRV_INIERROR) 20070
+
834 set ANDORCODE(DRV_COFERROR) 20071
+
835 set ANDORCODE(DRV_ACQUIRING) 20072
+
836 set ANDORCODE(DRV_IDLE) 20073
+
837 set ANDORCODE(DRV_TEMPCYCLE) 20074
+
838 set ANDORCODE(DRV_NOT_INITIALIZED) 20075
+
839 set ANDORCODE(DRV_P5INVALID) 20076
+
840 set ANDORCODE(DRV_P6INVALID) 20077
+
841 set ANDORCODE(DRV_INVALID_MODE) 20078
+
842 set ANDORCODE(DRV_INVALID_FILTER) 20079
+
+
844 set ANDORCODE(DRV_I2CERRORS) 20080
+
845 set ANDORCODE(DRV_I2CDEVNOTFOUND) 20081
+
846 set ANDORCODE(DRV_I2CTIMEOUT) 20082
+
847 set ANDORCODE(DRV_P7INVALID) 20083
+
848 set ANDORCODE(DRV_P8INVALID) 20084
+
849 set ANDORCODE(DRV_P9INVALID) 20085
+
850 set ANDORCODE(DRV_P10INVALID) 20086
+
851 set ANDORCODE(DRV_P11INVALID) 20087
+
+
853 set ANDORCODE(DRV_USBERROR) 20089
+
854 set ANDORCODE(DRV_IOCERROR) 20090
+
855 set ANDORCODE(DRV_VRMVERSIONERROR) 20091
+
856 set ANDORCODE(DRV_GATESTEPERROR) 20092
+
857 set ANDORCODE(DRV_USB_INTERRUPT_ENDPOINT_ERROR) 20093
+
858 set ANDORCODE(DRV_RANDOM_TRACK_ERROR) 20094
+
859 set ANDORCODE(DRV_INVALID_TRIGGER_MODE) 20095
+
860 set ANDORCODE(DRV_LOAD_FIRMWARE_ERROR) 20096
+
861 set ANDORCODE(DRV_DIVIDE_BY_ZERO_ERROR) 20097
+
862 set ANDORCODE(DRV_INVALID_RINGEXPOSURES) 20098
+
863 set ANDORCODE(DRV_BINNING_ERROR) 20099
+
864 set ANDORCODE(DRV_INVALID_AMPLIFIER) 20100
+
865 set ANDORCODE(DRV_INVALID_COUNTCONVERT_MODE) 20101
+
+
867 set ANDORCODE(DRV_ERROR_NOCAMERA) 20990
+
868 set ANDORCODE(DRV_NOT_SUPPORTED) 20991
+
869 set ANDORCODE(DRV_NOT_AVAILABLE) 20992
+
+
871 set ANDORCODE(DRV_ERROR_MAP) 20115
+
872 set ANDORCODE(DRV_ERROR_UNMAP) 20116
+
873 set ANDORCODE(DRV_ERROR_MDL) 20117
+
874 set ANDORCODE(DRV_ERROR_UNMDL) 20118
+
875 set ANDORCODE(DRV_ERROR_BUFFSIZE) 20119
+
876 set ANDORCODE(DRV_ERROR_NOHANDLE) 20121
+
+
878 set ANDORCODE(DRV_GATING_NOT_AVAILABLE) 20130
+
879 set ANDORCODE(DRV_FPGA_VOLTAGE_ERROR) 20131
+
+
881 set ANDORCODE(DRV_OW_CMD_FAIL) 20150
+
882 set ANDORCODE(DRV_OWMEMORY_BAD_ADDR) 20151
+
883 set ANDORCODE(DRV_OWCMD_NOT_AVAILABLE) 20152
+
884 set ANDORCODE(DRV_OW_NO_SLAVES) 20153
+
885 set ANDORCODE(DRV_OW_NOT_INITIALIZED) 20154
+
886 set ANDORCODE(DRV_OW_ERROR_SLAVE_NUM) 20155
+
887 set ANDORCODE(DRV_MSTIMINGS_ERROR) 20156
+
+
889 set ANDORCODE(DRV_OA_NULL_ERROR) 20173
+
890 set ANDORCODE(DRV_OA_PARSE_DTD_ERROR) 20174
+
891 set ANDORCODE(DRV_OA_DTD_VALIDATE_ERROR) 20175
+
892 set ANDORCODE(DRV_OA_FILE_ACCESS_ERROR) 20176
+
893 set ANDORCODE(DRV_OA_FILE_DOES_NOT_EXIST) 20177
+
894 set ANDORCODE(DRV_OA_XML_INVALID_OR_NOT_FOUND_ERROR) 20178
+
895 set ANDORCODE(DRV_OA_PRESET_FILE_NOT_LOADED) 20179
+
896 set ANDORCODE(DRV_OA_USER_FILE_NOT_LOADED) 20180
+
897 set ANDORCODE(DRV_OA_PRESET_AND_USER_FILE_NOT_LOADED) 20181
+
898 set ANDORCODE(DRV_OA_INVALID_FILE) 20182
+
899 set ANDORCODE(DRV_OA_FILE_HAS_BEEN_MODIFIED) 20183
+
900 set ANDORCODE(DRV_OA_BUFFER_FULL) 20184
+
901 set ANDORCODE(DRV_OA_INVALID_STRING_LENGTH) 20185
+
902 set ANDORCODE(DRV_OA_INVALID_CHARS_IN_NAME) 20186
+
903 set ANDORCODE(DRV_OA_INVALID_NAMING) 20187
+
904 set ANDORCODE(DRV_OA_GET_CAMERA_ERROR) 20188
+
905 set ANDORCODE(DRV_OA_MODE_ALREADY_EXISTS) 20189
+
906 set ANDORCODE(DRV_OA_STRINGS_NOT_EQUAL) 20190
+
907 set ANDORCODE(DRV_OA_NO_USER_DATA) 20191
+
908 set ANDORCODE(DRV_OA_VALUE_NOT_SUPPORTED) 20192
+
909 set ANDORCODE(DRV_OA_MODE_DOES_NOT_EXIST) 20193
+
910 set ANDORCODE(DRV_OA_CAMERA_NOT_SUPPORTED) 20194
+
911 set ANDORCODE(DRV_OA_FAILED_TO_GET_MODE) 20195
+
+
913 set ANDORCODE(DRV_PROCESSING_FAILED) 20211
+
+
915 set ANDORCODE(AC_ACQMODE_SINGLE) 1
+
916 set ANDORCODE(AC_ACQMODE_VIDEO) 2
+
917 set ANDORCODE(AC_ACQMODE_ACCUMULATE) 4
+
918 set ANDORCODE(AC_ACQMODE_KINETIC 8)
+
919 set ANDORCODE(AC_ACQMODE_FRAMETRANSFER) 16
+
920 set ANDORCODE(AC_ACQMODE_FASTKINETICS) 32
+
921 set ANDORCODE(AC_ACQMODE_OVERLAP) 64
+
+
923 set ANDORCODE(AC_READMODE_FULLIMAGE) 1
+
924 set ANDORCODE(AC_READMODE_SUBIMAGE) 2
+
925 set ANDORCODE(AC_READMODE_SINGLETRACK) 4
+
926 set ANDORCODE(AC_READMODE_FVB) 8
+
927 set ANDORCODE(AC_READMODE_MULTITRACK) 16
+
928 set ANDORCODE(AC_READMODE_RANDOMTRACK) 32
+
929 set ANDORCODE(AC_READMODE_MULTITRACKSCAN) 64
-
931 set ANDORCODE(AC_CAMERATYPE_PDA) 0
-
932 set ANDORCODE(AC_CAMERATYPE_IXON) 1
-
933 set ANDORCODE(AC_CAMERATYPE_ICCD) 2
-
934 set ANDORCODE(AC_CAMERATYPE_EMCCD) 3
-
935 set ANDORCODE(AC_CAMERATYPE_CCD) 4
-
936 set ANDORCODE(AC_CAMERATYPE_ISTAR) 5
-
937 set ANDORCODE(AC_CAMERATYPE_VIDEO) 6
-
938 set ANDORCODE(AC_CAMERATYPE_IDUS) 7
-
939 set ANDORCODE(AC_CAMERATYPE_NEWTON) 8
-
940 set ANDORCODE(AC_CAMERATYPE_SURCAM) 9
-
941 set ANDORCODE(AC_CAMERATYPE_USBICCD) 10
-
942 set ANDORCODE(AC_CAMERATYPE_LUCA) 11
-
943 set ANDORCODE(AC_CAMERATYPE_RESERVED) 12
-
944 set ANDORCODE(AC_CAMERATYPE_IKON) 13
-
945 set ANDORCODE(AC_CAMERATYPE_INGAAS) 14
-
946 set ANDORCODE(AC_CAMERATYPE_IVAC) 15
-
947 set ANDORCODE(AC_CAMERATYPE_UNPROGRAMMED) 16
-
948 set ANDORCODE(AC_CAMERATYPE_CLARA) 17
-
949 set ANDORCODE(AC_CAMERATYPE_USBISTAR) 18
-
950 set ANDORCODE(AC_CAMERATYPE_SIMCAM) 19
-
951 set ANDORCODE(AC_CAMERATYPE_NEO) 20
-
952 set ANDORCODE(AC_CAMERATYPE_IXONULTRA) 21
-
953 set ANDORCODE(AC_CAMERATYPE_VOLMOS) 22
-
954 set ANDORCODE(AC_CAMERATYPE_IVAC_CCD) 23
-
955 set ANDORCODE(AC_CAMERATYPE_ASPEN) 24
-
956 set ANDORCODE(AC_CAMERATYPE_ASCENT) 25
-
957 set ANDORCODE(AC_CAMERATYPE_ALTA) 26
-
958 set ANDORCODE(AC_CAMERATYPE_ALTAF) 27
-
959 set ANDORCODE(AC_CAMERATYPE_IKONXL) 28
-
960 set ANDORCODE(AC_CAMERATYPE_RES1) 29
-
-
962 set ANDORCODE(AC_PIXELMODE_8BIT) 1
-
963 set ANDORCODE(AC_PIXELMODE_14BIT) 2
-
964 set ANDORCODE(AC_PIXELMODE_16BIT) 4
-
965 set ANDORCODE(AC_PIXELMODE_32BIT) 8
-
-
967 set ANDORCODE(AC_PIXELMODE_MONO) 0x000000
-
968 set ANDORCODE(AC_PIXELMODE_RGB) 0x010000
-
969 set ANDORCODE(AC_PIXELMODE_CMY) 0x020000
-
-
971 set ANDORCODE(AC_SETFUNCTION_VREADOUT) 0x01
-
972 set ANDORCODE(AC_SETFUNCTION_HREADOUT) 0x02
-
973 set ANDORCODE(AC_SETFUNCTION_TEMPERATURE) 0x04
-
974 set ANDORCODE(AC_SETFUNCTION_MCPGAIN) 0x08
-
975 set ANDORCODE(AC_SETFUNCTION_EMCCDGAIN) 0x10
-
976 set ANDORCODE(AC_SETFUNCTION_BASELINECLAMP) 0x20
-
977 set ANDORCODE(AC_SETFUNCTION_VSAMPLITUDE) 0x40
-
978 set ANDORCODE(AC_SETFUNCTION_HIGHCAPACITY) 0x80
-
979 set ANDORCODE(AC_SETFUNCTION_BASELINEOFFSET) 0x0100
-
980 set ANDORCODE(AC_SETFUNCTION_PREAMPGAIN) 0x0200
-
981 set ANDORCODE(AC_SETFUNCTION_CROPMODE) 0x0400
-
982 set ANDORCODE(AC_SETFUNCTION_DMAPARAMETERS) 0x0800
-
983 set ANDORCODE(AC_SETFUNCTION_HORIZONTALBIN) 0x1000
-
984 set ANDORCODE(AC_SETFUNCTION_MULTITRACKHRANGE) 0x2000
-
985 set ANDORCODE(AC_SETFUNCTION_RANDOMTRACKNOGAPS) 0x4000
-
986 set ANDORCODE(AC_SETFUNCTION_EMADVANCED) 0x8000
-
987 set ANDORCODE(AC_SETFUNCTION_GATEMODE) 0x010000
-
988 set ANDORCODE(AC_SETFUNCTION_DDGTIMES) 0x020000
-
989 set ANDORCODE(AC_SETFUNCTION_IOC) 0x040000
-
990 set ANDORCODE(AC_SETFUNCTION_INTELLIGATE) 0x080000
-
991 set ANDORCODE(AC_SETFUNCTION_INSERTION_DELAY) 0x100000
-
992 set ANDORCODE(AC_SETFUNCTION_GATESTEP) 0x200000
-
993 set ANDORCODE(AC_SETFUNCTION_GATEDELAYSTEP) 0x200000
-
994 set ANDORCODE(AC_SETFUNCTION_TRIGGERTERMINATION) 0x400000
-
995 set ANDORCODE(AC_SETFUNCTION_EXTENDEDNIR) 0x800000
-
996 set ANDORCODE(AC_SETFUNCTION_SPOOLTHREADCOUNT) 0x1000000
-
997 set ANDORCODE(AC_SETFUNCTION_REGISTERPACK) 0x2000000
-
998 set ANDORCODE(AC_SETFUNCTION_PRESCANS) 0x4000000
-
999 set ANDORCODE(AC_SETFUNCTION_GATEWIDTHSTEP) 0x8000000
-
1000 set ANDORCODE(AC_SETFUNCTION_EXTENDED_CROP_MODE) 0x10000000
-
1001 set ANDORCODE(AC_SETFUNCTION_SUPERKINETICS) 0x20000000
-
1002 set ANDORCODE(AC_SETFUNCTION_TIMESCAN) 0x40000000
-
-
-
1005 set ANDORCODE(AC_SETFUNCTION_GAIN) 8
-
1006 set ANDORCODE(AC_SETFUNCTION_ICCDGAIN) 8
-
-
1008 set ANDORCODE(AC_GETFUNCTION_TEMPERATURE) 0x01
-
1009 set ANDORCODE(AC_GETFUNCTION_TARGETTEMPERATURE) 0x02
-
1010 set ANDORCODE(AC_GETFUNCTION_TEMPERATURERANGE) 0x04
-
1011 set ANDORCODE(AC_GETFUNCTION_DETECTORSIZE) 0x08
-
1012 set ANDORCODE(AC_GETFUNCTION_MCPGAIN) 0x10
-
1013 set ANDORCODE(AC_GETFUNCTION_EMCCDGAIN) 0x20
-
1014 set ANDORCODE(AC_GETFUNCTION_HVFLAG) 0x40
-
1015 set ANDORCODE(AC_GETFUNCTION_GATEMODE) 0x80
-
1016 set ANDORCODE(AC_GETFUNCTION_DDGTIMES) 0x0100
-
1017 set ANDORCODE(AC_GETFUNCTION_IOC) 0x0200
-
1018 set ANDORCODE(AC_GETFUNCTION_INTELLIGATE) 0x0400
-
1019 set ANDORCODE(AC_GETFUNCTION_INSERTION_DELAY) 0x0800
-
1020 set ANDORCODE(AC_GETFUNCTION_GATESTEP) 0x1000
-
1021 set ANDORCODE(AC_GETFUNCTION_GATEDELAYSTEP) 0x1000
-
1022 set ANDORCODE(AC_GETFUNCTION_PHOSPHORSTATUS) 0x2000
-
1023 set ANDORCODE(AC_GETFUNCTION_MCPGAINTABLE) 0x4000
-
1024 set ANDORCODE(AC_GETFUNCTION_BASELINECLAMP) 0x8000
-
1025 set ANDORCODE(AC_GETFUNCTION_GATEWIDTHSTEP) 0x10000
-
-
1027 set ANDORCODE(AC_GETFUNCTION_GAIN) 0x10
-
1028 set ANDORCODE(AC_GETFUNCTION_ICCDGAIN) 0x10
-
-
1030 set ANDORCODE(AC_FEATURES_POLLING) 1
-
1031 set ANDORCODE(AC_FEATURES_EVENTS) 2
-
1032 set ANDORCODE(AC_FEATURES_SPOOLING) 4
-
1033 set ANDORCODE(AC_FEATURES_SHUTTER) 8
-
1034 set ANDORCODE(AC_FEATURES_SHUTTEREX) 16
-
1035 set ANDORCODE(AC_FEATURES_EXTERNAL_I2C) 32
-
1036 set ANDORCODE(AC_FEATURES_SATURATIONEVENT) 64
-
1037 set ANDORCODE(AC_FEATURES_FANCONTROL) 128
-
1038 set ANDORCODE(AC_FEATURES_MIDFANCONTROL) 256
-
1039 set ANDORCODE(AC_FEATURES_TEMPERATUREDURINGACQUISITION) 512
-
1040 set ANDORCODE(AC_FEATURES_KEEPCLEANCONTROL) 1024
-
1041 set ANDORCODE(AC_FEATURES_DDGLITE) 0x0800
-
1042 set ANDORCODE(AC_FEATURES_FTEXTERNALEXPOSURE) 0x1000
-
1043 set ANDORCODE(AC_FEATURES_KINETICEXTERNALEXPOSURE) 0x2000
-
1044 set ANDORCODE(AC_FEATURES_DACCONTROL) 0x4000
-
1045 set ANDORCODE(AC_FEATURES_METADATA) 0x8000
-
1046 set ANDORCODE(AC_FEATURES_IOCONTROL) 0x10000
-
1047 set ANDORCODE(AC_FEATURES_PHOTONCOUNTING) 0x20000
-
1048 set ANDORCODE(AC_FEATURES_COUNTCONVERT) 0x40000
-
1049 set ANDORCODE(AC_FEATURES_DUALMODE) 0x80000
-
1050 set ANDORCODE(AC_FEATURES_OPTACQUIRE) 0x100000
-
1051 set ANDORCODE(AC_FEATURES_REALTIMESPURIOUSNOISEFILTER) 0x200000
-
1052 set ANDORCODE(AC_FEATURES_POSTPROCESSSPURIOUSNOISEFILTER) 0x400000
-
1053 set ANDORCODE(AC_FEATURES_DUALPREAMPGAIN) 0x800000
-
1054 set ANDORCODE(AC_FEATURES_DEFECT_CORRECTION) 0x1000000
-
1055 set ANDORCODE(AC_FEATURES_STARTOFEXPOSURE_EVENT) 0x2000000
-
1056 set ANDORCODE(AC_FEATURES_ENDOFEXPOSURE_EVENT) 0x4000000
-
1057 set ANDORCODE(AC_FEATURES_CAMERALINK) 0x8000000
-
1058 set ANDORCODE(AC_FEATURES_FIFOFULL_EVENT) 0x10000000
-
1059 set ANDORCODE(AC_FEATURES_SENSOR_PORT_CONFIGURATION) 0x20000000
-
1060 set ANDORCODE(AC_FEATURES_SENSOR_COMPENSATION) 0x40000000
-
1061 set ANDORCODE(AC_FEATURES_IRIG_SUPPORT) 0x80000000
-
-
1063 set ANDORCODE(AC_EMGAIN_8BIT) 1
-
1064 set ANDORCODE(AC_EMGAIN_12BIT) 2
-
1065 set ANDORCODE(AC_EMGAIN_LINEAR12) 4
-
1066 set ANDORCODE(AC_EMGAIN_REAL12) 8
-
-
1068 foreach i [array names ANDORCODE] {
-
1069 if { [string range $i 0 3] == "DRV_"} {
-
1070 set ANDOR_RET($ANDORCODE($i)) [
string range $i 4 end]
-
-
-
-
-
+
931 set ANDORCODE(AC_TRIGGERMODE_INTERNAL) 1
+
932 set ANDORCODE(AC_TRIGGERMODE_EXTERNAL) 2
+
933 set ANDORCODE(AC_TRIGGERMODE_EXTERNAL_FVB_EM) 4
+
934 set ANDORCODE(AC_TRIGGERMODE_CONTINUOUS) 8
+
935 set ANDORCODE(AC_TRIGGERMODE_EXTERNALSTART) 16
+
936 set ANDORCODE(AC_TRIGGERMODE_EXTERNALEXPOSURE) 32
+
937 set ANDORCODE(AC_TRIGGERMODE_INVERTED) 0x40
+
938 set ANDORCODE(AC_TRIGGERMODE_EXTERNAL_CHARGESHIFTING) 0x80
+
+
+
941 set ANDORCODE(AC_TRIGGERMODE_BULB) 32
+
+
943 set ANDORCODE(AC_CAMERATYPE_PDA) 0
+
944 set ANDORCODE(AC_CAMERATYPE_IXON) 1
+
945 set ANDORCODE(AC_CAMERATYPE_ICCD) 2
+
946 set ANDORCODE(AC_CAMERATYPE_EMCCD) 3
+
947 set ANDORCODE(AC_CAMERATYPE_CCD) 4
+
948 set ANDORCODE(AC_CAMERATYPE_ISTAR) 5
+
949 set ANDORCODE(AC_CAMERATYPE_VIDEO) 6
+
950 set ANDORCODE(AC_CAMERATYPE_IDUS) 7
+
951 set ANDORCODE(AC_CAMERATYPE_NEWTON) 8
+
952 set ANDORCODE(AC_CAMERATYPE_SURCAM) 9
+
953 set ANDORCODE(AC_CAMERATYPE_USBICCD) 10
+
954 set ANDORCODE(AC_CAMERATYPE_LUCA) 11
+
955 set ANDORCODE(AC_CAMERATYPE_RESERVED) 12
+
956 set ANDORCODE(AC_CAMERATYPE_IKON) 13
+
957 set ANDORCODE(AC_CAMERATYPE_INGAAS) 14
+
958 set ANDORCODE(AC_CAMERATYPE_IVAC) 15
+
959 set ANDORCODE(AC_CAMERATYPE_UNPROGRAMMED) 16
+
960 set ANDORCODE(AC_CAMERATYPE_CLARA) 17
+
961 set ANDORCODE(AC_CAMERATYPE_USBISTAR) 18
+
962 set ANDORCODE(AC_CAMERATYPE_SIMCAM) 19
+
963 set ANDORCODE(AC_CAMERATYPE_NEO) 20
+
964 set ANDORCODE(AC_CAMERATYPE_IXONULTRA) 21
+
965 set ANDORCODE(AC_CAMERATYPE_VOLMOS) 22
+
966 set ANDORCODE(AC_CAMERATYPE_IVAC_CCD) 23
+
967 set ANDORCODE(AC_CAMERATYPE_ASPEN) 24
+
968 set ANDORCODE(AC_CAMERATYPE_ASCENT) 25
+
969 set ANDORCODE(AC_CAMERATYPE_ALTA) 26
+
970 set ANDORCODE(AC_CAMERATYPE_ALTAF) 27
+
971 set ANDORCODE(AC_CAMERATYPE_IKONXL) 28
+
972 set ANDORCODE(AC_CAMERATYPE_RES1) 29
+
+
974 set ANDORCODE(AC_PIXELMODE_8BIT) 1
+
975 set ANDORCODE(AC_PIXELMODE_14BIT) 2
+
976 set ANDORCODE(AC_PIXELMODE_16BIT) 4
+
977 set ANDORCODE(AC_PIXELMODE_32BIT) 8
+
+
979 set ANDORCODE(AC_PIXELMODE_MONO) 0x000000
+
980 set ANDORCODE(AC_PIXELMODE_RGB) 0x010000
+
981 set ANDORCODE(AC_PIXELMODE_CMY) 0x020000
+
+
983 set ANDORCODE(AC_SETFUNCTION_VREADOUT) 0x01
+
984 set ANDORCODE(AC_SETFUNCTION_HREADOUT) 0x02
+
985 set ANDORCODE(AC_SETFUNCTION_TEMPERATURE) 0x04
+
986 set ANDORCODE(AC_SETFUNCTION_MCPGAIN) 0x08
+
987 set ANDORCODE(AC_SETFUNCTION_EMCCDGAIN) 0x10
+
988 set ANDORCODE(AC_SETFUNCTION_BASELINECLAMP) 0x20
+
989 set ANDORCODE(AC_SETFUNCTION_VSAMPLITUDE) 0x40
+
990 set ANDORCODE(AC_SETFUNCTION_HIGHCAPACITY) 0x80
+
991 set ANDORCODE(AC_SETFUNCTION_BASELINEOFFSET) 0x0100
+
992 set ANDORCODE(AC_SETFUNCTION_PREAMPGAIN) 0x0200
+
993 set ANDORCODE(AC_SETFUNCTION_CROPMODE) 0x0400
+
994 set ANDORCODE(AC_SETFUNCTION_DMAPARAMETERS) 0x0800
+
995 set ANDORCODE(AC_SETFUNCTION_HORIZONTALBIN) 0x1000
+
996 set ANDORCODE(AC_SETFUNCTION_MULTITRACKHRANGE) 0x2000
+
997 set ANDORCODE(AC_SETFUNCTION_RANDOMTRACKNOGAPS) 0x4000
+
998 set ANDORCODE(AC_SETFUNCTION_EMADVANCED) 0x8000
+
999 set ANDORCODE(AC_SETFUNCTION_GATEMODE) 0x010000
+
1000 set ANDORCODE(AC_SETFUNCTION_DDGTIMES) 0x020000
+
1001 set ANDORCODE(AC_SETFUNCTION_IOC) 0x040000
+
1002 set ANDORCODE(AC_SETFUNCTION_INTELLIGATE) 0x080000
+
1003 set ANDORCODE(AC_SETFUNCTION_INSERTION_DELAY) 0x100000
+
1004 set ANDORCODE(AC_SETFUNCTION_GATESTEP) 0x200000
+
1005 set ANDORCODE(AC_SETFUNCTION_GATEDELAYSTEP) 0x200000
+
1006 set ANDORCODE(AC_SETFUNCTION_TRIGGERTERMINATION) 0x400000
+
1007 set ANDORCODE(AC_SETFUNCTION_EXTENDEDNIR) 0x800000
+
1008 set ANDORCODE(AC_SETFUNCTION_SPOOLTHREADCOUNT) 0x1000000
+
1009 set ANDORCODE(AC_SETFUNCTION_REGISTERPACK) 0x2000000
+
1010 set ANDORCODE(AC_SETFUNCTION_PRESCANS) 0x4000000
+
1011 set ANDORCODE(AC_SETFUNCTION_GATEWIDTHSTEP) 0x8000000
+
1012 set ANDORCODE(AC_SETFUNCTION_EXTENDED_CROP_MODE) 0x10000000
+
1013 set ANDORCODE(AC_SETFUNCTION_SUPERKINETICS) 0x20000000
+
1014 set ANDORCODE(AC_SETFUNCTION_TIMESCAN) 0x40000000
+
+
+
1017 set ANDORCODE(AC_SETFUNCTION_GAIN) 8
+
1018 set ANDORCODE(AC_SETFUNCTION_ICCDGAIN) 8
+
+
1020 set ANDORCODE(AC_GETFUNCTION_TEMPERATURE) 0x01
+
1021 set ANDORCODE(AC_GETFUNCTION_TARGETTEMPERATURE) 0x02
+
1022 set ANDORCODE(AC_GETFUNCTION_TEMPERATURERANGE) 0x04
+
1023 set ANDORCODE(AC_GETFUNCTION_DETECTORSIZE) 0x08
+
1024 set ANDORCODE(AC_GETFUNCTION_MCPGAIN) 0x10
+
1025 set ANDORCODE(AC_GETFUNCTION_EMCCDGAIN) 0x20
+
1026 set ANDORCODE(AC_GETFUNCTION_HVFLAG) 0x40
+
1027 set ANDORCODE(AC_GETFUNCTION_GATEMODE) 0x80
+
1028 set ANDORCODE(AC_GETFUNCTION_DDGTIMES) 0x0100
+
1029 set ANDORCODE(AC_GETFUNCTION_IOC) 0x0200
+
1030 set ANDORCODE(AC_GETFUNCTION_INTELLIGATE) 0x0400
+
1031 set ANDORCODE(AC_GETFUNCTION_INSERTION_DELAY) 0x0800
+
1032 set ANDORCODE(AC_GETFUNCTION_GATESTEP) 0x1000
+
1033 set ANDORCODE(AC_GETFUNCTION_GATEDELAYSTEP) 0x1000
+
1034 set ANDORCODE(AC_GETFUNCTION_PHOSPHORSTATUS) 0x2000
+
1035 set ANDORCODE(AC_GETFUNCTION_MCPGAINTABLE) 0x4000
+
1036 set ANDORCODE(AC_GETFUNCTION_BASELINECLAMP) 0x8000
+
1037 set ANDORCODE(AC_GETFUNCTION_GATEWIDTHSTEP) 0x10000
+
+
1039 set ANDORCODE(AC_GETFUNCTION_GAIN) 0x10
+
1040 set ANDORCODE(AC_GETFUNCTION_ICCDGAIN) 0x10
+
+
1042 set ANDORCODE(AC_FEATURES_POLLING) 1
+
1043 set ANDORCODE(AC_FEATURES_EVENTS) 2
+
1044 set ANDORCODE(AC_FEATURES_SPOOLING) 4
+
1045 set ANDORCODE(AC_FEATURES_SHUTTER) 8
+
1046 set ANDORCODE(AC_FEATURES_SHUTTEREX) 16
+
1047 set ANDORCODE(AC_FEATURES_EXTERNAL_I2C) 32
+
1048 set ANDORCODE(AC_FEATURES_SATURATIONEVENT) 64
+
1049 set ANDORCODE(AC_FEATURES_FANCONTROL) 128
+
1050 set ANDORCODE(AC_FEATURES_MIDFANCONTROL) 256
+
1051 set ANDORCODE(AC_FEATURES_TEMPERATUREDURINGACQUISITION) 512
+
1052 set ANDORCODE(AC_FEATURES_KEEPCLEANCONTROL) 1024
+
1053 set ANDORCODE(AC_FEATURES_DDGLITE) 0x0800
+
1054 set ANDORCODE(AC_FEATURES_FTEXTERNALEXPOSURE) 0x1000
+
1055 set ANDORCODE(AC_FEATURES_KINETICEXTERNALEXPOSURE) 0x2000
+
1056 set ANDORCODE(AC_FEATURES_DACCONTROL) 0x4000
+
1057 set ANDORCODE(AC_FEATURES_METADATA) 0x8000
+
1058 set ANDORCODE(AC_FEATURES_IOCONTROL) 0x10000
+
1059 set ANDORCODE(AC_FEATURES_PHOTONCOUNTING) 0x20000
+
1060 set ANDORCODE(AC_FEATURES_COUNTCONVERT) 0x40000
+
1061 set ANDORCODE(AC_FEATURES_DUALMODE) 0x80000
+
1062 set ANDORCODE(AC_FEATURES_OPTACQUIRE) 0x100000
+
1063 set ANDORCODE(AC_FEATURES_REALTIMESPURIOUSNOISEFILTER) 0x200000
+
1064 set ANDORCODE(AC_FEATURES_POSTPROCESSSPURIOUSNOISEFILTER) 0x400000
+
1065 set ANDORCODE(AC_FEATURES_DUALPREAMPGAIN) 0x800000
+
1066 set ANDORCODE(AC_FEATURES_DEFECT_CORRECTION) 0x1000000
+
1067 set ANDORCODE(AC_FEATURES_STARTOFEXPOSURE_EVENT) 0x2000000
+
1068 set ANDORCODE(AC_FEATURES_ENDOFEXPOSURE_EVENT) 0x4000000
+
1069 set ANDORCODE(AC_FEATURES_CAMERALINK) 0x8000000
+
1070 set ANDORCODE(AC_FEATURES_FIFOFULL_EVENT) 0x10000000
+
1071 set ANDORCODE(AC_FEATURES_SENSOR_PORT_CONFIGURATION) 0x20000000
+
1072 set ANDORCODE(AC_FEATURES_SENSOR_COMPENSATION) 0x40000000
+
1073 set ANDORCODE(AC_FEATURES_IRIG_SUPPORT) 0x80000000
+
+
1075 set ANDORCODE(AC_EMGAIN_8BIT) 1
+
1076 set ANDORCODE(AC_EMGAIN_12BIT) 2
+
1077 set ANDORCODE(AC_EMGAIN_LINEAR12) 4
+
1078 set ANDORCODE(AC_EMGAIN_REAL12) 8
+
+
1080 foreach i [array names ANDORCODE] {
+
1081 if { [string range $i 0 3] == "DRV_"} {
+
1082 set ANDOR_RET($ANDORCODE($i)) [
string range $i 4 end]
+
+
+
+
+