adds priority for error messages shown to user and adds error status

This commit is contained in:
2025-03-28 11:19:27 +01:00
parent c6dd421768
commit 6bdec5783f
3 changed files with 49 additions and 23 deletions

View File

@ -5,6 +5,6 @@ record(bi,"$(PREFIX):$(SPS_REGISTER_NAME):$(BIT_NAME)")
field(INP, "@$(SPS_REGISTER_NAME)/$(OFFSET) T=BYTE B=$(BIT)") field(INP, "@$(SPS_REGISTER_NAME)/$(OFFSET) T=BYTE B=$(BIT)")
field(PINI, "YES") field(PINI, "YES")
field(SCAN, "I/O Intr") field(SCAN, "I/O Intr")
field(ZNAM, "0") field(ZNAM, "$(ONAM=0)")
field(ONAM, "1") field(ONAM, "$(ZNAM=1)")
} }

View File

@ -1,30 +1,53 @@
record(bo, "$(PREFIX):$(SPS_REGISTER_NAME):SHUTTER")
{
field(DESC, "Open or close the shutter")
field(DTYP, "Soft Channel")
field(OMSL, "supervisory")
field(VAL, 0)
field(ZNAM, "Closed")
field(ONAM, "Open")
field(FLNK, "$(PREFIX):$(SPS_REGISTER_NAME):SHUTTER-CONTROL PP")
}
# The Exposed SPS Interface has an open register and a close register. You need
# to write 1 to the corresponding register to perform said action. This, in
# combination with "$(PREFIX):$(SPS_REGISTER_NAME):SHUTTER", maps the binay 0/1
# to writing a 1 to the required register.
record(seq, "$(PREFIX):$(SPS_REGISTER_NAME):SHUTTER-CONTROL")
{
field(SELM, "Specified")
field(SELL, "$(PREFIX):$(SPS_REGISTER_NAME):SHUTTER.VAL NPP")
field(DO0, 1)
field(DO1, 1)
field(LNK0, "$(PREFIX):$(SPS_REGISTER_NAME):CLOSE-SHUTTER PP")
field(LNK1, "$(PREFIX):$(SPS_REGISTER_NAME):OPEN-SHUTTER PP")
}
record(calc, "$(PREFIX):$(SPS_REGISTER_NAME):MAP-STATUS") record(calc, "$(PREFIX):$(SPS_REGISTER_NAME):MAP-STATUS")
{ {
field(DESC, "Maps Status Variables to singular status") field(DESC, "Maps Status Variables to singular status")
field(INPA, "$(PREFIX):$(SPS_REGISTER_NAME):OPEN NPP") field(INPA, "$(PREFIX):$(SPS_REGISTER_NAME):SHUTTER-READY NPP")
field(INPC, "$(PREFIX):$(SPS_REGISTER_NAME):SHUTTER-READY NPP") field(INPB, "$(PREFIX):$(SPS_REGISTER_NAME):NOT-LOCKED NPP")
field(INPD, "$(PREFIX):$(SPS_REGISTER_NAME):NOT-LOCKED NPP") field(INPC, "$(PREFIX):$(SPS_REGISTER_NAME):REMOTE-OKAY NPP")
field(INPE, "$(PREFIX):$(SPS_REGISTER_NAME):REMOTE-OKAY NPP") field(INPD, "$(PREFIX):$(SPS_REGISTER_NAME):PSYS-OK NPP")
field(INPF, "$(PREFIX):$(SPS_REGISTER_NAME):PSYS-OK NPP") field(INPE, "$(PREFIX):$(SPS_REGISTER_NAME):EMERGENCY-STOP-OFF NPP")
field(INPG, "$(PREFIX):$(SPS_REGISTER_NAME):EMERGENCY-STOP-OFF NPP") field(CALC, "(E=0||B=0)?2:(A=0||D=0)?1:C=0?2:0")
field(CALC, "(C=0||D=0||E=0||F=0||G=0)?2:A=1")
field(SCAN, ".1 second") field(SCAN, ".1 second")
field(FLNK, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS PP") field(FLNK, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS PP")
} }
record(mbbi, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS") record(mbbi, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS")
{ {
field(DESC, "Simplified Status of Shutter") field(DESC, "Status of Shutter")
field(INP, "$(PREFIX):$(SPS_REGISTER_NAME):MAP-STATUS NPP") field(INP, "$(PREFIX):$(SPS_REGISTER_NAME):MAP-STATUS NPP")
field(ZRVL, "0") field(ZRVL, "0")
field(ZRST, "Closed") field(ZRST, "Okay")
field(ONVL, "1") field(ONVL, "1")
field(ONST, "Open") field(ONST, "Warning")
field(TWVL, "2") field(TWVL, "2")
field(TWST, "Error") field(TWST, "Error")
# Should never happen
field(THVL, "3") field(THVL, "3")
field(THST, "Invalid") field(THST, "Unknown")
field(FLNK, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS-Msg PP") field(FLNK, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS-Msg PP")
} }
@ -44,5 +67,8 @@ record(scalcout, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS-Msg")
field(INEE, "$(PREFIX):$(SPS_REGISTER_NAME):BLOCKED-Msg NPP") field(INEE, "$(PREFIX):$(SPS_REGISTER_NAME):BLOCKED-Msg NPP")
field(INFF, "$(PREFIX):$(SPS_REGISTER_NAME):BLOCKED-REASON-Msg NPP") field(INFF, "$(PREFIX):$(SPS_REGISTER_NAME):BLOCKED-REASON-Msg NPP")
field(INGG, "$(PREFIX):$(SPS_REGISTER_NAME):PSYS-OK-Msg NPP") field(INGG, "$(PREFIX):$(SPS_REGISTER_NAME):PSYS-OK-Msg NPP")
field(CALC, '(C=0||D=0||F=0)?"inv":G=0?DD:E=0?BB:AA') # field(CALC, '(C=0||D=0||F=0)?"inv":G=0?DD:E=0?BB:AA')
# field(CALC, 'E=0?BB:G=0?DD:AA')
# field(CALC, 'G=0?DD:F=0?GG:C=0?CC:(EE[8,10]!="not")?(EE+": "+FF):E=0?BB:AA')
field(CALC, 'G=0?DD:F=0?GG:C=0?CC:D=0?(EE+": "+FF):E=0?BB:AA')
} }

