- Requirements
- Schedule
Ignore Logic
New States
- Truth table is an ignoring table
- Truth table is ignoring state = MPSTruthTableIgnoreIgnoring = 201 = -55
- Truth table is not ignoring state = MPSTruthTableIgnoreNotIgnoring = 200 = -56
- Truth table has an invalid state
- state = MPSTruthTableStateInvalid = 203 = -53
- Truth table is not ignored
- state = truth table's state
- Truth table is ignored
- state = 0x80 | (truth table's state)
Therefore, if the truth table's state is not 200, 201, or 203 (-56, -55, -53) the truth table's state is 0x7F & (truth table state) and whether or not it is ignored is 0x80 & (truth table state).
- If the truth table's state can't be found in the Logic DB, make an alert panel that shows the truth table's name, the raw state value from the IOC:BSY0:MP01:TTBLST array, and a message saying "Send the above information to the controls group."
- Documentation
- Highlight new truth table state when selected
Mockup
======================================= Ignore Logic =========================================== ------------------------------------------------------------------------------------------------ Logic History |=========================< slider >============================================| [] Show Live ------------------------------------------------------------------------------------------------ Ignore Logic Ignored Truth Tables Sort 2 Sort 0 Sort 1 | Sort 1 Sort 0 ============== =========== ======== | ================================ ================= Ignore Logic Is Ignoring Min Rate | Truth Table Min Rate ============== =========== ======== | ================================ ================= TD11 Is In Yes 0 Hz | BFW 1910 Position 0 Hz TDUND Is In No 10 Hz | BCS LION753 Threshold 0 Hz YG BL211 Is In No 60 Hz | BLM Pedestal Thresholds: UND 920 0 Hz ============== =========== ======== | Temperature: North Arc Summary 0 Hz | VVPG LI22 Position 0 Hz | YAG IN20 211 Position 10 Hz | PIC HVPS B912 10 Hz | PIC HVPS B913 120 Hz | ================================ ================= | --------------------------------------+------------------------------------------------------ Name: YAG IN20 211 Position Ignored When: TD11 Is In, or YG BL211 Is In, or ... Current State: Out Solution: -- Contacts: -- ====== = = ==================== ==================== ==================== ==================== Name B A Pockels Cell Mechanical Shutter BYKIK Laser Heater Shutter ====== = = ==================== ==================== ==================== ==================== Moving F F 0 Hz 0 Hz 0 Hz -- [Bypass to state] Out F T 120 Hz 120 Hz 120 Hz -- [Bypass to state] -> window shows PVs and asks for bypass time In T F 10 Hz 10 Hz 10 Hz -- [Bypass to state] Broken T T 0 Hz 0 Hz 0 Hz -- [Bypass to state] ====== = = ==================== ==================== ==================== ==================== Where:: Note to sergei: Device name_Fault name from config db A = (YG_BL211_OUT_LIMIT)_(STATE) as PV Name B = (YG_BL211_IN_LIMIT)_(STATE) as PV Name ------------------------------------------------------------------------------------------------ Summary / Faults / Logic / Ignore Logic / History /
Test on lcls-dev2
mpsgui \ jdbc:sqlite:/afs/slac.stanford.edu/u/xr/snorum/ioc/mpsConfiguration/database/ \ jdbc:sqlite:/afs/slac.stanford.edu/u/xr/snorum/ioc/mpsConfiguration/algorithm/ \ jdbc:oracle:thin:MPS_HISTORY/Neutrin0!@slac-oracle02.slac.stanford.edu:1521:SLACDEV \ &
- Ignore/unignore truth tables by writing 0 or 1 to YAGS:IN20:211:IN_LMTSW_BYPV
caput YAGS:IN20:211:IN_LMTSW_BYPV 1 to ignore caput YAGS:IN20:211:IN_LMTSW_BYPV 0 to unignore
- Default solution etc. is "--"
Faults
- Remove the 2nd splitpane (Area/PV); have either 2 or 3 panes visible
Logic
- Add rate to ignored states
- Say "Ignored/State" for ignore states
Bypass Dialog
- Change on both, Faults and Ignore Logic tabs
- Allow to select any state
- Let's drop the calendar view and simplify the interface.
- Default to 0 for all duration values
- If bypass time is 0, don't send any messages to MPS
- Show truth table name in the window's title bar
- Read-only values in table
- Allow tabbing between duration values
- Tab order: days -> hours -> minutes -> seconds -> days
- Initialize window with days field selected
- Add bypass messages to cmlog (hostname, time)
Mockup
Interactive View
- Use progress bar instead of spinning wheel (misinterpreted as "can't do anything")
- Figure out why loading is slow (if database a problem, do partial loading)
Schedule
- Ignore Logic, Bypass Dialog (4 man-weeks)
- Faults, Logic, Interactive View (6 man-days)
- Mps logic Editor Removal Bug (2-3 man-days)