PCO4000 Detector

This section displays the beamline spefici code for the PCO4000 and the resulting widget.

$Spc::res_h{ blsc} = "pco4000";
$Spc::res_h{ pco4000_title} = { text => "PCO4000"}; 

$Spc::res_h{ "pco4000_io1"} = { 
    label => { name => "ExposureTime [s]", 
               get => sub { Spectra::tng_attrDoubleRd( "pco4000", "ExposureTime");},
               unit => ""},
     entry => { set => sub { while(Spectra::tng_state( "pco4000") == 10) # Wait Pco4000 to finish
			                 {
				               Spectra::wait(0.1);
			                 }
			                 Spectra::tng_state( "pco4000");
			                 Spectra::tng_attrDoubleWrt( "pco4000", "ExposureTime", $_[0]);}}};
$Spc::res_h{ "pco4000_io2"} = { 
    label => { name => "FilePrefix", 
	           get => sub { my $ret = Spectra::tng_attrStringRd( "pco4000", "FilePrefix");
			                return $ret;},
	           unit =>  ""},
    entry => { set => sub { while(Spectra::tng_state( "pco4000") == 10) # Wait Pco4000 to finish
			                {
				              Spectra::wait(0.1);
			                }
			                Spectra::tng_state( "pco4000");
			                Spectra::tng_attrStringWrt( "pco4000", "FilePrefix", $_[0]);}}};
$Spc::res_h{ "pco4000_io3"} = { 
    label => { name => "FilePostfix", 
	           get => sub { my $ret = Spectra::tng_attrStringRd( "pco4000", "FilePostfix");
			              return $ret;}, 
                unit =>  ""},
    entry => { set => sub { while(Spectra::tng_state( "pco4000") == 10) # Wait Pco4000 to finish
			                {
				              Spectra::wait(0.1);
			                }
			                Spectra::tng_state( "pco4000");
                            Spectra::tng_attrStringWrt( "pco4000", "FilePostfix",$_[0] );}}};
$Spc::res_h{ "pco4000_io4"} = { 
    label => { name => "FileStartNum", 
	           get => sub { my $ret = Spectra::tng_attrLongRd( "pco4000", "FileStartNum");
			                return $ret;},
               unit =>  ""},
     entry => { set => sub { while(Spectra::tng_state( "pco4000") == 10) # Wait Pco4000 to finish
			                 {
				               Spectra::wait(0.1);
			                 }
			                 Spectra::tng_state( "pco4000");
                             Spectra::tng_attrLongWrt( "pco4000", "FileStartNum", $_[0]);}}};
$Spc::res_h{ "pco4000_io5"} = { 
    label => { name => "State", 
	           get => sub { my $ret = Spectra::tng_state( "pco4000");}}}; 

$Spc::res_h{ "pco4000_io6"} = { 
    label => { name => "TriggerMode", 
               get => sub { Spectra::tng_attrShortRd( "pco4000", "Triggermode");},
               unit => ""},
    entry => { set => sub { while(Spectra::tng_state( "pco4000") == 10) # Wait Pco4000 to finish
			                {
				              Spectra::wait(0.1);
			                }
			                Spectra::tng_state( "pco4000");
		                    Spectra::tng_attrShortWrt( "pco4000", "Triggermode", $_[0]);}}};
$Spc::res_h{ "pco4000_io7"} = { 
    label => { name => "FileDir", 
	           width => 30, 
	           get => sub { Spectra::tng_state( "pco4000");
		                    Spectra::tng_attrStringRd( "pco4000", "FileDir");},
               unit => ""},
    entry => { set => sub { while(Spectra::tng_state( "pco4000") == 10) # Wait Pco4000 to finish
			                {
				              Spectra::wait(0.1);
			                }
			                Spectra::tng_state( "pco4000");
                            Spectra::tng_attrStringWrt( "pco4000", "FileDir", $_[0]);}}};       
$Spc::res_h{ "pco4000_io8"} = { 
    label => { name => "FileSaving", 
	           get => sub { Spectra::tng_state( "pco4000");
		                    Spectra::tng_attrBoolRd( "pco4000", "FileSaving");},
               unit => ""},
     entry => { set => sub { while(Spectra::tng_state( "pco4000") == 10) # Wait Pco4000 to finish
			                 {
				               Spectra::wait(0.1);
			                 }
			                 Spectra::tng_state( "pco4000");
                             Spectra::tng_attrBoolWrt( "pco4000", "FileSaving", $_[0]);}}};       
$Spc::res_h{ "pco4000_io9"} = { 
    label => { name => "Binning_x", 
	           get => sub { my $ret = Spectra::tng_attrShortRd( "pco4000", "Binning_x");
			                return $ret;},
               unit =>  ""},
     entry => { set => sub { while(Spectra::tng_state( "pco4000") == 10) # Wait Pco4000 to finish
			                 {
				               Spectra::wait(0.1);
			                 }
			                 Spectra::tng_state( "pco4000");
                             Spectra::tng_attrShortWrt( "pco4000", "Binning_x", $_[0]);}}};
$Spc::res_h{ "pco4000_io10"} = { 
    label => { name => "Binning_y", 
	           get => sub { my $ret = Spectra::tng_attrShortRd( "pco4000", "Binning_y");
			                return $ret;},
               unit =>  ""},
     entry => { set => sub { while(Spectra::tng_state( "pco4000") == 10) # Wait Pco4000 to finish
			                 {
				               Spectra::wait(0.1);
			                 }
			                 Spectra::tng_state( "pco4000");
                             Spectra::tng_attrShortWrt( "pco4000", "Binning_y", $_[0]);}}};
$Spc::res_h{ "pco4000_io11"} = { 
    label => { name => "ADCs", 
	           get => sub { my $ret = Spectra::tng_attrShortRd( "pco4000", "ADCs");
			                return $ret;},
               unit =>  ""},
    entry => { set => sub { while(Spectra::tng_state( "pco4000") == 10) # Wait Pco4000 to finish
			                {
				              Spectra::wait(0.1);
			                }
			                Spectra::tng_state( "pco4000");
                            Spectra::tng_attrShortWrt( "pco4000", "ADCs", $_[0]);}}};

$Spc::res_h{ pco4000_b1} = { name => "Start", #Wait for pco4000 to stop before starting
                             command => sub { while(Spectra::tng_state( "pco4000") == 10)
					                          {
					                            Spectra::wait(0.1);
					                          }
					                          Spectra::tng_inout( "pco4000", "StartStandardAcq");}};
$Spc::res_h{ pco4000_b2} = { name => "Stop", 
                             command => sub { Spectra::tng_inout( "pco4000", "StopAcq");}};
$Spc::res_h{ pco4000_b3} = { name => "Reset", 
                             command => sub { Spectra::tng_inout( "pco4000", "Reset");}};
$Spc::res_h{ pco4000_b4} = { name => "Live", 
                             command => sub { Spectra::tng_inout( "pco4000", "Live");}};

Figure 14.23: BLSC: Pco4000
Image blsc_pco4000