From: Michael Wiebusch Date: Tue, 28 Jul 2015 12:17:38 +0000 (+0200) Subject: more comfortable user interface X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=9ceee6fc34a548d476679f3dc6aec9957ca08953;p=coral.git more comfortable user interface --- diff --git a/user_interface/coral_scanner.js b/user_interface/coral_scanner.js index 7340a01..06c278e 100644 --- a/user_interface/coral_scanner.js +++ b/user_interface/coral_scanner.js @@ -7,6 +7,7 @@ var timer; var scan_meta; var coral_scanner_settings; var pmt_ro_settings; +var table_control_settings; var spectrum; @@ -134,8 +135,28 @@ $(document).ready(function(){ value: 1000 }); + $('#text_time_per_pixel').change(function(){ + save_settings("coral_scanner.pl",{ + time_per_pixel : $(this).val() + }); + update_ETA(); + }); + $('#text_scan_length').change(function(){ + save_settings("table_control.pl",{ + mm_to_scan : $(this).val() + }); + update_ETA(); + }); + $('#text_sample_step_size').change(function(){ + save_settings("table_control.pl",{ + sample_step_size : $(this).val() + }); + update_ETA(); + }); + get_coral_scanner_settings(); get_pmt_ro_settings(); + get_table_control_settings(); spectrum = get_spectrum_JSON(); plot_choices(); @@ -143,6 +164,7 @@ $(document).ready(function(){ get_scan_meta(); // get_scan_svg(); + update_ETA(); set_clear_timer(); // make_flot(); @@ -324,11 +346,17 @@ function store_slider_settings(){ function get_coral_scanner_settings(){ coral_scanner_settings = load_settings("coral_scanner.pl"); init_slider(); + $('#text_time_per_pixel').val(coral_scanner_settings.time_per_pixel); } function get_pmt_ro_settings(){ pmt_ro_settings = load_settings("pmt_ro.pl"); $('#text_thresh').val(pmt_ro_settings.signal_thresh); } +function get_table_control_settings(){ + table_control_settings = load_settings("table_control.pl"); + $('#text_scan_length').val(table_control_settings.mm_to_scan); + $('#text_sample_step_size').val(table_control_settings.sample_step_size); +} function init_slider(){ $( "#slider-range" ).slider({ @@ -428,6 +456,22 @@ function get_scan_status(){ }); } +function update_ETA(){ + $.ajax({ + url: "coral_scanner.pl", + cache: false, + async: true, + dataType: "text", + data: { + sub : "scan_ETA", + hms : true + }, + success: function(answer) { + $( "#ETA_hms" ).html(answer); + } + }); +} + function home(){ $.ajax({ url: "coral_scanner.pl", diff --git a/user_interface/coral_scanner.pm b/user_interface/coral_scanner.pm index 622d78b..feaa478 100644 --- a/user_interface/coral_scanner.pm +++ b/user_interface/coral_scanner.pm @@ -49,6 +49,7 @@ sub new { log_file => "./".__PACKAGE__.".log", table_control_number_retries => 3, table_control_retry_delay => 5, + unshadowed_count_time => 100, }; $self->{settings_desc} = { @@ -62,6 +63,7 @@ sub new { stderr => "/path/to/file of the stderr logfile", table_control_number_retries => "number of retries, when communication with the table fails", table_control_retry_delay => "number of seconds to wait for new connection with table", + unshadowed_count_time => "time in seconds to record the unshadowed/undisturbed count rate of the source before scanning", }; $self->{has_run} = {}; # remember which subs already have run @@ -155,10 +157,19 @@ sub main_html { print ""; print "Scan description: "; print ""; + print ""; + print "Sample length to scan (mm): "; + print ""; + print ""; + print "Time per pixel (s): "; + print ""; + print ""; + print "Sample step size (mm): "; + print ""; print ""; print br; - print "estimated scan duration: ".hms_string($self->scan_ETA()); + print "estimated scan duration: "; print br; print "Machine is : "; print br; @@ -260,7 +271,7 @@ sub scan_sample { my $scan_pattern = $tc->scan_pattern(); my $ETA = $self->scan_ETA(); - print ">>> starting scan\n\n"; + $self->{status_shm}->updateShm({ action => 'scanning', @@ -292,6 +303,19 @@ sub scan_sample { $self->{current_scan}->{meta}->{scan_desc} = $options{scan_desc} if defined($options{scan_desc}); $self->{current_scan}->{data} = []; + print ">>> homing table\n\n"; + $tc->home(); + + print ">>> recording unshadowed beam count rate\n\n"; + my $unshadowed_count_time = $self->{settings}->{unshadowed_count_time}; + my $unshadowed_counts = $ro->count(delay => $unshadowed_count_time, channel => "signal"); + $self->{current_scan}->{meta}->{unshadowed_count_time} = $unshadowed_count_time; + $self->{current_scan}->{meta}->{unshadowed_counts} = $unshadowed_counts; + print " count time : $unshadowed_count_time\n"; + print " counts : $unshadowed_counts\n"; + + + print ">>> starting actual scan\n\n"; my $points_scanned = 0; my $last_row; @@ -399,6 +423,9 @@ sub scan_sample { print ">>> scan completed!\n\n"; print ">>> sending report ...\n\n"; $self->compile_report(); + + print ">>> homing table\n\n"; + $tc->home(); print ">>> done!\n\n"; return ""; @@ -407,6 +434,7 @@ sub scan_sample { sub scan_ETA { #estimated time to complete a scan my $self = shift; + my %options = @_; my $tc = $self->{table_control}; @@ -426,9 +454,13 @@ sub scan_ETA { #estimated time to complete a scan } $last_point = $point; } - + my $number_points = $pattern->{number_points}; - return $pattern_length/$speed + $number_points*$time_per_pixel; + my $return_val = $pattern_length/$speed + $number_points*$time_per_pixel; + if ($options{hms}){ + return hms_string($return_val); + } + return $return_val; }