08.12.2012 Views

Documentation of Wideband VLBA Software - National Radio ...

Documentation of Wideband VLBA Software - National Radio ...

Documentation of Wideband VLBA Software - National Radio ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Abstract<br />

1 Introduction<br />

<strong>VLBA</strong> Sensitivity Upgrade Memo 3x<br />

<strong>VLBA</strong> <strong>Wideband</strong> S<strong>of</strong>tware<br />

Walter Brisken<br />

17 Oct 2011 draft v.1<br />

This document serves as an overview <strong>of</strong> the s<strong>of</strong>tware being added to <strong>VLBA</strong> operations as part <strong>of</strong> the <strong>VLBA</strong><br />

Sensitivit Upgrade Project. New s<strong>of</strong>tware that will be installed as part <strong>of</strong> the C-band upgrade project<br />

will also be included here. The top-level sections are organized by the devices or computers on which<br />

the s<strong>of</strong>tware is installed. The second-level <strong>of</strong> the heirarchy represents natural installation units, which can<br />

include multiple individual programs. In most cases these units are Redhat Packages. Many <strong>of</strong> the larger<br />

s<strong>of</strong>tware subsystems have extensive documention which will not be repeated here but this document will<br />

serve as primary documentation for many <strong>of</strong> the smaller or more obscure utilities. This document is meant<br />

to be useful for a wide audience including operators, s<strong>of</strong>tware engineers and systems administrators. It is<br />

expected that this document will evolve with time. At the time <strong>of</strong> writing this documented’s Latex source<br />

is stored in subversion at https://svn.aoc.nrao.edu/repos/<strong>VLBA</strong>/DigitalBackend/trunk/doc/memos/<br />

upgrades<strong>of</strong>tware . Hopefully some effort will be made to prevent this document from getting too far out<br />

date.<br />

2 Mark5C<br />

The following sections describe s<strong>of</strong>tware running on NRAO Mark5C units that are deployed at <strong>VLBA</strong><br />

stations, the EVLA, GBT and the test rack. All NRAO Mark5 units run RedHat Enterprise Linux (version<br />

5 as <strong>of</strong> this writing). Except for DRS, all <strong>of</strong> the s<strong>of</strong>tware is currently packaged as Redhat Packages (.rpm<br />

files) which allows computing staff to easily deploy upgrades and configure a clean unit.<br />

Each <strong>VLBA</strong> station has at least one Mark5C unit. The primary Mark5C unit at each station will have<br />

hostname xx-mark5c-1, where xx is the standard two letter station code. At the EVLA and GBT, the two<br />

letter codes are ea and gb respectively. Provisions for a second Mark5C unit with name xx-mark5c-2 have<br />

been in plans since the beginning. Pie Town and Mauna Kea each have a Mark5C unit specifically installed<br />

to support daily observations made by the US Naval Observatory. These units are called pt-mark5c-usno<br />

and mk-mark5c-usno respectively.<br />

2.1 Streamstor SDK<br />

Package streamstor-9.1-1.i386.rpm<br />

SVN path https://svn.aoc.nrao.edu/repos/<strong>VLBA</strong>/mark5/trunk/src/streamstor<br />

Requires 32-bit Linux operating system 1<br />

Provides StreamStor driver (windrvr6.ko)<br />

StreamStor firmware (*.xfb)<br />

include files (xlrapi.h, xlrdbcommon.h, xlrtypes.h)<br />

libraries (libssapi.a, libwdapi1021.so)<br />

streamstor.pc<br />

utilities (dumpram, sflash, sslog, ssopen, ssprintVersions, sstest)<br />

For the most part this is a repackaging <strong>of</strong> the S<strong>of</strong>tware Development Kit (SDK) made by conduant. The<br />

file streamstor.pc is added to aid in detection <strong>of</strong> the library in the compilation <strong>of</strong> packages that depend on<br />

this library.<br />

1


The included utilties do not make use <strong>of</strong> the locking mechanism that is used by the NRAO and DiFX<br />

Mark5 s<strong>of</strong>tware and by DRS. Thus it is very important to make sure that no program is currently using the<br />

StreamStor card when running any <strong>of</strong> these programs. This includes stopping mk5daemon which wakes up<br />

the StreamStor card every 10 seconds for a status update.<br />

