In the following piece of code motor objects are created
(Motor->locate())
and references to these objects are stored
in the symbols $m11 and $m12.
These symbols allow us to address the motor parameters
using the methods get() and set().
#!/usr/bin/perl
#
# stepping motor example, OO style
#
$m11 = Motor->locate( name => "mot11");
$m12 = Motor->locate( name => "mot12");
#
# fetch motor parameters
#
print "\n";
print " name " . $m12->get( "name") . "\n";
print " Position " . $m12->get( "position") . "\n";
print " Accel " . $m12->get( "acceleration") . "\n";
print " Base " . $m12->get( "base") . "\n";
print " Slew " . $m12->get( "slew") . "\n";
print " Settle time " . $m12->get( "settle_time") . "\n";
print " Unit_backlash " . $m12->get( "unit_backlash") . "\n";
print " Unit_limit_min " . $m12->get( "unit_limit_min") . "\n";
print " Unit_limit_max " . $m12->get( "unit_limit_max") . "\n";
print " Step_limit_min " . $m12->get( "step_limit_min") . "\n";
print " Step_limit_max " . $m12->get( "step_limit_max") . "\n";
print " Step_register_controller " . $m12->get( "step_register_controller") . "\n";
print " Step_register_internal " . $m12->get( "step_register_internal") . "\n";
print " Ramp_units " . $m12->get( "ramp_units") . "\n";
print " Ramp_steps " . $m12->get( "ramp_steps") . "\n";
print " Moving " . $m12->get( "moving") . "\n";
print " Move time " . $m12->get( " move_time => "$units") . "\n";
#
# fetch the current positions of mot11 and mot12
#
$pos11 = $m11->get( "position");
$pos12 = $m12->get( "position");
#
$new_pos11 = $pos11 + 1;
$new_pos12 = $pos12 + 1;
#
$m11->set(position => $new_pos1);
$m12->set(position => $new_pos2);
#
# and move them back, one after the other
#
$m11->set(position => $pos11);
$m12->set(position => $pos12);
#
# or simultaneously
#
$ret = move( "mot11" => $new_pos11,
"mot12" => $new_pos12);
#
# single step moves, 'right' is equivalent to 'down'
#
$m12->set( step_down => 'yes');
$m12->set( step_left => 'yes');
$m12->set( step_right => 'yes');
$m12->set( step_up => 'yes');
#
# setting motor parameters
#
$m12->set( acceleration => 200000);
$m12->set( base => 20);
$m12->set( slew => 20000);
$m12->set( settle_time => 0.2);
$m12->set( unit_backlash => 0.5);
$m12->set( unit_limit_min => "...");
$m12->set( unit_limit_max => "...");
$m12->set( step_limit_min => "...");
$m12->set( step_limit_max => "...");
$m12->set( step_register => "...");
#
# calibration
#
$m12->set( position_calibrate => "...");
$m12->set( position_calibrate => "...",
noconfirm => "yes");