1 |
1 |
'''[wiki:GraspSwControllerCmd readout]''' |
2 |
2 |
[[TracNav(GraspContents)]] |
3 |
3 |
||Command:||'''readout'''|| |
4 |
4 |
||Contexts:||Network socket, serial console, stage2 only|| |
5 |
5 |
||Function:||Perform CCD readout (clocking and sampling)|| |
6 |
6 |
||Required Parameters:||none.|| |
7 |
7 |
||Optional Parameters:|| || |
8 |
8 |
||'''dev='''||[current] Select dev '''0''' '''1''' or '''all'''|| |
9 |
9 |
||'''namp='''||![8] Select number of amplifiers to read (per dev)|| |
10 |
10 |
||'''width='''||[set from detsize] Override detector pixel column (serial) count|| |
11 |
11 |
||'''height='''||[set from detsize] Override detector pixel row (parallel) count|| |
12 |
12 |
||'''cellrow='''||[none] OTA CCD cell row to read ('''0..7''' '''none''' or '''all''')|| |
13 |
13 |
||'''buffer='''||[see notes] Buffer pool number into which to copy the readout|| |
14 |
14 |
||'''adcflip='''||[true] Treat amplifiers in reverse order (affects readcal!)|| |
15 |
15 |
||'''adczero='''||![0] Position of first output amplifier to save (0..7)|| |
16 |
16 |
'''CCD-only options, not applicable to IR devices: ''' |
17 |
17 |
||'''colbin='''||![1] Column binning (not implemented, unless used with swscale=true)|| |
18 |
18 |
||'''rowbin='''||![1] Row binning factor (1,2,3,...)|| |
19 |
19 |
||'''swscale='''||[false] Instead of serial binning, apply software scaling at '''colbin''' factor (sw >= r5659)|| |
20 |
20 |
||'''bpp='''||![16] Bits per pixel to save (16:signal-pedestal, 32:pedestal,signal)|| |
21 |
21 |
||'''sercln='''||![5] Number of times to clean the serial register before readout|| |
22 |
22 |
||'''prebias='''||![0] Device serial register prescan pixels (clocked and discarded)|| |
23 |
23 |
||'''pskip='''||![0] Subraster/region of interest: Number of extra parallel clocks before reading region|| |
24 |
24 |
||'''sskip='''||![0] Subraster/region of interest: Number of extra serial clocks before each row|| |
25 |
25 |
'''CCD Video-mode readout options:''' |
26 |
26 |
||'''vid_shutter='''||[false] If set to '''true''', activate a stargrasp-controller shutter during video|| |
27 |
27 |
||'''vid_prebias='''||OBSOLETE. Use '''prebias=''' |
28 |
28 |
||'''rowpre='''||![0] Rows to shift down for a "video clean" before integration|| |
29 |
29 |
||'''colpre='''||![0] Columns to shift (left or right) for a "video clean" before integration|| |
30 |
30 |
||'''vid_expose='''||![0] Video frame exposure (integration) time in milliseconds. '''>= 1''' activates video|| |
31 |
31 |
||'''vid_rowskip='''||OBSOLETE. Use '''pskip=''' |
32 |
32 |
||'''vid_colskip='''||OT-CCD only: Sideways pskip. Normal CCDs must use '''sskip=''' |
33 |
33 |
||'''vid_colskip2='''||OT-CCD only: Second sideways pskip (used for "ghost reduction") |
34 |
34 |
The '''cellrow=''' option only applies to OTA CCDs. OTA CCDs have 8 cellrows, only one of which can be read at a time. They are numbered 0 through 7, so that is the valid range for this parameter. Non-OTA devices should use the default: '''cellrow=none''' |
35 |
35 |
When '''cellrow=''' is 0..7 or '''all''', then '''buffer=''' defaults to the same value as the cellrow. In other words, cellrow 0 pixels are placed in buffer 0 memory, cellrow 1 pixels are placed in buffer 1 memory, and so on. If double or triple buffering of images is desired for non-OTA devices, the '''buffer=''' option can be used to achieve this. Otherwise, the controller continually overwrites the image in buffer 0 for non-OTA devices. |
36 |
36 |
Before using multiple buffers, calculate whether the controller has enough memory to store multiple images from your detector. Expect to have around a 10% overhead for packet headers and the controller code itself. |