diff --git a/ne1600App/Db/ne1600.db b/ne1600App/Db/ne1600.db index 6a887c54a40c1427ba6bdf1ea591b85db1f4bf54..e5a8b1b18b4061872e4a1d793d77c5bd7f8a107c 100644 --- a/ne1600App/Db/ne1600.db +++ b/ne1600App/Db/ne1600.db @@ -21,11 +21,11 @@ # ----------------------------------------------------------------------------- record(stringin, $(P):STATUS) { field(DESC, "Pump status char") - field(FLNK, "$(P):STATUS:TRANSLATE:SCALC CP") + field(FLNK, "$(P):STS_S2N_SCALC__ CP") } -record(scalcout, $(P):STATUS:TRANSLATE:SCALC) { - field(DESC, "Select status text") +record(scalcout, $(P):STS_S2N_SCALC__) { + field(DESC, "(int.) String to number") field(INAA, "$(P):STATUS CP") field(BB, "I") field(CC, "W") @@ -35,21 +35,22 @@ record(scalcout, $(P):STATUS:TRANSLATE:SCALC) { field(GG, "U") field(HH, "X") field(CALC, "AA==BB?0:(AA==CC?1:(AA==DD?2:(AA==EE?3:(AA==FF?4:(AA==GG?5:(AA==HH?6:7))))))") - field(OUT, "$(P):STATUS:TRANSLATE:SELECTED CP") + field(OUT, "$(P):STS_N2E_SEL__ CP") } -record(ai, $(P):STATUS:TRANSLATE:SELECTED) { - field(DESC, "Translating status") - field(FLNK, "$(P):STATUS:TEXT:SCALC CP") +record(ai, $(P):STS_N2E_SEL__) { + field(DESC, "(int.) Number to enum") + field(FLNK, "$(P):STS_TXT_SCALC__ CP") } -record(scalcout, $(P):STATUS:TEXT:SCALC) { - field(INPA, "$(P):STATUS:TRANSLATE:SELECTED CP") +record(scalcout, $(P):STS_TXT_SCALC__) { + field(DESC, "(int.) Number to enum") + field(INPA, "$(P):STS_N2E_SEL__ CP") field(CALC, "PRINTF('%d',A)") - field(OUT, "$(P):STATUS:TEXT CP") + field(OUT, "$(P):STATUS_TEXT CP") } -record(mbbi, $(P):STATUS:TEXT) { +record(mbbi, $(P):STATUS_TEXT) { field(DESC, "Pump status string") field(DTYP, "Soft Channel") field(ZRVL, "0") @@ -80,11 +81,11 @@ record(mbbi, $(P):STATUS:TEXT) { # ----------------------------------------------------------------------------- record(stringin, $(P):MESSAGE) { field(DESC, "Message") - field(FLNK, "$(P):MESSAGE:TRANSLATE:SCALC CP") + field(FLNK, "$(P):MSG_S2N_SCALC__ CP") } -record(scalcout, $(P):MESSAGE:TRANSLATE:SCALC) { - field(DESC, "Select status text") +record(scalcout, $(P):MSG_S2N_SCALC__) { + field(DESC, "(int.) String to number") field(INAA, "$(P):MESSAGE CP") field(BB, "?") field(CC, "?NA") @@ -93,21 +94,22 @@ record(scalcout, $(P):MESSAGE:TRANSLATE:SCALC) { field(FF, "?IGN") field(GG, "") field(CALC, "AA==BB?0:(AA==CC?1:(AA==DD?2:(AA==EE?3:(AA==FF?4:(AA==GG?5:6)))))") - field(OUT, "$(P):MESSAGE:TRANSLATE:SELECTED CP") + field(OUT, "$(P):MSG_N2E_SEL__ CP") } -record(ai, $(P):MESSAGE:TRANSLATE:SELECTED) { - field(DESC, "Translating message") - field(FLNK, "$(P):MESSAGE:TEXT:SCALC CP") +record(ai, $(P):MSG_N2E_SEL__) { + field(DESC, "(int.) Number to enum") + field(FLNK, "$(P):MSG_TXT_SCALC__ CP") } -record(scalcout, $(P):MESSAGE:TEXT:SCALC) { - field(INPA, "$(P):MESSAGE:TRANSLATE:SELECTED CP") +record(scalcout, $(P):MSG_TXT_SCALC__) { + field(DESC, "(int.) Number to enum") + field(INPA, "$(P):MSG_N2E_SEL__ CP") field(CALC, "PRINTF('%d',A)") - field(OUT, "$(P):MESSAGE:TEXT CP") + field(OUT, "$(P):MESSAGE_TEXT CP") } -record(mbbi, $(P):MESSAGE:TEXT) { +record(mbbi, $(P):MESSAGE_TEXT) { field(DESC, "Pump error string") field(DTYP, "Soft Channel") field(ZRVL, "0") @@ -126,8 +128,8 @@ record(mbbi, $(P):MESSAGE:TEXT) { field(SXST, "Unknown error") } -record(stringout, $(P):MESSAGE:CLEAR) { - field(DESC, "Message") +record(stringout, $(P):MSG_CLEAR__) { + field(DESC, "(int.) Message clear") field(VAL, "") field(OUT, "$(P):MESSAGE PP") } @@ -152,6 +154,7 @@ record(ai, $(P):RATE) { field(INP, "@ne1600.proto get_rate($(P):STATUS,$(P):RATE_UNITS) $(PORT) $(ADDR)") field(SCAN, "$(SCAN) second") field(PINI, "YES") + field(FLNK, "$(P):DIRECTION") } record(mbbi, $(P):RATE_UNITS) { @@ -176,74 +179,80 @@ record(mbbi, $(P):RATE_UNITS) { record(ao, $(P):SET_RATE) { field(DESC, "Input for pumping rate") field(DTYP, "Soft Channel") - field(FLNK, "$(P):SET_RATE:RESET") + field(FLNK, "$(P):RATE_RST__") } -record(fanout, $(P):SET_RATE:RESET) { - field(LNK1, "$(P):MESSAGE:CLEAR") - field(LNK2, "$(P):SET_RATE:CLEAR_ALARM") +record(fanout, $(P):RATE_RST__) { + field(DESC, "(int.) Rate reset") + field(LNK1, "$(P):MSG_CLEAR__") + field(LNK2, "$(P):RATE_CLR_ALARM__") } -record(calcout, $(P):SET_RATE:CHECK_ALARM) { - field(INPA, "$(P):SET_RATE:OUT:3DIGITS.SEVR") - field(INPB, "$(P):SET_RATE:OUT:2DIGITS.SEVR") - field(INPC, "$(P):SET_RATE:OUT:1DIGIT.SEVR") +record(calcout, $(P):RATE_CHK_ALARM__) { + field(DESC, "(int.) Rate alarm") + field(INPA, "$(P):RATE_SET_3D__.SEVR") + field(INPB, "$(P):RATE_SET_2D__.SEVR") + field(INPC, "$(P):RATE_SET_1D__.SEVR") field(CALC, "((A=3)&&(B=3)&&(C=3))") field(OOPT, "When Non-zero") - field(OUT, "$(P):SET_RATE:SET_ALARM.PROC") + field(OUT, "$(P):RATE_SET_ALARM__.PROC") } -record(ao, $(P):SET_RATE:SET_ALARM) { +record(ao, $(P):RATE_SET_ALARM__) { + field(DESC, "(int.) Rate alarm set") field(VAL, "3") field(OUT, "$(P):SET_RATE.HHSV") } -record(ao, $(P):SET_RATE:CLEAR_ALARM) { +record(ao, $(P):RATE_CLR_ALARM__) { + field(DESC, "(int.) Rate alarm clear") field(VAL, "0") field(OUT, "$(P):SET_RATE.HHSV") } -record(ao, $(P):SET_RATE:OUT:3DIGITS) { - field(DESC, "Set the pumping rate") +record(ao, $(P):RATE_SET_3D__) { + field(DESC, "(int.) Set rate 3 digits") field(DTYP, "stream") field(DOL, "$(P):SET_RATE CP") field(OMSL, "closed_loop") - field(OUT, "@ne1600.proto set_rate_3digits($(P):STATUS,$(P):SET_RATE_UNITS,$(P):MESSAGE) $(PORT) $(ADDR)") - field(FLNK, "$(P):SET_RATE:CHECK:3DIGITS") + field(OUT, "@ne1600.proto set_rate_3decimal_points($(P):STATUS,$(P):SET_RATE_UNITS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):RATE_CHK_3D__") } -record(calcout, $(P):SET_RATE:CHECK:3DIGITS) { - field(INPA, "$(P):SET_RATE:OUT:3DIGITS.SEVR") +record(calcout, $(P):RATE_CHK_3D__) { + field(DESC, "(int.) Set rate 3 digits") + field(INPA, "$(P):RATE_SET_3D__.SEVR") field(CALC, "A#3") field(OOPT, "When Zero") - field(OUT, "$(P):SET_RATE:OUT:2DIGITS.PROC") - field(FLNK, "$(P):MESSAGE:CLEAR") + field(OUT, "$(P):RATE_SET_2D__.PROC") + field(FLNK, "$(P):MSG_CLEAR__") } -record(ao, $(P):SET_RATE:OUT:2DIGITS) { - field(DESC, "Set the pumping rate") +record(ao, $(P):RATE_SET_2D__) { + field(DESC, "(int.) Set rate 2 digits") field(DTYP, "stream") field(DOL, "$(P):SET_RATE") field(OMSL, "closed_loop") - field(OUT, "@ne1600.proto set_rate_2digits($(P):STATUS,$(P):SET_RATE_UNITS,$(P):MESSAGE) $(PORT) $(ADDR)") - field(FLNK, "$(P):SET_RATE:CHECK:2DIGITS") + field(OUT, "@ne1600.proto set_rate_2decimal_points($(P):STATUS,$(P):SET_RATE_UNITS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):RATE_CHK_2D__") } -record(calcout, $(P):SET_RATE:CHECK:2DIGITS) { - field(INPA, "$(P):SET_RATE:OUT:2DIGITS.SEVR") +record(calcout, $(P):RATE_CHK_2D__) { + field(DESC, "(int.) Set rate 2 digits") + field(INPA, "$(P):RATE_SET_2D__.SEVR") field(CALC, "A#3") field(OOPT, "When Zero") - field(OUT, "$(P):SET_RATE:OUT:1DIGIT.PROC") - field(FLNK, "$(P):MESSAGE:CLEAR") + field(OUT, "$(P):RATE_SET_1D__.PROC") + field(FLNK, "$(P):MSG_CLEAR__") } -record(ao, $(P):SET_RATE:OUT:1DIGIT) { - field(DESC, "Set the pumping rate") +record(ao, $(P):RATE_SET_1D__) { + field(DESC, "(int.) Set rate 1 digit") field(DTYP, "stream") field(DOL, "$(P):SET_RATE") field(OMSL, "closed_loop") - field(OUT, "@ne1600.proto set_rate_1digit($(P):STATUS,$(P):SET_RATE_UNITS,$(P):MESSAGE) $(PORT) $(ADDR)") - field(FLNK, "$(P):SET_RATE:CHECK_ALARM") + field(OUT, "@ne1600.proto set_rate_1decimal_point($(P):STATUS,$(P):SET_RATE_UNITS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):RATE_CHK_ALARM__") } record(mbbo, $(P):SET_RATE_UNITS) { @@ -257,13 +266,14 @@ record(mbbo, $(P):SET_RATE_UNITS) { field(THVL, "3") field(THST, "mL / hour") field(UNSV, "MAJOR") - field(FLNK, "$(P):SET_RATE_UNITS:RESET") + field(FLNK, "$(P):RATE_UNITS_RST__") } -record(fanout, $(P):SET_RATE_UNITS:RESET) { - field(LNK1, "$(P):MESSAGE:CLEAR") - field(LNK2, "$(P):SET_RATE:CLEAR_ALARM") - field(LNK3, "$(P):SET_RATE:OUT:3DIGITS") +record(fanout, $(P):RATE_UNITS_RST__) { + field(DESC, "(int.) Rate units reset") + field(LNK1, "$(P):MSG_CLEAR__") + field(LNK2, "$(P):RATE_CLR_ALARM__") + field(LNK3, "$(P):RATE_SET_3D__") } # ----------------------------------------------------------------------------- @@ -282,8 +292,9 @@ record(mbbi, $(P):DIRECTION) { field(THVL, "3") field(THST, "Sticky") field(INP, "@ne1600.proto get_direction($(P):STATUS) $(PORT) $(ADDR)") - field(SCAN, "$(SCAN) second") + field(SCAN, "Passive") field(PINI, "YES") + field(FLNK, "$(P):VOLUME") } record(mbbo, $(P):SET_DIRECTION) { @@ -309,8 +320,9 @@ record(ai, $(P):VOLUME) { field(DESC, "Volume to be pumped") field(DTYP, "stream") field(INP, "@ne1600.proto get_volume($(P):STATUS,$(P):VOLUME_UNITS) $(PORT) $(ADDR)") - field(SCAN, "$(SCAN) second") + field(SCAN, "Passive") field(PINI, "YES") + field(FLNK, "$(P):DIAMETER") } record(mbbi, $(P):VOLUME_UNITS) { @@ -330,74 +342,80 @@ record(mbbi, $(P):VOLUME_UNITS) { record(ao, $(P):SET_VOLUME) { field(DESC, "Input for volume to infuse") field(DTYP, "Soft Channel") - field(FLNK, "$(P):SET_VOLUME:RESET") + field(FLNK, "$(P):VOL_RST__") } -record(fanout, $(P):SET_VOLUME:RESET) { - field(LNK1, "$(P):MESSAGE:CLEAR") - field(LNK2, "$(P):SET_VOLUME:CLEAR_ALARM") +record(fanout, $(P):VOL_RST__) { + field(DESC, "(int.) Volume reset") + field(LNK1, "$(P):MSG_CLEAR__") + field(LNK2, "$(P):VOL_CLR_ALARM__") } -record(calcout, $(P):SET_VOLUME:CHECK_ALARM) { - field(INPA, "$(P):SET_VOLUME:OUT:3DIGITS.SEVR") - field(INPB, "$(P):SET_VOLUME:OUT:2DIGITS.SEVR") - field(INPC, "$(P):SET_VOLUME:OUT:1DIGIT.SEVR") +record(calcout, $(P):VOL_CHK_ALARM__) { + field(DESC, "(int.) Volume alarm") + field(INPA, "$(P):VOL_SET_3D__.SEVR") + field(INPB, "$(P):VOL_SET_2D__.SEVR") + field(INPC, "$(P):VOL_SET_1D__.SEVR") field(CALC, "((A=3)&&(B=3)&&(C=3))") field(OOPT, "When Non-zero") - field(OUT, "$(P):SET_VOLUME:SET_ALARM.PROC") + field(OUT, "$(P):VOL_SET_ALARM__.PROC") } -record(ao, $(P):SET_VOLUME:SET_ALARM) { +record(ao, $(P):VOL_SET_ALARM__) { + field(DESC, "(int.) Volume alarm set") field(VAL, "3") field(OUT, "$(P):SET_VOLUME.HHSV") } -record(ao, $(P):SET_VOLUME:CLEAR_ALARM) { +record(ao, $(P):VOL_CLR_ALARM__) { + field(DESC, "(int.) Volume alarm clear") field(VAL, "0") field(OUT, "$(P):SET_VOLUME.HHSV") } -record(ao, $(P):SET_VOLUME:OUT:3DIGITS) { - field(DESC, "Set the volume of the syringe") +record(ao, $(P):VOL_SET_3D__) { + field(DESC, "(int.) Set vol. 3 digits") field(DTYP, "stream") field(DOL, "$(P):SET_VOLUME CP") field(OMSL, "closed_loop") - field(OUT, "@ne1600.proto set_volume_3digits($(P):STATUS,$(P):SET_VOLUME_UNITS,$(P):MESSAGE) $(PORT) $(ADDR)") - field(FLNK, "$(P):SET_VOLUME:CHECK:3DIGITS") + field(OUT, "@ne1600.proto set_volume_3decimal_points($(P):STATUS,$(P):SET_VOLUME_UNITS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):VOL_CHK_3D__") } -record(calcout, $(P):SET_VOLUME:CHECK:3DIGITS) { - field(INPA, "$(P):SET_VOLUME:OUT:3DIGITS.SEVR") +record(calcout, $(P):VOL_CHK_3D__) { + field(DESC, "(int.) Set vol. 3 digits") + field(INPA, "$(P):VOL_SET_3D__.SEVR") field(CALC, "A#3") field(OOPT, "When Zero") - field(OUT, "$(P):SET_VOLUME:OUT:2DIGITS.PROC") - field(FLNK, "$(P):MESSAGE:CLEAR") + field(OUT, "$(P):VOL_SET_2D__.PROC") + field(FLNK, "$(P):MSG_CLEAR__") } -record(ao, $(P):SET_VOLUME:OUT:2DIGITS) { - field(DESC, "Set the volume of the syringe") +record(ao, $(P):VOL_SET_2D__) { + field(DESC, "(int.) Set vol. 2 digits") field(DTYP, "stream") field(DOL, "$(P):SET_VOLUME") field(OMSL, "closed_loop") - field(OUT, "@ne1600.proto set_volume_2digits($(P):STATUS,$(P):SET_VOLUME_UNITS,$(P):MESSAGE) $(PORT) $(ADDR)") - field(FLNK, "$(P):SET_VOLUME:CHECK:2DIGITS") + field(OUT, "@ne1600.proto set_volume_2decimal_points($(P):STATUS,$(P):SET_VOLUME_UNITS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):VOL_CHK_2D__") } -record(calcout, $(P):SET_VOLUME:CHECK:2DIGITS) { - field(INPA, "$(P):SET_VOLUME:OUT:2DIGITS.SEVR") +record(calcout, $(P):VOL_CHK_2D__) { + field(DESC, "(int.) Set vol. 2 digits") + field(INPA, "$(P):VOL_SET_2D__.SEVR") field(CALC, "A#3") field(OOPT, "When Zero") - field(OUT, "$(P):SET_VOLUME:OUT:1DIGIT.PROC") - field(FLNK, "$(P):MESSAGE:CLEAR") + field(OUT, "$(P):VOL_SET_1D__.PROC") + field(FLNK, "$(P):MSG_CLEAR__") } -record(ao, $(P):SET_VOLUME:OUT:1DIGIT) { - field(DESC, "Set the volume of the syringe") +record(ao, $(P):VOL_SET_1D__) { + field(DESC, "(int.) Set vol. 1 digit") field(DTYP, "stream") field(DOL, "$(P):SET_VOLUME") field(OMSL, "closed_loop") - field(OUT, "@ne1600.proto set_volume_1digit($(P):STATUS,$(P):SET_VOLUME_UNITS,$(P):MESSAGE) $(PORT) $(ADDR)") - field(FLNK, "$(P):SET_VOLUME:CHECK_ALARM") + field(OUT, "@ne1600.proto set_volume_1decimal_point($(P):STATUS,$(P):SET_VOLUME_UNITS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):VOL_CHK_ALARM__") } # ----------------------------------------------------------------------------- @@ -411,13 +429,14 @@ record(mbbo, $(P):SET_VOLUME_UNITS) { field(ONVL, "1") field(ONST, "mL") field(UNSV, "MAJOR") - field(FLNK, "$(P):SET_VOLUME_UNITS:RESET") + field(FLNK, "$(P):VOL_UNITS_RST__") } -record(fanout, $(P):SET_VOLUME_UNITS:RESET) { - field(LNK1, "$(P):MESSAGE:CLEAR") - field(LNK2, "$(P):SET_VOLUME:CLEAR_ALARM") - field(LNK3, "$(P):SET_VOLUME:OUT:3DIGITS") +record(fanout, $(P):VOL_UNITS_RST__) { + field(DESC, "(int.) Vol. units reset") + field(LNK1, "$(P):MSG_CLEAR__") + field(LNK2, "$(P):VOL_CLR_ALARM__") + field(LNK3, "$(P):VOL_SET_3D__") } # ----------------------------------------------------------------------------- @@ -428,69 +447,75 @@ record(ai, $(P):DIAMETER) { field(EGU, "mm") field(DTYP, "stream") field(INP, "@ne1600.proto get_diameter($(P):STATUS) $(PORT) $(ADDR)") - field(SCAN, "$(SCAN) second") + field(SCAN, "Passive") field(PINI, "YES") + field(FLNK, "$(P):VOLUME_INFUSED") } # ----------------------------------------------------------------------------- # Set syringe DIAMETER -# - limits: 0.100 mm to 50.000 mm +# - limits: 0.100 mm to 50.00 mm # - max 4 digits + 1 decimal point send; # ----------------------------------------------------------------------------- record(ao, $(P):SET_DIAMETER) { field(DESC, "Input for inside diameter") field(DTYP, "Soft Channel") field(EGU, "mm") - field(FLNK, "$(P):SET_DIAMETER:RESET") + field(FLNK, "$(P):DIA_RST__") } -record(fanout, $(P):SET_DIAMETER:RESET) { - field(LNK1, "$(P):MESSAGE:CLEAR") - field(LNK2, "$(P):SET_DIAMETER:CLEAR_ALARM") +record(fanout, $(P):DIA_RST__) { + field(DESC, "(int.) Diameter reset") + field(LNK1, "$(P):MSG_CLEAR__") + field(LNK2, "$(P):DIA_CLR_ALARM__") } -record(calcout, $(P):SET_DIAMETER:CHECK_ALARM) { - field(INPA, "$(P):SET_DIAMETER:OUT:3DIGITS.SEVR") - field(INPB, "$(P):SET_DIAMETER:OUT:2DIGITS.SEVR") +record(calcout, $(P):DIA_CHK_ALARM__) { + field(DESC, "(int.) Diameter alarm") + field(INPA, "$(P):DIA_SET_3D__.SEVR") + field(INPB, "$(P):DIA_SET_2D__.SEVR") field(CALC, "((A=3)&&(B=3))") field(OOPT, "When Non-zero") - field(OUT, "$(P):SET_DIAMETER:SET_ALARM.PROC") + field(OUT, "$(P):DIA_SET_ALARM__.PROC") } -record(ao, $(P):SET_DIAMETER:SET_ALARM) { +record(ao, $(P):DIA_SET_ALARM__) { + field(DESC, "(int.) Diam. alarm set") field(VAL, "3") field(OUT, "$(P):SET_DIAMETER.HHSV") } -record(ao, $(P):SET_DIAMETER:CLEAR_ALARM) { +record(ao, $(P):DIA_CLR_ALARM__) { + field(DESC, "(int.) Diam. alarm clear") field(VAL, "0") field(OUT, "$(P):SET_DIAMETER.HHSV") } -record(ao, $(P):SET_DIAMETER:OUT:3DIGITS) { - field(DESC, "Set the diameter of the syringe") +record(ao, $(P):DIA_SET_3D__) { + field(DESC, "(int.) Set diam. 3 digits") field(DTYP, "stream") field(DOL, "$(P):SET_DIAMETER CP") field(OMSL, "closed_loop") - field(OUT, "@ne1600.proto set_diameter_3digits($(P):STATUS,$(P):MESSAGE) $(PORT) $(ADDR)") - field(FLNK, "$(P):SET_DIAMETER:CHECK:3DIGITS") + field(OUT, "@ne1600.proto set_diameter_3decimal_points($(P):STATUS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):DIA_CHK_3D__") } -record(calcout, $(P):SET_DIAMETER:CHECK:3DIGITS) { - field(INPA, "$(P):SET_DIAMETER:OUT:3DIGITS.SEVR") +record(calcout, $(P):DIA_CHK_3D__) { + field(DESC, "(int.) Set diam. 3 digits") + field(INPA, "$(P):DIA_SET_3D__.SEVR") field(CALC, "A#3") field(OOPT, "When Zero") - field(OUT, "$(P):SET_DIAMETER:OUT:2DIGITS.PROC") - field(FLNK, "$(P):MESSAGE:CLEAR") + field(OUT, "$(P):DIA_SET_2D__.PROC") + field(FLNK, "$(P):MSG_CLEAR__") } -record(ao, $(P):SET_DIAMETER:OUT:2DIGITS) { - field(DESC, "Set the diameter of the syringe") +record(ao, $(P):DIA_SET_2D__) { + field(DESC, "(int.) Set diam. 2 digits") field(DTYP, "stream") field(DOL, "$(P):SET_DIAMETER") field(OMSL, "closed_loop") - field(OUT, "@ne1600.proto set_diameter_2digits($(P):STATUS,$(P):MESSAGE) $(PORT) $(ADDR)") - field(FLNK, "$(P):SET_DIAMETER:CHECK_ALARM") + field(OUT, "@ne1600.proto set_diameter_2decimal_points($(P):STATUS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):DIA_CHK_ALARM__") } # ----------------------------------------------------------------------------- @@ -500,7 +525,7 @@ record(ai, $(P):VOLUME_INFUSED) { field(DESC, "Volume infused so far") field(DTYP, "stream") field(INP, "@ne1600.proto get_volume_dispensed($(P):STATUS,$(P):VOLUME_WITHDRAWN,$(P):VOLUME_DIS_UNIT) $(PORT) $(ADDR)") - field(SCAN, "$(SCAN) second") + field(SCAN, "Passive") field(PINI, "YES") } @@ -524,7 +549,7 @@ record(mbbi, $(P):VOLUME_DIS_UNIT) { record(bo, $(P):CLEAR_V_DISPENSED) { field(DESC, "Zero volume withdrawn and infused") field(DTYP, "stream") - field(OUT, "@ne1600.proto clear_volume_dispensed($(P):STATUS) $(PORT) $(ADDR)") + field(OUT, "@ne1600.proto clear_volume_dispensed($(P):STATUS,$(P):MESSAGE) $(PORT) $(ADDR)") field(FLNK, "$(P):VOLUME_INFUSED") } @@ -534,14 +559,138 @@ record(bo, $(P):CLEAR_V_DISPENSED) { record(bo, $(P):RUN) { field(DESC, "Start pumping") field(DTYP, "stream") - field(OUT, "@ne1600.proto start_pumping($(P):STATUS) $(PORT) $(ADDR)") + field(OUT, "@ne1600.proto start_pumping($(P):STATUS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):RUN_CHK_ALARM__") +} + +record(calcout, $(P):RUN_CHK_ALARM__) { + field(DESC, "(int.) Run alarm") + field(INPA, "$(P):RUN.SEVR") + field(CALC, "(A=3)") + field(OOPT, "When Non-zero") + field(OUT, "$(P):MSG_CLEAR__.PROC") } # ----------------------------------------------------------------------------- -# Stop pumping +# Start to purge +# ----------------------------------------------------------------------------- +record(bo, $(P):PURGE) { + field(DESC, "Start purge") + field(DTYP, "stream") + field(OUT, "@ne1600.proto start_purge($(P):STATUS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):PURGE_CHK_ALARM__") +} + +record(calcout, $(P):PURGE_CHK_ALARM__) { + field(DESC, "(int.) Purge alarm") + field(INPA, "$(P):PURGE.SEVR") + field(CALC, "(A=3)") + field(OOPT, "When Non-zero") + field(OUT, "$(P):MSG_CLEAR__.PROC") +} + +# ----------------------------------------------------------------------------- +# Stop pumping/purge # ----------------------------------------------------------------------------- record(bo, $(P):STOP) { field(DESC, "Stop pumping") field(DTYP, "stream") - field(OUT, "@ne1600.proto stop_pumping($(P):STATUS) $(PORT) $(ADDR)") + field(OUT, "@ne1600.proto stop_pumping($(P):STATUS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):STOP_CHK_ALARM__") +} + +record(calcout, $(P):STOP_CHK_ALARM__) { + field(DESC, "(int.) Stop alarm") + field(INPA, "$(P):STOP.SEVR") + field(CALC, "(A=3)") + field(OOPT, "When Non-zero") + field(OUT, "$(P):MSG_CLEAR__.PROC") +} + +# ----------------------------------------------------------------------------- +# Pause pumping operation +# ----------------------------------------------------------------------------- +record(bo, $(P):PAUSE) { + field(DESC, "Pause pumping") + field(DTYP, "stream") + field(OUT, "@ne1600.proto pause($(P):STATUS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):PAUSE_CHK_ALARM__") +} + +record(calcout, $(P):PAUSE_CHK_ALARM__) { + field(DESC, "(int.) Pause alarm") + field(INPA, "$(P):PAUSE.SEVR") + field(CALC, "(A=3)") + field(OOPT, "When Non-zero") + field(OUT, "$(P):MSG_CLEAR__.PROC") +} + +# ----------------------------------------------------------------------------- +# Pause current running program for some seconds (<nn> or <n.n> seconds) +# ----------------------------------------------------------------------------- +record(ao, $(P):SET_PAUSE) { + field(DESC, "Seconds to pause") + field(DTYP, "Soft Channel") + field(VAL, "0") + field(EGU, "s") +} + +record(bo, $(P):PAUSE_PROG) { + field(DESC, "Pause program") + field(DTYP, "Soft Channel") + field(FLNK, "$(P):PAS_RST__") +} + +record(fanout, $(P):PAS_RST__) { + field(DESC, "(int.) Pause reset") + field(LNK1, "$(P):MSG_CLEAR__") + field(LNK2, "$(P):PAS_CLR_ALARM__") +} + +record(calcout, $(P):PAS_CHK_ALARM__) { + field(DESC, "(int.) Pause alarm") + field(INPA, "$(P):PAS_SET_1D__.SEVR") + field(INPB, "$(P):PAS_SET_0D__.SEVR") + field(CALC, "((A=3)&&(B=3))") + field(OOPT, "When Non-zero") + field(OUT, "$(P):PAS_SET_ALARM__.PROC") +} + +record(ao, $(P):PAS_SET_ALARM__) { + field(DESC, "(int.) Pause alarm set") + field(VAL, "3") + field(OUT, "$(P):SET_PAUSE.HHSV") +} + +record(ao, $(P):PAS_CLR_ALARM__) { + field(DESC, "(int.) Pause alarm clear") + field(VAL, "0") + field(OUT, "$(P):SET_PAUSE.HHSV") +} + +record(ao, $(P):PAS_SET_1D__) { + field(DESC, "(int.) Set pause 1 digit") + field(DTYP, "stream") + field(DOL, "$(P):SET_PAUSE") + field(OMSL, "closed_loop") + field(OUT, "@ne1600.proto pause_program_1decimal_digit($(P):STATUS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):PAS_CHK_1D__") +} + +record(calcout, $(P):PAS_CHK_1D__) { + field(DESC, "(int.) Set pause 1-digit") + field(INPA, "$(P):PAS_SET_1D__.SEVR") + field(CALC, "A#3") + field(OOPT, "When Zero") + field(OUT, "$(P):PAS_SET_0D__.PROC") + field(FLNK, "$(P):MSG_CLEAR__") +} + +record(ao, $(P):PAS_SET_0D__) { + field(DESC, "(int.) Set pause 0-digit") + field(DTYP, "stream") + field(DOL, "$(P):SET_PAUSE") + field(OMSL, "closed_loop") + field(OUT, "@ne1600.proto pause_program_0decimal_digit($(P):STATUS,$(P):MESSAGE) $(PORT) $(ADDR)") + field(FLNK, "$(P):PAS_CHK_ALARM__") } diff --git a/ne1600App/Db/ne1600.proto b/ne1600App/Db/ne1600.proto index 992356ad1f485da569211915d3504071b711b2f8..65aed3376d45e30b2b8ab30ac3f312bf150b68d0 100644 --- a/ne1600App/Db/ne1600.proto +++ b/ne1600App/Db/ne1600.proto @@ -61,7 +61,7 @@ set_direction { direction = "%{INF|WDR|REV|STK}"; out "DIR",${direction}; in ${prompt}; - @mismatch { in "%*/00S/%*/00S/%(\$2)s" }; + @mismatch { in "%*/00[IWSPTUX]/%*/00[IWSPTUX]/%(\$2)s" }; @init { get_direction; } } @@ -85,30 +85,30 @@ get_rate { # > UH = μL / hr # > MH = mL / hr # ----------------------------------------------------------------------------- -set_rate_3digits { +set_rate_3decimal_points { format = "%.3f"; unit = "%(\$2){UM|MM|UH|MH}"; out "RAT",${format},${unit}; in ${prompt}; - @mismatch { in "%*/00S/%(\$3)s" }; + @mismatch { in "%*/00[IWSPTUX]/%(\$3)s" }; @init { get_rate; } } -set_rate_2digits { +set_rate_2decimal_points { format = "%.2f"; unit = "%(\$2){UM|MM|UH|MH}"; out "RAT",${format},${unit}; in ${prompt}; - @mismatch { in "%*/00S/%(\$3)s" }; + @mismatch { in "%*/00[IWSPTUX]/%(\$3)s" }; @init { get_rate; } } -set_rate_1digit { +set_rate_1decimal_point { format = "%.1f"; unit = "%(\$2){UM|MM|UH|MH}"; out "RAT",${format},${unit}; in ${prompt}; - @mismatch { in "%*/00S/%(\$3)s" }; + @mismatch { in "%*/00[IWSPTUX]/%(\$3)s" }; @init { get_rate; } } @@ -130,36 +130,36 @@ get_volume { # > UL = μL (microliters) # > ML = mL (milliliters) # ----------------------------------------------------------------------------- -set_volume_3digits { +set_volume_3decimal_points { format = "%.3f"; unit = "%(\$2){UL|ML}"; out "VOL",${format}; # first set VALUE in ${prompt}; out "VOL",${unit}; # then, set UNIT in ${prompt}; - @mismatch { in "%*/00S/%(\$3)s" }; + @mismatch { in "%*/00[IWSPTUX]/%(\$3)s" }; @init { get_volume; } } -set_volume_2digits { +set_volume_2decimal_points { format = "%.2f"; unit = "%(\$2){UL|ML}"; out "VOL",${format}; # first set VALUE in ${prompt}; out "VOL",${unit}; # then, set UNIT in ${prompt}; - @mismatch { in "%*/00S/%(\$3)s" }; + @mismatch { in "%*/00[IWSPTUX]/%(\$3)s" }; @init { get_volume; } } -set_volume_1digit { +set_volume_1decimal_point { format = "%.1f"; unit = "%(\$2){UL|ML}"; out "VOL",${format}; # first set VALUE in ${prompt}; out "VOL",${unit}; # then, set UNIT in ${prompt}; - @mismatch { in "%*/00S/%(\$3)s" }; + @mismatch { in "%*/00[IWSPTUX]/%(\$3)s" }; @init { get_volume; } } @@ -174,30 +174,30 @@ get_diameter { # ----------------------------------------------------------------------------- # Set syringe DIAMETER -# - limits: 0.100 mm to 50.000 mm; +# - limits: 0.100 mm to 50.00 mm; # - max 4 digits + 1 decimal point send; # ----------------------------------------------------------------------------- -set_diameter_3digits { +set_diameter_3decimal_points { format = "%.3f"; out "DIA",${format}; in ${prompt}; - @mismatch { in "%*/00S/%(\$2)s" }; + @mismatch { in "%*/00[IWSPTUX]/%(\$2)s" }; @init { get_diameter; } } -set_diameter_2digits { +set_diameter_2decimal_points { format = "%.2f"; out "DIA",${format}; in ${prompt}; - @mismatch { in "%*/00S/%(\$2)s" }; + @mismatch { in "%*/00[IWSPTUX]/%(\$2)s" }; @init { get_diameter; } } -set_diameter_1digit { +set_diameter_1decimal_point { format = "%.1f"; out "DIA",${format}; in ${prompt}; - @mismatch { in "%*/00S/%(\$2)s" }; + @mismatch { in "%*/00[IWSPTUX]/%(\$2)s" }; @init { get_diameter; } } @@ -218,8 +218,10 @@ get_volume_dispensed { clear_volume_dispensed { out "CLD WDR"; in ${prompt}; + @mismatch { in "%*/00[IWSPTUX]/%(\$2)s" }; out "CLD INF"; in ${prompt}; + @mismatch { in "%*/00[IWSPTUX]/%(\$2)s" }; } # ----------------------------------------------------------------------------- @@ -228,14 +230,52 @@ clear_volume_dispensed { start_pumping { out "RUN"; in ${prompt}; + @mismatch { in "%*/00[IWSPTUX]/%(\$2)s" }; } # ----------------------------------------------------------------------------- -# Stop pumping (must issue command twice) +# Purge +# ----------------------------------------------------------------------------- +start_purge { + out "PUR"; + in ${prompt}; + @mismatch { in "%*/00[IWSPTUX]/%(\$2)s" }; +} + +# ----------------------------------------------------------------------------- +# Stop pumping/purge (must issue command twice) # ----------------------------------------------------------------------------- stop_pumping { out "STP"; in ${prompt}; + @mismatch { in "%*/00[IWSPTUX]/%(\$2)s" }; + out "STP"; + in ${prompt}; + @mismatch { in "%*/00[IWSPTUX]/%(\$2)s" }; +} + +# ----------------------------------------------------------------------------- +# Pause pumping operation +# ----------------------------------------------------------------------------- +pause { out "STP"; in ${prompt}; + @mismatch { in "%*/00[IWSPTUX]/%(\$2)s" }; +} + +# ----------------------------------------------------------------------------- +# Pause current running program for some seconds (<nn> or <n.n> seconds) +# ----------------------------------------------------------------------------- +pause_program_1decimal_digit { + format = "%.1f"; + out "PAS",${format}; + in ${prompt}; + @mismatch { in "%*/00[IWSPTUX]/%(\$2)s" }; +} + +pause_program_0decimal_digit { + format = "%.0f"; + out "PAS",${format}; + in ${prompt}; + @mismatch { in "%*/00[IWSPTUX]/%(\$2)s" }; }