2022-12-09: adsec/wfs: misc. updates

  • Software versions used:
    • any adsec machine: test.20221209.misc (or test.20221209.misc-and-hk if also testing Housekeeper changes)
    • any wfs machine: test.20221209.misc
  • Software versions after test:
    • sxadsec, soul-sxwfs, soul-dxwfs, lbti-sxwfs, lbti-dxwfs: stable, updated with all successfully tested changes.
  • SW: Brandon

Changes

There are a few minor pending bug fixes that should be released, along with some code from Fabio that has already been tested and a WfsControl GUI warning popup. These can be tested during daytime or during an engineering night, as we just need to do a closed loop test, watch some logs, run a test Python AOIce script, and make sure there are no new problems (see the test checklist below).

# subsystem(s) pull request link description / reason for upgrade
1 adsec + wfs thAOApp.py: clean up msgd connection when interpreter exits

Makes thAOApp.py AO Python apps disconnect from MsgD before terminating. Prevents error messages from showing up in M_*.log logs related to the connection closing in an app.

Tested in VM. Test steps in daytime test checklist below.

2 adsec + wfs AOApp: get default LogLevel from config file in constructor with command line arguments

None of the C++ AOApps currently support debug or trace-level logging, because there is a bug where if an app is started with command line arguments (e.g. -i), it only loads the log level from the command line or defaults to INF, even though it claims to have more verbose logging in the logs when loading the config file. This will make it easier to debug a lot of problems, as we can use trace-level logging.

Tested in VM. Test steps in daytime test checklist below.

3 adsec + wfs AOIce.py: fall back on alternative config files for host/ports and default ports

Currently custom AO Python scripts can only send Ice commands to the arbitrator running on the local machine, so you can't send the WFS arbitrator messages from the AdSec machine or vice versa. This fixes the problem by giving default ports for the Ice servers in AOIce.py.

Tested in VM. Test steps and script in daytime test checklist below.

4 wfs (FR) December2022 run, changes tested on the relevant systems.

(FR) Aligning LUCI DX WFS Power On and Power Off sequences to SX side. Tested in daytime on 07/12/2022, ready to be deployed
(FR) Small change to the process talking with the Power Board (not relevant for LBTI) to unifify the code, still different temperatures are checked depending on the SIDE. Tested on both sides on 07/12/2022, ready to deploy
(FR) Change in TT modulation application to have unified code for DX and SX. Tested in daytime 07/12/2022, on both LUCI DX (which has 2nd and 3rd modulation axis inverted) and LUCI SX (regular order, same as LBTI SX and DX)

Tested during daytime and ready to be deployed, so no additional testing should be necessary. Any problems would show up during power on.

5 wfs (wfs) WfsControl: when clicking the "Operate" button, warn if the camera lens temperature is below a threshold.

WfsControl GUI will now give a warning popup if the camera lens temperature is below the threshold defined in wfsarb.conf before powering on after clicking the "Operate" button.

Test steps in daytime test checklist below.

Tests

  1. We stopped testing on 2022-12-09 after noticing that the idl_ctrl logs weren't updating. This was because idlctrl was configure with "LogLevel WAR," so the fix made it stop logging INF-level log entries. Here's the test checklist: https://docs.google.com/spreadsheets/d/1xVU5PVJbWpJett06qlR6A6wb1JMtgzj-myeq8NJ1sPQ/edit#gid=0
  2. For Friday, 2022-12-30, I updated the list of configuration files that need to be changed to have "LogLevel INF" to include those loaded by processes that use the AOApp(argc, argv) constructor and also have LogLevel < INF. We can test the patch again. The new test checklist is here: https://docs.google.com/spreadsheets/d/1Qr0ncP1yO2hFxMpiXXO1SKz5NDHGu-x9zu30XyNFEZU/edit?usp=share_link
All of the tests can be done while switching software versions and starting and stopping the processes on an AdSec machine and a WFS machine. The checklist includes closing the loop and making sure there are no new problems, so the test version can be used for any other AO tasks.

Necessary config file changes:

For #2, there are many "AOApp" C++ processes that are configured with LogLevel not equal to "INF" and will need to be changed to "LogLevel INF" if we want the same level of verbosity when we fix the bug.

