# Database for profile moves with asynMotor
# This database defined records specific to each XPS axis
#
#    Mark Rivers
#    April 3, 2011
#
#
# Macro paramters:
#   $(P)         - PV name prefix
#   $(R)         - PV base record name
#   $(M)         - PV motor name
#   $(PORT)      - asyn port for this controller
#   $(ADDR)      - asyn addr for this axis
#   $(TIMEOUT)   - asyn timeout for this axis
#   $(PREC)      - Precision for this axis

#
# Readback of minimum position
#
record(ai,"$(P)$(R)M$(M)MinPosition") {
    field(DESC, "Axis $(ADDR) min position")
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))XPS_PROFILE_MIN_POSITION")
    field(PREC, "$(PREC)")
    field(SCAN, "I/O Intr")
}

#
# Readback of maximum position
#
record(ai,"$(P)$(R)M$(M)MaxPosition") {
    field(DESC, "Axis $(ADDR) max position")
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))XPS_PROFILE_MAX_POSITION")
    field(PREC, "$(PREC)")
    field(SCAN, "I/O Intr")
}

#
# Readback of maximum velocity
#
record(ai,"$(P)$(R)M$(M)MaxVelocity") {
    field(DESC, "Axis $(ADDR) max velocity")
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))XPS_PROFILE_MAX_VELOCITY")
    field(PREC, "$(PREC)")
    field(SCAN, "I/O Intr")
}

#
# Readback of maximum acceleration
#
record(ai,"$(P)$(R)M$(M)MaxAcceleration") {
    field(DESC, "Axis $(ADDR) max acceleration")
    field(DTYP, "asynFloat64")
    field(INP,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))XPS_PROFILE_MAX_ACCELERATION")
    field(PREC, "$(PREC)")
    field(SCAN, "I/O Intr")
}
