#! Generated by VisualDCT v2.5
#! DBDSTART
#! DBDEND
record(ai, "$(P)timer$(N):secsPastEpoch") {
field(DESC, "Seconds Past Epoch")
field(SCAN, "Passive")
field(PINI, "NO")
field(DTYP, "Sec Past Epoch")
field(PHAS, "1")
field(PREC, "2")
}
record(transform, "$(P)timer$(N):calcElapsed") {
field(SCAN, "Passive")
field(CLCB, "d?a:b")
field(CLCC, "a-b")
field(CLCD, "0")
field(INPA, "$(P)timer$(N):secsPastEpoch.VAL PP")
field(OUTC, "$(P)timer$(N):elapsedSecs.VAL PP")
field(PREC, "2")
field(CLCF, "e-c")
field(CLCG, "e?e-c:0")
field(OUTF, "$(P)timer$(N):doneCalc.C PP")
field(CMTA, "raw secsPastEpoch")
field(CMTB, "start time")
field(CMTC, "elapsed time")
field(CMTD, "reset command")
field(CMTE, "preset")
field(CMTF, "time remaining")
field(CMTG, "remaining for display")
field(OUTG, "$(P)timer$(N):remainingSecs PP")
field(CLCH, "h")
field(CMTH, "update period")
}
record(ao, "$(P)timer$(N):elapsedSecs") {
field(PREC, "2")
}
record(bo, "$(P)timer$(N):Go") {
field(FLNK, "$(P)timer$(N):resetOnGo")
field(ZNAM, "Stop")
field(ONAM, "Go/Reset")
field(OUT, "$(P)timer$(N):setBusy.A PP")
}
record(stringin, "$(P)timer$(N):currentTime") {
field(SCAN, "Passive")
field(DTYP, "Soft Timestamp")
field(INP, "@%Y/%m/%d %H:%M:%S.%03f")
}
record(calcout, "$(P)timer$(N):doneCalc") {
field(CALC, "(a>0)&&b&&(c<=0.05)")
field(INPA, "$(P)timer$(N):calcElapsed.E")
field(INPB, "$(P)timer$(N):Go.VAL")
field(OUT, "$(P)timer$(N):doStop1 PP")
field(OOPT, "When Non-zero")
field(DOPT, "Use OCAL")
field(OCAL, "0")
}
record(ao, "$(P)timer$(N):preset") {
field(PREC, "2")
field(OUT, "$(P)timer$(N):calcElapsed.E PP")
field(PINI, "YES")
}
record(bo, "$(P)timer$(N):resetOnGo") {
field(UDF, "0")
field(DOL, "1")
field(OUT, "$(P)timer$(N):calcElapsed.D PP")
field(PINI, "NO")
field(DISV, "0")
field(SDIS, "$(P)timer$(N):Go.VAL")
field(FLNK, "$(P)timer$(N):startTime")
}
record(stringin, "$(P)timer$(N):startTime") {
field(SCAN, "Passive")
field(DTYP, "Soft Timestamp")
field(INP, "@%Y/%m/%d %H:%M:%S.%03f")
}
record(bo, "$(P)timer$(N):doStop") {
field(OUT, "$(P)timer$(N):Go PP")
field(DESC, "FLNK belongs to user")
}
record(fanout, "$(P)timer$(N):scanFanout") {
field(LNK1, "$(P)timer$(N):currentTime")
field(LNK2, "$(P)timer$(N):calcElapsed")
}
record(bo, "$(P)timer$(N):update") {
field(SCAN, ".1 second")
field(FLNK, "$(P)timer$(N):scanFanout")
field(DISV, "0")
field(SDIS, "$(P)timer$(N):Go")
}
record(bo, "$(P)timer$(N):updateCurrent") {
field(SCAN, "1 second")
field(FLNK, "$(P)timer$(N):currentTime")
field(SDIS, "$(P)timer$(N):Go")
}
record(ao, "$(P)timer$(N):remainingSecs") {
field(PREC, "2")
}
record(busy, "$(P)timer$(N):busy") {
}
record(calcout, "$(P)timer$(N):setBusy") {
field(CALC, "A")
field(OUT, "$(P)timer$(N):busy PP")
field(OOPT, "Transition To Non-zero")
}
record(bo, "$(P)timer$(N):clearBusy") {
field(OMSL, "closed_loop")
field(DOL, "0")
field(OUT, "$(P)timer$(N):busy CA")
}
record(bo, "$(P)timer$(N):doStop1") {
field(FLNK, "$(P)timer$(N):clearBusy")
field(OMSL, "closed_loop")
field(DOL, "0")
field(OUT, "$(P)timer$(N):doStop PP")
}
#! Further lines contain data used by VisualDCT
#! View(1032,139,0.9)
#! Record("$(P)timer$(N):secsPastEpoch",1360,442,0,0,"$(P)timer$(N):secsPastEpoch")
#! Field("$(P)timer$(N):secsPastEpoch.VAL",16777215,1,"$(P)timer$(N):secsPastEpoch.VAL")
#! Record("$(P)timer$(N):calcElapsed",1820,223,0,0,"$(P)timer$(N):calcElapsed")
#! Field("$(P)timer$(N):calcElapsed.INPA",16777215,0,"$(P)timer$(N):calcElapsed.INPA")
#! Link("$(P)timer$(N):calcElapsed.INPA","$(P)timer$(N):secsPastEpoch.VAL")
#! Field("$(P)timer$(N):calcElapsed.OUTC",16777215,1,"$(P)timer$(N):calcElapsed.OUTC")
#! Link("$(P)timer$(N):calcElapsed.OUTC","$(P)timer$(N):elapsedSecs.VAL")
#! Field("$(P)timer$(N):calcElapsed.D",16777215,0,"$(P)timer$(N):calcElapsed.D")
#! Field("$(P)timer$(N):calcElapsed.E",16777215,1,"$(P)timer$(N):calcElapsed.E")
#! Field("$(P)timer$(N):calcElapsed.OUTF",16777215,1,"$(P)timer$(N):calcElapsed.OUTF")
#! Link("$(P)timer$(N):calcElapsed.OUTF","$(P)timer$(N):doneCalc.C")
#! Field("$(P)timer$(N):calcElapsed.OUTG",16777215,1,"$(P)timer$(N):calcElapsed.OUTG")
#! Link("$(P)timer$(N):calcElapsed.OUTG","$(P)timer$(N):remainingSecs.VAL")
#! Record("$(P)timer$(N):elapsedSecs",2140,433,0,1,"$(P)timer$(N):elapsedSecs")
#! Field("$(P)timer$(N):elapsedSecs.VAL",16777215,0,"$(P)timer$(N):elapsedSecs.VAL")
#! Record("$(P)timer$(N):Go",980,449,0,1,"$(P)timer$(N):Go")
#! Field("$(P)timer$(N):Go.VAL",16777215,1,"$(P)timer$(N):Go.VAL")
#! Field("$(P)timer$(N):Go.FLNK",16777215,1,"$(P)timer$(N):Go.FLNK")
#! Link("$(P)timer$(N):Go.FLNK","$(P)timer$(N):resetOnGo")
#! Field("$(P)timer$(N):Go.OUT",16777215,1,"$(P)timer$(N):Go.OUT")
#! Link("$(P)timer$(N):Go.OUT","$(P)timer$(N):Go/OUT")
#! Connector("$(P)timer$(N):Go/OUT","$(P)timer$(N):setBusy.A",1200,770,16777215,"",0)
#! Record("$(P)timer$(N):currentTime",1820,404,0,0,"$(P)timer$(N):currentTime")
#! Visibility("$(P)timer$(N):currentTime.SCAN",1)
#! Record("$(P)timer$(N):doneCalc",2140,447,0,1,"$(P)timer$(N):doneCalc")
#! Field("$(P)timer$(N):doneCalc.INPA",16777215,0,"$(P)timer$(N):doneCalc.INPA")
#! Link("$(P)timer$(N):doneCalc.INPA","$(P)timer$(N):doneCalc/INPA")
#! Field("$(P)timer$(N):doneCalc.INPB",16777215,0,"$(P)timer$(N):doneCalc.INPB")
#! Link("$(P)timer$(N):doneCalc.INPB","$(P)timer$(N):doneCalc/INPB")
#! Field("$(P)timer$(N):doneCalc.C",16777215,0,"$(P)timer$(N):doneCalc.C")
#! Field("$(P)timer$(N):doneCalc.OUT",16777215,1,"$(P)timer$(N):doneCalc.OUT")
#! Link("$(P)timer$(N):doneCalc.OUT","$(P)timer$(N):doStop1.VAL")
#! Connector("$(P)timer$(N):doneCalc/INPB","$(P)timer$(N):doneCalc/INPB1",2060,835,16777215,"",0)
#! Connector("$(P)timer$(N):doneCalc/INPB1","$(P)timer$(N):doneCalc/INPB2",1490,1040,16777215,"",0)
#! Connector("$(P)timer$(N):doneCalc/INPB2","$(P)timer$(N):Go.VAL",920,805,16777215,"",0)
#! Connector("$(P)timer$(N):doneCalc/INPA","$(P)timer$(N):calcElapsed.E",2040,620,16777215,"",0)
#! Record("$(P)timer$(N):preset",1360,724,0,1,"$(P)timer$(N):preset")
#! Field("$(P)timer$(N):preset.OUT",16777215,1,"$(P)timer$(N):preset.OUT")
#! Link("$(P)timer$(N):preset.OUT","$(P)timer$(N):preset/OUT")
#! Connector("$(P)timer$(N):preset/OUT","$(P)timer$(N):calcElapsed.E",1600,730,16777215,"",0)
#! Record("$(P)timer$(N):resetOnGo",1360,527,0,0,"$(P)timer$(N):resetOnGo")
#! Field("$(P)timer$(N):resetOnGo.SDIS",16777215,0,"$(P)timer$(N):resetOnGo.SDIS")
#! Link("$(P)timer$(N):resetOnGo.SDIS","$(P)timer$(N):resetOnGo/SDIS")
#! Field("$(P)timer$(N):resetOnGo.OUT",16777215,1,"$(P)timer$(N):resetOnGo.OUT")
#! Link("$(P)timer$(N):resetOnGo.OUT","$(P)timer$(N):resetOnGo/OUT")
#! Field("$(P)timer$(N):resetOnGo.FLNK",16777215,1,"$(P)timer$(N):resetOnGo.FLNK")
#! Link("$(P)timer$(N):resetOnGo.FLNK","$(P)timer$(N):startTime")
#! Connector("$(P)timer$(N):resetOnGo/OUT","$(P)timer$(N):calcElapsed.D",1580,660,16777215,"",0)
#! Connector("$(P)timer$(N):resetOnGo/SDIS","$(P)timer$(N):Go.VAL",1220,630,16777215,"",0)
#! Record("$(P)timer$(N):startTime",1820,664,0,0,"$(P)timer$(N):startTime")
#! Record("$(P)timer$(N):doStop",2660,558,0,1,"$(P)timer$(N):doStop")
#! Field("$(P)timer$(N):doStop.VAL",16777215,0,"$(P)timer$(N):doStop.VAL")
#! Field("$(P)timer$(N):doStop.OUT",16777215,1,"$(P)timer$(N):doStop.OUT")
#! Link("$(P)timer$(N):doStop.OUT","$(P)timer$(N):doStop/OUT")
#! Connector("$(P)timer$(N):doStop/OUT","$(P)timer$(N):doStop/OUT1",2920,855,16777215,"",0)
#! Connector("$(P)timer$(N):doStop/OUT1","$(P)timer$(N):doStop/OUT2",1920,1040,16777215,"",0)
#! Connector("$(P)timer$(N):doStop/OUT2","$(P)timer$(N):Go.VAL",920,805,16777215,"",0)
#! Visibility("$(P)timer$(N):doStop.DESC",1)
#! Record("$(P)timer$(N):scanFanout",1540,378,0,0,"$(P)timer$(N):scanFanout")
#! Field("$(P)timer$(N):scanFanout.LNK1",16777215,1,"$(P)timer$(N):scanFanout.LNK1")
#! Link("$(P)timer$(N):scanFanout.LNK1","$(P)timer$(N):currentTime")
#! Field("$(P)timer$(N):scanFanout.LNK2",16777215,1,"$(P)timer$(N):scanFanout.LNK2")
#! Link("$(P)timer$(N):scanFanout.LNK2","$(P)timer$(N):scanFanout/LNK2")
#! Connector("$(P)timer$(N):scanFanout/LNK2","$(P)timer$(N):calcElapsed",1780,440,16777215,"",0)
#! Record("$(P)timer$(N):update",1280,309,0,1,"$(P)timer$(N):update")
#! Field("$(P)timer$(N):update.FLNK",16777215,1,"$(P)timer$(N):update.FLNK")
#! Link("$(P)timer$(N):update.FLNK","$(P)timer$(N):scanFanout")
#! Field("$(P)timer$(N):update.SDIS",16777215,0,"$(P)timer$(N):update.SDIS")
#! Link("$(P)timer$(N):update.SDIS","$(P)timer$(N):scan/SDIS")
#! Connector("$(P)timer$(N):scan/SDIS","$(P)timer$(N):Go.VAL",1220,510,16777215,"",0)
#! Visibility("$(P)timer$(N):update.SCAN",1)
#! Record("$(P)timer$(N):updateCurrent",1280,204,0,1,"$(P)timer$(N):updateCurrent")
#! Field("$(P)timer$(N):updateCurrent.FLNK",16777215,1,"$(P)timer$(N):updateCurrent.FLNK")
#! Link("$(P)timer$(N):updateCurrent.FLNK","$(P)timer$(N):currentTime")
#! Field("$(P)timer$(N):updateCurrent.SDIS",16777215,0,"$(P)timer$(N):updateCurrent.SDIS")
#! Link("$(P)timer$(N):updateCurrent.SDIS","$(P)timer$(N):Go.VAL")
#! Visibility("$(P)timer$(N):updateCurrent.SCAN",1)
#! Record("$(P)timer$(N):remainingSecs",2140,713,0,1,"$(P)timer$(N):remainingSecs")
#! Field("$(P)timer$(N):remainingSecs.VAL",16777215,0,"$(P)timer$(N):remainingSecs.VAL")
#! Record("$(P)timer$(N):busy",1540,886,0,1,"$(P)timer$(N):busy")
#! Field("$(P)timer$(N):busy.VAL",16777215,1,"$(P)timer$(N):busy.VAL")
#! Record("$(P)timer$(N):setBusy",1260,824,0,1,"$(P)timer$(N):setBusy")
#! Field("$(P)timer$(N):setBusy.A",16777215,0,"$(P)timer$(N):setBusy.A")
#! Field("$(P)timer$(N):setBusy.OUT",16777215,1,"$(P)timer$(N):setBusy.OUT")
#! Link("$(P)timer$(N):setBusy.OUT","$(P)timer$(N):busy.VAL")
#! Record("$(P)timer$(N):clearBusy",2400,724,0,0,"$(P)timer$(N):clearBusy")
#! Field("$(P)timer$(N):clearBusy.OUT",16777215,1,"$(P)timer$(N):clearBusy.OUT")
#! Link("$(P)timer$(N):clearBusy.OUT","$(P)timer$(N):clearBusy/OUT")
#! Connector("$(P)timer$(N):clearBusy/OUT","$(P)timer$(N):busy.VAL",2660,890,16777215,"",0)
#! Record("$(P)timer$(N):doStop1",2400,529,0,1,"$(P)timer$(N):doStop1")
#! Field("$(P)timer$(N):doStop1.OUT",16777215,1,"$(P)timer$(N):doStop1.OUT")
#! Link("$(P)timer$(N):doStop1.OUT","$(P)timer$(N):doStop.VAL")
#! Field("$(P)timer$(N):doStop1.VAL",16777215,0,"$(P)timer$(N):doStop1.VAL")
#! Field("$(P)timer$(N):doStop1.FLNK",16777215,1,"$(P)timer$(N):doStop1.FLNK")
#! Link("$(P)timer$(N):doStop1.FLNK","$(P)timer$(N):doStop1/FLNK")
#! Connector("$(P)timer$(N):doStop1/FLNK","$(P)timer$(N):doStop1/FLNK1",2620,705,16777215,"",0)
#! Connector("$(P)timer$(N):doStop1/FLNK1","$(P)timer$(N):doStop1/FLNK2",2490,720,16777215,"",0)
#! Connector("$(P)timer$(N):doStop1/FLNK2","$(P)timer$(N):clearBusy",2360,746,16777215,"",0)