1. Introduction

This document covers the steps needed to update from FS 10.0.0 to 10.1.0-beta1 and the changes in the new version. This update is not an operational release. It is intended for testing by all stations using FS 10.0.0. Installing the new version as an update is much simpler than the update to 10.0.0, see the Upgrading from 10.0.0 section below.

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 is useful for geodesy intensive schedules.

  • Change the default FS git branch to main

    Note
    This has not been implemented in the alpha and beta pre-releases.

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.

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 using 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.0.1. This is covered in detail in the Using symbolic links subsection of the above referenced section.

2.2. Login as root

The next step requires root permissions.

2.3. Fetch FS 10.1.0

The directions in this step make a backup copy of your /usr2/fs-git directory. This is optional, but may help you recover if there is an error. You can of course use any name you like for the backup. You should use a different name for the backup directory than fs-git.old-10.0.0 if that directory already exists.

Important

The paragraph immediately below in this IMPORTANT block does not apply to alpha and beta releases.

The default branch of the FS has changed to main. To simplify the installation, we recommend that you re-clone the repository. If you need to preserve your old repository as your working copy, please use the directions in the NOTE below in this step. Otherwise proceed with:

  • If you are using an FSL9 or FSL10 system:

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

    Answer y to confirm installation.

  • If you are using FSL8 or other old Linux distribution, or otherwise need to use ssh instead:

    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.0-beta1
    make install

    Answer y to confirm installation.

Note
Important
This NOTE does not apply to alpha AND beta releases.

If you need to preserve your old repository for operations, instead of following the directions above, you can download the update and change your default branch to main with:

  1. As root:

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

  3. Execute:

    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
    git checkout -q 10.1.0-beta1
  4. Login as root:

    cd /usr2/fs-git
    make install

    Answer y to confirm installation.

2.4. Login as prog

Important
The FS must be compiled as prog.

2.5. 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.6. 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() should be sufficient in the short-term, but you should change to refrwn() when convenient. Please see the refrw_bad() FS change below from more details.

2.7. 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.8. Login as oper

Except as indicated, the actions in the next step should be performed as oper.

2.9. 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. This will also require you to specify the equipment option with the correct values if you aren’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 the Fix drudg equipment options change in the drudg changes section below.

  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, 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.

  3. Create the dbbc3.ctl control file.

    The contents of DBBC3 line in the equip.ctl control file has been moved to the 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 already exist. 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.

  4. 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 change in the FS changes sub-section below.

  5. 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 aren’t aware of what tuning is needed. 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 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.

  6. If you have a FlexBuff recorder, use pfmed to add a checkfb procedure to your station procedure library.

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

    You can do make this change in one of two ways, using pfmed commands:

    • 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

    Additionally, for either case, in the new file:

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

    • You may also like to rename the call to mk5_status to fb_status.

  7. 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 appendix of the FS DBBC3 Operations Manual. If you expect to get a DBBC3, these changes can be deferred until then.

  8. 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 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.

  9. 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 sub-section 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.

  10. Make the scnch and erchk windows NeverFocus.

    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). They will still be able to be scrolled. If this 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.10. Login as oper

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.11. 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 use the command:

fsserver stop

to make sure the server is no longer running as prog.

For details on why this is needed, please see the second IMPORTANT item in Server continues running after FS termination sub-section 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 onoff now detects antcn errors for a workaround.

2.12. 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. The FSL10 test procedure has more options for recovery. Managing this is a lot easier and safer if you have a third disk.

2.13. Review changes

Please see the Changes since 10.0.0 section below for the details of the changes since that release.

3. Changes since 10.0.0

There are separate sub-sections with summaries of changes in the FS and drudg.

Each change item is listed as a summary line with clickable 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.

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.

