From: Lehman, Emma M (N-INTRINSYX TECHNOLOGIES CORPORATION)
Sent: Wednesday, July 27, 2011 9:01 AM
To: Paul Boerner; wolfson@lmsal.com
Cc: 'Zoe Frank'; Allard, Brett A
Subject: STOL issue on SDOIOC-SPR
For the record:
We (Paul, Jake, Emma) ran into a problem on SDOIOC-SPR while trying to use the sdo_oh_control
STOL to command AIA yesterday. The problem was caused by the way the STOL determined which instrument
we were commanding: it checked whether HMI or AIA telemetry was coming through, rather than what the
global $GS_SDO (which is either AIA or HMI) was set to. This caused a problem because SDOIOC-SPR
receives telemetry from both instruments, so whichever instrument it checked first would return a
positive result (current telemetry). In our case, this meant the STOL thought it was commanding HMI
rather than AIA. I think we did not run into this problem before because we usually stick to
commanding on HMI to test out the SPR machine, and the STOLs that use this method check HMI first,
see that the telemetry is current, and if so do not go on to check AIA, so the problem only occurs
if you want to command AIA.
I found and fixed a handful of other STOLs with the same problem:
- Sdo_dir
- Sdo_dir_dump_test
- Sdo_dir_menu
- Sdo_oh_cmd_for _scripts
- Sdo_script_config
In addition to the ones Paul and I fixed:
- Sdo_oh_control
- Sdo_oh_control_menu
- Sdo_oh_construct tlm
It is still possible that there are other STOLs that do the same thing, but that I missed in my
search because they use different syntax or check different telemetry packets. So, in case anyone
runs into this again, the fix is below.
Thanks,
Emma
FIX:
The issue can be fixed by replacing the following code (usually at the beginning of the STOL):
#Determine which instrument: AIA or HMI
IF ( isStale(0x05) == 0 ) THEN
set $ls_prefix = “HMI_”
ELSE
IF ( isStale(0x25) == 0 ) THEN
set $ls_prefix = “AIA_”
END IF
END IF
With
Set $ls_prefix = CONCAT($GS_SDO, “_”)
Note that there are a couple variations of this check, but it should be obvious what the
differences are and if you need to leave out the underscore, etc.