Skip to content
Snippets Groups Projects
hybrid.template 8.34 KiB
Newer Older
Marco Filho's avatar
Marco Filho committed
record(dfanout, "$(P)$(R)$(HYB):ReadChipInfo") {
    field(DESC, "Read particular chip info")
Marco Filho's avatar
Marco Filho committed
    field(VAL,  "0")
    field(OUTA, "$(P)$(R)$(HYB):ID-R.PROC 1")
    field(OUTB, "$(P)$(R)$(HYB):FwVersion-R.PROC 1")
    field(OUTC, "$(P)$(R)$(HYB):GeoPos-R.PROC 1")
Marco Filho's avatar
Marco Filho committed
record(stringin, "$(P)$(R)$(HYB):FwVersion-R") {
    field(DESC, "Hybrid $(HYB) Firmware version")
    field(DTYP, "asynOctetRead")
    field(INP,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_FW_VERSION")
Marco Filho's avatar
Marco Filho committed
    field(PINI, "YES")
    field(SCAN, "I/O Intr")
}

record(bo, "$(P)$(R)$(HYB):#Enable-S") {
    field(DESC, "Global enable PV forwarder")
    field(DOL,  "$(P)$(Glob)Enable-S CP")
    field(OMSL, "closed_loop")
    field(OUT, "$(P)$(R)$(HYB):Enable-S CP")
}

record(bo, "$(P)$(R)$(HYB):Enable-S") {
    field(DESC, "Enable hybrid")
    field(DTYP, "asynInt32")
    field(ZNAM, "Disable")
    field(ONAM, "Enable")
    field(SDIS, "$(VMMPREFIX)IsAcquiring-R")
    field(PHAS, "1")
    field(OUT,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_ENABLE")
}

record(bi, "$(P)$(R)$(HYB):Enable-R") {
    field(DESC, "Enable hybrid")
    field(DTYP, "asynInt32")
    field(ZNAM, "Disabled")
    field(ONAM, "Enabled")
    field(SCAN, "1 second")
    field(INP,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_ENABLE")
}

record(calc, "$(P)$(R)$(HYB):#CalcDISA") {
    field(DESC, "1 if (Enabled == 0) OR (LinkStatus !=4 )")
    field(INPA, "$(P)$(R)$(HYB):Enable-R CP")
    field(INPB, "$(P)$(R)$(HYB):LinkStatus-R CP")
    field(INPC, "$(VMMPREFIX)IsAcquiring-R CP")
    field(CALC, "( (A = 0)||(B # 4)||(C = 1) ) ? 1 : 0")
record(mbbo, "$(P)$(R)$(HYB):#Skew-S"){
    field(DESC, "Global set Skew forwarder")
    field(DOL,  "$(P)$(Glob)Skew-S CP")
    field(OMSL, "closed_loop")
    field(OUT, "$(P)$(R)$(HYB):Skew-S CP")
    field(ZRST, "0 ns")
    field(ZRVL, "0")
    field(ONST, "2.83921 ns")
    field(ONVL, "1")
    field(TWST, "5.67842 ns")
    field(TWVL, "2")
    field(THST, "8.51764 ns")
    field(THVL, "3")
    field(FRST, "11.3568 ns")
    field(FRVL, "4")
    field(FVST, "14.1961 ns")
    field(FVVL, "5")
    field(SXST, "17.0353 ns")
    field(SXVL, "6")
    field(SVST, "19.8545 ns")
    field(SVVL, "7")
    field(EIST, "22.7137 ns")
    field(EIVL, "8")
    field(NIST, "25.5529 ns")
    field(NIVL, "9")
    field(TEST, "28.3921 ns")
    field(TEVL, "10")
    field(ELST, "31.2313 ns")
    field(ELVL, "11")
    field(TVST, "34.0705 ns")
    field(TVVL, "12")
    field(TTST, "36.9098 ns")
    field(TTVL, "13")
    field(FTST, "39.749 ns")
    field(FTVL, "14")
    field(FFST, "42.5882 ns")
    field(FFVL, "15")
}

Marco Filho's avatar
Marco Filho committed
record(mbbo, "$(P)$(R)$(HYB):Skew-S"){
Marco Filho's avatar
Marco Filho committed
    field(DESC, "Hybrid's #$(HYB) Skew")
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_SKEW")
    field(SDIS, "$(P)$(R)$(HYB):#CalcDISA CP")
Marco Filho's avatar
Marco Filho committed
    field(ZRST, "0 ns")
    field(ZRVL, "0")
    field(ONST, "2.83921 ns")
    field(ONVL, "1")
    field(TWST, "5.67842 ns")
    field(TWVL, "2")
    field(THST, "8.51764 ns")
    field(THVL, "3")
    field(FRST, "11.3568 ns")
    field(FRVL, "4")
    field(FVST, "14.1961 ns")
    field(FVVL, "5")
    field(SXST, "17.0353 ns")
    field(SXVL, "6")
    field(SVST, "19.8545 ns")
    field(SVVL, "7")
    field(EIST, "22.7137 ns")
    field(EIVL, "8")
    field(NIST, "25.5529 ns")
    field(NIVL, "9")
    field(TEST, "28.3921 ns")
    field(TEVL, "10")
    field(ELST, "31.2313 ns")
    field(ELVL, "11")
    field(TVST, "34.0705 ns")
    field(TVVL, "12")
    field(TTST, "36.9098 ns")
    field(TTVL, "13")
    field(FTST, "39.749 ns")
    field(FTVL, "14")
    field(FFST, "42.5882 ns")
    field(FFVL, "15")
}

Marco Filho's avatar
Marco Filho committed
record(mbbi, "$(P)$(R)$(HYB):Skew-RB"){
Marco Filho's avatar
Marco Filho committed
    field(DESC, "Hybrid's #$(HYB) Skew")
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_SKEW")
    field(ZRST, "0 ns")
    field(ZRVL, "0")
    field(ONST, "2.83921 ns")
    field(ONVL, "1")
    field(TWST, "5.67842 ns")
    field(TWVL, "2")
    field(THST, "8.51764 ns")
    field(THVL, "3")
    field(FRST, "11.3568 ns")
    field(FRVL, "4")
    field(FVST, "14.1961 ns")
    field(FVVL, "5")
    field(SXST, "17.0353 ns")
    field(SXVL, "6")
    field(SVST, "19.8545 ns")
    field(SVVL, "7")
    field(EIST, "22.7137 ns")
    field(EIVL, "8")
    field(NIST, "25.5529 ns")
    field(NIVL, "9")
    field(TEST, "28.3921 ns")
    field(TEVL, "10")
    field(ELST, "31.2313 ns")
    field(ELVL, "11")
    field(TVST, "34.0705 ns")
    field(TVVL, "12")
    field(TTST, "36.9098 ns")
    field(TTVL, "13")
    field(FTST, "39.749 ns")
    field(FTVL, "14")
    field(FFST, "42.5882 ns")
    field(FFVL, "15")
Marco Filho's avatar
Marco Filho committed
    field(SCAN, "1 second")
Marco Filho's avatar
Marco Filho committed
    field(PINI, "YES")
}

record(mbbo, "$(P)$(R)$(HYB):#Width-S"){
    field(DESC, "Global set width forwarder")
    field(DOL,  "$(P)$(Glob)Width-S CP")
    field(OMSL, "closed_loop")
    field(OUT, "$(P)$(R)$(HYB):Width-S CP")
    field(ZRST, "128 x 22.7137")
    field(ZRVL, "0")
    field(ONST, "64 x 22.7137")
    field(ONVL, "1")
    field(TWST, "32 x 22.7137")
    field(TWVL, "2")
    field(THST, "16 x 22.7137")
    field(THVL, "3")
    field(FRST, "8 x 22.7137")
    field(FRVL, "4")
    field(FVST, "4 x 22.7137")
    field(FVVL, "5")
    field(SXST, "2 x 22.7137")
    field(SXVL, "6")
    field(SVST, "1 x 22.7137")
    field(SVVL, "7")
}

Marco Filho's avatar
Marco Filho committed
record(mbbo, "$(P)$(R)$(HYB):Width-S"){
Marco Filho's avatar
Marco Filho committed
    field(DESC, "Hybrid's #$(HYB) Width")
    field(DTYP, "asynInt32")
    field(OUT,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_WIDTH")
    field(SDIS, "$(P)$(R)$(HYB):#CalcDISA CP")
Marco Filho's avatar
Marco Filho committed
    field(ZRST, "128 x 22.7137")
    field(ZRVL, "0")
    field(ONST, "64 x 22.7137")
    field(ONVL, "1")
    field(TWST, "32 x 22.7137")
    field(TWVL, "2")
    field(THST, "16 x 22.7137")
    field(THVL, "3")
    field(FRST, "8 x 22.7137")
    field(FRVL, "4")
    field(FVST, "4 x 22.7137")
    field(FVVL, "5")
    field(SXST, "2 x 22.7137")
    field(SXVL, "6")
    field(SVST, "1 x 22.7137")
Marco Filho's avatar
Marco Filho committed
    field(SVVL, "7")
Marco Filho's avatar
Marco Filho committed
}

Marco Filho's avatar
Marco Filho committed
record(mbbi, "$(P)$(R)$(HYB):Width-RB"){
Marco Filho's avatar
Marco Filho committed
    field(DESC, "Hybrid's #$(HYB) Width")
    field(DTYP, "asynInt32")
    field(INP,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_WIDTH")
    field(PINI, "YES")
    field(ZRST, "128 x 22.7137")
    field(ZRVL, "0")
    field(ONST, "64 x 22.7137")
    field(ONVL, "1")
    field(TWST, "32 x 22.7137")
    field(TWVL, "2")
    field(THST, "16 x 22.7137")
    field(THVL, "3")
    field(FRST, "8 x 22.7137")
    field(FRVL, "4")
    field(FVST, "4 x 22.7137")
    field(FVVL, "5")
    field(SXST, "2 x 22.7137")
    field(SXVL, "6")
    field(SVST, "1 x 22.7137")
    field(SVVL, "7")
Marco Filho's avatar
Marco Filho committed
    field(SCAN, "1 second")
Marco Filho's avatar
Marco Filho committed
}

record(bo, "$(P)$(R)$(HYB):#Pol-S") {
    field(DESC, "Global set polarity forwarder")
    field(DOL,  "$(P)$(Glob)Pol-S CP")
    field(OMSL, "closed_loop")
    field(OUT,  "$(P)$(R)$(HYB):Pol-S CP")
    field(ZNAM, "positive")
    field(ONAM, "negative")
}

Marco Filho's avatar
Marco Filho committed
record(bo, "$(P)$(R)$(HYB):Pol-S") {
Marco Filho's avatar
Marco Filho committed
    field(DESC, "Hybrid's #$(HYB) Polarity")
    field(SDIS, "$(P)$(R)$(HYB):#CalcDISA CP")
Marco Filho's avatar
Marco Filho committed
    field(DTYP, "asynInt32")
    field(VAL,  "0")
    field(ZNAM, "positive")
    field(ONAM, "negative")
    field(OUT,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_POLARITY")
}

Marco Filho's avatar
Marco Filho committed
record(bi, "$(P)$(R)$(HYB):Pol-RB") {
Marco Filho's avatar
Marco Filho committed
    field(DESC, "Hybrid's #$(HYB) Polarity")
    field(DTYP, "asynInt32")
    field(VAL,  "0")
    field(ZNAM, "positive")
    field(ONAM, "negative")
    field(INP,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_POLARITY")
Marco Filho's avatar
Marco Filho committed
    field(SCAN, "1 second")
Marco Filho's avatar
Marco Filho committed
    field(PINI, "YES")
}

Marco Filho's avatar
Marco Filho committed
record(stringin, "$(P)$(R)$(HYB):ID-R") {
    field(DESC, "Hybrid $(HYB) ID")
    field(DTYP, "asynOctetRead")
Marco Filho's avatar
Marco Filho committed
    field(PINI, "YES")
    field(INP,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_ID")
    field(SCAN, "I/O Intr")
}

Marco Filho's avatar
Marco Filho committed
record(stringin, "$(P)$(R)$(HYB):GeoPos-R") {
    field(DESC, "Hybrid $(HYB) Geo Position")
    field(DTYP, "asynOctetRead")
Marco Filho's avatar
Marco Filho committed
    field(PINI, "YES")
    field(INP,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_GEOPOS")
    field(SCAN, "I/O Intr")
}
Marco Filho's avatar
Marco Filho committed
record(mbbi, "$(P)$(R)$(HYB):LinkStatus-R") {
    field(DESC, "Hybrid $(HYB) Link Status")
Marco Filho's avatar
Marco Filho committed
    field(PINI, "YES")
    field(DTYP, "asynInt32")
    field(ZRST, "not connected")
    field(ZRVL, "0")
    field(ONST, "start alignment")
    field(ONVL, "1")
    field(TWST, "align")
    field(TWVL, "2")
    field(THST, "link")
    field(THVL, "3")
    field(FRST, "idle")
    field(FRVL, "4")
    field(FVST, "acq")
    field(FVVL, "5")
Marco Filho's avatar
Marco Filho committed
    field(SCAN, ".5 second")
    field(INP,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_LINK_STATUS")
}