Added vertical and horizontal offset virtual motors for slits.

r988 | ffr | 2006-05-09 15:08:50 +1000 (Tue, 09 May 2006) | 2 lines
This commit is contained in:
Ferdi Franceschini
2006-05-09 15:08:50 +10:00
committed by Douglas Clowes
parent ace9b91a96
commit f30988ab02

View File

@@ -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