diff --git a/site_ansto/instrument/hrpd/hrpd_configuration.tcl b/site_ansto/instrument/hrpd/hrpd_configuration.tcl index d07d183e..5b57830b 100644 --- a/site_ansto/instrument/hrpd/hrpd_configuration.tcl +++ b/site_ansto/instrument/hrpd/hrpd_configuration.tcl @@ -1,5 +1,5 @@ -# $Revision: 1.1 $ -# $Date: 2006-05-08 22:31:50 $ +# $Revision: 1.2 $ +# $Date: 2006-05-09 05:08:50 $ # Author: Ferdi Franceschini (ffr@ansto.gov.au) # Last revision by: $Author: ffr $ @@ -472,7 +472,7 @@ proc SplitReply { text } { set l [split $text =] return [lindex $l 1] } -# virtual motor d1(h)orizontal (width) +# virtual motor ss1(h)orizontal (width) #-------------------------------------------------------- proc widthscript {val} { set currentWidth [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] @@ -487,11 +487,35 @@ proc readwidth {} { return [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] } publish readwidth user -#------------------------------------------------------- MakeConfigurableMotor ss1hg ss1hg drivescript widthscript ss1hg readscript readwidth -# virtual motor d1v(ertical), height + +# virtual motor ss1(h)orizontal (offset) +#-------------------------------------------------------- +proc horoffsetscript {val} { + set SR [SplitReply [ss1r]] + set SL [SplitReply [ss1l]] + set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1R [expr $SR + $diff] + set newD1L [expr $SL - $diff] + return "ss1r=$newD1R,ss1l=$newD1L" +} +publish horoffsetscript user +#------------------------------------------------------- +proc readhoroffset {} { + set SR [SplitReply [ss1r]] + return [ expr $SR - ($SR + [SplitReply [ss1l]])/2.0 ] +} +publish readhoroffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss1ho +ss1ho drivescript horoffsetscript +ss1ho readscript readhoroffset + +# virtual motor ss1v(ertical), height #----------------------------------------------------- proc heightscript {val} { set currentWidth [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] @@ -511,3 +535,26 @@ MakeConfigurableMotor ss1vg ss1vg drivescript heightscript ss1vg readscript readheight +# virtual motor ss1(v)ertical (offset) +#-------------------------------------------------------- +proc vertoffsetscript {val} { + set SU [SplitReply [ss1u]] + set SD [SplitReply [ss1d]] + set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1U [expr $SU + $diff] + set newD1D [expr $SD - $diff] + return "ss1u=$newD1U,ss1d=$newD1D" +} +publish vertoffsetscript user +#------------------------------------------------------- +proc readvertoffset {} { + set SU [SplitReply [ss1u]] + return [ expr $SU - ($SU + [SplitReply [ss1d]])/2.0 ] +} +publish readvertoffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss1vo +ss1vo drivescript vertoffsetscript +ss1vo readscript readvertoffset