Experimental Physics and
| |||||||||||||||
|
I have a problem
propagating error states in my database. I have two mbbo records controlled
through two edm buttons. These records when processed forward link to a calc
record which calculates a value based on the two mbbo records which is then sent
via streams and RS232 to a current amplifier (see db below). This all works fine
until I get an RS232 communications error. Streams correctly detects the comms
error and puts the longout record into error state (STAT TIMEOUT, SEVR INVALID).
What I need to do is propagate this error state back to the mbbo records so that
it is visible on the edm screen. Adding maximise severity to the existing links
wont work because of the direction of the forward links. Clearly I can add stuff
to the edm screen to display the error state of the longout record but this wont
help with other client applications we have which talk directly to the mbbo
PV's. I really want the mbbo records to reflect the error state of the
longout record. Is there any way this can be achieved?
I tried linking the
SDIS from the mbbo to the longout record with maximise severity
set. This did make the mbbo reflect the longout's error state but only
after being processed a second time so is far from
ideal.
Any ideas
anyone?
Pete
Leicester
Diamond Light
Source
Tel: 01235
778478 record(longout, "$(P)$(Q):SENS") { field(DESC, "Sensitivity") field(DTYP, "stream") field(OUT, "@sr570.proto sens_set $(PORT)") field(SCAN, "Passive") field(DRVH, "27") field(DRVL, "0") } record(calcout, "$(P)$(Q):SENS:CALC") {
field(INPA, "$(P)$(Q):SENS:SEL1.VAL") field(INPB, "$(P)$(Q):SENS:SEL2.VAL") field(CALC, "B<3?(A+B*9):27") field(OUT, "$(P)$(Q):SENS PP") } record(mbbo, "$(P)$(Q):SENS:SEL2") {
field(DESC, "Unit") field(DTYP, "Raw Soft Channel") field(SCAN, "Passive") field(NOBT, "2") field(ZRVL, "0") field(ONVL, "1") field(TWVL, "2") field(ZRST, "pA/V") field(ONST, "nA/V") field(TWST, "uA/V") field(FLNK, "$(P)$(Q):SENS:CALC") field(THVL, "3") field(THST, "mA/V") field(DISV, "") } record(mbbo, "$(P)$(Q):SENS:SEL1") {
field(DESC, "Sensitivity") field(DTYP, "Raw Soft Channel") field(SCAN, "Passive") field(NOBT, "4") field(ZRVL, "0") field(ONVL, "1") field(TWVL, "2") field(THVL, "3") field(FRVL, "4") field(FVVL, "5") field(SXVL, "6") field(SVVL, "7") field(EIVL, "8") field(ZRST, "1") field(ONST, "2") field(TWST, "5") field(THST, "10") field(FRST, "20") field(FVST, "50") field(SXST, "100") field(SVST, "200") field(EIST, "500") field(FLNK, "$(P)$(Q):SENS:CALC") field(DISV, "") } This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
| ||||||||||||||
ANJ, 31 Jan 2014 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |