1. Introduction

This document covers the steps needed to update from FS 10.0.0 to 10.1.0 (now patched as 10.1.1) and the changes in the new version. Installing the new version (see the Upgrading from 10.0.0 section below) is much simpler than the update to 10.0.0.

FS 10.1.0 has been tested for several configurations but not all possible ones. You should test it carefully before using it for operations. Please email Ed if you encounter problems so that we can resolve them.

The changes in the FS and drudg for 10.1.0 are covered in the Changes since 10.0.0 section below. The most significant changes in 10.1.0 are:

  • FS and drudg support for DBBC3 racks.

  • Improved onoff output for the operator to make it clearer what the program is doing.

  • gnplt no longer duplicates trailing comments in .rxg files.

  • A new drudg option e-vlbi_override in skedf.ctl to automatically change the recorder to none and remove /fila10g if present in the rack name, if the target_correlator VEX parameter includes e-vlbi (case insensitive).

  • A new drudg option close_scan in skedf.ctl to make it easier to breakaway from one schedule to run another schedule for a short time and then return to the original schedule. This can be useful for geodesy intensive schedules.

  • Change the default FS git branch to main

As always, we are deeply indebted to Jonathan Quick (HartRAO) for his many significant contributions that go far beyond what is explicitly mentioned here. For this particular release, his contributions include feature suggestions and testing for DBBC3 support, as well as for many non-DBBC3 specific features, and for documentation enhancements. Many of the improvements that were made are due to his thoughtfulness and diligence.

We thank Dave Horsley (Hobart) for developing the unpacking software for the DBBC3 multicast data.

We thank Eskil Varenius (Onsala) for bug reports and feedback, particularly on DBBC3 related issues.

We thank Chris Coughlin, Kiah Imai (and the rest of the team at KPGO), Katie Pazamickas and Jay Redmond (both at GGAO) for testing Beta releases.

We thank Beppe Maccaferri (Medicina) for being a diligent Beta tester and reporting bugs.

We thank Javi Gonzalez (Yebes) for testing the RDBE phase-cal tone logging improvement.

2. Upgrading from 10.0.0

You must have already upgraded to 10.0.0 according to the FS 10.0.0 Update Notes document before installing this update. If you have already installed 10.0.0, please follow the directions below.

Note

If you have 10.1.0-beta2 installed, please refer to the FS 10.1.0-beta2 to FS 10.1.0 Update Notes document instead.

If you have 10.1.0-beta1 installed, please refer to the FS 10.1.0-beta1 to FS 10.1.0-beta2 Update Notes document, then the FS 10.1.0-beta2 to FS 10.1.0 Update Notes document.

2.1. Backup your operational system

Having a back-up to return to will allow you to continue operations in case something goes wrong with the installation. If you don’t have your own scheme, and for more details, please see the Making a back-up before installing section in the Installation Reference document.

You can also use symbolic links with copies of your old operational directories to switch back and forth between in your operational 10.0.0 configuration and a test install of 10.1.0. This is covered in detail in the Using symbolic links subsection of the section and document referenced above.

2.2. Login as root

Important
The next step requires root permissions.

2.3. Fetch FS 10.1.0

Important

The default branch of the FS has changed to main. To simplify the installation, the directions after this IMPORTANT block re-clone the repository. If you need to preserve your old repository as your working copy and you use git to install (either one of the first two methods after this block; the third method does not use git), please use the directions in the Click here for the details toggle within this IMPORTANT block to download the update and change your default branch to main.

Click here for the details
  1. As root, make a backup copy of your current /usr2/fs-git directory;

    cd /usr2
    cp -a fs-git fs-git.old-10.0.0
  2. Login as prog

  3. Change your default branch to main:

    Caution

    If you installed 10.0.0 around June 5, 2022 or later, your default branch may already be main. You can check with:

    cd /usr2/fs
    git branch

    If main shows up (and master does not), you should skip this step and go to the next one, checking out the new version, below.

    There are two different methods for this sub-step depending on which FSLx/git version you are using:

    1. If you are using FSL10 (git version 2.11.0):

      cd /usr2/fs-git
      git branch -m master main
      git fetch origin
      git branch -u origin/main main
      git remote set-head origin -a
      git branch -rd origin/master
    2. If you are using FSL9 (git version 1.7.10.4):

      cd /usr2/fs-git
      git branch -m master main
      git fetch origin
      sed -i 's%refs/heads/master%refs/heads/main%' .git/config
      git remote set-head origin -a
      git branch -rd origin/master
  4. Checkout the new version:

    git checkout -q 10.1.1
    Note
    The use of 10.1.1 is not a typo. That is the latest patch release for 10.1.
  5. Login as root

    This is to prepare for the next step below, Fix file permissions, which you should go to next.

There are three options given below. The directions in the first two include preserving a copy of your current /usr2/fs-git directory. This is not required, but may help you recover if there is an error. You can of course use any name you like for the copy. You should use a different name for the copy than fs-git.old-10.0.0 if that already exists.

Note
The use of 10.1.1 in this step is not a typo. That is the latest patch release for 10.1.
  1. If you are using an FSL9, FSL10, or another system that can support https connections with github.com, enter the commands:

    cd /usr2
    mv fs-git fs-git.old-10.0.0
    git clone https://github.com/nvi-inc/fs fs-git
    cd fs-git
    git checkout -q 10.1.1
    make install

    Answer y to confirm installation.

  2. If you are able to use ssh instead (this no longer includes FSL8), enter the commands:

    cd /usr2
    mv fs-git fs-git.old-10.0.0
    git clone git@github.com:nvi-inc/fs fs-git
    cd fs-git
    git checkout -q 10.1.1
    make install

    Answer y to confirm installation.

  3. If you are using FSL8, or otherwise unable to use git:

    Note
    This option does not include making a copy of your old directory since it is preserved anyway.
    1. Please follow the steps, through the step that includes the option to set the /usr2/fs link, in the Installing from an archive subsection in the Release Model document. Use 10.1.1 as the value for tag. Be sure to set the link for /usr2/fs by running make install.

    2. Return to this document, continuing with the next step, Fix file permissions below.

2.4. Fix file permissions

Having the wrong ownership and/or permissions on the operational files (procedure libraries, control files, schedules, and logs) can cause errors during FS operations. For a full discussion, please refer to the Set operations file permissions section of the Installation Reference document. For stations with the standard configuration (all the operational files are owned by user oper in group rtx, with permissions ug+rw,o+r,o-w), the following command, executed as root, will enforce this (note that the execute/search bits are not changed):

/usr2/fs/misc/fix_perm

Answer y to the prompt if you wish to proceed. It is recommended for most stations.

2.5. Login as prog

Important
The FS and your station code must be compiled as prog.

2.6. Compile the FS

cd /usr2/fs
make rmdoto rmexe all >& /dev/null
make -s

No output from the last command indicates a successful make.

2.7. Reload your station code

If /usr2/st/Makefile is set-up in the standard way, you can do this with:

cd /usr2/st
make rmdoto rmexe all
Important

If your station code uses refrw(), the make will fail. You will need to update to use refrw_bad() or refrwn(). The use of refrw_bad(), which uses the same algorithm as the old refrw(), should be sufficient in the short-term, but you should change to refrwn() when convenient.

For more information, please see the refrw_bad() FS change item (if that link doesn’t work in your browser, click on this link instead: Improve refraction calculations, open the Details toggle below that location by clicking on it, go Back in the browser, and finally click on the original link).

2.8. Reboot

Important
Reboot the computer. This is necessary to allocate FS, and possibly station, shared memory for the new version. It will also make sure you are using the latest version of the display server.

2.9. Login as oper

Important
Except as indicated, the remaining steps should be performed as oper.

2.10. Remove temporary fixes

There are two general categories of temporary fixes that we are aware of: Local versions of fesh/plog/rdbemsg and FS display server error logging. We think very few stations have installed these fixes. If can’t remember if you have installed either of these, reading the respective subsections may help you figure that out. If you have other fixes you are aware of, you should check those as well.

2.10.1. Local versions of fesh/plog/rdbemsg

If you have installed temporary versions of fesh and/or plog and/or rdbemsg, which should be outside the normal FS source directory, you should probably remove them. All previously supplied updates to work-around various issues have been incorporated into this release.

Typically these temporary versions would have aliases defined for them and/or have been installed in ~oper/bin. If you can’t remember if you are using a local version, you can check for an alias, for example for plog, with the command:

alias | grep plog
Tip
Aliases are usually defined in ~oper/.bash_aliases or ~oper/.cshrc.

To check if you are are using local copy in your PATH you can use the command:

which plog

Instead of just deleting aliases or temporary versions, we suggest you rename them, for example, maybe plog.old for plog. That way they will still be accessible until you have verified that the new standard versions work for you. If you find any fixes are missing, please contact Ed so they can be added.

Note
If you use a local version of feshp, it should not need to be changed.

2.10.2. FS display server error logging

If you were using a screen session to capture any debug error output from the display server (fsserver), that must be disabled. The FS now does this automatically.

Typically, this would be setup in a alias or script (possibly in ~/oper/bin) that you use start the FS.

