The following lines, which a part of /online_dir/TkIrc.pl, create a widget to operate the Perkin ELmer detector:
$Spc::res_h{ blsc} = "pe";
$Spc::res_h{ pe_help} = sub
{
Util::display_text( "Help Perkin Elmer",
'
SummedSavedImages
set by perkinElmer_start(), is a function of sampleTime (scan parameter),
ExposureTime and FilesAfterTrigger
ExposureTime
used by perkinElmer_start() to calculate ExposureTime
FilesAfterTrigger
used by perkinElmer_start() to calculate ExposureTime
eval [Spectra::perkinElmer_singleShot( "pe_detector", "fname", 1, 2)]
executes a PE sequence. The SampleTime is 1s, the image index is 2.
sets the attribute SummedSavedImages
SummedSavedImages = ceil(sampleTime/ExposureTime/FilesAfterTrigger)
executes the command AcquireSubtractedImagesAndSave
'
)};
$Spc::res_h{ pe_title } = { text => "Perkin Elmer Detector"};
$Spc::res_h{ pe_io1 } = { label => { name => "OutputDirectory",
get => sub {Spectra::tng_attrStringRd( "pe_detector", "OutputDirectory");}},
entry => { set => sub {Spectra::tng_attrStringWrt( "pe_detector", "OutputDirectory", $_[0]);}}};
$Spc::res_h{ pe_io2 } = { label => { name => "FilePattern",
get => sub {Spectra::tng_attrStringRd( "pe_detector", "FilePattern");}},
entry => { set => sub {Spectra::tng_attrStringWrt( "pe_detector", "FilePattern", $_[0]);}}};
$Spc::res_h{ pe_io3 } = { label => { name => "FileIndex",
get => sub {Spectra::tng_attrLongRd( "pe_detector", "FileIndex");}},
entry => { set => sub {Spectra::tng_attrLongWrt( "pe_detector", "FileIndex", $_[0]);}}};
$Spc::res_h{ pe_io4 } = { label => { name => "SummedDarkImages",
get => sub {Spectra::tng_attrLongRd( "pe_detector", "SummedDarkImages");}},
entry => { set => sub {Spectra::tng_attrLongWrt( "pe_detector", "SummedDarkImages", $_[0]);}}};
$Spc::res_h{ pe_io5 } = { label => { name => "SummedSavedImages",
get => sub {Spectra::tng_attrLongRd( "pe_detector", "SummedSaveImages");}},
entry => { set => sub {Spectra::tng_attrLongWrt( "pe_detector", "SummedSaveImages", $_[0]);}}};
$Spc::res_h{ pe_io6 } = { label => { name => "BinningMode",
get => sub {Spectra::tng_attrLongRd( "pe_detector", "BinningMode");}},
entry => { set => sub {Spectra::tng_attrLongWrt( "pe_detector", "BinningMode", $_[0]);}}};
$Spc::res_h{ pe_io7 } = { label => { name => "CameraGain",
get => sub {Spectra::tng_attrFloatRd( "pe_detector", "CameraGain");}},
entry => { set => sub {Spectra::tng_attrFloatWrt( "pe_detector", "CameraGain", $_[0]);}}};
$Spc::res_h{ pe_io8 } = { label => { name => "ExposureTime",
get => sub { sprintf( "%g", Spectra::tng_attrFloatRd( "pe_detector", "ExposureTime"));}},
entry => { set => sub {Spectra::tng_attrFloatWrt( "pe_detector", "ExposureTime", $_[0]);}}};
$Spc::res_h{ pe_io9 } = { label => { name => "FilesBeforeTrigger",
get => sub {Spectra::tng_attrLongRd( "pe_detector", "FilesBeforeTrigger");}},
entry => { set => sub {Spectra::tng_attrLongWrt( "pe_detector", "FilesBeforeTrigger", $_[0]);}}};
$Spc::res_h{ pe_io10 } = { label => { name => "FilesAfterTrigger",
get => sub {Spectra::tng_attrLongRd( "pe_detector", "FilesAfterTrigger");}},
entry => { set => sub {Spectra::tng_attrLongWrt( "pe_detector", "FilesAfterTrigger", $_[0]);}}};
$Spc::res_h{ pe_io11 } = { label => { name => "State",
get => sub {Spectra::tng_state( "pe_detector");}}};
$Spc::res_h{ pe_b1} = { name => "AcqDark",
command => sub { Spectra::tng_inout( "pe_detector", "AcquireDarkImages");}};
$Spc::res_h{ pe_b2} = { name => "AcqDarkSave",
command => sub { Spectra::tng_inout( "pe_detector", "AcquireDarkImagesAndSave");}};
$Spc::res_h{ pe_b3} = { name => "AcqRaw",
command => sub { Spectra::tng_inout( "pe_detector", "AcquireRawImages");}};
$Spc::res_h{ pe_b4} = { name => "AcqRawSave",
command => sub { Spectra::tng_inout( "pe_detector", "AcquireRawImagesAndSave");}};
$Spc::res_h{ pe_b5} = { name => "AcqSub",
command => sub { Spectra::tng_inout( "pe_detector", "AcquireSubtractedImages");}};
$Spc::res_h{ pe_b6} = { name => "AcqSubSave",
command => sub { Spectra::tng_inout( "pe_detector", "AcquireSubtractedImagesAndSave");}};
$Spc::res_h{ pe_b7} = { name => "UpdRdOutSttngs",
command => sub { Spectra::tng_inout( "pe_detector", "UpdateReadoutSettings");}};
$Spc::res_h{ pe_b8} = { name => "OSH",
command => sub { Util::log( "open the shutter");}};
$Spc::res_h{ pe_b9} = { name => "CSH",
command => sub { Util::log( "close the shutter");}};
$Spc::res_h{ pe_b10} = { name => "Measure",
command => sub { Util::log( "This is a measurment sequence");}};