From: Maps Date: Fri, 21 Nov 2014 12:16:06 +0000 (+0100) Subject: progress X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=5338925a28acc2d8d48f6d95ff5394eb42efb8e6;p=labtools.git progress --- diff --git a/peltier_controller/webGUI/index.pl b/peltier_controller/webGUI/index.pl index ee664c4..ac4c148 100755 --- a/peltier_controller/webGUI/index.pl +++ b/peltier_controller/webGUI/index.pl @@ -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 < + + + + Temperature + + + +

Temperature

+

+ +

+ + + +EOF + } else { print qq%%; + } exit; diff --git a/peltier_controller/webGUI/logging_tool.pm b/peltier_controller/webGUI/logging_tool.pm index c67d419..915f873 100644 --- a/peltier_controller/webGUI/logging_tool.pm +++ b/peltier_controller/webGUI/logging_tool.pm @@ -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}); } diff --git a/peltier_controller/webGUI/shm_manager.pm b/peltier_controller/webGUI/shm_manager.pm index f400762..69af120 100644 --- a/peltier_controller/webGUI/shm_manager.pm +++ b/peltier_controller/webGUI/shm_manager.pm @@ -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 index 0000000..706dfaa --- /dev/null +++ b/peltier_controller/webGUI/webpage.pm @@ -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