This section contains the Perl functions the operate the diffractometer server:
#
# read the angles
#
my ( $mu, $omega, $chi, $phi, $gamma, $delta) = Spectra::angles();
#
# read hkl and psi
#
my ($h, $k, $l, $psi) = Spectra::hkl();
#
# move several angles
#
Spectra::angles( mu => $mu,
omega => $omega,
chi => $chi,
phi => $phi,
gamma => $gamma,
delta => $delta);
#
# read single angles
#
$mu = Spectra::mu();
$omega = Spectra::omega();
$chi = Spectra::chi();
$phi = Spectra::phi();
$gamma = Spectra::gamma();
$delta = Spectra::delta();
#
# move single angles
#
Spectra::mu( $mu);
Spectra::omega( $omega);
Spectra::chi( $chi);
Spectra::phi( $phi);
Spectra::gamma( $gamma);
Spectra::delta( $delta);
#
# read hkl and psi individually
#
$h = Spectra::h();
$k = Spectra::k();
$l = Spectra::l();
$psi = Spectra::psi();
#
# or
#
$h = Spectra::hkl( "h");
$k = Spectra::hkl( "k");
$l = Spectra::hkl( "l");
$psi = Spectra::hkl( "psi");
#
# move hkl and psi individually
#
Spectra::h( $h);
Spectra::k( $k);
Spectra::l( $l);
Spectra::psi( $psi);
#
# move hkl and psi
#
Spectra::hkl( h => $h, k => $k, l => $l, psi => $psi);
#
# hkl scan
#
Spectra::scan( type => "hkl",
start_hkl => [1, 1, 0],
stop_hkl => [1.1, 1.2, 0],
sample_time => 0.1,
np => 11);
#
# h scan
#
Spectra::scan( type => "hkl",
start_h => 1,
stop_h => 3,
sample_time => 0.1,
np => 11);
#
# angle scans
# diff_mu, diff_omega, diff_chi, diff_phi, diff_gamma, diff_delta
#
Spectra::scan( type => "diff_mu",
start => 1,
stop => 3,
sample_time => 0.1,
np => 11);
#
# scan reflection
#
Spectra::scan( type => "reflection",
auto_filter => 0,
centering_order => "moc",
coarse => 0,
np_scan => 11,
nobackground_subtraction => 0,
range_mu => 0.5,
range_omega => 0.5,
range_chi => 0.5,
store => 1);