diff --git a/db/shutter.db b/db/shutter.db index 6a44e79..66aa230 100644 --- a/db/shutter.db +++ b/db/shutter.db @@ -6,9 +6,41 @@ record(bo, "$(INSTR)$(SPS_REGISTER_NAME):SHUTTER") field(VAL, 0) field(ZNAM, "Closed") field(ONAM, "Open") + field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):SET-BUSY PP") +} + +record(bo, "$(INSTR)$(SPS_REGISTER_NAME):RESET") +{ + field(DESC, "PV For Resetting internal state") + field(VAL, 0) + field(OUT, "$(INSTR)$(NAME):BUSY PP") +} + +record(bo, "$(INSTR)$(SPS_REGISTER_NAME):SET-BUSY") +{ + field(DESC, "Trigger Internal Busy Status") + field(VAL, 1) + field(OUT, "$(INSTR)$(NAME):BUSY PP") field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):CLEAR-CONTROL PP") } +record(seq, "$(INSTR)$(NAME):SET-READY") +{ + field(DESC, "Trigger Returned to Ready Status") + field(LNK1, "$(INSTR)$(NAME):BUSY PP") + field(DO1, 0) + field(SELM, "Specified") + field(SELL, "$(INSTR)$(NAME):SHUTTER-STATUS.VAL") +} + +record(bi, "$(INSTR)$(SPS_REGISTER_NAME):BUSY") +{ + field(DESC, "Internal Busy State") + field(VAL, 0) + field(ZNAM, "Ready") + field(ONAM, "Busy") +} + # 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 and make sure # that the other bit is set back to 0. These two records, in combination with @@ -33,7 +65,7 @@ record(seq, "$(INSTR)$(SPS_REGISTER_NAME):SHUTTER-CONTROL") field(LNK1, "$(INSTR)$(SPS_REGISTER_NAME):OPEN-SHUTTER PP") } -record(calc, "$(INSTR)$(SPS_REGISTER_NAME):MAP-STATUS") +record(calc, "$(INSTR)$(SPS_REGISTER_NAME):SHUTTER-STATUS") { field(DESC, "Maps Status Variables to singular status") field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):SHUTTER-READY NPP") @@ -46,13 +78,22 @@ record(calc, "$(INSTR)$(SPS_REGISTER_NAME):MAP-STATUS") field(INPH, "$(INSTR)$(SPS_REGISTER_NAME):ConnStatusWrite NPP") field(CALC, "(G=0||H=0||E=0||B=0)?3:(A=0||D=0)?2:F=1?1:C=0?3:0") field(SCAN, ".1 second") + field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):INTERNAL-STATUS PP") +} + +record(calc, "$(INSTR)$(SPS_REGISTER_NAME):INTERNAL-STATUS") +{ + field(DESC, "Maps Status Variables to singular status") + field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):SHUTTER-STATUS NPP") + field(INPB, "$(INSTR)$(SPS_REGISTER_NAME):BUSY NPP") + field(CALC, "( A=0 && B=1 )?1:A") field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):STATUS PP") } record(mbbi, "$(INSTR)$(SPS_REGISTER_NAME):STATUS") { field(DESC, "Status of Shutter") - field(INP, "$(INSTR)$(SPS_REGISTER_NAME):MAP-STATUS NPP") + field(INP, "$(INSTR)$(SPS_REGISTER_NAME):INTERNAL-STATUS NPP") field(ZRVL, "0") field(ZRST, "Okay") field(ONVL, "1")