Skip to content

Commit 1577281

Browse files
Pete LeicesterPete Leicester
authored andcommitted
adPythonRotate: Added link for setting rotation angle from PV
1 parent a03e0cc commit 1577281

File tree

2 files changed

+230
-63
lines changed

2 files changed

+230
-63
lines changed

adPythonApp/Db/adPythonRotate.template

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
# % macro, PORT, Asyn Port name
44
# % macro, TIMEOUT, Timeout
55
# % macro, ADDR, Asyn Port address
6+
# % macro, ANGLEPV, Optional link to PV specifying angle
7+
# % macro, ANGLESCALE, Optional ANGLEPV scaling
8+
# % macro, ANGLEOFFSET, Optional ANGLEPV offset
9+
610
# % gui, $(PORT), edmtab, adPythonRotate.edl, P=$(P),R=$(R)
711

812
record(mbbi, "$(P)$(R)Clipping_RBV")
@@ -28,6 +32,7 @@ record(mbbo, "$(P)$(R)Clipping")
2832
field(ONVL, "1")
2933
field(TWST, "None")
3034
field(TWVL, "2")
35+
info(autosaveFields, "VAL")
3136
}
3237

3338
record(ai, "$(P)$(R)Angle_RBV") {
@@ -39,11 +44,48 @@ record(ai, "$(P)$(R)Angle_RBV") {
3944
}
4045

4146
record(ao, "$(P)$(R)Angle") {
47+
field(DESC, "Image rotation angle")
4248
field(DTYP, "asynFloat64")
4349
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))rotAngle")
4450
field(PREC, "3")
4551
field(EGU, "deg")
4652
field(PINI, "YES")
53+
info(autosaveFields, "VAL")
54+
}
55+
56+
record(calcout, "$(P)$(R)AngleLinkCalc")
57+
{
58+
field(DESC, "Apply scaling to anglelink")
59+
field(CALC, "A*B+C")
60+
field(INPB, "$(P)$(R)AngleLinkScale.VAL")
61+
field(INPC, "$(P)$(R)AngleLinkOffset.VAL")
62+
field(OOPT, "Every Time")
63+
field(DOPT, "Use CALC")
64+
field(OUT, "$(P)$(R)Angle PP")
65+
}
66+
67+
record(ao, "$(P)$(R)AngleLink")
68+
{
69+
field(DOL, "$(ANGLEPV=) CP MS")
70+
field(OMSL, "closed_loop")
71+
field(OUT, "$(P)$(R)AngleLinkCalc.A PP MS")
72+
info(autosaveFields, "DOL")
73+
}
74+
75+
record(ao, "$(P)$(R)AngleLinkScale")
76+
{
77+
field(DOL, "$(ANGLESCALE=1"))
78+
field(OMSL, "supervisory")
79+
field(PREC, "3")
80+
info(autosaveFields, "VAL")
81+
}
82+
83+
record(ao, "$(P)$(R)AngleLinkOffset")
84+
{
85+
field(DOL, "$(ANGLEOFFSET=0"))
86+
field(OMSL, "supervisory")
87+
field(PREC, "3")
88+
info(autosaveFields, "VAL")
4789
}
4890

4991
record(longin, "$(P)$(R)CentreX_RBV") {
@@ -58,6 +100,7 @@ record(longout, "$(P)$(R)CentreX") {
58100
field(DTYP, "asynInt32")
59101
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))rotCentreX")
60102
field(EGU, "pixels")
103+
info(autosaveFields, "VAL")
61104
}
62105

63106
record(longin, "$(P)$(R)CentreY_RBV") {
@@ -72,6 +115,7 @@ record(longout, "$(P)$(R)CentreY") {
72115
field(DTYP, "asynInt32")
73116
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))rotCentreY")
74117
field(EGU, "pixels")
118+
info(autosaveFields, "VAL")
75119
}
76120

77121
record(longin, "$(P)$(R)Blue_RBV") {
@@ -86,6 +130,7 @@ record(longout, "$(P)$(R)Blue") {
86130
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))fillBlue")
87131
field(DRVL, "0")
88132
field(DRVH, "255")
133+
info(autosaveFields, "VAL")
89134
}
90135

91136
record(longin, "$(P)$(R)Green_RBV") {
@@ -100,6 +145,7 @@ record(longout, "$(P)$(R)Green") {
100145
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))fillGreen")
101146
field(DRVL, "0")
102147
field(DRVH, "255")
148+
info(autosaveFields, "VAL")
103149
}
104150

105151
record(longin, "$(P)$(R)Red_RBV") {
@@ -114,6 +160,7 @@ record(longout, "$(P)$(R)Red") {
114160
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))fillRed")
115161
field(DRVL, "0")
116162
field(DRVH, "255")
163+
info(autosaveFields, "VAL")
117164
}
118165

119166

0 commit comments

Comments
 (0)