Please see the <strong>of</strong>ficial Conduant documentation for more information about any <strong>of</strong> the above s<strong>of</strong>tware<br />

components.<br />

2.1.1 Firmware upgrades<br />

Note that with the Amazon cards that are used in Mark5C units, upgrading this package almost certainly<br />

requires a manual firmware upgrade. This is done with the ssflash utility. Running ssflash requires a<br />

module to be installed in bank A (one without critical data is suggested) and no other s<strong>of</strong>tware accessing<br />

the StreamStor card can be running. The recommended procedure to upgrade firmware on an NRAO Mark5<br />

unit is:<br />

1. Run StopDRS and StopMK5D (see §??)<br />

2. Run ssprintVersions and record the current versions <strong>of</strong> the firmware and API components<br />

3. Upgrade the package: rpm -Uvh streamstor-X.i386.rpm<br />

4. Reboot the unit<br />

5. Run ssprintVersions to verify an upgrade in the API version<br />

6. cd into $STREAMSTOR BIB PATH (/usr/share/streamstor/bib)<br />

7. Run ssflash -u SDK9.1.ssf (replacing 9.1 with the new version)<br />

8. Upon completion, reboot the unit<br />

9. Verify firmware upgrade with ssprintVersions<br />

10. Start DRS or mk5daemon as desired<br />

2.2 DifxMessage<br />

Package difxmessage-2.0.2-5.i386.rpm<br />

SVN path https://svn.atnf.csiro.au/difx/libraries/difxmessage<br />

Provides shared libraries (libdifxmessage.so, libmark5ipc.so)<br />

static libraries (libdifxmessage.a, libmark5ipc.a)<br />

include files (difxmessage.h, mark5ipc.h)<br />

difxmessage.pc<br />

utilities (mk5mon, cpumon, . . .)<br />

The DifxMessage package provides libraries that implement the DiFX s<strong>of</strong>tware correlator messaging system<br />

and the Mark5 locking mechanism. While several utilities are included with this library most are not <strong>of</strong><br />

much use at a station Mark5 unit.<br />

Please see the DiFX documentation for more information about the DifXMessage s<strong>of</strong>tware.<br />

2


2.3 Mark5Access<br />

Package mark5access-1.4.3-1.i386.rpm<br />

SVN path https://svn.atnf.csiro.au/difx/libraries/mark5access<br />

Provides shared library (libmark5access.so)<br />

static library (libmark5access.a)<br />

include file (mark5access.h)<br />

mark5access.pc<br />

utilities (m5d, m5fold, m5pcal, m5spec, zerocorr, . . .)<br />

This library is for the decoding <strong>of</strong> VLBI baseband data. It currently supports Mark4, <strong>VLBA</strong> and Mark5B<br />

formats fairly completely. Single thread variants <strong>of</strong> VDIF are handled at a minimal level.<br />

Please see DiFX documentation for more information.<br />

2.4 Mk5Daemon<br />

Package mk5daemon-2.0.2-9.i386.rpm<br />

SVN path https://svn.atnf.csiro.au/difx/applications/mk5daemon<br />

Requires streamstor, difxmessage, mark5access<br />

Provides mk5daemon<br />

utilities (fileto5c, mk5cp, mk5dir, mk5erase, mk5map, record5c, recover, testmod, vsn, . . .)<br />

The program mk5daemon was originally written to aid in the transition from the hardware to the s<strong>of</strong>tware<br />

correlator during which time Mark5 units were capable <strong>of</strong> feeding both systems. It was responsibile for starting<br />

and stopping the Mark5A program and maintaining current state <strong>of</strong> modules for the s<strong>of</strong>tware correlator.<br />

This s<strong>of</strong>tware has evolved to do much more and now supports a VSI-S interface that matches the capabilities<br />

<strong>of</strong> DRS fairly closely. DRS cannot be run at the same time as mk5daemon as both want to accept messages<br />

on the VSI-S port (2620) and both need access to the StreamStor card 2 .<br />

The VSI-S interface supported by mk5daemon is almost equivalent to that <strong>of</strong> DRS. Please see the DRS<br />

documentation, but note the following differences:<br />

• DTS id replies with system type mk5daemon 3 instead <strong>of</strong> Mark5C<br />

• record? queries will return the data rate as an additional parameter<br />

