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(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(INP, "$(PREFIX):$(SPS_REGISTER_NAME):MAP-STATUS NPP") field(ZRVL, "0") field(ZRST, "Closed") field(ONVL, "1") field(ONST, "Open") field(TWVL, "2") field(TWST, "Error") # Should never happen field(THVL, "3") field(THST, "Invalid") field(FLNK, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS-Msg PP") } record(scalcout, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS-Msg") { field(DESC, "Status Message") 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(INAA, "$(PREFIX):$(SPS_REGISTER_NAME):OPEN-Msg NPP") field(INBB, "$(PREFIX):$(SPS_REGISTER_NAME):REMOTE-Msg NPP") field(INCC, "$(PREFIX):$(SPS_REGISTER_NAME):SHUTTER-READY-Msg NPP") field(INDD, "$(PREFIX):$(SPS_REGISTER_NAME):EMERGENCY-STOP-Msg NPP") 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') }