2.11. Local customizations

  1. Check your use of the equipment_override option in skedf.ctl.

    If you did not have the equipment_override option selected in skedf.ctl, you probably should. You will also need to specify the equipment option with the correct values if you haven’t already. This is the safest way to specify your equipment in skedf.ctl. However, other combinations are possible depending on your needs. Due to bugs in drudg these options were not operating correctly in version 10.0.0.

    For more information, please see the Fix drudg equipment options drudg change item (if that link doesn’t work in your browser, click on this link instead: Changes to skedf.ctl options, open the Details toggle below that location by clicking on it, go Back in the browser, and finally click on the original link).

  2. If present, remove use of setsid from stpgm.ctl.

    If you have been using setsid in your stpgm.ctl, possibly to insulate xterms from Control+C when not using the display server, you should remove it. It is no longer needed and if it is used on an x line in the file now, it will prevent the FS from starting successfully. It is also not needed if the display server is in use.

  3. Make sure all lines with xterm in stpgm.ctl use x as the second field.

    For use without the display server, this will prevent the xterm from being aborted by a Control+C and causing the FS to abort. When used with the display server, this will make it part of the clients, which is normally what is needed.

  4. Create the dbbc3.ctl control file.

    The contents of DBBC3 line in the equip.ctl control file has been moved to a new control file, dbbc3.ctl, and reorganized. To create the new file and remove the obsolete contents of equip.ctl, execute:

    cd /usr2/control
    /usr2/fs/misc/equipctlfix equip.ctl

    This will create the file, preserving the values from the DBBC3 line in your old equip.ctl file. Your original file will be preserved as equip.ctl.bak, which must not exist already. Creating this file should allowing running the FS if you don’t have a DBBC3. If you have a DBBC3, you should customize the contents in the FS DBBC3 Configuration step below.

  5. Install the new (default) erchk control file:

    cd /usr2/control
    cp /usr2/fs/st.default/control/erchk.ctl .

    The default file will recreate the previous erchk behavior except that now sp errors will also be shown. More information on customizing the file can be found in erchk control file FS change item below.

  6. Run the FS to check for .rxg file errors.

    Five additional formatting errors are now reported for .rxg files. While it is unlikely, if your .rxg files have any of these errors, they will be reported when you try to run the FS. Only one error is reported at a time. You will need to correct each error in turn until the FS starts successfully.

    The new errors reported are described in the Additional .rxg file errors FS change item (if that link doesn’t work in your browser, click on this link instead: Improve error messages when reading .rxg files, open the Details toggle below that location by clicking on it, go Back in the browser, and finally click on the original link).

  7. If you have a Mark 5C and/or FlexBuff recorder, use pfmed to add mk5c_config and/or fb_config procedures to your station procedure library.

    Tip

    Alternatively, if the FS is not running, you can add empty initial versions to your station procedure library with the following commands.

    For mk5c_config:

    cd /usr2/proc
    cat /usr2/fs/st.default/proc/mk5c_config.prc >>station.prc

    For fb_config:

    cd /usr2/proc
    cat /usr2/fs/st.default/proc/fb_config.prc >>station.prc

    These procedures are called by drudg generated setup procedures for systems with Mark 5C and FlexBuff recorders. They provide a means to tune the setup of jive5ab for your hardware independent of the observing mode. They can be empty if your recorders don’t need tuning or you don’t know what tuning to use.

    Note
    These procedures are called after the mk5c_mode or fb_mode commands, depending on the type of recorder, to allow the default configuration to be overridden. The default configuration is described in the Default configuration subsection of the Recoder tuning appendix of the FS DBBC3 Operations Manual and in the help pages for mk5c_mode and fb_mode. The commands in these procedures should be mode independent. Mode dependent tuning should be handled differently; perhaps by inserting commands directly at the top-level of the setup procedure.
  8. If you have a FlexBuff recorder, use pfmed to add a checkfb procedure to your station procedure library.

    drudg now uses this procedure in place of checkmk5 when the selected recorder is FlexBuff.

    Three modifications are needed to fully support this change. pfmed should be used for all these modifications.

    1. You can add the procedure in in one of two ways:

      • If you don’t also have a Mark 5 recorder, you can rename your existing procedure:

        pf,station
        rn,checkmk5,checkfb
      • If you also have a Mark 5 recorder, you can make a copy of your existing procedure:

        pf,station
        st,checkmk5,checkfb
    2. Additionally, in the new procedure:

      • You should remove any mk5=get_stats? commands, if they are present.

      • It is recommended to rename the mk5_status call to fb_status.

    3. Lastly, if you call checkmk5 from any local procedures, you should probably change those calls to checkfb if you only have a FlexBuff recorder. If you have also have a Mark 5 recorder, you may want to create new versions that call checkfb instead for use with the FlexBuff.

  9. FS DBBC3 Configuration: If you have a DBBC3, you should make the configuration changes described in the Configuring the FS for use with a DBBC3 section of the FS DBBC3 Operations Manual. If you expect to get a DBBC3, these changes can be deferred until then.

  10. Cleanup .rxg file comments:

    This step is optional, but may help you if want the leading and trailing comments in your .rxg files to be easy to interpret. If it is not performed, there will no loss of functionality with the .rxg files. They will just have some extraneous comments.

    The complete cleanup can be a lengthy process. It is covered in the appendix Cleaning up .rxg file comments. That appendix has two sequential steps. The first is relatively easy and is recommended for most users before they next update their .rxg files with gnplt. The second step is more complicated and can then be deferred until later. Please see the appendix for more details.

    Note

    This step exists due to bugs in gnplt, fixed as of this update, that have caused extra comments to added to .rxg files. This is described in the Stop adding extra comments when updating .rxg files change in the FS changes subsection below.

    If you have been correcting the extra comments added by gnplt as you updated your .rxg files, this step may have little or no benefit for you.

  11. If you are using tcsh as your login shell for oper or prog (or AUID accounts) and have not already done so, adjust ~/.xsession .

    This step is optional, but may be helpful if you are using tcsh as your login shell for oper and/or prog (or AUID accounts) and use the FS with the graphical display on the console. For this case, you may wish to make the changes in the Updating ~/.xsession sub-step in the Miscellaneous FSLx changes step of the FS 10.0.0 Update Notes document. If you have already made these changes, this step can be skipped.

    This change will make sure the window manager (fvwm2) operates with the FS runtime environment variables set. This could be important, for example, if you want to run fsclient (perhaps for a scan_check window) from a console hotkey.

  12. Make the scnch and erchk windows NeverFocus when using the FS on the console.

    This step is optional, but will eliminate these windows getting the input focus, which can be a nuisance. Add NeverFocus for the scnch, erchk, and monan windows in your ~/.fvm2rc files so they will never accidentally get the focus (they don’t accept input). The scnch and erchk windows will still be able to be scrolled. If this changed is desired, add the lines:

    Style "erchk" NeverFocus
    Style "scnch" NeverFocus
    Style "monan" NeverFocus

    As oper, you can compare your version of the file with the new default using:

    cd
    diff .fvwm2rc /usr2/fs/st.default/oper

    You can make the same change for prog, after logging into that account.

    Note
    If you login with AUID accounts and then promote to oper/prog, you will need to make these changes in the AUID accounts to have the intended effect.

2.12. Login as oper

Important
Make sure you are logged in as oper for the next step. This step in included to make sure you have switched back to oper after the previous step.

2.13. Test the FS

Important

Before testing, if as part of your testing of station code you ran the FS under the prog account, either reboot or after terminating the FS, use the command:

fsserver stop

to make sure the server is no longer being run by prog.

For details on why this is needed, please see the second IMPORTANT item in the Server continues running after FS termination subsection of the FS 10.0.0 fsserver Changes document.

Generally speaking, a fairly thorough test is to run a test experiment. Start with using drudg to rotate a schedule, drudging it to make .snp and .prc files and listings. Peform any other pre-experiment preparation and tests you normally do, then execute part of the schedule, and perform any normal post-experiment plotting and clean-up that you do. The idea here is to verify that everything works as you expect for normal operations.

Previously, the onoff program did not detect errors reported by antcn; now it does. It seems unlikely that that this will cause a problem, but if it does, please see the onoff now detects antcn errors FS change item below (if that link doesn’t work in your browser, click on this link instead: Improve onoff, open the Details toggle below that location by clicking on it, go Back in the browser, and finally click on the original link).

2.14. Consider when to update your back-ups