3.1. FS changes

  1. Add more complete support for DBBC3 DDC personality

    Details

    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:

    • 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, Bonn), for elaborating on the details of DBBC3 functionality; Uwe Bach (Effelsberg) and Marjolein Verkouter (JIVE) for providing helpful suggestions.

  2. Improve onoff

    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 started 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 antcn errors are detected. If one occurs now, onoff will try to run antcn a second time to make onoff more robust if a transitory antenna communication problems 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, the behavior of antcn should be corrected.

      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 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

    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. Add adjustable log size warning message (closing #114)

    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, fsserver must be stopped (or the system rebooted) after stopping the FS and before restarting it with:

    fsserver stop

    Thanks to Kiah Imai (KPGO) for suggesting this.

  5. Improve plog

    Details
    1. 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 in any case.
      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.

    2. 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.

    3. 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, 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 files in one step.

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

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

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

  6. Improve fesh

    Details
    1. 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 prints the summary and the .prc file, is included as /usr2/fs/fesh/feshp. This can be copied to ~oper/bin and customized to print other files.

      Thanks to Kiah Imai (KPGO) for suggesting this.

    2. 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).

    3. 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 now maps the station code, from both the STATION environment variable and -s option, to lower case.

      Thanks to Eskil Varenius (Onsala), for reporting this issue.

    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.

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

    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 send a 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.

  8. Add setup_proc command

    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.

    Warning
    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.

  9. Add mk5init command to reinitialize the Mark 5 or Flexbuff connection without restarting the FS (closing #164)

    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.

  10. Expand setup of Mark 5C and Flexbuff recorders

    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 FS DBBC3 Operations Manual.

    All the settings can be overridden by the mk5c_config (or fb_config, depending on the recorder type selected when running drudg) local procedure. See the Overriding the defaults subsection of the FS DBBC3 Operations Manual.

    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.

  11. FlexBuff synonyms: Add FlexBuff synonyms for all Mark 5 commands except mk5b_mode, which is not used with a FlexBuff recorder

    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 it 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.

  12. Split equip log header line into three parts

    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.

  13. Add features to rdbemsg

    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.
  14. Show incorrect times DOT time in inverse video for the RDBE monitor display (monit6) window.

    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 recovery is too costly to use in most cases. As a result, to bring the operator’s attention to the conflict, 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 problem. However, there did not seem to be a use case for recording with the time intentionally set wrong.

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

    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.

  16. Fix issues with zooming, large numbers of detectors, and debug output in gnplt and gndat

    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.

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

    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. Thank to Jun and Eskil Varenius (also at Onsala) for making systems available to verify the fixes.

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

    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.

  19. Improve refraction calculations

    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 the 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 can be determined, when it is convenient.

      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 (includes references for them and refrwn())

      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).

    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. Locate references for refrwn()

      The older refrwn() is apparently 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.

  20. Increase buffer size for recovering a deleted log

    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 (512 sectors) 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.

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

    Details

    This utilities are available in sub-directories in misc/ with the names of the programs. They are intended for testing and experimentation.

    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.

      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 is program has a set of comparisons hard-coded, but could be modified to test other situations.

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

    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.

    Warning
    An FS xterm window can still be terminated 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 terminated abnormally by using the kill command to send a SIGINT (2) or SIGKILL (9) signal to an xterm run by the FS.
  23. Record fsserver error messages (closing #105)

    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.
  24. Add explanatory comments to the example flux.ctl control file (closing #121)

    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 in /usr2/fs/st.default/control/ 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.

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

    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 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.

  26. Improve error messages when reading .rxg files

    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 that cannot be part of a numeric field will be reported as an error.

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

    Details

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

  28. Improve web documents

    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. 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 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 show a summary line and a toggle to open 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.

      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.

  29. Update example station procedure libraries

    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.

  30. Add other miscellaneous fixes

    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 with DBBC3’s, Tsys 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, if 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 fixed 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. 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.

    14. 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 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.

    15. 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.

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

    17. 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.

    18. 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.

    19. 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.

    20. 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.

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

    22. 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.
    23. 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.

    24. 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.

    25. Reorganize and cleanup the help file for onoff.

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

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

    28. Add missing help page for jive5ab command.

    29. 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.

    30. Remove e rack type in help files.

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

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

3.2. drudg changes

drudg opening message date is 2022-02-10.

  1. Add support for DBBC3 DDC racks

    Details

    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 IF must be a power of two.

    Note

    At this time it is only considered safe to set the configuration of then Core3H boards with the DBBC3 boot configuration file. As a result the drudg generated setup procedures only check the configuration of the Core3H boards. Once it is possible to set the Core3H boards remotely. The setup procedure can be run with force as its argument set the configuration 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 (see use_setup_proc below) 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.

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

    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 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 Thread procedure subsection 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

    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 subsequently be changed 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 with setup_proc= to invoke that command. For more information see the Minimizing the use of setup procedures subsection 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 subsection 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 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, presumably at least one of the following was always true:

      • 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:

      • User 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:

    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 sub-section 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 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 sub-section below. After that there is an Explanation of procedure sub-section 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 mail 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 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 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 sub-section 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 data 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.