• error? queries are handled very differently. FIXME: document this<br />

• scan set, scan check, and data check are not yet supported<br />

The architecture <strong>of</strong> mk5daemon is very different than that <strong>of</strong> DRS. The key differences are:<br />

• A single programming language is used (C++) rather than two (python, C++)<br />

• The StreamStor card is not kept open; only occasional peeks at the modules are made<br />

• All major module functionality is handled through helper programs record5c, mk5erase, recover,<br />

vsn, . . .<br />

• mk5daemon will block VSI-S commands for up to 3 seconds on record stop to ensure consistency in<br />

state after recording.<br />

• Logging infrastructure is simpler but more consistent<br />

• Facilities for extracting S.M.A.R.T. data from modules is deeply integrated<br />

2 Note however that DRS can be set to a personality that does not lock the StreamStor.<br />

3 mk5daemon can be compiled without StreamStor support; the system type parameter will report mk5daemon noss in this case<br />

and will only support a small subset <strong>of</strong> the VSI-S commands.<br />

3


The differences between the two programs is hoped to aid in the stabilization <strong>of</strong> the Mark5C recorder. Having<br />

two independent code bases can expediate isolation <strong>of</strong> problems. The choice <strong>of</strong> which s<strong>of</strong>tware to ultimately<br />

use has not been made yet.<br />

Most <strong>of</strong> the included utilities are explained in the DiFX documentation. See §?? for details on starting<br />

and stopping mk5daemon<br />

2.5 DRS<br />

SVN path svn+ssh://wbrisken@vault.haystack.mit.edu/svnrepos/DRS<br />

Requires streamstor<br />

Provides drs<br />

drs client<br />

The Data Recording System (DRS) is the standard s<strong>of</strong>tware for recording data on a Mark5C unit. This<br />

s<strong>of</strong>tware has extensive documentation and won’t be described in detail here. See §?? for details on starting<br />

and stopping DRS on NRAO Mark5C units.<br />

A Redhat package (.rpm) for DRS will become the primary distribution mechanism as soon as python<br />

2.5 becomes standard with RedHat Enterprise Linux.<br />

2.6 Mark5C MIB Emulator<br />

Package mib mark5c-0.7-1.i386.rpm<br />

SVN path https://svn.aoc.nrao.edu/repos/<strong>VLBA</strong>/mib_mark5c<br />

Provides mib mark5c<br />

Configuration file mib mark5A pt.xml<br />

The Monitor Interface Board (MIB) is a single board computer monitor & control interface used by the<br />

EVLA. The s<strong>of</strong>tware on these boards allows high-level communication via XML over TCP or UDP. Archive<br />

data and alerts are multicast for other s<strong>of</strong>tware on the local network to intercept. Several subsystems have<br />

s<strong>of</strong>tware that emulates the functionality <strong>of</strong> a MIB. The <strong>VLBA</strong> Sensitivity Upgrade Project is adopting the<br />

EVLA control system and thus the MIB infrastructure.<br />

The Mark5C MIB is a piece <strong>of</strong> s<strong>of</strong>tware that runs on the Mark5C unit. It connects to the VSI-S<br />

interface <strong>of</strong> DRS or mk5daemon. It periodically (ranging between seconds and hours) makes queries. When<br />

commanded to do so, the MIB emulator will also send VSI-S commands. This s<strong>of</strong>tware is also responsible<br />

for implementing auto-erase <strong>of</strong> modules based on their Disk Module State and bank switching on module<br />

fill-up.<br />

To start this program from the command line, you must include a command line parameter that points<br />

to the path where the configuration file lives:<br />

mib mark5c -p/etc<br />

Logging information will be sent to stdout and stderr.<br />

See §?? for details on starting and stopping mib mark5c on NRAO Mark5C units.<br />

2.7 Mark5C logging s<strong>of</strong>tware<br />

Package logmark5c-0.10-4.i386.rpm<br />

SVN path https://svn.aoc.nrao.edu/repos/<strong>VLBA</strong>/logmark5c<br />

Provides logmark5c (and StartDRS, StopDRS, & RestartDRS)<br />

logmk5d (and StartMK5D, StopMK5D, & RestartMK5D)<br />

logmibmark5c (and StartMIB, StopMIB, & RestartMIB)<br />

