DRAFT ICE mapping for ATOG/LCS - MEC - 4/10/02 An ICE interface to remotely command the ATOG GUI is now available. It runs under the Version 1 of ICEX on atlas. Set instrpars.instrname to "lcs", then use the instrument tasks to send commands to the ATOG GUI. Note that the ATOG GUI program must be running to be able to send ICE commands to the instrument. One can execute the instrument task three ways: 1) type the command with no arguments to see the current status: ic> instrument probepos: PROBEPOS= '1547 lcsslit, 13599 lcsfield, 8647 lcsfield' tvfilt: TVFILT = '0 nd2.0' instrfilters: INSFILTE= '562 clear, 17137 clear' instrfocus: COLFOCUS= '7476 -' complamp: COMPLAMP= '7878 argon0, 16374 clear' disperser: DISPERSE= '17929 left' tiltpos: TILTPOS = '6653 -' aperture: SLITWID = '10876 ~1arcsec' decker: DECKER = '2508 longdeck, 9847 center' 2) execute 'epar instrpars', edit one or more parameters, then type 'instrument' to send those commands. Note that the parameters are cleared in instrpars once they are executed. 3) specify instrument parameters on the command line: ic> instrument instrpars.tvfilt="@red" Note that it is best to enclose the value of the specified parameters in double quotes as shown. Here is the mapping of ATOG/LCS functions onto ICE keywords. Old ATOG command: TV ATOG GUI command name: Diagonal Mirror FITS header keyword: PROBEPOS ICE parameter name: probepos Predefined position names: @lcsfield @lcsslit @offset @coldmirror Old ATOG command: XT ATOG GUI command name: TV X-Axis FITS header keyword: PROBEPOS ICE parameter name: probepos Predefined position names: @lcsfield @lcsslit Old ATOG command: YT ATOG GUI command name: TV Y-Axis FITS header keyword: PROBEPOS ICE parameter name: probepos Predefined position names: @lcsfield @lcsslit Note that we have not written these parameters into LCS headers in the past. We use the single ICE parameter "probepos" to set all three parameters. The syntax is: "d@offset x@lcsslit y@lcsslit" or "x@lcsslit y@lcsslit" or "d@coldmirror x@lcsslit" or "x@lcsslit" or even "@lcsslit" (move all three there) or "@lcsfield" (ditto) Note that if you request a combination move (e.g. "@lcsfield"), then that command must be the first one in the command string, and any other commands after that in the command string are ignored. If you put a combination move into the command string after one or more valid single axis moves, the combination move will generate an error. We write the three values into the one FITS keyword "PROBEPOS", with the three values and their corresponding position names appended, separated by commas (TV, XT, YT): PROBEPOS= '1547 lcsslit, 13599 lcsfield, 8647 lcsfield' Old ATOG command: TF ATOG GUI command name: TV Filter Slide FITS header keyword: TVFILT ICE parameter name: tvfilt Predefined position names: @nd2.0 @red @blue @open Old ATOG command: F1 ATOG GUI command name: Filter Wheel #1 FITS header keyword: INSFILTE ICE parameter name: instrfilters Predefined position names: @clear @cuso4 @bg18 @ug5 @nd2.0 Old ATOG command: F2 ATOG GUI command name: Filter Wheel #2 FITS header keyword: INSFILTE ICE parameter name: instrfilters Predefined position names: @clear @gg375 @gg420 @gg475 @og515 @og550 @rg610 @rg645 We use the ICE parameter 'instrfilters' to set both of the above parameters. The syntax is: "f1@clear f2@gg375" or "f1@clear" or "f2@gg375" or "f2]311" (manual positioning, relative to the upper limit) or "f1[2626" (ditto) We write these two values into the one FITS keyword INSFILTE, with a comma as a separator: INSFILTE= '562 clear, 17137 clear' Old ATOG command: CF ATOG GUI command name: Collimator Focus FITS header keyword: COLFOCUS ICE parameter name: instrfocus Predefined position names: none Old ATOG command: LA ATOG GUI command name: CompLamp FITS header keyword: COMPLAMP ICE parameter name: complamp Predefined position names: @argon7000 @argon1500 @argon750 @neon5000 @neon750 @off Old ATOG command: LF ATOG GUI command name: CompLamp Filter Wheel FITS header keyword: COMPLAMP ICE parameter name: complamp Predefined position names: @clear @nd0.3 @nd0.5 @nd1.0 @nd2.0 We use the single ICE parameter 'complamp' parameter to set both of the above parameters. The syntax is: "l@argon7000" or "f@nd0.5" or "l@neon150 f@nd2.0" Note that the position "argon7000" is itself a combination of the lamp type and the intensity. This can be further separated if desired: "l@argon i@3000 f@nd1.0" Any of the individual pieces can be left off, leaving the other values unchanged. The lamp, intensity, and filter are written into the FITS keyword "COMPLAMP" in LCS headers: COMPLAMP= '7878 argon0, 16374 clear' NOTE: The ICE task 'comps' also has a parameter 'complamp' which may be fed the same commands as above, in order to turn on the lamp and take an exposure by running just one task. In the past, the 'complamp' parameter in 'comps' was just used as a label to insert in the headers. Now it must be a valid lamp command or blank (""). Old ATOG command: GS ATOG GUI command name: Grating Slide FITS header keyword: DISPERSE ICE parameter name: disperser Predefined position names: @right @center @left Old ATOG command: SL ATOG GUI command name: Grating Tilt FITS header keyword: TILTPOS ICE parameter name: tiltpos Predefined position names: @access Old ATOG command: SW ATOG GUI command name: Slit Width FITS header keyword: SLITWID ICE parameter name: aperture Predefined position names: @1arcsec @2arcsec @3arcsec @4arcsec @5arcsec @6arcsec @7arcsec @8arcsec @9arcsec @10arcsec @11arcsec @12arcsec Old ATOG command: XD ATOG GUI command name: Decker X-Axis FITS header keyword: DECKER ICE parameter name: decker Predefined position names: @longdeck @longslit @small Old ATOG command: YD ATOG GUI command name: Decker Y-Axis FITS header keyword: DECKER ICE parameter name: decker Predefined position names: @center We use the single ICE parameter 'decker' to set both of the above parameters. The syntax is: "x@longdeck y@center" or "x@longdeck" or "y@center" We append these two values to the DECKER FITS keyword, with a comma as a separator: DECKER = '2508 longdeck, 9847 center' Old ATOG command: none ATOG GUI command name: Polarizer FITS header keyword: POLARIZE ICE parameter name: polarizer Predefined position names: none Once under computer control, the tub angle will go into the ICE parameter 'posangle', with FITS keyword "POSANGLE". For each of the ICE parameters, the following syntax would be used: @n go to position n. n can be a named position from the GUI, or the numerical encoder value, e.g "@1923". +n increment the current position by n encoder counts. The `+' sign is required. -n decrement the current position by n encoder counts. #+n increment the current position by n motor steps. The `+' sign is required. #-n decrement the current position by n motor steps. [n go to a position n motor steps above the lower limit. ]n go to a position n motor steps below the upper limit. [[n move to the lower limit quickly, find the limit accurately and slowly, and then move up n motor steps. ]]n move to the upper limit quickly, find the limit accurately and slowly, and then move down n motor steps. Not yet implemented: h home this actuator. Only for devices with a home, like polarizer and tvfilt. r reset communications with this device. Also enables movement again. d disable movement of this device under computer control (a safety feature). e enable movement of this device after it has been disabled with "d".