diff --git a/db/readbit.db b/db/readbit.db index de7a2b2..12a4f7a 100644 --- a/db/readbit.db +++ b/db/readbit.db @@ -5,6 +5,6 @@ record(bi,"$(PREFIX):$(SPS_REGISTER_NAME):$(BIT_NAME)") field(INP, "@$(SPS_REGISTER_NAME)/$(OFFSET) T=BYTE B=$(BIT)") field(PINI, "YES") field(SCAN, "I/O Intr") - field(ZNAM, "0") - field(ONAM, "1") + field(ZNAM, "$(ONAM=0)") + field(ONAM, "$(ZNAM=1)") } diff --git a/db/shutter.db b/db/shutter.db index e904984..e945c80 100644 --- a/db/shutter.db +++ b/db/shutter.db @@ -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") { field(DESC, "Maps Status Variables to singular status") - field(INPA, "$(PREFIX):$(SPS_REGISTER_NAME):OPEN NPP") - field(INPC, "$(PREFIX):$(SPS_REGISTER_NAME):SHUTTER-READY NPP") - field(INPD, "$(PREFIX):$(SPS_REGISTER_NAME):NOT-LOCKED NPP") - field(INPE, "$(PREFIX):$(SPS_REGISTER_NAME):REMOTE-OKAY NPP") - field(INPF, "$(PREFIX):$(SPS_REGISTER_NAME):PSYS-OK NPP") - field(INPG, "$(PREFIX):$(SPS_REGISTER_NAME):EMERGENCY-STOP-OFF NPP") - field(CALC, "(C=0||D=0||E=0||F=0||G=0)?2:A=1") + field(INPA, "$(PREFIX):$(SPS_REGISTER_NAME):SHUTTER-READY NPP") + field(INPB, "$(PREFIX):$(SPS_REGISTER_NAME):NOT-LOCKED NPP") + field(INPC, "$(PREFIX):$(SPS_REGISTER_NAME):REMOTE-OKAY NPP") + field(INPD, "$(PREFIX):$(SPS_REGISTER_NAME):PSYS-OK NPP") + field(INPE, "$(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(SCAN, ".1 second") field(FLNK, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS PP") } 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(ZRVL, "0") - field(ZRST, "Closed") + field(ZRST, "Okay") field(ONVL, "1") - field(ONST, "Open") + field(ONST, "Warning") field(TWVL, "2") field(TWST, "Error") - # Should never happen field(THVL, "3") - field(THST, "Invalid") + field(THST, "Unknown") 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(INFF, "$(PREFIX):$(SPS_REGISTER_NAME):BLOCKED-REASON-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') } diff --git a/templates/shutter.substitutions b/templates/shutter.substitutions index 12f7714..7b81d20 100644 --- a/templates/shutter.substitutions +++ b/templates/shutter.substitutions @@ -9,14 +9,14 @@ file "$(sinqSPS_DB)/writebit.db" file "$(sinqSPS_DB)/readbit.db" { pattern - {OFFSET, BIT, BIT_NAME , DESC} - {1 , 0 , "PSYS-OK" , "" } - {1 , 1 , "SHUTTER-READY" , "" } - {1 , 2 , "EMERGENCY-STOP-OFF", "" } - {1 , 3 , "NOT-LOCKED" , "" } - {1 , 4 , "CLOSED" , "" } - {1 , 5 , "OPEN" , "" } - {1 , 6 , "REMOTE-OKAY" , "" } + {OFFSET, BIT, BIT_NAME , ZNAM , ONAM , DESC} + {1 , 0 , "PSYS-OK" , "" , "" , "" } + {1 , 1 , "SHUTTER-READY" , "" , "" , "" } + {1 , 2 , "EMERGENCY-STOP-OFF", "" , "" , "" } + {1 , 3 , "NOT-LOCKED" , "" , "" , "" } + {1 , 4 , "CLOSED" , "Closed" , "Open" , "" } + {1 , 5 , "OPEN" , "Open" , "Closed" , "" } + {1 , 6 , "REMOTE-OKAY" , "" , "" , "" } } # The way that the strings are currently implemented in the SPS, the first two