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
812record(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
3338record(ai, "$(P)$(R)Angle_RBV") {
@@ -39,11 +44,48 @@ record(ai, "$(P)$(R)Angle_RBV") {
3944}
4045
4146record(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
4991record(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
63106record(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
77121record(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
91136record(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
105151record(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