From bfbc2e57b7ed928b401dec465aef47010d2bd769 Mon Sep 17 00:00:00 2001 From: Keenan Lang <klang@aps.anl.gov> Date: Fri, 28 Oct 2016 14:18:16 -0500 Subject: [PATCH] Automatically set P macro when loading scanParms --- iocBoot/iocxxx/common.iocsh | 2 +- .../substitutions/scanParms.substitutions | 143 ++++++++---------- 2 files changed, 68 insertions(+), 77 deletions(-) diff --git a/iocBoot/iocxxx/common.iocsh b/iocBoot/iocxxx/common.iocsh index ac90382..76f82c3 100644 --- a/iocBoot/iocxxx/common.iocsh +++ b/iocBoot/iocxxx/common.iocsh @@ -75,7 +75,7 @@ iocshLoad("$(AUTOSAVE)/iocsh/configMenu.iocsh", "PREFIX=$(PREFIX),CONFIG=scan1") # A set of scan parameters for each positioner. This is a convenience # for the user. It can contain an entry for each scannable thing in the # crate. -dbLoadTemplate("$(PLATFORM)/scanParms.substitutions") +#dbLoadTemplate("substitutions/scanParms.substitutions", "P=$(PREFIX)") ### Stuff for user programming ### iocshLoad("$(CALC)/iocsh/userCalc.iocsh", "PREFIX=$(PREFIX), ARRAY_SIZE=8000") diff --git a/iocBoot/iocxxx/substitutions/scanParms.substitutions b/iocBoot/iocxxx/substitutions/scanParms.substitutions index 668888b..6d07dd7 100644 --- a/iocBoot/iocxxx/substitutions/scanParms.substitutions +++ b/iocBoot/iocxxx/substitutions/scanParms.substitutions @@ -1,99 +1,90 @@ file "$(SSCAN)/sscanApp/Db/scanParms.db" { -{P=xxx:,SCANREC=xxx:scan1,Q=m1,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m2,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m3,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m4,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m5,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m6,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m7,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m8,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m9,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m10,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m11,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m12,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m13,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m14,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m15,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=m16,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m1,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m2,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m3,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m4,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m5,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m6,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m7,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m8,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m9,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m10,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m11,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m12,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m13,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m14,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m15,POS="$(Q).VAL",RDBK="$(Q).RBV"} +{SCANREC=xxx:scan1,Q=m16,POS="$(Q).VAL",RDBK="$(Q).RBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=SM1,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=SM2,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=SM3,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=SM4,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=SM5,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=SM6,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=SM7,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=SM8,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=SM9,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=SM10,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} +{SCANREC=xxx:scan1,Q=SM1,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} +{SCANREC=xxx:scan1,Q=SM2,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} +{SCANREC=xxx:scan1,Q=SM3,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} +{SCANREC=xxx:scan1,Q=SM4,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} +{SCANREC=xxx:scan1,Q=SM5,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} +{SCANREC=xxx:scan1,Q=SM6,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} +{SCANREC=xxx:scan1,Q=SM7,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} +{SCANREC=xxx:scan1,Q=SM8,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} +{SCANREC=xxx:scan1,Q=SM9,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} +{SCANREC=xxx:scan1,Q=SM10,POS="$(Q).DVAL",RDBK="$(Q).DRBV"} -{P=xxx:,SCANREC=xxx:scan1,Q=Table1X,POS=table1.X,RDBK=table1.XRB} -{P=xxx:,SCANREC=xxx:scan1,Q=Table1Y,POS=table1.Y,RDBK=table1.YRB} -{P=xxx:,SCANREC=xxx:scan1,Q=Table1Z,POS=table1.Z,RDBK=table1.ZRB} -{P=xxx:,SCANREC=xxx:scan1,Q=Table1AX,POS=table1.AX,RDBK=table1.AXRB} -{P=xxx:,SCANREC=xxx:scan1,Q=Table1AY,POS=table1.AY,RDBK=table1.AYRB} -{P=xxx:,SCANREC=xxx:scan1,Q=Table1AZ,POS=table1.AZ,RDBK=table1.AZRB} +{SCANREC=xxx:scan1,Q=Table1X,POS=table1.X,RDBK=table1.XRB} +{SCANREC=xxx:scan1,Q=Table1Y,POS=table1.Y,RDBK=table1.YRB} +{SCANREC=xxx:scan1,Q=Table1Z,POS=table1.Z,RDBK=table1.ZRB} +{SCANREC=xxx:scan1,Q=Table1AX,POS=table1.AX,RDBK=table1.AXRB} +{SCANREC=xxx:scan1,Q=Table1AY,POS=table1.AY,RDBK=table1.AYRB} +{SCANREC=xxx:scan1,Q=Table1AZ,POS=table1.AZ,RDBK=table1.AZRB} # Kohzu monochromator -#{P=xxx:,SCANREC=xxx:scan1,Q=BraggE,POS=BraggEAO.VAL,RDBK=BraggERdbkAO.VAL} -#{P=xxx:,SCANREC=xxx:scan1,Q=BraggLambda,POS=BraggLambdaAO.VAL,RDBK=BraggLambdaRdbkAO.VAL} -#{P=xxx:,SCANREC=xxx:scan1,Q=BraggTheta,POS=BraggThetaAO.VAL,RDBK=BraggThetaRdbkAO.VAL} - -# HR monochromator -#{P=xxx:,SCANREC=xxx:scan1,Q=HR1_E,POS=HR1_EAO.VAL,RDBK=HR1_ERdbkAO} -#{P=xxx:,SCANREC=xxx:scan1,Q=HR1_A,POS=HR1_worldOffAO.VAL,RDBK=HR1_worldOffAO.VAL} - -# Spherical grating monochromator -{P=xxx:SGM1:,SCANREC=xxx:scan1,Q=Energy,POS=Energy,RDBK=EnergyRBV} -{P=xxx:SGM1:,SCANREC=xxx:scan1,Q=Lambda,POS=Lambda,RDBK=LambdaRBV} -{P=xxx:SGM1:,SCANREC=xxx:scan1,Q=phi,POS=phi,RDBK=phiRBV} +#{SCANREC=xxx:scan1,Q=BraggE,POS=BraggEAO.VAL,RDBK=BraggERdbkAO.VAL} +#{SCANREC=xxx:scan1,Q=BraggLambda,POS=BraggLambdaAO.VAL,RDBK=BraggLambdaRdbkAO.VAL} +#{SCANREC=xxx:scan1,Q=BraggTheta,POS=BraggThetaAO.VAL,RDBK=BraggThetaRdbkAO.VAL} # multilayer monochromator -{P=xxx:,SCANREC=xxx:scan1,Q=ml_monoE,POS=ml_monoE.VAL,RDBK=ml_monoERdbk.VAL} -{P=xxx:,SCANREC=xxx:scan1,Q=ml_monoLambda,POS=ml_monoLambda.VAL,RDBK=ml_monoLambdaRdbk.VAL} -{P=xxx:,SCANREC=xxx:scan1,Q=ml_monoTheta,POS=ml_monoTheta.VAL,RDBK=ml_monoThetaRdbk.VAL} +{SCANREC=xxx:scan1,Q=ml_monoE,POS=ml_monoE.VAL,RDBK=ml_monoERdbk.VAL} +{SCANREC=xxx:scan1,Q=ml_monoLambda,POS=ml_monoLambda.VAL,RDBK=ml_monoLambdaRdbk.VAL} +{SCANREC=xxx:scan1,Q=ml_monoTheta,POS=ml_monoTheta.VAL,RDBK=ml_monoThetaRdbk.VAL} # Mirror -{P=xxx:,SCANREC=xxx:scan1,Q=M1dn,POS=M1dn,RDBK=M1t2.A} -{P=xxx:,SCANREC=xxx:scan1,Q=M1up,POS=M1up,RDBK=M1t2.B} -{P=xxx:,SCANREC=xxx:scan1,Q=M1angl,POS=M1angl,RDBK=M1t2.C} -{P=xxx:,SCANREC=xxx:scan1,Q=M1avg,POS=M1avg,RDBK=M1t2.D} +{SCANREC=xxx:scan1,Q=M1dn,POS=M1dn,RDBK=M1t2.A} +{SCANREC=xxx:scan1,Q=M1up,POS=M1up,RDBK=M1t2.B} +{SCANREC=xxx:scan1,Q=M1angl,POS=M1angl,RDBK=M1t2.C} +{SCANREC=xxx:scan1,Q=M1avg,POS=M1avg,RDBK=M1t2.D} # old slit -{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hp,POS=Slit1Hxp.VAL,RDBK=Slit1Ht2.A} -{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hn,POS=Slit1Hxn.VAL,RDBK=Slit1Ht2.B} -{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hsize,POS=Slit1Hsize.VAL,RDBK=Slit1Ht2.C} -{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Hcenter,POS=Slit1Hcenter.VAL,RDBK=Slit1Ht2.D} -{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vp,POS=Slit1Vxp.VAL,RDBK=Slit1Vt2.A} -{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vn,POS=Slit1Vxn.VAL,RDBK=Slit1Vt2.B} -{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vsize,POS=Slit1Vsize.VAL,RDBK=Slit1Vt2.C} -{P=xxx:,SCANREC=xxx:scan1,Q=Slit1Vcenter,POS=Slit1Vcenter.VAL,RDBK=Slit1Vt2.D} +{SCANREC=xxx:scan1,Q=Slit1Hp,POS=Slit1Hxp.VAL,RDBK=Slit1Ht2.A} +{SCANREC=xxx:scan1,Q=Slit1Hn,POS=Slit1Hxn.VAL,RDBK=Slit1Ht2.B} +{SCANREC=xxx:scan1,Q=Slit1Hsize,POS=Slit1Hsize.VAL,RDBK=Slit1Ht2.C} +{SCANREC=xxx:scan1,Q=Slit1Hcenter,POS=Slit1Hcenter.VAL,RDBK=Slit1Ht2.D} +{SCANREC=xxx:scan1,Q=Slit1Vp,POS=Slit1Vxp.VAL,RDBK=Slit1Vt2.A} +{SCANREC=xxx:scan1,Q=Slit1Vn,POS=Slit1Vxn.VAL,RDBK=Slit1Vt2.B} +{SCANREC=xxx:scan1,Q=Slit1Vsize,POS=Slit1Vsize.VAL,RDBK=Slit1Vt2.C} +{SCANREC=xxx:scan1,Q=Slit1Vcenter,POS=Slit1Vcenter.VAL,RDBK=Slit1Vt2.D} # XIA slit (macroargs include "Q=hsc1") -{P=xxx:,SCANREC=xxx:scan1,Q=hsc1:width,POS=hsc1:width,RDBK=hsc1:widthRB} -{P=xxx:,SCANREC=xxx:scan1,Q=hsc1:h0,POS=hsc1:h0,RDBK=hsc1:h0RB} -{P=xxx:,SCANREC=xxx:scan1,Q=hsc1:l,POS=hsc1:l,RDBK=hsc1:lRB} -{P=xxx:,SCANREC=xxx:scan1,Q=hsc1:r,POS=hsc1:r,RDBK=hsc1:rRB} -{P=xxx:,SCANREC=xxx:scan1,Q=hsc1:height,POS=hsc1:height,RDBK=hsc1:heightRB} -{P=xxx:,SCANREC=xxx:scan1,Q=hsc1:v0,POS=hsc1:v0,RDBK=hsc1:v0RB} -{P=xxx:,SCANREC=xxx:scan1,Q=hsc1:t,POS=hsc1:t,RDBK=hsc1:tRB} -{P=xxx:,SCANREC=xxx:scan1,Q=hsc1:b,POS=hsc1:b,RDBK=hsc1:bRB} +{SCANREC=xxx:scan1,Q=hsc1:width,POS=hsc1:width,RDBK=hsc1:widthRB} +{SCANREC=xxx:scan1,Q=hsc1:h0,POS=hsc1:h0,RDBK=hsc1:h0RB} +{SCANREC=xxx:scan1,Q=hsc1:l,POS=hsc1:l,RDBK=hsc1:lRB} +{SCANREC=xxx:scan1,Q=hsc1:r,POS=hsc1:r,RDBK=hsc1:rRB} +{SCANREC=xxx:scan1,Q=hsc1:height,POS=hsc1:height,RDBK=hsc1:heightRB} +{SCANREC=xxx:scan1,Q=hsc1:v0,POS=hsc1:v0,RDBK=hsc1:v0RB} +{SCANREC=xxx:scan1,Q=hsc1:t,POS=hsc1:t,RDBK=hsc1:tRB} +{SCANREC=xxx:scan1,Q=hsc1:b,POS=hsc1:b,RDBK=hsc1:bRB} # new soft-motor-based slit -#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Hxn,POS="$(Q).VAL",RDBK="$(Q).RBV"} -#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Hxp,POS="$(Q).VAL",RDBK="$(Q).RBV"} -#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Hsize,POS="$(Q).VAL",RDBK="$(Q).RBV"} -#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Hcenter,POS="$(Q).VAL",RDBK="$(Q).RBV"} -#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Vxn,POS="$(Q).VAL",RDBK="$(Q).RBV"} -#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Vxp,POS="$(Q).VAL",RDBK="$(Q).RBV"} -#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Vsize,POS="$(Q).VAL",RDBK="$(Q).RBV"} -#{P=xxx:,SCANREC=xxx:scan1,Q=Slit2Vcenter,POS="$(Q).VAL",RDBK="$(Q).RBV"} +#{SCANREC=xxx:scan1,Q=Slit2Hxn,POS="$(Q).VAL",RDBK="$(Q).RBV"} +#{SCANREC=xxx:scan1,Q=Slit2Hxp,POS="$(Q).VAL",RDBK="$(Q).RBV"} +#{SCANREC=xxx:scan1,Q=Slit2Hsize,POS="$(Q).VAL",RDBK="$(Q).RBV"} +#{SCANREC=xxx:scan1,Q=Slit2Hcenter,POS="$(Q).VAL",RDBK="$(Q).RBV"} +#{SCANREC=xxx:scan1,Q=Slit2Vxn,POS="$(Q).VAL",RDBK="$(Q).RBV"} +#{SCANREC=xxx:scan1,Q=Slit2Vxp,POS="$(Q).VAL",RDBK="$(Q).RBV"} +#{SCANREC=xxx:scan1,Q=Slit2Vsize,POS="$(Q).VAL",RDBK="$(Q).RBV"} +#{SCANREC=xxx:scan1,Q=Slit2Vcenter,POS="$(Q).VAL",RDBK="$(Q).RBV"} } file "$(SSCAN)/sscanApp/Db/scanParms2Pos.db" { -{P=xxx:,SCANREC=xxx:scan1,Q=m7_8,POS1=xxx:m7.VAL,RDBK1=xxx:m7.RBV,POS2=xxx:m8.VAL,RDBK2=xxx:m8.RBV} +{SCANREC=xxx:scan1,Q=m7_8,POS1=xxx:m7.VAL,RDBK1=xxx:m7.RBV,POS2=xxx:m8.VAL,RDBK2=xxx:m8.RBV} } -- GitLab