start-up scripts nrao-mark5, nrao-mk5d, & nrao-mibmark5c<br />

A system <strong>of</strong> programs that provide logging and boot-persistent start/stop were created to increase the<br />

simplicity and consistency <strong>of</strong> s<strong>of</strong>tware that must be running on Mark5 units for proper operation. This<br />

package has this logging s<strong>of</strong>tware for DRS, mk5daemon and mib mark5c.<br />

4


2.7.1 logmark5c<br />

logmark5c is a program that is started on boot by nrao-mark5c, a script that lives in /etc/init.d . On<br />

start-up it begins monitoring a watch file /var/spool/mark5/logmark5c.watch. The contents <strong>of</strong> the first<br />

line <strong>of</strong> this file are used to control the state <strong>of</strong> DRS. If the line contains a positive integer, DRS will be started,<br />

if not already active; if zero or negative, it will be stopped if not already stopped. Two key properties this<br />

system provides are:<br />

• Ability for any user to control program running as root in a secure way.<br />

• Prevent more than one instance <strong>of</strong> the program from being run.<br />

The watch file is most conveniently managed by three scripts:<br />

1. StartDRS: Start the program<br />

2. StopDRS: Stop the program<br />

3. RestartDRS: Stop and restart the program<br />

Note that RestartDRS recognizes that the MIB s<strong>of</strong>tware likely needs to be restarted after restarting DRS, so<br />

it first checks the state <strong>of</strong> the /var/spool/mark5/logmibmark5c.watch; if it is on, then the MIB s<strong>of</strong>tware<br />

is first stopped and then started. Note also that the scripts know that DRS and mk5daemon cannot coexist,<br />

so StartDRS will first ensure mk5daemon is stopped (and vice-versa).<br />

Logging facilities collect stdout and stderr coming from DRS. Native time-tag information from these<br />

text streams are removed and DEBUG level messages are dropped. The logging s<strong>of</strong>tware reformats the text<br />

with just one time-tag per second (maximum). Example log output (from 2011 302 18 00 00.drs.log):<br />

2011/302 18:01:58<br />

INFO Input: status?;<br />

INFO Output: [1, ’!status? 0 : 0x00300001 ;\n’]<br />

INFO Input: bank_set?;<br />

OTHER arg passed was A<br />

OTHER Getting the status for Bank 0<br />

OTHER 0 status was successful<br />

OTHER XLR_LABEL_LEN is 100<br />

OTHER label NRAO+313/8000/1024<br />

OTHER state 2 sel 1 pwr_req 1<br />

OTHER pwr_en 1 media_status 1 wr_prot 0 err_code 0 err_data 0<br />

OTHER len 264a0a0aeb8 total_cap 74701830 total_cap_bytes 74701830000<br />

OTHER arg passed was B<br />

OTHER Getting the status for Bank 1<br />

OTHER 1 status was successful<br />

OTHER XLR_LABEL_LEN is 100<br />

OTHER label LABEL NOT AVAILABLE<br />

OTHER state 0 sel 0 pwr_req 0<br />

OTHER pwr_en 0 media_status 0 wr_prot 0 err_code 0 err_data 0<br />

OTHER len 0 total_cap 0 total_cap_bytes 0<br />

INFO Output: [1, ’!bank_set? 0 : A : NRAO+313/8000/1024 : - : - ;\n’]<br />

INFO Input: record?;<br />

INFO Output: [1, ’!record? 0 : <strong>of</strong>f : 500 : TESTPFB_AT_No0001 ;\n’]<br />

Log data is written into a log directory /export/home/mark5/vlbamon/logs into files that rotate every<br />

6 hours. After each file is completed (a new 6 hour portion <strong>of</strong> the day is started), the log file is gziped. The<br />

log directory is monitored by tmpwatch with files older than 60 day automatically deleted.<br />

5


2.7.2 logmk5d<br />

This program is completely analogous to logmark5c, but controls mk5daemon instead. Example log output<br />

(from 2011 302 18 00 00.mk5d.log):<br />

2011/302 18:00:01<br />

VSI-S received: status?;<br />

VSI-S responding: !status? 0 : 0x02340001;<br />

VSI-S received: bank_set?;<br />

