===== Advanced scripting with ObsInp ===== (Erstmal intern, bis alles ausgiebig getestet ist) === Working with TOPO modes === It is possible to change the TOPO modes via scripts. There are two different ways: - Use the scripts ''@tauto'', ''@tnorth'', or ''@tsouth'' to load a TOPO item into the observing queue. When ''control'' encounters one of these items, it will simply change the TOPO mode. - In any other script, one can use the Key ''TopoMode '' (with one of AUTO, NORTH, SOUTH) to have ''control'' change the TOPO. Note, that subsequent measurements won't switch back to the previous TOPO. === Mixing scripts of different type === Sometimes, it is desired to mix different types of measurement in a single script, e.g., pointings and position switches. In the normal case, ObsInp will interpret a script as of such a type, as the input tab which was used, e.g., if one would call a pointing script from the FSwitch tab, Obsinp would load the source as FSwitch. To avoid this behavior, one can simply add the ''Form'' keyword to the script, followed by the name of the input mask 3C123 ; Catalog Default ; CoordinateSystem Equatorial ; Equinox B1950 ; Help Defaults ; ObjectLatitude 29 34 14.0 " ; ObjectLongitude 04 33 55.2 s ; POINTcorr 1 ; SCANDirection Longitude/Latitude ; SCANLength -4 ; SCANRepeats 2 ; SCANRotation 0.0 ; SCANTime 30 ; Scanning_in Azimuth/Elevation ; ZigZag True; Form Pointing (a pointing on 3C123) 3C48 ; Amplitude 0 ; Catalog Default ; CoordinateSystem Equatorial ; CosDrv No ; Equinox B1950 ; FreqThrowHi -4.0 ; FreqThrowLo 0 ; Help Defaults ; LatOff 0.0 ; LonOff -1d ; NRepeats 1 ; ObjectLatitude 52 26 13 " ; ObjectLongitude 14 09 33.5 s ; Offset_in CoordinateSystem ; SCANRepeats 1 ; SCANTime 120 ; SourceVelocity 0.0 ; StartPosAng 180 ; TrackParAng On ; VMode Fixed ; VelSystem VLSR; Form FSwitch (an fswitch on 3C48) Lets assume these scripts were saved in the files ''poitest'' and ''fswtest''. Then one can call both from the same Script @poitest @fswtest Of course one can also set the receiver, frequencies and use different sources FE: S110mm; VERn 1; Frequency 2.6 @poitest:3C295 @fswtest:3C295 FE: S110mm; VERn 1; Frequency 2.5 @poitest:3C295 @fswtest:3C295 === Set focus/pointing offsets from a script === Using the ''Form'' keyword, one has also access to pointing and focus offsets. 3C48 ; Catalog Default; NULE 10; SetAbsolut Yes; Form PointingCorrection Use ''SetAbsolut Yes'' or ''SetAbsolut No'' to set the value of the associated Combobox. 3C48 ; Catalog Default; ZLinear -10; QPosition 1; Form Focus_Offsets ''QPosition 1'' means, the focus offset will be put at the top of the queue, while ''QPosition 0'' puts it to the current position (the latter being more useful in a script). Note, that one has to use a (dummy) source and catalog in the script. === Configuring devices === Some devices can be configured via scripts, e.g., the current receiver (and version) can be changed, MultiFiBa and Filterbox can be configured: # Receiver commands FE: P50mm; VERn 2; Frequency 6.0 FE: S110mm; VERn 1; Frequency 2.6 # MultiFiBa MF:S99128 MF:A03@100 === Recursive use of source names === A feature often used is to apply scripts to different sources. Although each script contains a source and catalog name (at least when created with ObsInp), one can call the script with a different source name, e.g. ''@poitest:3C48''. It is even possible to recursively use this feature. Assume you want to use the script FE: S110mm; VERn 1; Frequency 2.6 @poitest:3C295 @fswtest:3C295 FE: S110mm; VERn 1; Frequency 2.5 @poitest:3C295 @fswtest:3C295 (lets call it ''masterscript'') on many sources. Then you just have to remove all source names from the script FE: S110mm; VERn 1; Frequency 2.6 @poitest @fswtest FE: S110mm; VERn 1; Frequency 2.5 @poitest @fswtest Now one can call ''@masterscript:W3MAIN'' from any form, and it will correctly replace the sources. If it is called without source name, ObsInp will use the sources it finds in the root scripts (it doesn't work, if the masterscript still contains source names). **Warning: at the moment, recursive scripting is buggy (or rather has unintended behavior).**