]> jspc29.x-matter.uni-frankfurt.de Git - coral.git/commitdiff
more comfortable user interface
authorMichael Wiebusch <m.wiebusch@gsi.de>
Tue, 28 Jul 2015 12:17:38 +0000 (14:17 +0200)
committerMichael Wiebusch <m.wiebusch@gsi.de>
Tue, 28 Jul 2015 12:17:38 +0000 (14:17 +0200)
user_interface/coral_scanner.js
user_interface/coral_scanner.pm

index 7340a01a19978a5f5652e7fff8690bfb5cd8def6..06c278e2c3a73b66368da84e1b96aa37d34cfff5 100644 (file)
@@ -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",
index 622d78b71000a3a80daddcae02fd9d142dbf239c..feaa47854cdd11d06891c87e9758b00dd189f790 100644 (file)
@@ -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 "</tr><tr>";
   print "<td align=right>Scan description: </td>";
   print "<td><input type='text' id='text_scan_desc' value=''></td>";
+  print "</tr><tr>";
+  print "<td align=right>Sample length to scan (mm): </td>";
+  print "<td><input type='text' id='text_scan_length' value=''></td>";
+  print "</tr><tr>";
+  print "<td align=right>Time per pixel (s): </td>";
+  print "<td><input type='text' id='text_time_per_pixel' value=''></td>";
+  print "</tr><tr>";
+  print "<td align=right>Sample step size (mm): </td>";
+  print "<td><input type='text' id='text_sample_step_size' value=''></td>";
   print "</tr></table>";
   
   print br;
-  print "estimated scan duration: ".hms_string($self->scan_ETA());
+  print "estimated scan duration: <span id='ETA_hms'></span>";
   print br;
   print "Machine is : <span id='action'></span>";
   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;
   
 }