<?php
include ("minisp/spgraph.php");
include ("minisp/spgraph_line.php");


require('startinclude.php');
require_once  "lecturadb_slow.php";

function reconstruir_param($param="",$ignorar="rnd") {
	if (!$param) {
		$param=$_GET;
	}
	$tmp="";

		foreach($param as $key => $value) {		
			if ($key!=$ignorar) {
				$tmp.="&".$key."=".$value;
			}			
		}

	return $tmp;
}

// comun para todos..
	$camaras_actual=array();
	$camaras=array();
	leer_camaras($camaras);
	//leer_camaras_actual($camaras_actual);
	$totalcamaras=count($camaras);
// fin comun



include('include/plchart.php'); 


@$camara=parametro('camara',$camara);
@$proceso=parametro('proceso',$proceso_actual);
$escala_minima=parametro('escala_minima',-55);
$escala_maxima=parametro('escala_maxima',55);
$rango=parametro('rango',86400); // 24 horas = 1440 minutos * 60 =86400seg



if ($proceso) {
	@$titulo="Proceso $proceso en camara ".$camaras[$camara]["nombre_camara"];
} else {
	$titulo="Historico en camara ".$camaras[$camara]["nombre_camara"];
}
$totalcamaras=0;
$maxima=0;
$minima=0;
$estado=0;
$num_temp=0;

$nombre_sensor=array();


$temp=array();
$limite=array();





$sensor_visible=array();

leer_temperatura2($temp,$camara); //,$maxima,$minima,$estado,$nombre_sensor,$num_temp,$limite);

/*
echo cnvdateepoch($fecha_inicial)."<br>";
echo cnvdateepoch($fecha_final)."<br>";
debug($rango);
echo "($data,$camara,$proceso,$rango,$escala_minima*10,$escala_maxima*10); ";
*/

leer_estados_historicos3($data,$camara,$proceso,$rango,$escala_minima*10,$escala_maxima*10);
//debug($data);

//debug($data);

//$titulo=apc_fetch("grafico_leyenda0_1");

if ($data) {
	$cantidad_valores=count($data[0]);
} else {
	$cantidad_valores=0;
}
$num_sensores=count($data)-1 ; // el cero es el eje x.

if ($num_sensores<=1) {
	echo "<p style='text-align:center'><b>No hay valores para desplegar</b></p>";
exit;
}

$label_total=10; // cantidad de labels total a mostrar.

$salto=floor($cantidad_valores/$label_total);
$salto=($salto==0)?1:$salto;

$salto=3;

$valores_total=30;
$saltov=floor($cantidad_valores/$valores_total);
$saltov=($saltov==0)?1:$saltov;

$saltov=1;

// leemos los sensores visibles.


$arreglo_sensor=parametro('arreglo_sensor',str_repeat("1", 50));

if (strpos($arreglo_sensor,"1")===false) {
	$arreglo_sensor=str_repeat("1", 50);
}


$sensor_visible=str_split($arreglo_sensor);






// etiquetas.
$contador=0;
$xetiqueta=array();
for ($i=0;$i<$cantidad_valores;$i=$i+$saltov) {
	
	if ($contador%$salto==0) {
		$xetiqueta[$contador]=@$data[0][$i];
	} else {
		$xetiqueta[$contador]='';
	}
	$contador++;
}

	


// encabezado grafico.
$graph = new Graph(900,600,"auto");
$graph->img->SetImgFormat('jpeg');

$graph->img->SetMargin(40,100,40,80);	

$graph->img->SetAntiAliasing();
$graph->SetMarginColor("#f2e98d");
//$graph->SetScale("textlin",$escala_minima,$escala_maxima);
$graph->SetScale("textlin");
$graph->SetShadow();
//$graph->SetBackgroundGradient();
$graph->title->Set($titulo);
$graph->title->SetFont(FF_FONT1,FS_BOLD);

// Add 10% grace to top and bottom of plot
$graph->yscale->SetGrace(0,0); 

$graph->xaxis->SetTickLabels($xetiqueta);
$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,8);
$graph->xaxis->SetLabelAngle(45);

// datos..
// http://ats/pf/grafico3.php?camara=0&proceso=0&escala_minima=-55&escala_maxima=55?rnd=1820385589&rango=86400&titulo=Historial&sv0=1&sv3=1&sv6=1&sv1=1&sv4=1&sv7=1&sv2=1&sv5=1

$direccion=$direccion="http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]."?rnd=".rand(0,500).reconstruir_param();
$posicion=strpos($direccion,"arreglo_sensor");
if (!$posicion) {
	$direccion.="&arreglo_sensor=$arreglo_sensor";
	$posicion=strpos($direccion,"arreglo_sensor");
}


	
$alt=array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);

if ($cantidad_valores>1) {
	$targ= array_fill(0, $cantidad_valores, " ");

	$sensor_visible[$num_sensores]=0;
	$temp[$num_sensores]["nombre"]="Todos";

	for ($e=1;$e<=$num_sensores+1;$e++) {
		// $e=0 indica al eje x
		if ($sensor_visible[$e-1]) {
			$contador=0;
			for ($i=0;$i<$cantidad_valores;$i=$i+$saltov) {
				$datay[$contador]=@$data[$e][$i];// rand(0,500)/10;
				if ($e==1) {
				}
				$alt[$contador]=@$data[$e][$i]."C ".@$temp[$e-1]["nombre"]." (".@$data[0][$i].")";
				$contador++;
			}
			} else {
				$contador=0;
				for ($i=0;$i<$cantidad_valores;$i=$i+$saltov) {
			
					$datay[$contador]=null;// rand(0,500)/10;
					
					$contador++;
				}		
			}
			//$graph->AddLine(new PlotLine(VERTICAL,5,"black",2)); 
			//debug($datay);
			$p1 = new LinePlot($datay);
			
			$p1->mark->SetType($e % 10);
			$p1->mark->SetFillColor($colores[$e+1]);
			$p1->mark->SetWidth(3);
			if ($e==$num_sensores+1) {
				$p1->mark->SetType(0);
				$direccion2=substr_replace($direccion2,str_repeat("1",$num_sensores),$posicion+15,$num_sensores-1);
			} else {
				$antiguo=1-substr($direccion,$posicion+14+$e,1);
				$direccion2=substr_replace($direccion,$antiguo,$posicion+14+$e,1);		
			}
			$p1->SetColor($colores[$e]);
			$p1->SetLegend(@$temp[$e-1]["nombre"],$direccion2,($e-1));
			//$p1->SetColor("black");
			$p1->SetCSIMTargets($targ,$alt);
			$p1->SetCenter();
			$graph->Add($p1);
		
	}

	$graph->legend->Pos(0.01,0.4,"right","center");

	//$graph->Stroke();
	$graph->StrokeCSIM('grafico3.php');

} else {

}

?>