VSI-S responding: !bank_set? 0 : A : UNAM+010 : B : NRAO+398;<br />

VSI-S received: record?;<br />

VSI-S responding: !record? 0 : <strong>of</strong>f : 117 : BR152G_PT_No0072;<br />

VSI-S received: bank_info?;<br />

VSI-S responding: !bank_info? 0 : A : 12371057209816 : B : 16003099193344;<br />

2.7.3 logmibmark5c<br />

This program is completely analogous to logmark5c, but controls mib mark5c instead. Example log output<br />

(from 2011 301 00 00 00.mib mark5c.log):<br />

2011/301 00:00:03<br />

rx_msg @: 55862.000034722223: get mark5c.ConnectionState<br />

rx_msg @: 55862.000034722223: get mark5c.Online<br />

rx_msg @: 55862.000034722223: get MARK5C.RecordState.msg<br />

rx_msg @: 55862.000034722223: get MARK5C.ConnectionState<br />

rx_msg @: 55862.000034722223: get bank0.TotalBytesRecorded<br />

rx_msg @: 55862.000034722223: get bank0.ModuleUsed<br />

rx_msg @: 55862.000034722223: get bank1.ModuleUsed<br />

rx_msg @: 55862.000034722223: get bank1.TotalBytesRecorded<br />

rx_msg @: 55862.000034722223: get mark5c.BankASelected<br />

rx_msg @: 55862.000034722223: get mark5c.BankBSelected<br />

rx_msg @: 55862.000034722223: get mark5c.BankAReady<br />

rx_msg @: 55862.000034722223: get mark5c.BankBReady<br />

rx_msg @: 55862.000034722223: get mark5c.Online<br />

sent: status?;<br />

recv: !status? 0 : 0x02340001;<br />

sent: bank_set?;<br />

recv: !bank_set? 0 : A : UNAM+010 : B : NRAO+398;<br />

3 RDBE<br />

Each <strong>VLBA</strong> station and the GBT will have two RDBEs at the completion <strong>of</strong> the <strong>VLBA</strong> Sensitivity Upgrade<br />

Project with hostnames xx-mark5c-1 and xx-mark5c-2, where xx is the standard two letter station code.<br />

The EVLA will not have any RDBEs as the WIDAR correlator will provide equivalent functionality.<br />

Unlike the other Linux-based components <strong>of</strong> the <strong>VLBA</strong>, the RDBE natively runs a small Debian-based<br />

distribution and thus Redhat Packages are not used for s<strong>of</strong>tware distribution. FIXME: explain what is<br />

actually done.<br />

6


3.1 Server<br />

SVN path svn+ssh://vault.haystack.mit.edu/svnrepos/RDBE<br />

Provides<br />

3.2 RDBE MIB<br />

SVN path https://svn.aoc.nrao.edu/repos/<strong>VLBA</strong>/mib_rdbe<br />

Provides<br />

4 Control Computer<br />

Each <strong>VLBA</strong> station and the GBT has a new Linux-based Control Computer with hostname xx-cc, where xx<br />

is the standard two letter station code. The EVLA will make use <strong>of</strong> existing computers at the site to host a<br />

relevant subset <strong>of</strong> s<strong>of</strong>tware.<br />

4.1 Observe Script Monitor<br />

Package ObservScriptMonitor-0.0.8-2.x86 64.rpm<br />

SVN path https://svn.aoc.nrao.edu/repos/<strong>VLBA</strong>/ObservScriptMonitor<br />

Provides ObservScriptMonitor-0.0.8.jar<br />

