Build and Deploy Big Display Software

Building

The software for the FACSUM and WEATHERSTATION big displays is stored in SVN in the tcsweb repository.

There are actually three products in tcsweb: wda.sh, FACSUM, and WEATHERSTATION.
  • wda.sh: wda.sh stands for Weather Data Access. It is just a script at this time though it should eventually run as a daemon.
    The wda.sh collects much of the data, necessary to support the FACSUM and WEATHERSTATION. Any new TCS data dictionary items which are to be used in support of the FACSUM or WEATHERSTATION must be added to the wda.sh script. Note: the items can be specified by their private TCS names or their public names. Now one has two options: delete the /tmp/wda_param_file.txt on tcs1.mountain.lbto.org and restart the wda.sh as indicated below, OR edit the existing /tmp/wda_param_file.txt for the new desired data dictionary items. The second option does not require a restart of the wda.sh. The support text files generated as a result of the wda.sh can be found in /web/info on the info.mountain.lbto.org machine. Logon to this machine as user web - go to the normal source to get the password. Files params.txt and events.txt support the FACSUM. The params.txt file also supports the WEATHERSTATION. The location of these text files on info.mountain.lbto.org is /web/info. In /web/info/AllSky you will find the All Sky jpeg image which both GUIs use.
    • logon to tcs@tcs1.mountain.lbto.org
    • to stop the script
      pkill -9 wda.sh
    • start the script
      nohup ~/bin/wda.sh &
    • If new data is desired to display on either big GUI, the data dictionary variable name, the public (if there is a public equivalent) or the private version of the name, needs to be added to the params.txt file. The source of the FACSUM or WEATHERSTATION then must also be updated to take advantage of the new information.
  • FACSUM: FACSUM is a Qt GUI application. Check out all the software in the tcsweb repository onto a 32-bit Linux machine.
    In tcsweb/trunk/gui/facsum type, make
    This will build the FACSUM. The binary is called FACSUMHttp and will be put in the .../facsum/bin directory along with facsum.thresh and facsum.cfg which should be kept with the executable.
  • WEATHERSTATION: WEATHERSTATION is a Qt GUI application. Check out all the software in the tcsweb repository onto a 32-bit Linux machine.
    In tcsweb/trunk/gui/weatherstation type, make.
    This will build the WEATHERSTATION. The binary is called WEATHERSTATIONHttp and will be put in the .../weatherstation/bin directory along with weather.thresh and weather.cfg which should be kept with the executable.
The FACSUM and WEATHERSTATION both use utilities in tcsweb/trunk/gui/utils and tcsweb/trunk/gui/weathergraphs. For example, if code in the weathergraphs is modified to change the way the graphic looks for some of the plots, this will change both the rendering on the FACSUM and the WEATHERSTATION.

If there are any variables specified in the wda.sh script which do not exist in the TCS data dictionary, the response back to the script will be an error and no data will be provided. As a result, the big displays will be blank. You can do the following on tcs1.mountain.lbto.org to find out which variables are missing:
   ddsclient GetParameter /tmp/wda_param_file.txt

NOTE: The FACSUM and WEATHERSTATION big GUIs depend upon low-level software which is running on a PC. See WeatherStationSoftware (Mini-Automatic Weather System or MAWS) for details on this low-level system.

Deploying FACSUM and WEATHERSTATION

The software is stored on the mountain machine info.mountain.lbto.org and distributed to the display machines automagically. The steps below describe what needs to be done.

  1. After you have built the GUI software as described above, go to the bin directory for the FACSUM (tcsweb/trunk/gui/facsum/bin) or WEATHERSTATION (tcsweb/trunk/gui/weatherstation/bin) and create a tarball of the files.
    For the FACSUM there should be three files: FACSUMHttp, facsum.cfg, and facsum.thresh.
    There are also three files for the WEATHERSTATION: !WeatherStationHttp, weather.cfg, and weather.thresh.
  2. logon to web@info.mountain.lbto.org (go to the normal source to get the password)
  3. cd /web/info/displays/runtime
  4. scp the tarball files from your directory/machine into this directory
  5. tar xvpf yourTarFileName (to extract the files from the tarball)
  6. delete your tarball
  7. cd ..
  8. now you want to make a tarball and an md5sum of this area by doing tar cvf - -C runtime . | gzip -c > runtime.tgz ; md5sum runtime.tgz > runtime.md5.
