This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
# Library loading and Hardware setup
|
||||
###################################################################################################
|
||||
|
||||
#1- Create a MontorGroup with the diffractometer motors
|
||||
#1- Create a MotorGroup with the diffractometer motors
|
||||
# e.g. 'sixc', containing mu, delta, gam, eta, chi, phi motors (gam = nu)
|
||||
# or 'fivec', containing delta, gam, eta, chi, phi motors
|
||||
# or 'fourc', containing delta, eta, chi, phi motors
|
||||
@@ -35,7 +35,7 @@ if not diffcalc_path in sys.path:
|
||||
|
||||
import diffcalc
|
||||
from diffcalc import settings
|
||||
from diffcalc.hkl.you.geometry import SixCircle, FiveCircle, FourCircle
|
||||
from diffcalc.hkl.you.geometry import YouGeometry,SixCircle, FiveCircle, FourCircle, YouPosition
|
||||
from diffcalc.hardware import HardwareAdapter
|
||||
from diffcalc.ub.persistence import UbCalculationNonPersister
|
||||
from diffcalc.gdasupport.minigda.scannable import ScannableBase, ScannableGroup
|
||||
@@ -80,31 +80,13 @@ class PositionerScannable(ScannableBase):
|
||||
class PositionerScannableGroup(ScannableGroup):
|
||||
def __init__(self, name, motors):
|
||||
self.name = name
|
||||
if len(motors)==6:
|
||||
[mu, delta, gam, eta, chi, phi] = motors
|
||||
self.mu = PositionerScannable(mu, "mu")
|
||||
self.delta = PositionerScannable(delta, "delta")
|
||||
self.gam = PositionerScannable(gam, "gam")
|
||||
self.eta = PositionerScannable(eta, "eta")
|
||||
self.chi = PositionerScannable(chi, "chi")
|
||||
self.phi = PositionerScannable(phi, "phi")
|
||||
ScannableGroup.__init__(self, self.name, [self.mu, self.delta, self.gam, self.eta, self.chi, self.phi])
|
||||
elif len(motors)==5:
|
||||
[delta, gam, eta, chi, phi] = motors
|
||||
self.delta = PositionerScannable(delta, "delta")
|
||||
self.gam = PositionerScannable(gam, "gam")
|
||||
self.eta = PositionerScannable(eta, "eta")
|
||||
self.chi = PositionerScannable(chi, "chi")
|
||||
self.phi = PositionerScannable(phi, "phi")
|
||||
ScannableGroup.__init__(self, self.name, [self.delta, self.gam, self.eta, self.chi, self.phi])
|
||||
elif len(motors)==4:
|
||||
[delta, eta, chi, phi] = motors
|
||||
self.delta = PositionerScannable(delta, "delta")
|
||||
self.eta = PositionerScannable(eta, "eta")
|
||||
self.chi = PositionerScannable(chi, "chi")
|
||||
self.phi = PositionerScannable(phi, "phi")
|
||||
ScannableGroup.__init__(self, self.name, [self.delta, self.eta, self.chi, self.phi])
|
||||
|
||||
print self.getInputNames()
|
||||
positioners = []
|
||||
for m in motors:
|
||||
exec('self.' + m.name + ' = PositionerScannable(' + m.name + ', "' + m.name + '")')
|
||||
exec('positioners.append(self.' + m.name + ')' )
|
||||
ScannableGroup.__init__(self, self.name, positioners)
|
||||
|
||||
class MotorGroupScannable(PositionerScannableGroup):
|
||||
def __init__(self, motor_group):
|
||||
self.motor_group = motor_group
|
||||
@@ -223,18 +205,21 @@ class HklGroup(RegisterBase, Register.RegisterArray):
|
||||
you = None
|
||||
dc, ub, hardware, hkl = None, None, None, None
|
||||
_motor_group = None
|
||||
def setup_diff(diffractometer, energy):
|
||||
def setup_diff(diffractometer, energy, geometry=None):
|
||||
"""
|
||||
diffractometer: Motor group containing:
|
||||
- mu, delta, gam, eta, chi, phi (six circle) or
|
||||
- delta, gam, eta, chi, phi (ficve circle) or
|
||||
- delta, eta, chi, phi (four circle)
|
||||
energy: Positioner having energy in kev
|
||||
geometry: YouGeometry extension. If none, uses default
|
||||
"""
|
||||
global you, dc, ub, hardware, hkl, _motor_group
|
||||
_motor_group = diffractometer
|
||||
you =None
|
||||
if len(diffractometer.motors) == 6:
|
||||
you = None
|
||||
if geometry is not None:
|
||||
settings.geometry = geometry
|
||||
elif len(diffractometer.motors) == 6:
|
||||
settings.geometry = SixCircle()
|
||||
elif len(diffractometer.motors) == 5:
|
||||
settings.geometry = FiveCircle()
|
||||
@@ -348,14 +333,14 @@ def hklscan(vector, readables,latency = 0.0, passes = 1, **pars):
|
||||
return scan.result
|
||||
|
||||
|
||||
def test_difcalc():
|
||||
def test_diffcalc():
|
||||
en.move(20.0)
|
||||
delta.config.maxSpeed = 50.0
|
||||
delta.speed = 50.0
|
||||
delta.move(1.0)
|
||||
|
||||
#Setup
|
||||
setup_sixc(sixc, en)
|
||||
setup_diff(sixc, en)
|
||||
setup_axis('gam', 0, 179)
|
||||
setup_axis('delta', 0, 179)
|
||||
setup_axis('delta', min=0)
|
||||
|
||||
@@ -77,6 +77,7 @@ hkl_group.sim([0.0,1.0,1.0])
|
||||
hkl_group.write([0.0,1.0,1.0])
|
||||
|
||||
|
||||
|
||||
###################################################################################################\
|
||||
#Scans
|
||||
###################################################################################################
|
||||
|
||||
Reference in New Issue
Block a user