83 lines
3.1 KiB
Plaintext
83 lines
3.1 KiB
Plaintext
record(bo, "$(INSTR)$(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, "$(INSTR)$(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 "$(INSTR)$(SPS_REGISTER_NAME):SHUTTER", maps the binay 0/1
|
|
# to writing a 1 to the required register.
|
|
record(seq, "$(INSTR)$(SPS_REGISTER_NAME):SHUTTER-CONTROL")
|
|
{
|
|
field(SELM, "Specified")
|
|
field(SELL, "$(INSTR)$(SPS_REGISTER_NAME):SHUTTER.VAL NPP")
|
|
field(DO0, 1)
|
|
field(DO1, 1)
|
|
field(LNK0, "$(INSTR)$(SPS_REGISTER_NAME):CLOSE-SHUTTER PP")
|
|
field(LNK1, "$(INSTR)$(SPS_REGISTER_NAME):OPEN-SHUTTER PP")
|
|
}
|
|
|
|
record(calc, "$(INSTR)$(SPS_REGISTER_NAME):MAP-STATUS")
|
|
{
|
|
field(DESC, "Maps Status Variables to singular status")
|
|
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):SHUTTER-READY NPP")
|
|
field(INPB, "$(INSTR)$(SPS_REGISTER_NAME):NOT-LOCKED NPP")
|
|
field(INPC, "$(INSTR)$(SPS_REGISTER_NAME):REMOTE-OKAY NPP")
|
|
field(INPD, "$(INSTR)$(SPS_REGISTER_NAME):PSYS-OK NPP")
|
|
field(INPE, "$(INSTR)$(SPS_REGISTER_NAME):EMERGENCY-STOP-OFF NPP")
|
|
field(INPF, "$(INSTR)$(SPS_REGISTER_NAME):MOVES NPP")
|
|
field(CALC, "(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):STATUS PP")
|
|
}
|
|
|
|
record(mbbi, "$(INSTR)$(SPS_REGISTER_NAME):STATUS")
|
|
{
|
|
field(DESC, "Status of Shutter")
|
|
field(INP, "$(INSTR)$(SPS_REGISTER_NAME):MAP-STATUS NPP")
|
|
field(ZRVL, "0")
|
|
field(ZRST, "Okay")
|
|
field(ONVL, "1")
|
|
field(ONST, "Busy")
|
|
field(TWVL, "2")
|
|
field(TWST, "Warning")
|
|
field(THVL, "3")
|
|
field(THST, "Error")
|
|
field(FRST, "4")
|
|
field(FRST, "Unknown")
|
|
field(FLNK, "$(INSTR)$(SPS_REGISTER_NAME):STATUS-Msg PP")
|
|
}
|
|
|
|
record(stringout, "$(INSTR)$(SPS_REGISTER_NAME):MOTION-Msg")
|
|
{
|
|
field(DESC, "Shutter opening/closing message")
|
|
field(VAL, "Shutter in motion")
|
|
}
|
|
|
|
record(scalcout, "$(INSTR)$(SPS_REGISTER_NAME):STATUS-Msg")
|
|
{
|
|
field(DESC, "Status Message")
|
|
field(INPA, "$(INSTR)$(SPS_REGISTER_NAME):OPEN NPP")
|
|
field(INPC, "$(INSTR)$(SPS_REGISTER_NAME):SHUTTER-READY NPP")
|
|
field(INPD, "$(INSTR)$(SPS_REGISTER_NAME):NOT-LOCKED NPP")
|
|
field(INPE, "$(INSTR)$(SPS_REGISTER_NAME):REMOTE-OKAY NPP")
|
|
field(INPF, "$(INSTR)$(SPS_REGISTER_NAME):PSYS-OK NPP")
|
|
field(INPG, "$(INSTR)$(SPS_REGISTER_NAME):EMERGENCY-STOP-OFF NPP")
|
|
field(INPH, "$(INSTR)$(SPS_REGISTER_NAME):MOVES NPP")
|
|
field(INAA, "$(INSTR)$(SPS_REGISTER_NAME):OPEN-Msg NPP")
|
|
field(INBB, "$(INSTR)$(SPS_REGISTER_NAME):REMOTE-Msg NPP")
|
|
field(INCC, "$(INSTR)$(SPS_REGISTER_NAME):SHUTTER-READY-Msg NPP")
|
|
field(INDD, "$(INSTR)$(SPS_REGISTER_NAME):EMERGENCY-STOP-Msg NPP")
|
|
field(INEE, "$(INSTR)$(SPS_REGISTER_NAME):BLOCKED-Msg NPP")
|
|
field(INFF, "$(INSTR)$(SPS_REGISTER_NAME):BLOCKED-REASON-Msg NPP")
|
|
field(INGG, "$(INSTR)$(SPS_REGISTER_NAME):PSYS-OK-Msg NPP")
|
|
field(INHH, "$(INSTR)$(SPS_REGISTER_NAME):MOTION-Msg NPP")
|
|
field(CALC, 'H=1?HH:G=0?DD:D=0?(EE+": "+FF):F=0?GG:C=0?CC:E=0?BB:AA')
|
|
}
|