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