The following lines which are part of /online_dir/TkIrc.pl create a widget to operate the MotorMask of a MultipleMotor.
$Spc::res_h{ blsc} = "momu";
#
#
#
#
$Spc::res_h{ mumo_title} = { text => "MultipleMotors"};
$Spc::res_h{ mumo_help} = sub
{
Util::display_text( "Help MC",
'
Some Help text
'
)};
$Spc::res_h{ mumo_cmpnd} = { name => "mnchrmtr", unit => "eV"};
$Spc::res_h{ mumo_io1} = {
label => { name => "Analyzer"},
checkbutton => { name => "Enable",
set_on => sub {
my $msk = Spectra::tng_attrLongRd( "mnchrmtr", "MotorMask");
$msk |= 1;
Spectra::tng_attrLongWrt( "mnchrmtr", "MotorMask", $msk);},
set_off => sub {
my $msk = Spectra::tng_attrLongRd( "mnchrmtr", "MotorMask");
$msk &= ~1;
Spectra::tng_attrLongWrt( "mnchrmtr", "MotorMask", $msk);},
get => sub {
my $msk = Spectra::tng_attrLongRd( "mnchrmtr", "MotorMask");
if( $msk & 1)
{
return 1;
}
else
{
return 0;
}}}};
$Spc::res_h{ mumo_io2} = {
label => { name => "Undulator"},
checkbutton => { name => "Enable",
set_on => sub {
my $msk = Spectra::tng_attrLongRd( "mnchrmtr", "MotorMask");
$msk |= 2;
Spectra::tng_attrLongWrt( "mnchrmtr", "MotorMask", $msk);},
set_off => sub {
my $msk = Spectra::tng_attrLongRd( "mnchrmtr", "MotorMask");
$msk &= ~2;
Spectra::tng_attrLongWrt( "mnchrmtr", "MotorMask", $msk);},
get => sub {
my $msk = Spectra::tng_attrLongRd( "mnchrmtr", "MotorMask");
if( $msk & 2)
{
return 1;
}
else
{
return 0;
}}}};
#
# the motors
#
$Spc::res_h{ mumo_m1} = { name => "EnergyFMB", unit => "eV"};
$Spc::res_h{ mumo_m2} = { name => "Analyzer", unit => "eV"};
$Spc::res_h{ mumo_m3} = { name => "Undulator", unit => "eV"};