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");}};