Skip to content
Open
Show file tree
Hide file tree
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions ADPandABlocksApp/Db/ADPandABlocksCustomParam.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# % macro, PORT, Asyn Port name for ADPandABlocks comms
# % macro, P, Device prefix
# % macro, R, Device suffix
# % macro PARAM_IND, Index of custom param

record(stringout, "$(P)$(R)PARAM$(PARAM_IND):BLOCK") {
field(DESC, "Custom Param block name")
field(DTYP, "asynOctetWrite")
field(OUT, "@asyn($(PORT),0)PARAM$(PARAM_IND):BLOCK")
}

record(stringin, "$(P)$(R)PARAM$(PARAM_IND):BLOCK_RBV") {
field(DESC, "Custom Param block name")
field(DTYP, "asynOctetRead")
field(INP, "@asyn($(PORT),0)PARAM$(PARAM_IND):BLOCK")
}

record(stringout, "$(P)$(R)PARAM$(PARAM_IND):FIELD") {
field(DESC, "Custom Param field name")
field(DTYP, "asynOctetWrite")
field(OUT, "@asyn($(PORT),0)PARAM$(PARAM_IND):FIELD")
}

record(stringin, "$(P)$(R)PARAM$(PARAM_IND):FIELD_RBV") {
field(DESC, "Custom Param field name")
field(DTYP, "asynOctetRead")
field(INP, "@asyn($(PORT),0)PARAM$(PARAM_IND):FIELD")
}

record(stringout, "$(P)$(R)PARAM$(PARAM_IND):DEMAND") {
field(DESC, "Custom Param demand value")
field(DTYP, "asynOctetWrite")
field(OUT, "@asyn($(PORT),0)PARAM$(PARAM_IND):DEMAND")
}

record(stringin, "$(P)$(R)PARAM$(PARAM_IND):DEMAND_RBV") {
field(DESC, "Custom Param demand value")
field(DTYP, "asynOctetRead")
field(INP), "@asyn($(PORT),0)PARAM$(PARAM_IND):DEMAND")
}
2 changes: 2 additions & 0 deletions ADPandABlocksApp/Db/ADPandABlocksPosBus.template
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ record(mbbo, "$(P)$(R)POSBUS$(POSBUS_IND):CAPTURE") {
info(asyn:READBACK, "1")
}