At this point you have deployed the software to the distribution machine. To make the displays run the new software, you must restart the display machines. You will do a restart via a web interface.
  1. go to http://info.mountain.lbto.org/displays/displays.php or http://info.tucson.lbto.org/displays/displays.php - you should see a web page which looks like the image below.
    Note the IP addresses are dynamic, so you need to see the actual web page to get the current IP associated with the particular display. You can
  2. (A) modify the content to be shown on any of the displays via the drop-down menu under the "Script" heading and stop/start the display, or
  3. (B) stop and start any of the displays just to download updated software. The widget to the far left is not a control; it is an indicator. A selected state means the vncserver was running the defined software (FACSUM or WEATHERSTATION) the last time the web page updated. A deselected state means the vice versa. To migrate the new software to any particular machine (you will see a description of each machine and its associated IP address), you will click the toggle button on the right. Click "Stop" to stop the appropriate display service. You must wait for the selected state of the machine to become deselected (go OFF). Then you can click the "Start" to restart the display service.
    On restart, the display machine will check its version of software against the version of software on the info machine. If info has newer software, then the display machine will download this newer software and run it. In order to monitor this process, you can run a vncviewer from your workstation to the appropriate IP. Before you do a restart, you should see the FACSUM or WEATHERSTATION GUI. During the reboot your vnc connection to the machine will be broken. Once the machine is restarted, you will need to give it a bit of time (~20-30 seconds) after the selected (or ON) button goes on. Now you can run a vncviewer to see the newly installed GUI.

displayControl.jpg

Some Details...

  1. Each display machine has a MAC address or a text description of the machine, and IP address. The "150" addresses are in the Steward building on campus. The "192" addresses are on the mountain.
  2. In /web/info/displays there are two files of interest: displays.csv and names.csv. The displays.csv associates the MAC address with the IP address. The names.csv associates the MAC address with a description which you can provide. When a new big display is added, the names.csv must be updated manually in order for the information to appear on the browser control interface. The IP addresses in displays.csv are assigned automatically so it is possible they may change on occasion.
  3. The big display machines are not typically set up to dump core. These machines may be unattended for long periods of time, and there is no automatic cleanup being done. The big display in the Software Group Area can and should be used for testing and debugging. As such, a core is a helpful thing. The startup script on this machine can be altered to add "ulimit -c unlimited" which will dump core to /tmp. This should be done judiciously.
  4. Given no appropriate setup, the WEATHERSTATION GUI will be installed on any of the big displays by default.

Hardware installation

The hardware installation is either carried out on an Intel platform, or on a generational Wyse thin-client. Log in with root via the IP address (not the standard root passwords - look for the NUC password in the db). The hardware installation hardly differs between the two types, except that you can kickstart an Intel platform with a CentOS kickstart (display.ks) that automatically carries out the steps as described below. The base OS has to run upstart for the the time being.
  1. Copy display-manager.conf and display.conf into /etc/init on the machine you want to make the display, and assure yourself that no other programs that will start a graphical system are going to run (either by disabling in upstart, or by disabling using normal UNIX conventions).
  2. If you need SSH keys to carry out the installation, build and deploy them as you normally would, but do not include them in the "runtime" tarball as that is a huge security hole.
  3. Reboot the machine. It should register under the displays.php page. Follow the directions above to change its purpose.
-- %USERSIG{MicheleDeLaPena - 2014-12-05}%
Topic revision: r22 - 20 Sep 2018, KelleeSummers
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback