std-rs 0.9.2

Rust port of EPICS std module (epid, throttle, timestamp records)
Documentation
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")
}