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