The following lines which are part of /online_dir/TkIrc.pl create a widget to operate the Photonic Science Camera.
$Spc::res_h{ blsc} = "pscamera"; $Spc::res_h{ pscamera_title } = { text => "Photonic Science Camera"}; $Spc::res_h{ pscamera_io1 } = { label => { name => "FileDirectory", get => sub {Spectra::tng_attrStringRd( "pscamera", "FileDirectory");}}, entry => { set => sub {Spectra::tng_attrStringWrt( "pscamera", "FileDirectory", $_[0]);}}}; $Spc::res_h{ pscamera_io2 } = { label => { name => "FilePrefix", get => sub {Spectra::tng_attrStringRd( "pscamera", "FilePrefix");}}, entry => { set => sub {Spectra::tng_attrStringWrt( "pscamera", "FilePrefix", $_[0]);}}}; $Spc::res_h{ pscamera_io3 } = { label => { name => "FileRefNumber", get => sub {Spectra::tng_attrStringRd( "pscamera", "FileRefNumber");}}, entry => { set => sub {Spectra::tng_attrStringWrt( "pscamera", "FileRefNumber", $_[0]);}}}; $Spc::res_h{ pscamera_io4 } = { label => { name => "SubAreaBottom", get => sub {Spectra::tng_attrLongRd( "pscamera", "SubAreaBottom");}}, entry => { set => sub {Spectra::tng_attrLongWrt( "pscamera", "SubareaBottom", $_[0]);}}}; $Spc::res_h{ pscamera_io5 } = { label => { name => "SubAreaLeft", get => sub {Spectra::tng_attrLongRd( "pscamera", "SubAreaLeft");}}, entry => { set => sub {Spectra::tng_attrLongWrt( "pscamera", "SubareaLeft", $_[0]);}}}; $Spc::res_h{ pscamera_io6 } = { label => { name => "SubAreaRight", get => sub {Spectra::tng_attrLongRd( "pscamera", "SubAreaRight");}}, entry => { set => sub {Spectra::tng_attrLongWrt( "pscamera", "SubareaRight", $_[0]);}}}; $Spc::res_h{ pscamera_io7 } = { label => { name => "SubAreaTop", get => sub {Spectra::tng_attrLongRd( "pscamera", "SubAreaTop");}}, entry => { set => sub {Spectra::tng_attrLongWrt( "pscamera", "SubareaTop", $_[0]);}}}; $Spc::res_h{ pscamera_io8 } = { label => { name => "XBinning", get => sub {Spectra::tng_attrLongRd( "pscamera", "XBinning");}}, entry => { set => sub {Spectra::tng_attrLongWrt( "pscamera", "XBinning", $_[0]);}}}; $Spc::res_h{ pscamera_io9 } = { label => { name => "YBinning", get => sub {Spectra::tng_attrLongRd( "pscamera", "YBinning");}}, entry => { set => sub {Spectra::tng_attrLongWrt( "pscamera", "YBinning", $_[0]);}}};