The test directories have deep copies of the $ADOPT_ROOT/conf folder where all the necessary changes have been made. When I update the stable version, I'll need to make the changes to these configuration files in ~/soul/confcalib/current/conf.
server directory files
grep -rn "^LogLevel" | egrep -v "#|INF|lnIFserver|\.old|adsecmirrorgui|fiberswitch|hexapod\.conf|housekeeper_?gui|idlterm|auto(center|focus)|imq|popt|intmatAllGui|backup|auxloops|flowerpot|\.conf[A-Za-z0-9\.~]" | sort | cut -d ':' -f 1 | uniq | paste -sd "," - | sed -e 's/,/, /g' 
sxadsec ~/soul/confcalib/current/conf/adsec/672b/processConf adamhousekeeper.conf, hexapodgui.conf, hexapod_gui.conf, housekeeper.conf, idlctrl.conf, masterdiagnostic.conf, mirrorctrl.conf, mvar_adsec.conf, phasecam4020.conf, phasecam6000.conf
dxadsec ~/soul/confcalib/current/conf/adsec/672a/processConf adamhousekeeper.conf, hexapodgui.conf, housekeeper.conf, idlctrl.conf, masterdiagnostic.conf, mirrorctrl.conf, mvar_adsec.conf, mvar.conf, phasecam6000.conf
soul-sxwfs ~/soul/confcalib/current/conf/wfs/W1SOUL/processConf acquire.conf, adc1.conf, adc2.conf, baysidex.conf, baysidey.conf, baysidez.conf, ccd47.conf, filterwheel1.conf, filterwheel2.conf, imacqgui.conf, intmatanalysegui.conf, intmatdisturbgui.conf, masterdiagnostic.conf, mercury.conf, mirrorctrl.conf, mvar_wfs.conf, ocam2.conf, od_gopt.conf, optloopdiag.conf, optloopdiagngui.conf, optloopdiagn_nuvola.conf, optloopdiagn_test.conf, picctrl.conf, pinger.conf, powerboard.conf, psfOptimizationGui.conf, rerotator.conf, techviewctrl.conf, truesense.conf
soul-dxwfs ~/soul/confcalib/current/conf/wfs/W2SOUL/processConf acquire.conf, adc1.conf, adc2.conf, baysidex.conf, baysidey.conf, baysidez.conf, cameralensctrl.conf, ccd47.conf, dbfiller.conf, filterwheel1.conf, filterwheel2.conf, imacqgui.conf, intmatanalysegui.conf, intmatdisturbgui.conf, masterdiagnostic.conf, mercury.conf, mirrorctrl.conf, mvar_wfs.conf, ocam2.conf, od_gopt.conf, optloopdiag.conf, optloopdiagngui.conf, optloopdiagn_nuvola.conf, optloopdiagn_test.conf, picctrl.conf, pinger.conf, powerboard.conf, psfOptimizationGui.conf, rerotator.conf, slopecompctrl.conf, techviewctrl.conf, truesense.conf, wfscontrol.conf
lbti-sxwfs ~/soul/confcalib/current/conf/wfs/LBTISX/processConf acquire.conf, adc1.conf, adc2.conf, baysidex.conf, baysidey.conf, baysidez.conf, ccd47.conf, filterwheel1.conf, filterwheel2.conf, imacqgui.conf, intmatanalysegui.conf, intmatdisturbgui.conf, masterdiagnostic.conf, mercury.conf, mirrorctrl.conf, mvar_wfs.conf, ocam2.conf, od_gopt.conf, optloopdiag.conf, optloopdiagngui.conf, optloopdiagn_nuvola.conf, optloopdiagn_test.conf, picctrl.conf, pinger.conf, powerboard.conf, psfOptimizationGui.conf, rerotator.conf, slopecompctrl.conf, techviewctrl.conf, truesense.conf, ttctrl.conf, wfscontrol.conf
lbti-dxwfs ~/soul/confcalib/current/conf/wfs/LBTIDX/processConf acquire.conf, adc1.conf, adc2.conf, baysidex.conf, baysidey.conf, baysidez.conf, ccd47.conf, filterwheel1.conf, filterwheel2.conf, imacqgui.conf, intmatanalysegui.conf, intmatdisturbgui.conf, masterdiagnostic.conf, mercury.conf, mirrorctrl.conf, mvar_wfs.conf, ocam2.conf, od_gopt.conf, optloopdiag.conf, optloopdiagngui.conf, optloopdiagn_nuvola.conf, optloopdiagn_test.conf, picctrl.conf, pinger.conf, powerboard.conf, psfOptimizationGui.conf, rerotator.conf, techviewctrl.conf, truesense.conf, ttctrl.conf, wfscontrol.conf
-- BrandonMechtley - 07 Dec 2022
Topic revision: r1 - 26 Jan 2023, BrandonMechtley
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