#% archiver 10 Monitor
record(ao, "$(P)$(R)POSBUS$(POSBUS_IND):SCALE") {
field(DESC, "INENC scale value")
field(DTYP, "asynFloat64")
Expand All @@ -48,6 +49,7 @@ record(ao, "$(P)$(R)POSBUS$(POSBUS_IND):SCALE") {
info(asyn:READBACK, "1")
}

#% archiver 10 Monitor
record(ao, "$(P)$(R)POSBUS$(POSBUS_IND):OFFSET") {
field(DESC, "INENC offset value")
field(DTYP, "asynFloat64")
Expand Down
168 changes: 168 additions & 0 deletions ADPandABlocksApp/Db/ADPandABlocksSoftTTLTrigger.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
# % macro, PORT, Asyn Port name for ADPandABlocks comms
# % macro, P, Device prefix
# % macro, R, Device suffix
# % macro TTL_IND, Index of custom param
# % macro PULSE_IND, Index of custom param

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_TTL:_BLOCK") {
field(DTYP, "asynOctetWrite")
field(VAL, "TTLOUT$(TTL_IND)")
field(OUT, "@asyn($(PORT),0)PARAM01:BLOCK")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_TTL:_FIELD") {
field(DTYP, "asynOctetWrite")
field(VAL, "VAL")
field(OUT, "@asyn($(PORT),0)PARAM01:FIELD")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_TTL:_DEMAND") {
field(DTYP, "asynOctetWrite")
field(VAL, "PULSE$(TTL_IND).OUT")
field(OUT, "@asyn($(PORT),0)PARAM01:DEMAND")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:WIDTH:_BLOCK") {
field(DTYP, "asynOctetWrite")
field(VAL, "PULSE$(TTL_IND)")
field(OUT, "@asyn($(PORT),0)PARAM02:BLOCK")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:WIDTH:_FIELD") {
field(DTYP, "asynOctetWrite")
field(VAL, "WIDTH")
field(OUT, "@asyn($(PORT),0)PARAM02:FIELD")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:WIDTH:_DEMAND") {
field(DTYP, "asynOctetWrite")
field(OUT, "@asyn($(PORT),0)PARAM02:DEMAND")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:UNITS:_BLOCK") {
field(DTYP, "asynOctetWrite")
field(VAL, "PULSE$(TTL_IND).WIDTH")
field(OUT, "@asyn($(PORT),0)PARAM03:BLOCK")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:UNITS:_FIELD") {
field(DTYP, "asynOctetWrite")
field(VAL, "UNITS")
field(OUT, "@asyn($(PORT),0)PARAM03:FIELD")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:UNITS:_DEMAND") {
field(DTYP, "asynOctetWrite")
field(VAL, "s")
field(OUT, "@asyn($(PORT),0)PARAM03:DEMAND")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:ENA:_BLOCK") {
field(DTYP, "asynOctetWrite")
field(VAL, "PULSE$(TTL_IND)")
field(OUT, "@asyn($(PORT),0)PARAM04:BLOCK")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:ENA:_FIELD") {
field(DTYP, "asynOctetWrite")
field(VAL, "ENABLE")
field(OUT, "@asyn($(PORT),0)PARAM04:FIELD")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:ENA:_DEMAND") {
field(DTYP, "asynOctetWrite")
field(VAL, "ONE")
field(OUT, "@asyn($(PORT),0)PARAM04:DEMAND")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:TRIG:_BLOCK") {
field(DTYP, "asynOctetWrite")
field(VAL, "PULSE$(TTL_IND)")
field(OUT, "@asyn($(PORT),0)PARAM05:BLOCK")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:TRIG:_FIELD") {
field(DTYP, "asynOctetWrite")
field(VAL, "TRIG")
field(OUT, "@asyn($(PORT),0)PARAM05:FIELD")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:TRIG:_DEMAND") {
field(DTYP, "asynOctetWrite")
field(OUT, "@asyn($(PORT),0)PARAM05:DEMAND")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:EDGE:_BLOCK") {
field(DTYP, "asynOctetWrite")
field(VAL, "PULSE$(TTL_IND)")
field(OUT, "@asyn($(PORT),0)PARAM06:BLOCK")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:EDGE:_FIELD") {
field(DTYP, "asynOctetWrite")
field(VAL, "TRIG_EDGE")
field(OUT, "@asyn($(PORT),0)PARAM06:FIELD")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:EDGE:_DEMAND") {
field(DTYP, "asynOctetWrite")
field(VAL, "Either")
field(OUT, "@asyn($(PORT),0)PARAM06:DEMAND")
field(PINI, "YES")
}

record(scalcout, "$(P)$(R)SOFTTRIG$(TTL_IND):_CALC0") {
field(CALC, "A==0 ? 'ZERO' : 'ONE'")
field(INPA, "$(P)$(R)SOFTTRIG$(TTL_IND):_CALC1")
field(OUT, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:TRIG:_DEMAND PP")
}

record(calcout, "$(P)$(R)SOFTTRIG$(TTL_IND):_CALC1") {
field(CALC, "(A+1) % 2")
field(INPA, "$(P)$(R)SOFTTRIG$(TTL_IND):_FLIP")
field(OUT, "$(P)$(R)SOFTTRIG$(TTL_IND):_FLIP")
field(FLNK, "$(P)$(R)SOFTTRIG$(TTL_IND):_CALC0")
field(SCAN, "Passive")
}

record(ai, "$(P)$(R)SOFTTRIG$(TTL_IND):_FLIP") {
field(VAL, 0)
}

record(fanout, "$(P)$(R)SOFTTRIG$(TTL_IND):Acquire") {
field(LNK1, "$(P)$(R)SOFTTRIG$(TTL_IND):_CALC1")
}

record(ao, "$(P)$(R)SOFTTRIG$(TTL_IND):AcquireTime") {
field(OUT, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:WIDTH:_DEMAND PP")
}

record(stringin, "$(P)$(R)SOFTTRIG$(TTL_IND):AcquireTime_RBV") {
field(DTYP, "asynOctetRead")
field(INP, "@asyn($(PORT),0)PARAM02:RBV")
field(SCAN, "I/O Intr")
}

record(fanout, "$(P)$(R)SOFTTRIG$(TTL_IND):Configure") {
field(LNK1, "$(P)$(R)SOFTTRIG$(TTL_IND):_TTL:_DEMAND")
field(LNK2, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:ENA:_DEMAND")
field(LNK3, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:UNITS:_DEMAND")
field(LNK4, "$(P)$(R)SOFTTRIG$(TTL_IND):_PULSE:EDGE:_DEMAND")
}

88 changes: 88 additions & 0 deletions ADPandABlocksApp/Db/ADPandABlocksTTLControl.template
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# % macro, PORT, Asyn Port name for ADPandABlocks comms
# % macro, P, Device prefix
# % macro, R, Device suffix
# % macro, TTL_IND, Index of custom param
# % macro, PARAM1_IND
# % macro, PARAM2_IND

record(stringout, "$(P)$(R)TTL$(TTL_IND):_BLOCK") {
field(DTYP, "asynOctetWrite")
field(VAL, "TTLOUT$(TTL_IND)")
field(OUT, "@asyn($(PORT),0)PARAM$(PARAM1_IND):BLOCK")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)TTL$(TTL_IND):_FIELD") {
field(DTYP, "asynOctetWrite")
field(VAL, "VAL")
field(OUT, "@asyn($(PORT),0)PARAM$(PARAM1_IND):FIELD")
field(PINI, "YES")
}

record(stringout, "$(P)$(R)TTL$(TTL_IND):_DEMAND") {
field(DTYP, "asynOctetWrite")
field(OUT, "@asyn($(PORT),0)PARAM$(PARAM1_IND):DEMAND")
}

record(stringin, "$(P)$(R)TTL$(TTL_IND):_CUSTOM_RBV") {
field(DTYP, "asynOctetRead")
field(INP, "@asyn($(PORT),0)PARAM$(PARAM2_IND):RBV")
field(SCAN, "I/O Intr")
field(FLNK, "$(P)$(R)TTL$(TTL_IND):_CALC3")
}

record(ai, "$(P)$(R)TTL$(TTL_IND):RBV") {
}

record(scalcout, "$(P)$(R)TTL$(TTL_IND):_CALC3") {
field(CALC, "A==0 ? 0 : ( A==1 ? 1 : SSCANF(AA, '%d'))")
field(INPA, $(P)$(R)TTL$(TTL_IND):OUTPUT)
field(INAA, $(P)$(R)TTL$(TTL_IND):_CUSTOM_RBV)
field(OUT, "$(P)$(R)TTL$(TTL_IND):RBV PP")
}

record(stringout, "$(P)$(R)TTL$(TTL_IND):RBV:_BLOCK") {
field(DTYP, "asynOctetWrite")
field(OUT, "@asyn($(PORT),0)PARAM$(PARAM2_IND):BLOCK")
}

record(stringout, "$(P)$(R)TTL$(TTL_IND):RBV:_FIELD") {
field(DTYP, "asynOctetWrite")
field(OUT, "@asyn($(PORT),0)PARAM$(PARAM2_IND):FIELD")
}

record(stringin, "$(P)$(R)TTL$(TTL_IND):CUSTOM") {
field(VAL, "CUSTOM")
field(FLNK, "$(P)$(R)TTL$(TTL_IND):_CALC1")
}

record(scalcout, "$(P)$(R)TTL$(TTL_IND):_CALC0") {
field(CALC, "A==0 ? 'ZERO' : ( A==1 ? 'ONE' : AA)")
field(INPA, $(P)$(R)TTL$(TTL_IND):OUTPUT)
field(INAA, $(P)$(R)TTL$(TTL_IND):CUSTOM)
field(OUT, "$(P)$(R)TTL$(TTL_IND):_DEMAND PP")
field(FLNK, "$(P)$(R)TTL$(TTL_IND):_CALC3")
}

record(scalcout, "$(P)$(R)TTL$(TTL_IND):_CALC1") {
field(CALC, "SSCANF(AA, '%[^.].%*s')")
field(INAA, $(P)$(R)TTL$(TTL_IND):CUSTOM)
field(FLNK, "$(P)$(R)TTL$(TTL_IND):_CALC2")
field(OUT, "$(P)$(R)TTL$(TTL_IND):RBV:_BLOCK PP")
}

record(scalcout, "$(P)$(R)TTL$(TTL_IND):_CALC2") {
field(CALC, "SSCANF(AA, '%*[^.].%s')")
field(INAA, $(P)$(R)TTL$(TTL_IND):CUSTOM)
field(OUT, "$(P)$(R)TTL$(TTL_IND):RBV:_FIELD PP")
}

record(mbbi, "$(P)$(R)TTL$(TTL_IND):OUTPUT") {
field(ZRST, "ZERO")
field(ONST, "ONE")
field(TWST, "CUSTOM")
field(VAL, 0)
field(PINI, "YES")
field(FLNK, "$(P)$(R)TTL$(TTL_IND):_CALC0")
}

3 changes: 3 additions & 0 deletions ADPandABlocksApp/Db/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ include $(TOP)/configure/CONFIG
DB += ADPandABlocks.template
DB += ADPandABlocksPosBus.template
DB += ADPandABlocksMotorSync.template
DB += ADPandABlocksCustomParam.template
DB += ADPandABlocksTTLControl.template
DB += ADPandABlocksSoftTTLTrigger.template

#----------------------------------------------------
# In a Diamond IOC Application, build db files from
Expand Down
Loading