#!/usr/bin/perl -w #use lib ""; use TeleServ; use CGI qw(:standard); sub isInt { my $str = shift; return ($str =~ /^\d+$/)?$str:''; } $device_name = "/dev/ttyS0"; tsOpen($device_name); tsSetTerminalMode; $version = tsVersion(); %val = (); %cookie = cookie('watchdog'); @true_keys = qw(update wd wdtick wdtickfirst); #Check cookie foreach (@true_keys) { $val{$_} = isInt($cookie{$_}); } if (param()) { my $tmp; if( param('start') ) { $val{update} = isInt(param('update')); $val{wd} = isInt(param('wd')); $val{wdtick} = 0 if ($val{wdtickfirst} = isInt(param('wdtick'))); } #Stop refresh if button "stop" pressed or invalid values are entered if( param('stop') || ($val{update} eq '') || ($val{wd} eq '') || ($val{wdtickfirst} eq '')) { foreach (keys %val) { $val{$_} = ''; } $watch_dog = tsWatchDog(0); goto EXIT; } } $val{wd} = 0 unless ($val{wd}); if ($val{wdtick} ne '') { $val{wdtick}--; if ($val{wdtick} < 0) { #Number of refresh cycles when WatchDog timeout should be uploaded $val{wdtick} = int($val{wdtickfirst}/$val{update}); $watch_dog = tsWatchDog($val{wd}); goto EXIT; } } $watch_dog = tsWatchDog; EXIT: $cookie = cookie( -name=>'watchdog', -value=>\%val ); print header(-cookie=>$cookie); $html_name = "TeleServ $version"; if ($val{update}) { #java script that should refresh web page $java_script=<$html_name, -script=>$java_script, -onload=>'load()' ); } else { print start_html( -title=>$html_name ); } print "Current value of WatchDog timer in ticks (sec): $watch_dog
"; print start_form(); print table({-border=>undef}, Tr({-align=>CENTER},td(["Refresh time (sec)", textfield(-name=>'update', -default=>$val{update})])), Tr({-align=>CENTER},td(["WatchDog timeout (sec)", textfield(-name=>'wd', -default=>$val{wd})])), Tr({-align=>CENTER},td(["Update time (sec)", textfield(-name=>'wdtick', -default=>$val{wdtickfirst})])) ); print submit(-name=>'start'); print submit(-name=>'stop'); print end_form(); print end_html();