It would be prudent to wait until you have successfully run an experiment or two and preferably received word that the experiment(s) produced good data. The chances of needing to use your back-up from before updating should be small. If something does happen, you can copy the back-up to the (now assumed bad) updated disk. You can then either use the restored disk or apply the FS update again. If you are using FSL10, its recoverable testing procedure (https://nvi-inc.github.io/fsl10/raid.html#_recoverable_testing) has more options for recovery. Managing this is a lot easier and safer if you have a third disk.

3. Changes since 10.0.0

There are separate subsections with summaries of changes in the FS and drudg.

Clickable links such as #36 connect to specific issues reported at https://github.com/nvi-inc/fs/issues.

A detailed list of changes can be found using the git log command from within the FS git repo directory, usually /usr2/fs-git.

Each change is listed as a numbered title, then usually a few summary sentences, followed by a toggle:

Details

Details are shown here.

that can be clicked on to toggle showing (or not showing) the details. In this way, you can view the summary as a list and only reveal the details of items that interest you. The summary sentences and/or the details toggle may be omitted if they would not add any new information, usually because it is already covered in the numbered title item and/or the details are very brief.

3.1. FS changes

  1. Add more complete support for DBBC3 DDC personality

    Before this release, the FS only provided limited functionality for DBBC3 racks, as described in the FS 10.0 DBBC3 support document for that release, 10.0.0. More complete support is provided now. The updated support is described in the FS DBBC3 Operations Manual and includes:

    Details
    • A separate dbbc3.ctl control file

    • Core3H board setting and monitoring with the core3h_mode command

    • Tsys display window (monit7)

    • Multicast logging, which is controlled with the tpicd command.

    • mcast_time command for checking DBBC3 time from the multicast data

    • drudg support for schedules (closing #33)

    • Integrated support for recording DBBC3 data with a Mark 5C or FlexBuff recorder

    • FS time setting from a DBBC3 with setcl if NTP is not available

    Warning
    Although we have made a strong effort to verify that the FS and drudg will work correctly for DBBC3s, it has not been possible to schedule a fringe test yet to validate the functionality. Until we have some field experience with DBBC3, we will not know if everything works well together and/or whether we should make some adjustments for better operations. If there are issues, we expect there will be updates to address them.
    Caution
    The current FS support is structured around the features of the DBBC3 DDC firmware, DDC_U v125 and DDC_V v124, available at the time of this release. Firmware updates and experience with the current approach may lead to different FS support and operations in the future.

    Thanks to: the EVN, for funding this development work; Jon Quick (HartRAO) for testing, feature recommendations, helpful suggestions, extensive discussions, and making a system available for remote testing; John Gipson (GSFC) for drudg support; Eskil Varenius (Onsala), for testing as well as making a system available for remote testing; Sven Dornbusch (MPIfR), for elaborating on the details of DBBC3 functionality; Uwe Bach (Effelsberg) and Marjolein Verkouter (JIVE) for extensive discussions and providing helpful suggestions.

  2. Improve onoff:

    onoff output for the operator was improved so that it is easier to see what onoff is doing. The order of locking the gains relative to arriving on source was corrected. Errors reported by antcn are no longer ignored.

    Details
    1. Improve onoff operator output.

      The operator output of onoff was completely restructured. The raw data is still recorded in the log, but now the operator will see only summary messages that describe what the program is doing and the final results (the VAL lines). Each major action that the program undertakes is reported, as well as any steps needed to recover if an error should occur. This should make the output both more compact and useful. The full output can still be seen in the Log Display window by using xdisp=on (use xdisp=off afterwards to turn off the more verbose display).

      Tip
      If antcn logs messages about commanding offsets (mode 2), the flow of the onoff operator output may be affected. The general posture of antcn is intended to be “no news is good news.” In particular, this is why onoff (and aquir and fivpt) check onsource status with mode 5 which is not suppose to generate log output for why the antenna is off source. You can of course arrange your antcn's output anyway you prefer.
    2. Change to lock gains after initially reaching starting position.

      Previously, for systems that require locking the gains, they were set before confirming that the antenna had reached the starting position. Now onoff waits until it has been reached. This will have no impact when onoff is launched already at the starting position, including when run by aquir.

      If onoff is started before the antenna has reached the starting position, the effects will be:

      • onoff will take slightly longer to run because the gains won’t be locked in parallel with the slew.

      • The gains will be locked at the starting position. This could improve the gain levels used for the measurements, particularly for large elevation slews. The is the reason that this change was made.

    3. onoff now detects antcn errors:

      Previously, these errors were ignored due to a bug. Now onoff will detect antcn errors. If one occurs, onoff will repeat the request to antcn, one time, to try to make itself more robust if a transitory antenna communication problem occurs.

      It seems unlikely that these changes will cause a problem, but if they do, a short-term workaround is provided. If the environment variable FS_ONOFF_SUPPRESS_ANTCN_ERRORS is set to 1, the previous behavior will be restored. In the longer term, it may be possible to change your antcn to avoid this issue.

      Tip
      If you are using the display server, you must stop fsserver or reboot to enable a change in environment variable settings. Please see the beginning of the Runtime variables section in the FS Environment Variables document, for more information on setting environment variables.
  3. Stop adding extra comments when updating .rxg files

    Longstanding bugs in gnplt that caused it to add extra comments when updating .rxg files were corrected.

    Details

    The trailing comments in .rxg files are intended to hold the old calibration data, in reverse chronological order, as an historical record. There was a longstanding bug in the current gnplt (so-called gnplt2) that caused it to include additional, out-of-order, commented out, copies of old calibration data when updating .rxg files. This has been fixed (closing #111).

    Another “feature” in gnplt (gnplt2) caused extra comments to be inserted at the beginning of .rxg files. gnplt was not updating the date line. The program was compensating for this by adding a new first line comment with the date each time it updated the file. Since the date line is now being updated (#72), the date comment line is no longer added.

    While these bugs have been fixed, it could be a lot of work to cleanup the comments if they have not been cleaned up right along as the .rxg files have been updated with gnplt. Cleaning-up the comments is entirely optional. A process for the cleanup is provided in the appendix Cleaning up .rxg file comments. It is broken into two steps. The first, which is relative easy, includes making a backup of the files as they are now, and then reducing them to the minimum needed to preserve the active calibration data (with its interspersed comments).

    The second step cleans-up the trailing comments. That step is an optional follow-up to the first step. It is more involved and can be deferred to a later date. If the .rxg files have only been updated by gnplt, it should work as written. If other modifications have been made to the .rxg files, for example by hand editing, the second step may needed to be modified accordingly.

    Please see the appendix Cleaning up .rxg file comments for the details of the cleanup process.

    Thanks to Jonathan Quick (HartRAO) for reporting these issues, making suggestions for the fixes, and testing them.

  4. erchk control file: Add control file for erchk (closing #174).

    The erchk program now uses a control file, erchk.ctl, which can be customized locally to change how errors are displayed.

    Details

    To give stations more control of how errors are displayed, the erchk program has been expanded to read a control file, /usr2/control/erchk.ctl. The stations can customize it as they see fit. A default/example file /usr2/fs/st.default/control/erchk.ctl has been provided. It recreates the behavior of erchk before this update with the exception that sp errors are no longer suppressed (as was requested in #174). The complete syntax of the file is described in the comments included in the file. A comment is included explaining how to restore suppression of sp errors, if that is desired.

    The syntax of he control file is fairly simple, but it is important to be careful when modifying it. Some changes can prevent errors from being displayed and therefore make them harder to notice since they will only be shown in the log display. The default/example file is configured to cause all errors to be displayed.

    Note
    As before, the tnx command removes display of the selected errors from the erchk window (as well as log display window).

    If /usr2/control/erchk.ctl cannot be found or has syntax errors, messages with an explanation of how to fix the problem or find more information are provided. The messages are organized so they will be visible if erchk is run either manually or in a window by the FS or a window manager. If there is an error, or just to check to see if there is one, the erchk program can be run manually without the FS. This can be tried repeatedly until all issues are resolved.

    Thanks to Eskil Varenius (Onsala) for reporting that sp errors were not being shown.

  5. Add adjustable log size warning message (closing #114)

    An environment variable was added to adjust the threshold for a log file size warning.

    Details

    When a log is opened (including station.log when starting the FS), there is an error reported if the size exceeds a threshold, previously hard-coded as 100 MB. The size for the error is now adjustable by setting the environment variable FS_LOG_SIZE_WARNING to the desired size in MB. If it is not set, it defaults to 100 MB.

    The FS must be restarted in a session with the variable set for it to take effect. If the display server is in use, the system must be rebooted, or fsserver must be stopped, after stopping the FS, and before restarting it with:

    fsserver stop

    Thanks to Kiah Imai (KPGO) for suggesting this.

  6. Improve plog

    The new default method for pushing to the BKG data center is ftp-ssl. The upload URL for OPAR was updated. plog now supports bzip2 compression, which is used by default for logs with multicast data. plog no longer refuses to compress multicast logs if they are only open to programs other than the FS. Both multicast and reduced logs are now uploaded by default. The NETRC_DIR environment is now supported for the BKG data center. The data center and station code are now case insensitive.

    Details
    1. Add support for ftp-ssl with the BKG data center in plog.

      The default for pushing files (logs) to the BKG data center is now ftp-ssl. Unfortunately, accessing BKG with ftp-ssl cannot be supported on FSL8. The old behavior using non-SSL ftp can be restored by setting the environment variable PLOG_BKG_METHOD to ftp. However, BKG is expecting to discontinue support for non-SSL ftp after June 9, 2022.

      Note
      After June 2022, BKG upload access will require use of an individual account. You can get information to apply for an account by going to https://ivs.bkg.bund.de/ and following the Access link under Data Center on the left.
    2. Update URL for upload to OPAR.

      OPAR now uses a different URL, https://ivsopar.obspm.fr/upload/, for uploading. The old one, https://ivsopar.obspm.fr/upload/scripts/upload.php, will continue to work for some time.

      Thanks to Sébastien Lambert (OPAR) for sending the new URL, and Christophe Barache (OPAR) for keeping the old one open for backward compatibility for at least some period.

    3. Add use of bzip2 compression to plog.

      plog will now use bzip2 as the default program for compressing _full.log files to send to the data centers. It is possible to use gzip instead by setting the environment variable PLOG_COMPRESSED_EXT to gz or using the -g command line option. Please use plog -h for more information.

    4. Fix plog to only refuse to reduce a log with multicast data if it is the active log in the FS.

      In the process of reducing a log (removing multicast data), the log is renamed. This can cause a log recovery to occur if the log is currently open in the FS since it appears to be missing. This was protected against by plog, which would refuse to rename the log if it was open to any program. This meant that if the log was, for example, being viewed with tail -f or less it could not be renamed. This was fixed so that plog will only refuse to rename the log if it is open in the FS (to ddout)..

      Note
      In such a case, the operator needs to close the log before running plog on it. That is good practice anyway.
      Note
      Other, non-reduction, log processing by plog was not affected by this issue since renaming is not needed. It is still good practice to close the log before pushing it.

      Thanks to Katie Pazamickis and Jay Redmond (both at GGAO) for reporting this.

    5. Upload both reduced and compress logs when multicast is present as the default.

      Before, when a log contained multicast data, the default was to only upload a reduced log (with multicast removed). Now both the reduced and compressed full log are uploaded by default.

      A new option, -r, was added for uploading just a reduced log. As before, the -z option will upload just a compressed full log. It is not expected that either of these options will get much use. The -r and -z options cannot be used together.

      Thanks to Chevo Terrazas (MGO) for suggesting uploading both file by default.

    6. Respect NETRC_DIR for the BKG data center (closing #113).

      This case had been overlooked in closing #39, which had added the NETRC_DIR environment variable.

      Thanks to Kiah Imai (KPGO) for reporting this and testing the fix.

    7. Make data center case insensitive.

      This change was made to improve ease-of-use when specifying the data center with the -c option. For consistency, the value specified by the DATA_CENTERS environment variable is now also case insensitive.

    8. Make two character station code case insensitive.

      This change makes the use of the STATION environment variable by plog and fesh (the latter now also case insensitive), consistent.

  7. Improve fesh

    The new default download method for the BKG data center is ftp-ssl. Options were added to print the summary to the printer from drudg and to skip downloading the schedule. New environment variables and options were added to handle the new drudg prompts that can be selected in skedf.ctl. The data center and station code are now case insensitive.

    Details
    1. Add support for ftp-ssl for the BKG data center

      The default for pulling schedule (and .txt note) files from the BKG data center is now ftp-ssl (using anonymous access). Unfortunately, accessing BKG with ftp-ssl cannot be supported on FSL8. The old behavior using non-SSL ftp can be restored by setting the environment variable FESH_BKG_METHOD to ftp. However, BKG is expecting to discontinue support for non-SSL ftp after June 9, 2022.

    2. Add -P option to print the summary listing to the printer (closing #112).

      With -P, when drudg is run by fesh, it will print the summary directly to the printer. It is appropriate to make this a fesh option since it is an integrated feature of drudg. To print other files, it is recommended to make a wrapper for fesh. An example wrapper, which includes the normal processing, prints the summary, and prints the .prc file, is included as /usr2/fs/fesh/feshp. This can be copied to ~oper/bin and possibly customized to print different files.

      Thanks to Kiah Imai (KPGO) for suggesting this.

    3. Add -S option to fesh to skip downloading.

      This allows fesh to trigger the normal drudg processing when the schedule is already on the disk. This might be useful for example, if the schedule was generated locally by shifting the schedule (drudg option 10).

    4. Add new environment variables.

      Support for new environment variables FESH_GEO_USE_SETUP_PROC and FESH_GEO_VDIF_SINGLE_THREAD_PER_FILE were added. These variables can be used to supply fixed answers to the new optional drudg prompts as described in drudg changes below. For more details about the use of the new variables, please see the fesh -h output.

    5. Make data centers case insensitive

      This change was made to improve ease-of-use when specifying the data center with the -D option. For consistency, the value specified by the FESH_DATA_CENTER environment variable is now also case insensitive.

    6. Map station code to lower case (closing #136).

      Before the station code was expected to be lower case. If it wasn’t, this could cause a conflict with drudg, which maps it to lower case. This could result in a mismatch on the file names for deleting .snp and .prc files with the -f option. fesh maps the station code, from both the STATION environment variable and -s option, to lower case.

      Thanks to Eskil Varenius (Onsala), for suggesting this.

  8. Improve msg to always pick-up a new log file name (closing #118)

    msg now detects changes in the log file name, simplifying its use when a session is started while it is running.

    Details

    Previously msg only read the log file (and session) name on start-up and when sending messages. It was modified to reread the log file (and session) name whenever a new form is displayed. As a result, selecting any form or sending a message from one will cause the log file name to be reread (and session name reset), in other words, this will occur for any significant user action. This should provide more intuitive behavior, primarily because it is no longer necessary to restart msg for each session. The setting of the session name when reading the log file name can be turned off by disabling the Setup selection Get session name from log if it is not desired.

    Thanks to Jonathan Quick (HartRAO) for reporting the issue, providing feedback on the changes, and testing the fix.

  9. Add setup_proc command

    The setup_proc command can be used to minimize the number of times that setup procedures are executed during schedules.

    Details

    This command is used to identify the setup procedures in the .snp files, e.g.:

    setup_proc=setup01

    The setup procedure (in this example, setup01) will be executed if it is the first setup_proc=…​ command since the schedule was started or if a different procedure was used in the previous instance of the command in a schedule. This can be useful to avoid executing setup procedures more than necessary, especially if they take very long to execute, as is the case the DBBC3, or if they may disturb the equipment.

    Use of this command in drudg generated .snp files is controlled with the use_setup_proc option in skedf.ctl. The default is to not use it, which is the same as the previous behaviour. For more information on the skedf.ctl option, see the use_setup_proc drudg change item (if that link doesn’t work in your browser, click on this link instead: Changes to skedf.ctl options, open the Details toggle below that location by clicking on it, go Back in the browser, and finally click on the original link).

    Caution
    The previous behavior of re-executing a setup procedure for each recording can provide some “self-healing” of the equipment setup if there errors occurred during the previous setup or if the equipment malfunctioned. The use of this command will eliminate this added robustness. Each site will need to evaluate whether to use the option in drudg for this command based on their equipment’s performance. It is typically necessary for DBBC3 systems.

    See help=setup_proc for more information.

  10. Add mk5init command (closing #164)

    The mk5init command, in principle, allows changing which Mark 5 or FlexBuff recorder is being used, without restarting the FS.

    Details

    The mk5init command will close the current connection to the Mark 5 or FlexBuff recorder, reread the mk5ad.ctl control file, and establish a new connection based on the contents. This may be useful for changing which recorder is used without restarting the FS.

    Note
    Another change, FlexBuff synonyms, in this document, makes mk5init available with the synonym fb_init.
    Warning
    This feature is considered experimental. It appears to work well, but more extensive field testing may reveal issues.
    Caution
    The function of this command may be revised or the command may be removed in the future.

    Thanks to Jun Yang (Onsala) for suggesting this.

  11. Expand setup of Mark 5C and Flexbuff recorders

    Additional setup is provided for Mark 5C and FlexBuff recorders, as well as a way to provide local tuning of the setup.

    Details

    The mk5c_mode command sends configuration commands, beyond mode, depending on which recorder is selected in equip.ctl, mk5c or flexbuff, the total data rate, and the data type, VDIF or 5B/Ethernet. The updated default configuration is described in the Default configuration subsection of the Recoder tuning appendix of the FS DBBC3 Operations Manual.

    All the settings can be overridden by the mk5c_config or fb_config local procedures, depending on the recorder type selected when running drudg). See the Overriding the defaults subsection of the same appendix.

    Note
    Another change, FlexBuff synonyms in this document, makes mk5c_mode available with the synonym fb_mode.

    Thanks to Marjolein Verkouter (JIVE) for extensive discussions about what the correct settings should be.

  12. FlexBuff synonyms: Add FlexBuff synonyms for all Mark 5 commands except mk5b_mode

    These synonyms are intended to allow matching command names to the type of recorder. There is no change in functionality. The only Mark 5 command that does not have a FlexBuff synonym is mk5b_mode, which is not used with FlexBuff recorders.

    Details

    The following synonyms for FlexBuff recorders (listed with their corresponding Mark 5 versions) were added:

    • fb — mk5 (jive5ab is also a synonym) — low-level recorder communication

    • fb_close — mk5close — close connection to recorder

    • fb_init — mk5init — initialize connection after rereading mk5ad.ctl control file

    • fb_mode — mk5c_mode — set recording mode

      This command tailors its behaviour depending on what type of recorder is specified in equip.ctl control file, not by the name of the command.

    • fb_relink — mk5relink — relink to recorder after closing connection

      This command is used after fb_close/mk5close to reestablish the connection.

    • fb_status — mk5_status — report recorder errors

    There is no differences in the function of the commands when the FlexBuff synonyms are used. They may be used to make the meaning of procedure files and log entries clearer.

  13. Split equip log header line into three parts

    The equip log header line had grown too long. It has been split up.

    Details

    The equip line in the log header has been broken into three lines, equip, equip2, and equip3. The equip line now contains just the rack, recorders, and decoder information. The remaining information from the equip.ctl control file is listed, in order, on the equip2 and equip3 lines. Those lines break between the Mark 4 Decoder Transmission Terminator Character value and the DBBC DDC Firmware Version value. Except for the clock rate value, the values in the equip3 line are only DBBC related values. The clock rate value is also used for Mark 5B recorders.

  14. Turn data sending off before modifying an RDBE’s time in fmset.

    The fmset program will now make sure that transmission of data is turned off before updating the time. It will be re-enabled when fmset exits.

    Important
    All RDBE’s being recorded must have the same VDIF epoch. fmset is the safest way to change the VDIF epoch of an RDBE.
    Details

    Previously for RDBEs, the operator needed to turn data transmission off manually (rdbe=data_send=off) before using the sync (s) command in fmset. Then after leaving fmset, re-enable data transmission (rdbe=data_send=on). Using the s command was a rare event. As a result, handling this in a more automated way had not yet been implemented. Automating this became more important because we have received new information that data transmission must be off before making any change to an RDBE’s time, including the VDIF epoch.

    To streamline this process, fmset has been modified to turn off data transmission automatically for any RDBE that had data transmission on before its time is changed. When fmset is exited, it will re-enable data transmission for all RDBEs for which it had turned off the transmission.

    Important

    The VDIF epochs of all the RDBEs being recorded must agree to successfully record with a Mark 6 recorder. One of the ways they can get out of sync is if a subset of the RDBEs is rebooted after a recent epoch change. In order to simplify dealing with an RDBE needing to be rebooted during an experiment, it is recommended that the VDIF epochs be reset as soon as convenient (the first gap in observing) after an epoch change. Epoch changes occur at the start of January 1 and July 1 UT.

    A possible method for resetting the epoch is to reboot. However, rebooting creates a risk of a bad FPGA load, which in some cases, cannot be detected until the data reaches the correlator. Using fmset to update the epoch is safer since it does not involve an FPGA reload.

    If an RDBE has to be rebooted (sometimes it is unavoidable) after the epoch change and before there was a chance to update the epoch for all the RDBEs, the rebooted RDBE’s VDIF epoch will not agree with the other RDBEs. The disagreeing epoch will be shown in inverse video in the RDBE monitor display (monit6). fmset can be used to decrement the epoch of the rebooted RDBE so that it agrees with the others. It is not an error to have the RDBEs using a previous epoch, they just must all use the same one.

  15. Show incorrect DOT times in inverse video for the RDBE monitor display (monit6) window.

    Inverse video was added to help identify when the RDBEs are not all using the same time.

    Details

    Although in principle there is nothing wrong with recording data from RDBEs that have slightly different times (unlike having different VDIF epochs, which makes recording impossible with Mark 6 recorders), the process to recover the recorded data is too costly to use in most cases. As a result, to bring the operator’s attention to the conflict (so that it can be fixed), monit6 was modified to show DOT values that are not the current time in inverse video. This change could have been limited to using inverse video to just show times that don’t agree with the majority since only a disagreement causes a severe problem. However, there did not seem to be a use case for recording with the time wrong.

    A side effect of this change is that DOT time in monit6 will sometimes flash inverse video when the RDBE attenuator setting is automatically adjusted with the rdbe_attenX=…​ command (the auto SNAP procedure uses it). It doesn’t always happen and it may be more likely to happen when the attenuator adjustment is large or unstable. Apparently, what is happening is that the adjustment keeps the RDBE busy enough to delay transmission of the multicast packet. The flash has been fixed in FS 10.2 by refactord the display of the data in monit6.

    Thanks to Javi Gonzalez (Yebes) for requesting this. Thanks to Kiah Imai (KPGO) for reporting the interaction with the rdbe_attenX=…​ command.

  16. Add features to rdbemsg

    Options were added to control the font size and window placement. A new control file keyword was added to support older MCI nodes.

    Details
    1. Add command line options to rdbemsg.

      Two command line options were added to rdbemsg:

      • -f — which takes an integer argument to set the font size, default is 14

      • -g — which takes a string argument to set the window geometry, default is not to set it

        Only the position part of the geometry should be set with -g, e.g., -g -0-0. The useful way to control the size is with -f.

    2. Add mci-version parameter to rdbemsg.ctl control file.

      This was added to allow distinguishing the early version of MCI node at Westford, which requires different handling. Specifically, the MCI logs are in the directory ~oper/node_software/V0, the file names do not contain the station code, the fields in the file are space delimited, and the fields are in a different order. The correct form for Westford is:

      mci-version:0

      Other stations do not need this parameter and can either not include it or comment it out.

      The example control file, /usr2/fs/st.default/control/rdbemsg.ctl, was updated accordingly.

      Note
      As with other rdbemsg.ctl parameters, this one should not have any white space on its (non-comment) line.
  17. Log phase-cal tones, for RDBEs, that have spacings of arbitrary multiples of 1 MHz.

    Previously, tones were logged for a 5 MHz spacing regardless of the actual spacing.

    Details

    In practice, the only other phase-cal spacing in use was 10 MHz. In that case, the RDBEs and the FS were still being setup for 5 MHz spacing. Because of where the first tones happened to fall, this resulted in the even numbered multiples of 5 MHz being logged even though they did not have any power.

    If the RDBEs and the FS had been setup for 10 MHz spacing, the tones logged with no power would have been the odd multiples of 5 MHz. Now only the tones expected to have power, multiples of 10 MHz, will be logged, assuming a correct 10 MHz spacing setup is used.

    For troubleshooting purposes, it may be useful to look at the tones for all one MHz multiples. This can be accomplished by setting the RDBEs and FS up for one MHz phase-cal spacing. In this case, the multiples of one MHz with power should correspond to the actual positions of the tones. For example, if the first tone actually occurs at 1.4 MHz in the band and the RDBE and FS are setup up for one MHz spacing, the 0th one MHz tone, corresponding to 0.4 MHz, should not have power. In this case, the first multiple of one MHz with power should be the 1st. The phase-cal offset in the lo command is ignored.

    Thanks to Javi Gonzalez (Yebes) for testing this improvement.

  18. Add use of FS_RDBE_MCAST_DISABLE environment variable (closing #167)

    This allows suppressing of multicast error messages for R2DBEs.

    Details

    If set to 1, this will suppress attempting to receive RDBE multicast data. This is useful for systems with R2DBEs to eliminate the (not useful in this case) multicast errors from the log and the display. They could already be eliminated from just the display with the tnx command.

    Thanks to Alex Burns (Westford) for suggesting that we have a way to eliminate these errors entirely.

  19. Fix additional issues in gnplt and gndat

    In gnplt, fix issues with zooming, large numbers of detectors. In gndat, remove debug output.

    Details
    1. Fix plotting of working file Tcal(K) curve on zoomed Tcal(K) versus frequency plots in gnplt (closing #117).

      Previously, if you zoomed in the Tcal(K) versus frequency plot and selected display of the working file Tcal(K) curve, it would reset the left plot edge to the un-zoomed value when drawing the curve. This was caused by an interaction of two issues:

      • The program tried to draw the entire Tcal(K) curve, not just the part in the zoomed frequency range.

      • The function, drawValues, that adds Tcal(K) or Trec lines to plots, reset any plot limit, except the right edge one, if any data to be plotted was beyond that edge. This was apparently to allow showing the vertical axis intercept of the Trec fit and to make sure that all vertical extents of Trec and Tcal(K) curves were not off the visible plot area.

      This was fixed by limiting the Tcal(K) curve plotted to just segments within the zoomed area. In addition for consistency, the drawValues function was change to reset any plot limit that is exceeded by the data. Since all other uses of drawValues already limited the horizontal values to be plotted to the zoomed area, there was no impact on those other uses.

      Thanks to Eskil Varenius (Onsala), for reporting this issue and testing the fix.

    2. Correct bad Tsys data in gnplt (closing #107 and #104).

      This was caused by an incorrectly sized array in gndat that was introduced in commit f84a2bb9 dated June 2003. This error was benign unless more than 20 detectors were used in a single onoff run. Before the advent of RDBEs and DBBC3s, this was unlikely, but not impossible.

      Due to the layout of the automatic variables, this error should only have impacted \(\mathit{T_{sys}}\) and \(\mathit{T_{sys}-T_{spill}}\) data in gnplt and only when there were more than 20 detectors used. However, also considering the layout of the automatic variables, it is unclear why there were not catastrophic program failures in such a case. It would be prudent to reanalyze any current data sets that used more than 20 detectors with the fixed version to see if the results change.

      Thanks to Beppe Maccaferri (Medicina), and subsequently Eskil Varenius (Onsala), for reporting this issue.

    3. Remove extraneous gndat debug output for the processing of weather data.

      The debug output was not visible when gndat was run from gnplt, which is normally the only way it is run.

  20. Fix continuous calibration Tsys calculations for DBBC and DBBC3 racks (closing #157)

    The Tsys values being reported were slightly too small.

    Details

    For the direct sample of count data by tpicd for monitoring Tsys for DBBC and DBBC3 racks with continuous calibration, the value of Tsys was being underestimated by about \(\mathit{\frac{T_{cal}}{2}}\). This was because the CALon counts were being ignored for determining the count level of Tsys. This has been fixed.

    For the DBBC, this error has been occurring since continuous cal was first supported in 2012, FS 9.11.0, commit f5817f65. For the DBBC3, it has been present since the rack was first supported in 2018, FS 9.12.12, commit 19a69540. However, the Tsys monitoring for the DBBC3 was largely unused before the current release because the device communication rate made it difficult to work with.

    Note
    The fix for the DBBC3 is now irrelevant. As of this release, Tsys for the DBBC3 is calculated, correctly, from the multicast data.

    This error is fairly small and probably did not have an impact on routine local performance monitoring. However, if some specialized measurements were being made, they may have been affected. If this error had a significant effect for you, please contact Ed.

    Note
    Downstream amplitude calibration data should not have been affected as long as it uses the raw count data, which is how it was designed to be used.

    Thanks to Jun Yang (Onsala) for discovering and reporting this. Thanks to Jun and Eskil Varenius (also at Onsala) for making systems available to verify the fixes.

  21. Fix continuous calibration Tsys calculations in fivept (closing #131)

    The Tsys value being reported was slightly too small.

    Details

    For continuous calibration systems, Tsys was being underestimated in fivept by about \(\mathit{\frac{T_{cal}}{2}}\). This was because the CALon counts were being ignored for determining the count level of Tsys. This has been fixed.

    This made the point-by-point Tant values larger by the same amount. This should not have biased the fitted peak source Tant since the fitting process removes a background level. Nor should it have affected the pointing offsets. Perhaps it actually had some benefit since it made it less likely that the point-by-point Tant would be negative, which is always a little unpleasant. It does affect the Tsys derived values of the #fivpt#perform output, but those values are mostly a curiosity and typically not used for any significant work.

    For the DBBC, this error has been occurring since continuous cal was first supported in 2012, FS 9.11.0, commit f5817f65. For the RDBE, this error has been occurring since continuous cal was first supported in 2016, FS 9.12.5, commit 217940c1. For the DBBC3, it has been present since the rack was first supported in 2018, FS 9.12.12, commit 19a69540.

    Thanks to Eskil Varenius (Onsala) for making a system available to verify the fix.

  22. Improve refraction calculations:

    The incorrect refrw() routine was renamed to help prevent its use. New refraction algorithms were added. A small improvement was made in onoff's refraction calculation. References for the refrwn() (in C; in FORTRAN refr()) routine were located.

    Details
    1. refrw_bad(): Rename poclb.a routine refrw() to refrw_bad()

      This change is intended to make it apparent that the calculation used in old refrw() routine is incorrect and encourage use of the correct refrwn() routine. The error in the old refrw() routine has been known about since 2006. The error is generally small above 5° elevation.

      The old routine can still be used by changing calls to use its new name. This may be preferable in the short-term if the effect of this error is built into current point models. To get consistent results, station code can be converted to use refrwn() and a new model determined, when it is convenient to do both.

      Thanks to Jon Quick (HartRAO) for pointing out this error and supplying the corrected refrwn() in 2006.

    2. Add new refraction calculations to poclb.a

      Two additional refraction calculations are now available in the C language poclb.a library:

      • sbend() — from A. L. Berman and S. T. Rockwell, “A New Radio Frequency Angular Tropospheric Refraction Model,” JPL DSN Progress Report 42-25, pp. 142-153, November and December 1974 (https://ipnpr.jpl.nasa.gov/progress_report/42-25/25V.PDF) and A. L. Berman, “Modification of the DSN Radio Frequency Angular Tropospheric Refraction Model,” JPL DSN Progress Report 42-38, pp. 184-186, January and February 1977 (https://tmo.jpl.nasa.gov/progress_report2/42-38/38V.PDF).

      • lanyi() — from G. Lanyi, “Atmospheric Refraction Corrections to Antenna Pointing at 1 Millidegree Level,” JPL IOM 335.3-89-026, 24 March 1989, with corrections, and T. D. Moyer, “Formulation for Observed and Computed Values of Deep Space Network Data Types for Navigation,” Section 9.3.2.2.1 (pp. 295-297), John Wiley, 2003 (https://descanso.jpl.nasa.gov/monograph/series2/Descanso2_S09.pdf).

      The Lanyi algorithm is expected to be the best of the ones in poclb.a.

    3. Change onoff and holog to use refrwn() in place of (incorrect) refrw().

      This should not be a significant effect above 5° elevation. Refraction is only applied to estimate an approximate value of the antenna elevation; great accuracy is not required. In any event, fixed values are used for the meteorological parameters, which limits the accuracy. For fivept, the FORTRAN refr() function is used, which also has fixed meteorological parameters.

    4. Provide references for refrwn() and refr()

      The older refrwn() (C) and refr() (FORTRAN) routines are apparently derived from W. R. Iliff and J. M. Holt, “Use of Surface Refractivity in the Empirical Prediction of Total Atmosphere Refractions,” J. Research NBS 67D (Radio Prop.), No. 1, pp. 31-35, January-February, 1963 (https://www.semanticscholar.org/paper/Use-of-surface-refractivity-in-the-empirical-of-Iliff-Holt/1ddcd0e4e672dd890198539361c5237c033001f7) and C. A. Clark, “Haystack Pointing System: Radar Coordinate Correction,” MIT LL Technical Note 1966-56, 24 October 1966 (https://www.semanticscholar.org/paper/HAYSTACK-POINTING-SYSTEM%3A-RADAR-COORDINATE-Clark/bf564e4ebc49a4ae8d69333b267a97cc320109a0).

      Thanks to Ludwig Schwardt (SKA, South Africa) for tracking down these references.

  23. Increase buffer size for recovering a deleted log

    This speeds-up recovery of a deleted log that the FS is still using.

    Details

    If there is no file with the name of the current log (it has been deleted or renamed) when a user command would close it, the FS will attempt to recover the file and give it its original name. The buffer used to recopy the file was increased to 2 MiB (formerly 128 KiB) so it is faster, particularly for very large experiment logs with multicast data.

    Important
    The recovery will not work if in the meantime a file has been created with the same name. The FS will think that is the log and give up. In that case, the log file contents will be lost. Using log=name or schedule=name will not cause this.

    As part of this change, the variables for handling file sizes and positions in the recovery function, ddout/recover_log.c, were changed to be off_t or ssize_t, as appropriate. They were int variables, having been changed from long variables by the bulk unlongify before 10.0.0-beta1, but hadn’t been changed back.

  24. Add test utilities: precess, move, and refrac

    These utilities are available in sub-directories in misc/ with the names of the programs. They are intended for testing of, and experimentation with, precession and refraction routines. The move program can be used to find the azimuth and elevation of a source for a particular time and station location.

    Details
    1. The precess program can be used to precess mean coordinates between epochs B1950 and J2000. Two options approaches are available:

      • The method used by the FS in fslb/prefr.f. This is the same method used by drudg (which has its own copy of prefr.f).

      • The method provided by the SOFA library (https://www.iausofa.org/).

      See the README.txt file in the directory for more information.

    2. The move program can be used to calculate apparent coordinates of date and apparent topocentric coordinates of date.

      This uses the same method as the FS source=…​ command.

      See the README.txt file in the directory for more information,

    3. The refrac program can be used to compare different refraction algorithms at different elevations and under different meteorological conditions.

      This program has a set of comparisons hard-coded, but could be modified to test other combinations.

  25. Prevent Control+C from causing the FS to abort when the display server is not in use and other cleanup of signal handling

    These changes restore the previous non-display server handling of Control+C before version 10.0.0, but also make an improvement to prevent xterms started by the FS, such as for oprin, from being aborted by a Control+C and causing the FS to abort. This has no impact on display server use.

    Details
    1. Remove redundant ignoring of signals in ddout and oprin (partially closing #100).

    2. Re-enable suppression of signals (partially closing #100).

      As of 10.0.0-beta1, the previous practice of disabling receipt of certain signals, in particular SIGINT (for Control+C), had been removed. It has been reinstated. When the FS is run without the display server, this assures that no FS programs will be aborted if a Control+C is accidentally entered in the terminal session where the FS is running. However, this does not prevent a Control+C from killing an xterm that is wrapped around a FS program (typically only oprin) in the FS terminal session from being killed. Preventing that is discussed next.

    3. Use setsid() to shelter xterms from keyboard generated Control+C.

      To prevent Control+C killing an xterm in the FS terminal session all x programs in fspgm.ctl (just oprin) and stpgm.ctl are now run under setsid() when the display server is not being used. This disconnects the programs from the terminal session that the FS is being run in, thereby preventing a Control+C from reaching them, but not otherwise affecting them.

      Important
      If you have been using setsid in your stpgm.ctl, possibly to insulate xterms from Control+C, you should remove it. If it is used on an x line in the file, it will prevent the FS from starting successfully when the display server is not in use and is not needed when the server is in use.

    With these changes, it should no longer be possible to kill the FS with a Control+C, even when the display server is not being used as long as you use x in any lines in your stpgm.ctl that use xterm.

    Warning
    An FS xterm window can still be aborted abnormally using the decorations for the window. When the FS is not being running with the display server, this will kill the FS abnormally. The decoration button that includes the Delete and Destroy options can be removed if desired. In the ~/.fvm2rc file include NoButton 1 in the window’s Style (see the Style "oprin" …​ line in st.default/oper/.fvwm2rc for an example).
    Warning
    The FS, run without the display server, can still be aborted abnormally by using the kill command to send a SIGINT (2) or SIGKILL (9) signal to an xterm run by the FS. A SIGKILL sent to any core FS program, regardless of whether the display server is being used, will cause the FS to abort abnormally.
  26. Record fsserver error messages (closing #105)

    A log file is used to record any fsserver errors that may be reported. The log file is deleted if the server exits normally.

    Details

    The display server now makes a file with a name of the form ~/fsserver.<time-stamp>.err each time it is started. It is used to collect server error information. The file will be deleted if fsserver terminates normally. If you experience a server crash, please send this file to Ed or post it as part of an issue on github. The <time-stamp> portion of the name will correspond to the time when the server was last started before the crash. That is usually when the FS was first started after the last boot. Any file of this type with non-empty contents is worth reporting.

    Thanks to Dave Horsley (Hobart) for suggesting this and contributing to the implementation.

    Note
    The FS also makes a file with a name of the form ~/fs.<time-stamp>.err each time it is started. It is used to collect FS error information. The FS will attempt to delete this file if it terminates normally. If you experience a FS crash, please send this file to Ed or post it as part of an issue on github. The <time-stamp> portion of the name will correspond to the time when the FS was last started before the crash.
  27. Add explanatory comments to the example flux.ctl control file (closing #121)

    The comments explain the format of the source records in the file.

    Details

    Although the data used in the file came from other sources, for many years the code that read the flux.ctl file was the complete documentation for the format. The example file, /usr2/fs/st.default/control/flux.ctl, now includes the details in an easier to read form. You can merge these comments, which are at the end of the example file, into your local copy or refer to the example.

    Thanks to Stuart Weston (Warkworth) for suggesting this and contributing some of the information in the comments.

  28. Improve error messages when reading flux.ctl (closing #124)

    The new messages identify the errors more clearly.

    Details

    The error messages when reading flux.ctl were confusing and uninformative. This has been the situation since the file was first added in October 2002, for version 9.5.15 (commit 1b68b90f). Apparently, this was not a significant issue because, apparently, modifying the default contents was uncommon. If you have been having trouble with this, we apologize.

    The error messages have been made more explicit about the cause of any read error and the offending line is printed to aid in correcting the problem.

    Thanks to Stuart Weston (Warkworth) for reporting this.

  29. Improve error messages when reading .rxg files:

    The new messages identify the errors more clearly. Some errors that were previously ignored are now caught.

    Details
    1. Make error messages more informative (closing #83).

      The error messages when reading .rxg files were confusing and uninformative. This has been the situation since .rxg files were first added in October 2002, for version 9.5.15 (commit 1b68b90f). Apparently, this was not a significant issue because .rxg files were usually updated by gnplt, which wrote correctly formatted lines. If you have been having trouble with this, we apologize.

      The error messages have been more explicit about the cause of any read error. Unfortunately, it is not possible to show the offending line without more significant changes. However, the messages are fairly explicit about where the error occurred.

      The same reading routine is used in gnplt (which uses gndat to read the .rxg files) for consistency. Unfortunately, the error messages for gnplt will still not be as informative, but restarting the FS should provide a more explicit error message that help make it clear what the problem is. If it is not possible to use the FS for this, another strategy is to use the error number reported in status line at the bottom of gnplt to identify the corresponding RG error in /usr2/fs/control/fserr.ctl.

    2. Additional .rxg file errors: Report five additional errors in .rxg files (closing #134):

      • The third field on the LO line is missing for type range.

      • If a third field exists on the LO line, but does not decode as a number.

      • The second field on the FWHM line is missing for type constant.

      • If a second field exists on the FWHM line, but does not decode as a number.

      • A field exists after the gain curve coefficients, but is not opacity_corrected.

      While it is unlikely, if any of your .rxg files have these errors, they will be reported the first time you run the FS after the update. You can correct them at that time. The error messages should identify the problem clearly enough.

      A few other, minor, errors are still not being caught. In particular, if a character that cannot be part of a numeric field appears within, or at the end of, a numeric field, that error will not be reported. In that case, the field up to the out-of-place character will be used as the value. Hopefully this is an unlikely error. A leading character in a numeric field that is inconsistent with the field being a numeric value will be reported as an error.

  30. Remove extra comma in Tcal(K) table log entires (closing #160)

    Details

    The contents of the .rxg file selected by an lo=…​ command are logged the first time the file is referred to since the log was last opened. There was a redundant comma in the Tcal(K) table log entries after the .rxg file name. It was removed.

  31. Improve web documents

    The font conventions were improved. The wording was improved for how to determine X-window geometry values and for using copy-and-paste to simplify installation steps. The organization of the change items in the update documents, starting with this one, was improved. More explanation of setting runtime environment variables was provided.

    Details
    1. Improve font conventions.

      These conventions are covered in the FS Document Font Conventions document. The following descriptions refer to sections in that document. The conventions themselves are covered in the Conventions subsection. Examples are in the Source examples section.

      1. Add description of using inline anchors.

        These can be used to make linking references to arbitrary text in the documents. This convention is covered as “other anchors” in the Links subsection. The document also shows how to make the anchor visible in the text, so the reader cans see where they were directed. This is described in the example Linking to inline anchors subsection.

      2. Improve description of code blocks.

        Add use of bold for user input and bold italic for replaceable user input. This convention is described in the Code blocks subsection. The example is covered in the subsection Italics and bold in code blocks.

      3. Add description for using appendices.

        This convention is covered in the Links subsection. The example is covered in the subsection Appendices.

    2. Improve wording for setting geometry values in ~/.Xresources.

      Using differently named ~/.Xresources files that are used by different aliases for different displays is described in the final NOTE of the Setting geometry values in .Xresources section of the Installation Reference document.

    3. Change cut-and-paste phrasing in documents to copy-and-paste

      This is technically more accurate. The change primarily affects the (now) Copy-and-paste installation tips in the Installation Reference document and references to it.

    4. Improve presentation: Improve presentation of FS and drudg change lists in the update notes

      In the update notes for FS 10.1.0 (this document) the list of FS and drudg changes now typically show a numbered title, a summary paragraph, and a Details toggle to show (or hide) a more detailed description. This should make the list of changes easier to review while allowing a reader to view more details for items they find interesting. We hope this will make the update notes easier to read.

      There are some downsides, primarily:

      • There is extra white space when a toggle is closed.

      • If you return “back” to the document after following a link to a different document, previously opened toggles will be closed because the web page has been reloaded. This makes it a little more difficult to return to where you were reading in the original document if it was within opened text.

        Tip
        To avoid this, right click the link, then open it in a new tab (alternatively, open it in a new window), and then click on that tab. To return to the original document, you can close the new tab or click on the original document’s tab (or close the new window), whatever you prefer.
      • Links that point into a closed Details toggle in the same document do not work in all browsers. To help with that, when these links appear, additional instructions with a second link are provided. If the original link into the Details doesn’t work, an alternate approach is to follow the second link, click on the Details toggle below that location to open it, go Back in the browser, and then click on the original link. At least some Chromium-based browsers appear to able to follow links into into closed Details toggles.

      • Links that point into a Details toggle in a different document do not work in all browsers. To help with that, if the relevant text is small it is reproduced within an embedded sidebar block (grey background). Otherwise, a second link to the title of the item with the toggle is provided along with instructions to follow the link (probably opening it in a new tab, or new window, would be best), open the toggle, and then search for the anchor text of the original link.

      If there is a consensus that this is overall an improvement, its use will continue for future updates.

    5. Add explanation of setting environment variables.

      Section Setting environment variables was added to the FS environment variables document.

      The preamble of the Runtime variables section in the same document was expanded to include the additional steps needed to update environment variables when using the display server.

    6. Make numerous wording fixes.

  32. Update example station procedure libraries

    Missing example procedure library libraries for DBBC2/Mark 5C, DBBC2/FlexBuff were added. A new example was added for DBBC3/Flexbuff. A stand-alone example check_ntp procedure was added and included in the example libraries for the most common systems.

    Details

    The example libraries can be found in /usr2/fs/st.default/proc.

    1. Add standard procedures for (rack/recorder): DBBC/Mark 5C, DBBC/Flexbuff, DBBC3/FlexBuff.

      Table 1. New example station.prc libraries
      Equipment - Rack/Drive1/Drive2 Prefix letters Example station Library

      dbbc/mk5c

      d5c

      d5cstation.prc

      dbbc/flexbuff

      dfb

      dfbstation.prc

      dbbc3/flexbuff

      d3fb

      d3fbstation.prc

    2. Add check_ntp procedure.

      An example check_ntp procedure is provided in check_ntp.prc. It is slightly improved from the original version. It has also been incorporated into the example station libraries for the current most commonly used rack/recorder combinations: DBBC/Mark5B, DBBC/FlexBuff, DBBC/March 5C, DBBC3/Flexbuf, and VLBA5/Mark 5B. Please see the table in the Example standard procedure libraries section of the Installation Reference document to identify which files are for which combinations.

  33. Add other miscellaneous bug fixes and enhancements

    Several small items, most unlikely to affect typical use of the FS, were fixed or improved.

    Details
    1. Generalize the bbcgain command read back to handle DBBC3s.

    2. Allow 0 for DBBC3 BBC frequencies.

    3. Add the missing bbc110 command for DBBC3.

    4. Add useful default IF sources for DBBC3 bbcnnn commands, when nnn is 064 or larger.

    5. Add 0 MHz BW for display of DBBC3 BBCs that are not configured.

    6. Add the missing formbbc and formif detector groups in onoff for DBBC3 racks.

      Before the current release there was no way to know which BBCs or IFs were being recorded to implement these groups. Now that the core3h_mode command is implemented, it is possible.

    7. Add missing 64 MHz BW for fivept and onoff with DBBC BBCs.

    8. Fix a bug that caused DBBC3 BBC frequencies to be ignored when calculating Tcal(K) and frequency dependent FWHM.

      For Tcal(K), this generated incorrect values, which impacted Tsys values by a proportional amount. The incorrect values were for a frequency in the band or nearby, so typically not entirely unreasonable.

      Since Tsys calculated by the FS is only a station diagnostic, this had limited impact. Before the current release, Tsys for DBBC3’s, could effectively only be calculated in fivept and onoff and to spot check Tsys outside of schedule execution. Pointing offsets (from fivept) and SEFDs/Tcal(J)s (from onoff) were not affected. The Tcal(K) values were probably adequate for verifying consistency of station performance with Tsys spot checks, if they were used at all.

      For frequency dependent FWHM, this should have been an insignificant error in most cases.

    9. Fix the RDBE monitor display (monit6) to use the time_t type when calculating the nominal VDIF epoch.

      The mout6() function was using an int to hold the time instead of a time_t, resulting in incorrect values for the nominal VDIF epoch on 64-bit systems. This had very limited impact. The nominal VDIF epoch was only used to apply inverse video to epochs that weren’t nominal when all RDBEs had different epochs, a rather unlikely case. If it occurred, all the VDIF epochs would have been shown in inverse video as “wrong,” which would have been “incorrect” for at most one epoch. This has been fixed.

      The error was introduced by the bulk unlongify for conversion to the 32/64-bit compatibility for version 10.0.0. It only would have impacted 64-bit systems.

    10. Correct RDBE VDIF epoch increment command hint line in fmset.

      The VDIF epoch increment command (>) hint line, which only appears if the RDBE’s VDIF is before the current epoch, was displayed twice. Additionally, if it became no longer useful, it was not removed. In the version 9.12.13, the hint lines dynamically adjusted depending on whether an increment was possible. This behavior was not correctly preserved in the merge of versions 9.13.2 (old “main”) branch and 9.12.13 (old “vgos” branch). The new version uses statically placed hints lines for simplicity, only showing the VDIF epoch increment line when it could be useful.

    11. Prevent decimation from being specified for 5B/Ethernet in the mk5c_mode (and fb_mode) command.

      Previously, it was possible to set the 5B/Ethernet sample rate via the decimation parameter in the mk5c_mode (and fb_mode) command. This was a vestige of the mk5b_mode command. The Ethernet recorders (Mark 5C and FlexBuff, controlled by jive5ab) do not support decimation. The sample parameter of the mk5c_mode (and fb_mode) command provides full functionally for specifying the sample rate for 5B/Ethernet and VDIF recording and is the method used by drudg.

    12. Improve sample rate reporting for query responses of commands fila10g_mode, mk5b_mode, and mk5c_mode/fb_mode.

      None of the devices these commands query report the sample rate. For fila10g_mode and mk5b_mode, the sample rate implied by the device decimation response is shown in parentheses. Previously, they reported the commanded rate in parentheses.

      Note
      The core3h_mode command follows the same improved convention.

      For mk5c_mode/fb_mode, the devices also don’t report the decimation, so the commanded sample rate is shown in double parentheses. The device does report the track bit rate, which can be used for comparison, but this is reported in bits per second instead of Ms/s.

    13. Fix filag_mode, mk5c_mode, and fb_mode so that the upper four mask bits are considered when determining if data is one-bit or two-bit.

      This was probably benign since it was unlikely that two channels represented by the top four mask bits were the only ones with two-bit sampling. This would only have affected systems with a FiLa10G.

    14. Update the value of π in the FS copy of prefr.f to agree with the current value in drudg.

      In FS 9.7.0, July 2004, commit acde80ba2 the value if π used by skdrut/prefr.f was updated with a value with more digits. The current change catches fslb/pref.f up with that previous change.

      This increased digits changes the value of π by somewhat less than 3 parts in 10-11, which should be insignificant. This marginally improves the consistency of FS precession rotations between B1950 and J2000 with those in drudg.

    15. Eliminate extraneous (xx) strings in error messages.

      Some error messages were displayed/logged with extraneous (xx) strings after the error number. This came about because a change was made (in commit 9e9906d9 for version 9.12.2 released in March of 2016), to report the so-called LWHAT two character Hollerith values (or up to four character representation of numbers) for an error even if there was no ?W (or ?WWW) string in the message to be replaced with the value. The principle being that it was more important to report the information to help solve a problem than to adhere to the possibly incorrect formatting of the error message.

      This did not seem to cause much of a problem. However, some programs, in particular aquir, fivpt, onoff, were incorrectly setting the LWHAT value. Other programs, in particular mk5cn, dbbcn, and rdbcn, were carelessly setting the LWHAT value when there was no error. The latter problem caused extraneous strings in error messages from unrelated commands. We believe all cases of this have been fixed. If you see any now, please report them.

    16. Allow less white space for numeric LWHAT values in error messages.

      Previously, if an error message had a runtime determined numeric value, there had to be a four character ?WWWW placeholder in the error message for it to replace to avoid overwriting. This was changed to allow shorter placeholders, down to ?W, to be used. A ?W can be used to show a one digit number with one space in front of it. To do this, the ?W must be directly appended to the previous word in the message, for example word?W, which may be a little hard to read in the fserr.ctl, or sterr.ctl, file.

    17. Corrected `error number for reporting trouble opening time.ctl.

    18. Correct erroneous Ethernet transaction error messages

      Previously, the message for reporting errors when sending data to the Ethernet devices (Mark 5s, DBBCs, RDBEs, Mark 6s), incorrectly stated that the connection was closed. The connection is not closed. Perhaps it should be, but the incorrect statements have been removed until the functionality is changed. The affected errors are: DB/M5/M6/RA -102.

    19. Elaborate in SC -4 error message to provide more explicit advice.

      This error is reported by setcl when the formatter and FS PC boot time differ by more than 248 days. This may occur because the PC has been running a long time since it was booted, but it also could be because the formatter time has not been set or is wrong. The error message now explicitly suggests checking both.

    20. Correct bbc_gain command error codes

      If an error occurred in the monitor form of the command, the error was reported as di instead of dg.

    21. Add instructions to the example .xsession files for how to make them work correctly when tcsh is the login shell

      Instructions for implementing this were added to the FS 10.0.0 Update Notes document as the Updating ~/.xsession sub-step in the Miscellaneous FSLx changes step.

    22. Improve default .fvwm2rc files

      The .fvwm2rc files in the auid, oper, and prog sub-directories of /usr2/fs/st.default were updated. These changes only affect behavior on the console GUI.

      1. Add use of NeverFocus for the scnch and erchk windows.

        This was previously added in 10.0.0-beta1, but removed on 10.0.0 because it was thought to prevent scrolling of those windows. However, that turned out to not be the case. Using this setting prevents the focus from accidentally being given to these windows, which don’t accept input.

      2. Improve consistency of hot key definitions.

        Previously the handling of msg, rdbemsg, monpcal, and monit6 were not consistent. Now the default configuration is for Control+Shift+M to open msg and Control+Shift+6 to open monpcal and for these programs to be displayed in the Button 2 menu. Immediately below the configuration lines for these programs are commented out lines for rdbemsg and monit6, which can be used instead by sites with RDBEs.

    23. Don’t read the rdbe.ctl control file, or log its contents, unless the rack type is RDBE.

    24. Correct error in FORTRAN calls to get FiLa10G time for setcl

      An argument was missing. This was a bug from the VGOS branch, which technically do not support using setcl for FiLa10G. The bug apparently did not affect versions since the merge since there was a relatively low, not quite 1 in 232 chance of it being excited.

      Note
      setcl only works for the first FiLa10G if there are two. A second is only used for VGOS. fmset works for both.
    25. When sending a target level for the DBBC3 IFs, always send 1 for the filter selection, and ignore the filter selection on read back.

      Currently, this parameter is used in the syntax for the device, but is meaningless.

    26. Fix tpicd to only use direct sampling DBBC3 of side-bands that are recorded instead of all of them.

      Before the current release, there was no way to know what channels were being recorded. Additionally, direct sampling was too slow to be useful. Only recorded channels would be sampled now, but direct sampling is no longer supported in favor of multicast.

    27. Reorganize and cleanup the help file for onoff.

    28. Improve the description of the decimation parameter in the help files for fila10g_mode and mk5b_mode/mk5c_mode/fb_mode.

    29. Add missing 32 and 64 MHz BWs in help for DBBC bbcnn commands.

    30. Add missing help page for jive5ab command.

    31. Fix mk5_status command to get its command name for logging from the parsed command line instead of being hard-coded.

      This is the normal structure of SNAP commands, which mk5_status did not have. It enables only updating control/fscmd.ctl to either change the name or create a synonym. Fixing this was necessary in order to make the fb_status synonym work correctly.

    32. Add missing default control file, msg.ctl for the msg program.

    33. Remove e rack type in help files.

      help for the pcald and tpicd commands now works for all systems.

    34. Correct a few compile warnings, but certainly not a significant number.

3.2. drudg changes

drudg opening message date is 2022-05-28.

  1. Add support for DBBC3 DDC racks

    drudg will handle VEX schedules, .vex, with up to 256 channels (128 BBCs) and eight IFs. It will handle Mark IV schedules, .skd, with up to 32 channels (16 BBCs, 001-016) and up to two IFs (a and b). In all cases, the number of channels per Core3H board output must be a power of two.

    Details

    If two Core3H outputs on a board are being used, the number of channels and bits per channel for each board must agree. The first eight BBCs for a Core3H board use the first Ethernet output; the second eight, the second Ethernet output.

    Note

    At this time it is only considered safe to set the configuration of the Core3H boards with the DBBC3 boot configuration file. As a result the drudg generated setup procedures as called from schedules only check the configuration of the Core3H boards. Once it is possible to set the Core3H boards over the communication interface, the setup procedure can be run with force as its argument to set the configuration from the FS manually. For example:

    setup01=force
    Tip

    A full check (or setup) of the Core3H boards will take longer than schedules allow for setup procedures to execute. As a result, it is strongly recommended that the new use_setup_proc drudg option in skedf.ctl be enabled for use with DBBC3s. This will cause the mode to be checked only at the start of the schedule. If the schedule is started at least a few minutes ahead of time, there should be no delays in schedule execution due to the setup procedure.

    For more information, please see the use_setup_proc drudg change item (if that link doesn’t work in your browser, click on this link instead: Changes to skedf.ctl options, open the Details toggle below that location by clicking on it, go Back in the browser, and finally click on the original link).

  2. Replace use of all mk5…​ commands with fb_…​ commands in generated procedures when the selected recorder is FlexBuff

    This change was made to agree with the complimentary change in the FS, as described in the FlexBuff synonyms FS change above.

    Details

    The following substitutions are made:

    • fb for mk5

    • fb_mode for mk5c_mode

    • fb_status for mk5_status

    Note
    As a general rule, drudg will use the fb versions of mk5 commands and procedures when the selected recorder is FlexBuff. The procedures are discussed in next two items below.
  3. Replace use of the checkmk5 procedure with checkfb in .snp files when the selected recorder is FlexBuff

    Details

    This change was made for naming consistency, but also because the typically the contents of these procedures are different.

  4. Add mk5c_config or fb_config procedure calls to setup procedures for Mark 5C and Flexbuff recorders, respectively

    Details

    These procedures can be used to override the default configuration of Mark 5C and FlexBuff recorders. They are called after the mk5c_mode or fb_mode commands (and after the thread…​ procedure, if present). They are local procedures intended to provide tuning for the recorder configuration.

    For more information see the mk5c_config/fb_config procedure subsection of the Recoder tuning appendix of the FS DBBC3 Operations Manual.

  5. Add, optionally, thread…​ procedures to setup procedures for Mark 5C and FlexBuff recorders

    Details

    This procedure controls whether VDIF data is recorded multithreaded or single thread per file. Its use is described in the Thread procedure appendix of the FS DBBC3 Operations Manual.

    Note
    Although it is expected that only one thread selection will be used for an entire experiment, a separate thread…​ procedure is created for each mode. This allows them to be customized by mode if that should prove useful.
  6. Enhancements to summary listings, option 5

    Details
    1. The GB positions and totals are now also listed when the recorder is none (closing #166).

    2. The GB fields were expanded to allow for larger data volumes.

    3. The Info column and the captions in the header describing it were cleaned-up.

  7. Changes to skedf.ctl options:

    Three new options were added. The equipment and equipment_override options were fixed. DBBC2 IF related options were generalized to allow eight IFs for use with DBBC3s.

    Details

    Please see the /usr2/fs/st.default/control/skedf.ctl for details about the use of these options.

    1. Add e-vlbi_override option

      If enabled and if the target_correlator parameter in a VEX schedule includes the string e-vlbi (case insensitive), drudg will:

      • automatically convert the recorder to none

      • for racks type that include a FiLal0G, the /fila10g will be removed.

      The equipment selection can still be changed subsequently with drudg option 11.

    2. Add scan_close option

      If enabled, drudg will detect gaps in the schedule at least as long as a user settable max_gap_time, say an hour, and wait to start the next scan a user settable pre_time time before it is scheduled. The pre_time should probably be short, but at least as long as the worst case slewing time of the antenna. The concept is that the scan at the start of gap is closed, i.e., check…​ procedure is run before slewing to the next source. Then there is a wait until the pre_time before the next scan will begin for the scan_name=…​ and source=…​ to be commanded.

      This can be useful for intensive schedules. The antenna won’t slew needlessly to a new source or setup for new scan at the start of the gap. The schedule can be broken into while it is waiting for the next scan to start, the intensive schedule run, and then the original schedule rejoined for the next scan.

    3. use_setup_proc: Add use_setup_proc option

      If enabled, drudg prefixes each setup procedure call with setup_proc=. For more information see the Minimizing the use of setup procedures appendix of the FS DBBC3 Operations Manual.

    4. Add vdif_single_thread_per_file option

      This option allows control of whether the VDIF files created by Mark 5C and FlexBuff recorders are multi-threaded or single threaded.

      For more information see the Thread procedure appendix of the FS DBBC3 Operations Manual.

    5. Fix drudg equipment options: Fix equipment and equipment_override options in skedf.ctl.

      These bugs apparently first appeared in version 10.0.0.

      1. Fix a bug that prevented applying equipment if the equipment was not specified in the schedule and equipment_override was not selected.

      2. Fix a bug that caused equipment to be applied if there was equipment in the schedule even if equipment_override was not selected.

      If you used equipment_override, these bugs did not affect you. Since no one reported these bugs, hopefully at least one of the following was true (any one of which would have prevented a possible problem) for each schedule:

      • The equipment_override option was selected.

      • The schedule had correct equipment.

      • The equipment option was selected and had correct values.

      • The equipment was adjusted with option 11.

      The features of these options now agree with the original design, which was:

      • Used by itself, the values specified by equipment will only be applied if there is no equipment in the schedule.

      • If equipment_override is also selected, the values specified by equipment will be forced.

    6. Expand default_dbbc_if_inputs option

      Defaults for up to eight IF inputs can be specified for DBBC3s.

    7. Expand dbbc_if_targets option

      Values for up to eight IF inputs can be specified for DBBC3s.

    8. Expand dbbc_bbc_target option to also support DBBC3s.

  8. Add other miscellaneous enhancements:

    Several small changes, most unlikely to affect typical use of drudg, were made.

    Details
    1. Make the recorder type in .vex schedules case insensitive (bug fix)

    2. Add missing final scan checkmk6 call in .snp files for VGOS .skd schedules using a Mark 6 recorder (bug fix)

    3. Support slewing model acceleration in .skd files

    4. Use ISO format for opening message date

    5. Remove trailing spaces in .prc files

    6. Remove some obsolete variables

    7. Remove obsolete Makefiles from the vex/ subdirectory

    8. Make various other clean-ups

Appendix A: Cleaning up .rxg file comments

As described in Stop adding extra comments when updating .rxg files change in the FS changes subsection above, gnplt has been adding extra comments, in some cases a lot of them, to your .rxg files. With this update, that behavior has been fixed. However, there may already be many extra comments in your .rxg fies. This appendix provides an optional process for cleaning up any extra comments. This cleanup is entirely optional. If it is not performed, there will be no loss of functionality. There will just be some extraneous comments in your .rxg files.

Note
If you have been curating your .rxg files to fix the issues with the comments, you may not want to use this process. You may still wish to review it to see if any of it might be helpful.

The cleanup process is broken into two sequential steps below:

  1. Remove extra comments — which makes a backup of your current .rxg files and the removes all the extra comments.

  2. Cleanup trailing comments — which uses the backup of your .rxg files to produce a set of trailing comments with all redundant comments removed.

The first is relatively easy to apply. It can be used anytime before the next time you update any of your .rxg files. It may have some benefit even if you don’t bother with the second step, ever. The second can be deferred until later, if you do want to apply it.

A.1. Remove extra comments

The sub-steps here are designed to be as simple as possible when applying the FS update this appendix is part of, but preserve the opportunity for a full cleanup, whether it is done now or at a later date. As oper:

  1. Make a backup of your current .rxg files:

    This will give you a backup to recover from in case something goes wrong and will simplify cleaning up the trailing comments if you defer that to a later date. Enter these commands as oper, using current values for year, month, and day:

    cd /usr2/control/rxg_files
    mkdir BACKUP.year.month.day
    cp -a *.rxg BACKUP.year.month.day
  2. Reduce the .rxg files to just the active calibration.

    This will remove leading comments added by gnplt and all trailing comments. This will not disturb the active calibration or its interspersed comments.

    Caution
    The trailing comments may be a complicated hash unless you have been curating them. If you have, you probably do not want to use the -c option with the rxgfix3 script below, if you use the script at all. If you have not been curating them, it may be a laborious process to straighten them out. Removing them now will help make that process a little easier.
    1. Check what changes would be made:

      This sub-step uses the rxgfix3 script. Its default behavior is to remove “extra” leading comments that gnplt may have added. It has several options that may also be useful. This sub-step uses the recommended options along with the -t option, which runs the script in “test” mode to just show what changes would be made. The recommended options are explained below. To see what changes would be made, as oper enter:

      cd /usr2/control/rxg_files
      /usr2/fs/misc/rxgfix3 -cdrt *.rxg
      Tip
      If the output is too large to work with, you can simplify it by running rxgfix3 on any subset of files, even a single file, at a time.

      The meanings of the recommended options used with rxgfix3 script above are:

      Tip
      Help text and a complete listing of available options can be viewed with /usr2/fs/misc/rxgfix3 ‑h.
      • -c — Delete trailing comments. This will make it easier to update your trailing comments to the correct form. You should drop this option if you want to keep your trailing comments the way they are.

      • -d — Delete existing .bak files before processing. If old .bak files are left over from using rxgfix<n> scripts in the past, this will delete them. If you prefer to keep them, you can rename them before running rxgfix3 without -t.

      • -r — Use the date in the first GnPlt2 leading comment to replace the date on the date line in the active calibration. This will not be needed if you have updated all your .rxg files with gnplt since FS version 10.0.0-beta3, but is benign in that case. If you have manually changed the date line in your .rxg file(s) you may prefer to use the -k option to keep the current date line. (Omitting both -r and -k will cause rxgfix3 to not process a file if the date comment and the date line don’t agree.)

      If some of these changes are unacceptable, you can change the actions by dropping some options or making changes, such as using -k in place of -r. You can always process the files in subsets with different options if that is needed.

    2. Apply the changes:

      If the changes shown in Check what changes would be made sub-step above are acceptable or you have figured out how you want to modify them, you can re-run rxgfix3 with the options you decided on, but without the -t, in order to apply them.

Once the “extra” comments have been removed you can decide how and when to deal with reinstalling the trailing comments. This may be quite involved and can be deferred until convenient. It is covered in the next step, Cleanup trailing comments, below.

A.2. Cleanup trailing comments

The procedure for cleaning-up the trailing comments is covered in the Cleanup procedure subsection below. After that there is an Explanation of procedure subsection that may make what is being done clearer and includes a small additional procedure for files that have been updated previously by gnplt1. When applying these procedures, there are a few points worth considering:

  1. Depending on the size of your .rxg files, cleaning up the trailing comments could be very laborious. Using this procedure is entirely optional. It is provided only in case you are interested in using it. If your trailing comments are in the form you want or if you do not want to clean them up, you can skip this procedure. If you don’t want to clean them up, you can either keep them in the backup you made (in sub-step Make a backup of your current .rxg files above) or append all the trailing comments from the backups into the corresponding .rxg files (the latter case would be equivalent to not using the -c option in the Check what changes would be made sub-step and following sub-step above). Future updates with gnplt will add comments in reverse chronological order.

    If you do append them and they are not in reverse chronological order, they will not be consistent with new updates made with gnplt, which will add new comments in reverse chronological order. As a result, straightening out the trailing comments at a later date will be more complicated. It is probably best to avoid this unless you are not worried about the older trailing comments. Keeping the trailing comment cleanup simpler is the reason that it is recommended to delete the trailing comments (with rxgfix3 option -c) in the Remove extra comments step above. The procedure here assumes that no new comments have been inserted in the backup copy in reverse chronological order.

  2. This approach for cleaning up the trailing comments will work correctly if your .rxg files have only been updated with gnplt and not modified otherwise. If they have been modified otherwise, the following procedure may not work, but it may be possible to adapt it to your situation.

    If your .rxg files have only been updated by gnplt, it may be possible to automate this step. If you would like to have a script to implement this procedure, please email Ed. If there is sufficient interest, we will look into developing it.

  3. The procedure makes use of the added GnPlt2 date comment lines in the file. Although the date encoded will typically be different, the lines will be of the form:

    * RXG file updated by GnPlt2 on 2021-4-19

    The procedure identifies particular instances of these comments and then locates the next matching instance.

A.2.1. Cleanup procedure

This procedure should be applied after the Remove extra comments step above. Using the following procedure to cleanup the trailing comments. As oper, for each individual .rxg file:

  1. Make a temporary copy, to work on, of the backup of the file you created in the Remove extra comments step above. Working with the temporary copy will allow for easy recovery in case there is problem, including an error in this procedure. To make a working copy for <name>.rxg, where year, month, and day are the values you used in the Make a backup of your current .rxg files sub-step above, enter:

    cp /usr2/control/rxg_files/BACKUP.year.month.day/<name>.rxg /tmp
    Important
    For the remainder of these steps, work on the copy you just made.
  2. Find the uncommented calibration data set at the top of the file.

  3. The first two lines in the file should be GnPlt2 date comments. Note the date in the second date comment. Ignore any date comments that follow the second one.

    If there are no GnPlt2 date comments, delete from the start of the file to (and including) the end_spillover_table line at the end of the active calibration, then go to the Save file step below. If there are no comments after that end_spillover_table, no cleanup is necessary and you are done with this file.

    If only the first line is a GnPlt2 date comment, delete from the start of the file to (and including) the end_spillover_table line at the end of the active calibration, then go to the Finish step below.

  4. Search for the next occurrence of a date comment with the date you noted above.

  5. Call the line before that location B. It should be end_spillover_table.

  6. Delete from the beginning of the file to B, inclusive.

  7. Loop:

    1. If the line after the GnPlt2 date comment that you found is another GnPlt2 date comment, note the date in that comment.

      Otherwise go to the step labeled Finish below.

    2. Find the last line of the commented out calibration set at this point. It should be *end_spillover_table.

    3. Call the next line location A.

    4. Search for the next occurrence of the date you noted above in Loop.

    5. Call the previous line location B. It should be *end_spillover_table.

    6. Delete from A to B, inclusive.

    7. Repeat the above steps above starting with the step labeled Loop above until you reach a commented out calibration that doesn’t have a second GnPlt2 date comment at the start.

  8. Finish: If your .rxg file was updated with gnplt1 in the past, please consider using the gnplt1 additional procedure in the Explanation of procedure subsection below. Then continue with the next step here, Save file.

  9. Save file: Save the file.

  10. Append the saved file to what is now in the .rxg file its contents originally came from.

    Note
    Any trailing comments that were added by gnplt after applying the Remove extra comments step above, will be in the correct order. As a result, appending after those will maintain the correct order.

A.2.2. Explanation of procedure

To understand how this process works, consider two cases: (1) only the gnplt2 has been used to update the file, and (2) the file was previously updated by gnplt1. In the former case, the growth of the file follows the pattern (where the integers indicate the sequential versions of the calibration, the leftmost is the active one, all the others are commented out):

0
1 0
2 0 1 0
3 0 1 0 2 0 1 0
4 0 1 0 2 0 1 0 3 0 1 0 2 0 1 0
...

For each new version, gnplt2 inserted a new date comment at the start. The previous date comments were preserved after it. After the above procedure, the content is reduced to (for the case of 4 being the active calibration):

4 3 2 1 0

The other case is if the file was updated with gnplt1 before switching to gnplt2. In this case the progression is (where A represents all the trailing comments before the first gnplt2 update):

0 A
1 A 0 A
2 A 0 A 1 A 0 A
3 A 0 A 1 A 0 A 2 A 0 A 1 A 0 A
4 A 0 A 1 A 0 A 2 A 0 A 1 A 0 A 3 A 0 A 1 A 0 A 2 A 0 A 1 A 0 A
...

After the above procedure, the content is reduced to (for the case of 4 being the active calibration):

4 3 2 1 A 0 A

gnplt1: In this case, there is an extra A section between the final 1 and 0 A at the end of the file. This can be found and removed with these steps:

  1. Locate the end of the 1 comments, which is the first *end_spillover_table line after the last GnPlt2 date comment.

  2. Call the next line A.

  3. Find the next commented out calibration with the latest date line (commented out) and no GnPlt2 date comment line. This is last update made by gnplt1 (0).

  4. Find the previous *end_spillover_table line. It should be the last line before the 0 calibration set.

    If your .rxg file was started before opacity corrections were supported (version 9.6.7 in September 2003), the last line before the 0 calibration set will be a commented out Tcal table entry (with three fields after the leading *, i.e., polarization frequency Tcal). In this case, you should find that line instead.

  5. Call that location B.

  6. Delete from A to B, inclusive.

  7. If you executed this as part of the Cleanup procedure step above, you can continue with the sub-step labeled Save file in that step.