utilities (observDebug.sh, observInfo.sh, & observMon.sh<br />

This program is started upon boot <strong>of</strong> the control computer and monitors file /export/home/cc/vlba/scripts/observ.tx<br />

for upcoming observations. When it is time to begin an observation, this program sends a request to a running<br />

Exector to start the file. Some example lines from the observ.tx file follow:<br />

TD023A 2011OCT06 13h25m00s 2011OCT06 13h54m15s > pt<br />

TD023B 2011OCT06 13h55m00s 2011OCT06 14h25m15s > pt<br />

TD023C 2011OCT06 14h27m00s 2011OCT06 16h17m15s > pt<br />

The format <strong>of</strong> this file is identical to that <strong>of</strong> observ.tx that runs on the legacy system, allowing one file<br />

to be used for both. By default, entries in observe.tx start 5 minutes before the actual observation (as<br />

specified in the vex file) start to allow slewing to the first source. The end time <strong>of</strong> the entry is 5 seconds after<br />

nominal end <strong>of</strong> observation to provide time for finalization. It seems that in practice this simplification will<br />

not be exploited as a script (see §??) will automatically update the observ.tx file at each <strong>VLBA</strong> control<br />

computer as necessary.<br />

4.2 Executor<br />

Package observe-0.5.0k-3.x86 64.rpm<br />

SVN path https://svn.aoc.nrao.edu/repos/FIXME<br />

Provides vlba-observe-with-dependencies.jar<br />

The executor (also called the observe executor or observation executor) is the s<strong>of</strong>tware that reads a python<br />

control script and generates the commands to cause an observation to happen. Currently the executor only<br />

controls the new equipment installed as part <strong>of</strong> the <strong>VLBA</strong> Sensitivity Upgrade Project (Mark5C, RDBE<br />

and 4x4 matrix switch). Ultimately the executor will completely replace the vxWorks-based legacy control<br />

system that currently controls all <strong>of</strong> the antenna motion, tuning, etc.<br />

FIXME: What installs execAdd, execInfo, & execKill?<br />

7


4.3 Executor Logger<br />

Package logExecutor-0.3-1.x86 64.rpm<br />

SVN path https://svn.aoc.nrao.edu/repos/<strong>VLBA</strong>/logExecutor<br />

Provides logExecutor<br />

control scripts (StartExecutor, StopExecutor, & RestartExecutor)<br />

start-up script (nrao-executor)<br />

The executor logger is completely analogous to logmark5c (§??). Log data is stored in /export/home/cc/vlba/logs.<br />

Example log data from :<br />

2011/302 20:55:00<br />

Oct 29, 2011 8:55:00 PM edu.nrao.evla.observe.Executor addJob<br />

INFO: 20:55:00 Oct29::Executor->Add job :’N1302’; script: /export/home/cc/vlba/scripts/N1302.PT.py<br />

Oct 29, 2011 8:55:00 PM edu.nrao.evla.observe.Executor start<br />

INFO: 20:55:00 Oct29::Executor->Job ’N1302’ started...<br />

N1302 55863 20:55:00 Problem setting TAI-UTC in L350<br />

Oct 29, 2011 8:55:00 PM edu.nrao.evla.observe.Array println<br />

INFO: N1302 55863 20:55:00 Problem setting TAI-UTC in L350<br />

MatrixSwitch - Antenna name abbreviation: pt<br />

Matrix Switch name: pt-t450<br />

Oct 29, 2011 8:55:00 PM edu.nrao.evla.observe.MatrixSwitch <br />

INFO: Matrix 4x4 Switch socket address: pt-t450/10.81.106.176:7000<br />

4.4 Remote Monitor Data Server<br />

Package FIXME!<br />

SVN path https://svn.aoc.nrao.edu/repos/<strong>VLBA</strong>/RemoteMonitorDataServer<br />

Provides RemoteMonitorDataServer.final.jar<br />

The Remonte Monitor Data Server listens for multicast XML messages. Two classes <strong>of</strong> messages are collected:<br />

alerts and archive monitor data. The data is collected and periodically compressed and FTPed to the operations<br />

center where it is ingested into the monitor database. FIXME What installs nrao-RemoteMonitorDataServer<br />

into /etc/init.d?<br />

4.5 Alerts Server<br />

SVN path https://svn.aoc.nrao.edu/repos/EVLA/alerts-server<br />

Provides vlba-alerts-server.war<br />

The <strong>VLBA</strong> Alerts Server is a near clone <strong>of</strong> the same tool used at the EVLA. It is a web service that listens<br />

for multicast alerts from MIB or MIB emulator equipped devices and stores a table <strong>of</strong> active alerts. All<br />

active alerts can be requested from a web portal FIXME: http address goes here at each <strong>VLBA</strong> site.<br />

4.6 RDBE Switched Power Receiver<br />

Package rspr-0.1-1.x86 64.rpm<br />

SVN path https://svn.aoc.nrao.edu/repos/<strong>VLBA</strong>/rspr<br />

Requires logExecutor<br />

Provides rspr<br />

logger (logrspr)<br />

control scripts (StartRSPR, StopRSPR, & RestartRSPR)<br />

start-up script (nrao-rspr)<br />

utilities (switchedpowerfake)<br />

8


The RDBE Switched Power Receiver program runs on the control computer at each <strong>VLBA</strong> site (and GBT)<br />

and listens for multicast switched power measurements from the RDBEs at each site. It collects observation<br />

setup metadata from the RDBEs and labels the measurements according to frequency and polarization in<br />

a text file. This text file is periodically (nominally 4 times daily) gziped and sent to central operations by<br />

the Remote Monitor Data Server. The data are left as comperessed files on a machine within direectory<br />

FIXME: TBD.<br />

The utility switchedpowerfake can be used as a s<strong>of</strong>tware development tool. It broadcasts semirealistic<br />

switched power data in the same manner the RDBE would.<br />

5 Central Operations<br />

5.1 Operator GUIs<br />

SVN path https://svn.aoc.nrao.edu/repos/<strong>VLBA</strong>/opspack<br />

The GUI can be spawn via web start from http://www.aoc.nrao.edu/asg-internal/s<strong>of</strong>tware/vlba/ .<br />

5.2 vex2difx utilities<br />

SVN path https://svn.atnf.csiro.au/difx/applications/vex2difx<br />

Requires difxmessage, difxio<br />

Provides vex2script<br />

queueVex<br />

goUSNO<br />

several other DiFX tools<br />

5.2.1 vex2script<br />

The new <strong>VLBA</strong> s<strong>of</strong>tware system is controlled by a .vex file. The program �vex2script converts one station<br />

at time the .vex file to python control files.<br />

5.2.2 queueVex<br />

queueVex is a script that runs vex2script, copies the python control files to the <strong>VLBA</strong> stations, and updates<br />

the observ.tx file appropriately.<br />

5.2.3 goUSNO<br />

goUSNO is a special purpose script that is used to schedule daily UT1-UTC observations for the USNO. The<br />

program goes through the following steps:<br />

1. generate a schedule (.key) file<br />

2. run sched to generate .vex and crd files<br />

3. run db2vex to add predicted EOPs and clocks to generate a .vex.preobs file<br />

4. run vex2script to generate executor control files<br />

5. copy executor Mark5C control files to <strong>VLBA</strong> stations<br />

6. update the Mark5C observ.tx file on the new systems at <strong>VLBA</strong> stations<br />

7. email a confirmation to a special purpose mailing list<br />

9


6 Acronym Salad<br />

API Application Programming Interface (essentially a set <strong>of</strong> function calls)<br />

DiFX Distributed FX, the s<strong>of</strong>tware correlator used by the <strong>VLBA</strong><br />

DRS Data Recording System (Mark5C)<br />

DTS Data Transmission System<br />

EOP Earth Orientation Parameter<br />

EVLA Expanded Very Large Array<br />

GBT Greenbank Telescope<br />

MIB Monitor Interface Board (here usually used to mean MIB emulator)<br />

NRAO <strong>National</strong> <strong>Radio</strong> Astronomy Observatory<br />

RDBE ROACH Digital Back End<br />

ROACH Reconfigurable Open-Architecture Computing Hardware<br />

RPM Redhat Package Manager: the s<strong>of</strong>tware package system for Redhat Linux<br />

RSPR RDBE Switched Power Receiver: a program that collects data for Tsys<br />

SDK S<strong>of</strong>tware Development Kit<br />

SS StreamStor<br />

SVN Subversion, a s<strong>of</strong>tware version control system<br />

TCP Transmission Control Protocol, a network communication type<br />

Tsys<br />

System Temperature<br />

USNO US Naval Observatory<br />

UDP Unreliable Datagram Protocol, a network communication type<br />

UT1 Universal Time as identified by the phase <strong>of</strong> Earth rotation<br />

UTC Coordinated Universal Time (atomic time)<br />

VDIF VLBI Data Interchange Format, a new format for baseband data<br />

<strong>VLBA</strong> Very Long Baseline Array<br />

VLBI Very Long Baseline Interferometry<br />

VSI-S VLBI Standard Interface for S<strong>of</strong>tware, a query/control protocol<br />

XML Extensible Mark-up Language<br />

10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!