Perkin Elmer Detector

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

Figure 14.20: BLSC: Perkin Elmer Detector, P02
Image blsc_perkinElmer