grecord(ao,"$(P)sample") {
field(DTYP,"Soft Channel")
field(OUT,"$(P)sampleWheelMove.A PP MS")
field(DOL,"0")
field(DRVH,"84")
field(DRVL,"1")
field(HOPR,"84")
field(LOPR,"1")
}
grecord(ao,"$(P)sampleHorizOffset") {
field(DTYP,"Soft Channel")
field(FLNK,"$(P)sampleWheelMove.VAL PP MS")
field(OUT,"0")
field(DOL,"0")
field(PREC,"3")
field(EGU,"mm")
field(DRVH,"10")
field(DRVL,"-10")
field(HOPR,"0")
field(LOPR,"0")
}
grecord(ao,"$(P)sampleSweepSize") {
field(DTYP,"Soft Channel")
field(DOL,"0")
field(PREC,"3")
field(EGU,"mm")
field(DRVH,"10")
field(DRVL,"-10")
field(HOPR,"0")
field(LOPR,"0")
}
grecord(ao,"$(P)sampleVertOffset") {
field(DTYP,"Soft Channel")
field(FLNK,"$(P)sampleWheelMove.VAL PP MS")
field(OUT,"0")
field(DOL,"0")
field(PREC,"3")
field(EGU,"mm")
field(DRVH,"10")
field(DRVL,"-10")
field(HOPR,"0")
field(LOPR,"0")
}
grecord(transform,"$(P)sampleSweepSet") {
field(CLCB,"nint(min(84,max(a,1)))")
field(CLCD,"82.55 - (b<31?0:b<55?1:b<73?2:3)")
field(CLCE,"2*atan((i/2)/d)*r2d")
field(CLCJ,"-i/2")
field(CLCK,"b")
field(CLCL,"(e-h*g)/max(f-g,0.1)")
field(CLCP,"i")
field(INPC,"$(ANGLEMOTOR).VMAX NPP NMS")
field(INPF,"$(P)mca1.PRTM NPP NMS")
field(INPG,"$(ANGLEMOTOR).ACCL NPP NMS")
field(INPH,"$(ANGLEMOTOR).VBAS NPP NMS")
field(INPI,"$(P)sampleSweepSize.VAL NPP NMS")
field(INPN,"1")
field(INPO,"2")
field(OUTC,"$(ANGLEMOTOR).VELO PP MS")
field(OUTJ,"$(P)sampleVertOffset.VAL NPP MS")
field(OUTK,"$(P)sample.VAL PP MS")
field(OUTL,"$(ANGLEMOTOR).VELO NPP NMS")
field(OUTM,"$(P)scanH.P1SP NPP NMS")
field(OUTN,"$(P)scanH.P1AR NPP NMS")
field(OUTO,"$(P)scanH.P1SM NPP NMS")
field(OUTP,"$(P)scanH.P1EP NPP NMS")
field(PREC,"3")
field(CMTA,"req sample num")
field(CMTB,"sample num")
field(CMTC,"default speed")
field(CMTD,"radius of row")
field(CMTE,"sweep angle")
field(CMTF,"dwell time")
field(CMTG,"accel time")
field(CMTH,"base speed")
field(CMTI,"sweep distance")
field(CMTJ,"V offset")
field(CMTK,"sample put")
field(CMTL,"sweep speed")
field(CMTM,"Hscan start")
field(CMTN,"Hscan abs/rel")
field(CMTO,"Hscan mode")
field(CMTP,"sweep half-distance")
}
grecord(transform,"$(P)sampleTweak") {
field(CLCD,"a?c+1:b?c-1:c")
field(CLCE,"0")
field(CLCF,"0")
field(INPC,"$(P)sample.VAL NPP NMS")
field(OUTD,"$(P)sample.VAL PP MS")
field(OUTE,"$(P)sampleTweak.B NPP NMS")
field(OUTF,"$(P)sampleTweak.A NPP NMS")
}
grecord(transform,"$(P)sampleWheelCalc") {
field(PINI,"YES")
field(CLCC,"min(3,max(0,nint(a/19.05)))")
field(CLCD,"c==0?nint(b/12)+1:0")
field(CLCE,"c==1?nint(b/15)+31:0")
field(CLCF,"c==2?nint(b/20)+55:0")
field(CLCG,"c==3?nint(b/30)+73:0")
field(CLCH,"d+e+f+g")
field(INPA,"$(ROWMOTOR).RBV CP NMS")
field(INPB,"$(ANGLEMOTOR).RBV CP NMS")
field(OUTH,"$(P)sample.VAL PP MS")
field(PREC,"3")
field(CMTA,"row motor position")
field(CMTB,"angle motor position")
}
grecord(transform,"$(P)sampleWheelMove") {
field(DESC,"sample num --> motors")
field(SDIS,"$(P)sampleWheelCalc.PACT NPP MS")
field(CLCB,"nint(min(84,max(a,1)))")
field(CLCC,"b<31?0:b<55?1:b<73?2:3")
field(CLCD,"c*19.05+L")
field(CLCE,"c==0?(b-1)*12:0")
field(CLCF,"c==1?(b-31)*15:0")
field(CLCG,"c==2?(b-55)*20:0")
field(CLCH,"c==3?(b-73)*30:0")
field(CLCJ,"atan(i/(82.55-c))*r2d")
field(CLCK,"e+f+g+h+j")
field(INPI,"$(P)sampleVertOffset.VAL NPP MS")
field(INPL,"$(P)sampleHorizOffset.VAL NPP MS")
field(OUTD,"$(ROWMOTOR).VAL PP MS")
field(OUTI,"0")
field(OUTK,"$(ANGLEMOTOR).VAL PP MS")
field(PREC,"3")
field(CMTA,"requested sample num")
field(CMTB,"sample num")
field(CMTC,"row num")
field(CMTD,"row motor")
field(CMTE,"if row 0")
field(CMTF,"if row 1")
field(CMTG,"if row 2")
field(CMTH,"if row 3")
field(CMTI,"vert offset")
field(CMTJ,"angle offset")
field(CMTK,"angle motor")
field(CMTL,"horiz offset")
}