View File

@ -9,14 +9,14 @@ file "$(sinqSPS_DB)/writebit.db"
file "$(sinqSPS_DB)/readbit.db" file "$(sinqSPS_DB)/readbit.db"
{ {
pattern pattern
{OFFSET, BIT, BIT_NAME , DESC} {OFFSET, BIT, BIT_NAME , ZNAM , ONAM , DESC}
{1 , 0 , "PSYS-OK" , "" } {1 , 0 , "PSYS-OK" , "" , "" , "" }
{1 , 1 , "SHUTTER-READY" , "" } {1 , 1 , "SHUTTER-READY" , "" , "" , "" }
{1 , 2 , "EMERGENCY-STOP-OFF", "" } {1 , 2 , "EMERGENCY-STOP-OFF", "" , "" , "" }
{1 , 3 , "NOT-LOCKED" , "" } {1 , 3 , "NOT-LOCKED" , "" , "" , "" }
{1 , 4 , "CLOSED" , "" } {1 , 4 , "CLOSED" , "Closed" , "Open" , "" }
{1 , 5 , "OPEN" , "" } {1 , 5 , "OPEN" , "Open" , "Closed" , "" }
{1 , 6 , "REMOTE-OKAY" , "" } {1 , 6 , "REMOTE-OKAY" , "" , "" , "" }
} }
# The way that the strings are currently implemented in the SPS, the first two # The way that the strings are currently implemented in the SPS, the first two