Device-Kiln
view release on metacpan or search on metacpan
lib/Device/kilngraph.pl view on Meta::CPAN
#!/usr/bin/perl
use Device::Kiln;
use Device::Kiln::Orton;
use strict;
use CGI; # or any other CGI:: form handler/decoder
use CGI::Ajax;
use Template;
use Data::Dumper;
my %action_table = (
graph_rm => \&graph_rm,
main_rm => \&main_rm,
test_rm => \&test
);
my $meter = Device::Kiln->new({
width => 1024,
height => 800,
});
my $cgi = new CGI;
my $rm = $cgi->param("rm") || "main";
$rm .= "_rm";
&{ $action_table{$rm} }($cgi,$meter);
sub graph_rm ($$){
my ($cgi,$meter) = @_;
my $cone = $cgi->param("cone");
print $cgi->header({-type=>'image/svg+xml'});
# print $meter->graph( {
# cone => $cone,
# warmuptime => $cgi->param("warmuptime"),
# warmuptemp => $cgi->param("warmuptemp"),
# warmupramp => $cgi->param("warmupramp"),
# fullgraph => 0,
# });
print $meter->graph({$cgi->Vars})
}
sub main_rm ($$) {
my ($cgi,$meter) = @_;
my $pjx = new CGI::Ajax( 'exported_func' => \&update );
print $pjx->build_html( $cgi, \&Show_HTML);
}
sub update {
}
sub test ($$){
my ($cgi,$meter) = @_;
print $meter->{test} . "\n";
}
sub debug {
my $msg = shift;
open( my $dfh, ">>", "/tmp/kilnserver.dbg");
print $dfh (scalar localtime) . " : " . $msg . "\n";
close($dfh);
}
#<object data='/cgi-bin/kilngraph.pl?rm=graph' id='kilngraph' type='image/svg+xml' width=1024 height=600 >
sub Show_HTML {
my $html = "
<HTML>
<head>
<script type='text/javascript'>
function newImage(){
if(document.images){
var cone = params.cone.value;
var conerate = params.conerate.value;
var warmuptime = params.warmuptime.value;
var warmuptemp = params.warmuptemp.value;
var warmupramp = params.warmupramp.value;
var fireuprate = params.fireuprate.value;
document.getElementById('kilngraph').src = '/cgi-bin/kilngraph.pl?rm=graph&'
+ 'cone=' + cone + '&'
+ 'conerate=' + conerate + '&'
+ 'warmuptime=' + warmuptime + '&'
+ 'warmuptemp=' + warmuptemp + '&'
+ 'warmupramp=' + warmupramp + '&'
+ 'fireuprate=' + fireuprate + '&'
+ Date.parse(new Date().toString());
}
}
function cycle() {
newImage();
setTimeout(cycle,15000);
}
</script>
</head>
<body onload='cycle()'>
( run in 1.294 second using v1.01-cache-2.11-cpan-39bf76dae61 )