'''[wiki:GraspSwControllerCmd readout]''' [[TracNav(GraspContents)]] ||Command:||'''readout'''|| ||Contexts:||Network socket, serial console, stage2 only|| ||Function:||Perform CCD readout (clocking and sampling)|| ||Required Parameters:||none.|| ||Optional Parameters:|| || ||'''dev='''||[current] Select dev '''0''' '''1''' or '''all'''|| ||'''namp='''||![8] Select number of amplifiers to read (per dev)|| ||'''width='''||[set from detsize] Override detector pixel column (serial) count|| ||'''height='''||[set from detsize] Override detector pixel row (parallel) count|| ||'''cellrow='''||[none] OTA CCD cell row to read ('''0..7''' '''none''' or '''all''')|| ||'''buffer='''||[see notes] Buffer pool number into which to copy the readout|| ||'''adcflip='''||[true] Treat amplifiers in reverse order (affects readcal!)|| ||'''adczero='''||![0] Position of first output amplifier to save (0..7)|| '''CCD-only options, not applicable to IR devices: ''' ||'''colbin='''||![1] Column binning (not implemented!)|| ||'''rowbin='''||![1] Row binning factor (1,2,3,...)|| ||'''bpp='''||![16] Bits per pixel to save (16:signal-pedestal, 32:pedestal,signal)|| ||'''sercln='''||![5] Number of times to clean the serial register before readout|| ||'''prebias='''||![0] Device serial register prescan pixels (clocked and discarded)|| ||'''pskip='''||![0] Subraster/region of interest: Number of extra parallel clocks before reading region|| ||'''sskip='''||![0] Subraster/region of interest: Number of extra serial clocks before each row|| '''CCD Video-mode readout options:''' ||'''vid_shutter='''||[false] If set to '''true''', activate a stargrasp-controller shutter during video|| ||'''vid_prebias='''||OBSOLETE. Use '''prebias=''' ||'''rowpre='''||![0] Rows to shift down for a "video clean" before integration|| ||'''colpre='''||![0] Columns to shift (left or right) for a "video clean" before integration|| ||'''vid_expose='''||![0] Video frame exposure (integration) time in milliseconds. '''>= 1''' activates video|| ||'''vid_rowskip='''||OBSOLETE. Use '''pskip=''' ||'''vid_colskip='''||OT-CCD only: Sideways pskip. Normal CCDs must use '''sskip=''' ||'''vid_colskip2='''||OT-CCD only: Second sideways pskip (used for "ghost reduction) === '''buffer''' and '''cellrow''' options === 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''' 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. 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. === '''adcflip=''' and '''adczero=''' options === The '''adcflip=''' option is obsolete, in the sense that it should always be left at the default (true.) Reversing it in order to get the amplifiers written to FITS file in reverse order is not advised, because doing so will break readcal. The '''adczero=''' option can still be used, in combination with '''namp=''' to select a (contiguous) range of output amplifiers from which pixels need to be saved. For example, to read only the third output (output amplifier 2), use: {{{ readout namp=1 adczero=2 }}} (And leave adcflip set, which is always the default.)