2022-06-02 - set_z0 bank-a-only modification

  • Software: Brandon
  • AO: Juan Carlos
  • Scripts used: AOeng@sxadsec:~/scripts/tests/bm.20220602.set-z0-bank-a/run-ncpa.py
  • Software versions used:
    • sxadsec: test.20220602.setz0-bank-a
    • soul-sxwfs: stable
  • Software version after test:
    • sxadsec: stable
    • soul-sxwfs: stable


This test follows up from the previous set_z0 test. We were unable to reproduce a switch BCU timeout writing to both banks A and B, but it was determined in the AO software meeting that it's unnecessary to write NCPA offsets to both banks, which takes additional bandwidth. That SOUL only uses Bank A was originally mentioned by Alfio here. The bank swapping is only used by LINC-NIRVANA, which does not apply NCPA offsets. This change updates the set_z0 IDL function to take an optional BANK argument, which can be 0 (both banks), 1 (bank A), or 2 (bank B), similar to fsm_set_gain. The asm.set_z0 Python command, which calls the IDL function, is also updated to call set_z0 using Bank A (BANK=1).

Code changed

Github pull request #126 shows the files changed, as described above.

Test: run run-ncpa.py test script and verify that NCPA offsets are applied visually and with get_z0.

The test plan steps and results are available in a Google sheet. The purpose of the test is to repeat the steps previously used to test the set_z0 function to test Switch BCU communication problems, but using the software update that makes set_z0 write to Bank A only. It will also test that the asm.set_z0 command works as expected (that /LUCI and /ZERNIKE arguments are sent correctly).

The test will be successful if the get_z0 IDL command returns the values set with set_z0 and if we can verify that the NCPA corrections are applied by looking at the WFS camera.

If the test is successful, the code will be merged into the ao-supervisor SOUL-devel branch and will be deployed in a future engineering night.

Results (see Google sheet)

  • The test was successful, in that we were able to set NCPA offsets by having the set_z0 function write only to Bank A, and the additional changes to asm.py to support the change and default to Bank A worked.
  • Brandon will include the Bank A-only modification in the "latest" version to be tested during a DEC night.

We did encounter some more errors, which are recorded in the Google sheet above, including:
  • RTDB variables cannot be addressed using the @ syntax (e.g. "ADSEC.L.M2C@M_ADSEC" as opposed to "ADSEC.L.M2C") if the server being referenced is the same as the server that is trying to access the variable, so we needed to run the test script from soul-sxwfs, since asm.py attempts to set the KL argument of set_z0 by first getting the current M2C path from RTDB. Brandon will make a Github issue for this.
  • Additionally we noticed that the new kill -9 changes to ao_stop.py fail to kill the IDL process, since it is run by the zabbix user. Maybe we can remove IDL from the list of processes to be stopped.
  • We also noticed that several "defunct" processes still gave warnings that they cannot be shut down on adsc_stop.
  • We also had a problem where we forgot to run enable_rr_mode.sh after restarting the adsec msgdrtdb server, but WfsControl GUI was still open and didn't reflect that AOARB.L.RR_ENABLED was turned off (the variable no longer existed). Brandon will make a Github issue for this.
-- BrandonMechtley - 14 Apr 2022
Topic revision: r3 - 02 Jun 2022, 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