]> jspc29.x-matter.uni-frankfurt.de Git - labtools.git/commitdiff
progress
authorMaps <maps@ikf>
Fri, 21 Nov 2014 12:16:06 +0000 (13:16 +0100)
committerMaps <maps@ikf>
Fri, 21 Nov 2014 12:16:06 +0000 (13:16 +0100)
peltier_controller/webGUI/index.pl
peltier_controller/webGUI/logging_tool.pm
peltier_controller/webGUI/shm_manager.pm
peltier_controller/webGUI/webpage.pm [new file with mode: 0644]

index ee664c4afc33b1dcc098aec0cd483decf758d092..ac4c148cea3d19cf53ce72325db668b3360bb635 100755 (executable)
@@ -20,6 +20,7 @@ use serial_communication;
 use plotting_tool;
 use logging_tool;
 use shm_manager;
+use webpage;
 
 # use manage_settings;
 # use Switch;
@@ -51,12 +52,12 @@ sub new {
 }
 
 
+
 sub main {
   # go to other methods from here
   
   
   my $isHttpReq = $ENV{HTTP_USER_AGENT};
-  print header('text/html') if $isHttpReq;
   my $self = shift;
   
   # receive CGI query
@@ -82,6 +83,8 @@ sub main {
     my $return = $self->$action(%$args);
     # does it return anything?
     if(defined($return)){ # we get a return value
+     
+      print header('text/plain') if $isHttpReq;
       if(ref(\$return) eq "SCALAR"){ # just print it if it is a scalar
         print "$return\n";
       } else { # use Data::Dumper to display a hash
@@ -96,9 +99,6 @@ sub main {
 }
 
 
-
-
-
 sub help {
   my $self = shift;
   my $verbose = shift;
@@ -107,27 +107,35 @@ sub help {
   exit;
 }
 
-##################################################
-##                Test routines                 ##
-##################################################
-
+sub create_shm_manager {
+  my $self = shift;
+  my $ttyID = $self->{tty};
+  $ttyID =~ s/^.*\///;
+  return shm_manager->new(shmName => $self->{appName}."-".$ttyID );
+}
 
+sub terminate_logging_tool {
+  my $self = shift;
+  my $shm_manager = $self->create_shm_manager();
+  $shm_manager->writeShm({ die => 1});
+}
 
-sub test_shm {
+sub clear_records {
   my $self = shift;
-  
-  $self->{shm_manager} = shm_manager->new(
-    shm => $self->{shm},
-    dataDir => $self->{dataDir}
-  );
-  
-#   $self->{shm_manager}->createShm();
-#   $self->{shm_manager}->writeShm($self->CGI_parameters);
-#   return $self->{shm_manager}->readShm();
-  return $self->{shm_manager}->existShm();
+  my $shm_manager = $self->create_shm_manager();
+  $shm_manager->deleteShm();
+}
 
+sub dump_shm {
+  my $self = shift;
+  my $shm_manager = $self->create_shm_manager();
+  return $shm_manager->readShm();
 }
 
+##################################################
+##                Test routines                 ##
+##################################################
+
 sub test {
   my $self = shift;
   my %options = @_;
@@ -140,43 +148,12 @@ sub test {
   exit;
 }
 
-sub daemon_test {
-  daemonize();
-  sleep 20;
-  system("echo 'demon output' > /u/maps/daemon_out.txt");
-}
-
-
-sub die_test {
-  my $self = shift;
-
-  my $ttyID = $self->{tty};
-  $ttyID =~ s/^.*\///;
-  my $shm_manager = shm_manager->new(shmName => $self->{appName}."-".$ttyID );
-  
-  $shm_manager->writeShm({ die => 1});
-
-}
-
-sub clear {
-  my $self = shift;
-
-  my $ttyID = $self->{tty};
-  $ttyID =~ s/^.*\///;
-  my $shm_manager = shm_manager->new(shmName => $self->{appName}."-".$ttyID );
-  
-  $shm_manager->deleteShm();
-}
-
 sub log_test {
   my $self = shift;
   my %options = @_;
   
   daemonize() if $options{daemonize};
-  
-  my $ttyID = $self->{tty};
-  $ttyID =~ s/^.*\///;
-  my $shm_manager = shm_manager->new(shmName => $self->{appName}."-".$ttyID );
+  my $shm_manager = $self->create_shm_manager();
   
   my $serial_communication = serial_communication->new(
     tty => $self->{tty},
@@ -185,22 +162,19 @@ sub log_test {
   
   my $logging_tool = logging_tool->new(
     shm_manager => $shm_manager,
-    serial_communication => $serial_communication
+    serial_communication => $serial_communication,
+    columnNames => $self->{columnNames}
   );
   
-  $logging_tool->set_columnNames($self->{columnNames});
   $logging_tool->main(verbose => 1);
-  
-
-
 }
 
 sub plot_test {
   my $self = shift;
+  my %options = @_;
   
-  my $ttyID = $self->{tty};
-  $ttyID =~ s/^.*\///;
-  my $shm_manager = shm_manager->new(shmName => $self->{appName}."-".$ttyID );
+  my $html = $options{html};
+  my $shm_manager = $self->create_shm_manager();
   
   my $plotting_tool = plotting_tool->new(
     columnNames => $self->{columnNames},
@@ -210,8 +184,29 @@ sub plot_test {
   my $plotFile = $plotting_tool->plot();
   
   $plotFile =~ s%/dev/%%;
+  print header('text/html');
   
+  if($html){
+  print <<EOF;
+  <meta http-equiv="refresh" content="1" />
+        <html>
+
+          <head>
+          <title>Temperature</title>
+          </head>
+
+          <body>
+          <h1>Temperature</h1>
+          <p>
+          <img src="$plotFile"></img>
+          </p>
+          </body>
+          
+        </html> 
+EOF
+  } else {
   print qq%<img src="$plotFile"></img>%;
+  }
   exit;
   
 
index c67d419cb4aca3153fec25fe5b4e7c2f613c9eb3..915f873b9c23b13ecf3d0b1f6244b40e05368f9e 100644 (file)
@@ -25,13 +25,6 @@ sub new {
 
 
 
-sub set_columnNames {
-  my $self = shift;
-  $self->{columnNames} = shift;
-  # as argument I expect a ref to an array
-}
-
-
 
 sub main {
   
@@ -60,6 +53,7 @@ sub main {
     close(LOG);
   }
   
+  $shm_manager->updateShm({die => 0, acquisition => 1});
   
   LOGLOOP: while(1){
     
@@ -89,9 +83,7 @@ sub main {
   
   }
   
-  $shmHash = $shm_manager->readShm();
-  delete $shmHash->{die};
-  $shm_manager->writeShm($shmHash);
+  $shm_manager->updateShm({die => 0, acquisition => 0});
   
 
 }
index f4007621237a4f073d8c94057e29cd5a012ad9b4..69af120a25c9925cb4c2fb3e5792ff4ce5d0c0e3 100644 (file)
@@ -20,6 +20,7 @@ sub new {
   $self->{shmFile} = "/dev/shm/".$self->{shmName};
   $self->{dataDir} = $self->{shmFile}."_data";
   $self->{dataFile} = $self->{dataDir}."/data";
+
   
 
   bless($self, $class);
@@ -55,7 +56,7 @@ sub readShm {
   my $self = shift;
   
   if ( -e $self->{shmFile} ){
-    return $self->{requests} = lock_retrieve($self->{shmFile});
+    return lock_retrieve($self->{shmFile});
   } else {
     die "shm does not exist!";
   }
@@ -71,6 +72,18 @@ sub writeShm {
   }
 }
 
+sub updateShm {
+  my $self = shift;
+  my $shmHash = shift;
+  my $oldShmHash;
+  if ( -e $self->{shmFile} ){
+    $oldShmHash = lock_retrieve($self->{shmFile});
+    lock_store({%$oldShmHash,%$shmHash},$self->{shmFile});
+  } else {
+    die "shm does not exist!";
+  }
+}
+
 
 
 1;
\ No newline at end of file
diff --git a/peltier_controller/webGUI/webpage.pm b/peltier_controller/webGUI/webpage.pm
new file mode 100644 (file)
index 0000000..706dfaa
--- /dev/null
@@ -0,0 +1,49 @@
+package webpage;
+
+
+use strict;
+use warnings;
+use POSIX;
+use CGI ':standard';
+use CGI::Carp qw(fatalsToBrowser);
+
+sub new {
+  my $class = shift;
+  my %options = @_;
+  my $self  = {
+    %options
+  };
+  bless($self, $class);
+}
+
+
+sub page_body {
+  
+  my $self = shift;
+  my %options = @_;
+  
+  
+  
+  print start_html(
+  -title=>'ADC Monitor',
+  -style=>[{'src'=>'../layout/styles.css'},
+  {'src'=>'../layout/jtageditor_blue.css'},
+  {'src'=>'../layout/adcmon.css'}
+  ],
+  -script=>[
+#   { -type => 'text/javascript', -src => 'http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'},
+  { -type => 'text/javascript', -src => '../scripts/jquery.min.js'},
+  { -type => 'text/javascript', -src => './adcmon.js'},
+  { -type => 'text/javascript', -src => '../scripts/jquery.timer.js'}
+  ]
+  );
+  
+  
+  
+  
+}
+  
+
+
+
+1;
\ No newline at end of file