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 )