2010-07-18 17:12:00 +02:00
< ? php
2010-07-21 12:44:01 +02:00
/**
* @ copyright Copyright ( c ) 2010 , The volkszaehler . org project
2010-07-22 18:37:14 +02:00
* @ package default
2010-07-21 12:44:01 +02:00
* @ license http :// www . opensource . org / licenses / gpl - license . php GNU Public License
2010-07-22 16:21:26 +02:00
*/
/*
2010-07-21 12:44:01 +02:00
* This file is part of volkzaehler . org
2010-07-18 17:12:00 +02:00
*
2010-07-21 12:44:01 +02:00
* volkzaehler . org is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* any later version .
*
* volkzaehler . org is distributed in the hope that it will be useful ,
2010-07-18 17:12:00 +02:00
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
2010-07-21 12:44:01 +02:00
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
2010-07-18 17:12:00 +02:00
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
2010-07-21 12:44:01 +02:00
* along with volkszaehler . org . If not , see < http :// www . gnu . org / licenses />.
2010-07-18 17:12:00 +02:00
*/
namespace Volkszaehler\Interpreter ;
2010-07-21 12:44:01 +02:00
/**
2010-07-29 00:04:33 +02:00
* Sensor interpreter
2010-07-22 10:32:51 +02:00
*
2010-07-22 18:37:14 +02:00
* @ package default
2010-07-21 12:44:01 +02:00
* @ author Steffen Vogel < info @ steffenvogel . de >
*/
2010-09-28 15:46:30 +02:00
use Volkszaehler\Util ;
2010-07-22 16:10:08 +02:00
class SensorInterpreter extends Interpreter {
2010-07-22 10:32:51 +02:00
2010-07-21 12:44:01 +02:00
/**
2010-07-28 00:41:19 +02:00
* @ todo untested
2010-07-29 00:04:33 +02:00
* @ param string | integer $groupBy
2010-07-21 12:44:01 +02:00
*/
2010-09-28 15:46:30 +02:00
public function getValues ( $tuples = NULL , $groupBy = NULL ) {
$data = parent :: getData ( $tuples , $groupBy );
2010-07-22 10:32:51 +02:00
2010-09-28 15:46:30 +02:00
$values = array ();
2010-07-28 00:41:19 +02:00
foreach ( $data as $reading ) {
$values [] = array (
2010-09-28 15:46:30 +02:00
( float ) $reading [ 0 ],
( float ) $reading [ 1 ] / $reading [ 2 ],
( int ) $reading [ 2 ]
2010-07-28 00:41:19 +02:00
);
}
2010-07-22 10:32:51 +02:00
2010-07-28 00:41:19 +02:00
return $values ;
2010-07-18 17:12:00 +02:00
}
2010-07-21 12:44:01 +02:00
/**
2010-07-28 00:41:19 +02:00
* @ todo adapt to doctrine orm
2010-07-21 12:44:01 +02:00
* @ todo untested
2010-09-22 02:29:15 +02:00
* @ return array ( 0 => timestamp , 1 => value )
2010-07-21 12:44:01 +02:00
*/
2010-07-28 00:41:19 +02:00
public function getMin () {
2010-09-28 15:46:30 +02:00
//return $this->dbh->query('SELECT value, timestamp FROM data WHERE channel_id = ' . (int) $this->id . self::buildFilterTime($this->from, $this->to) . ' ORDER BY value ASC', 1)->current();
2010-07-18 17:12:00 +02:00
}
2010-07-22 10:32:51 +02:00
2010-07-21 12:44:01 +02:00
/**
2010-07-28 00:41:19 +02:00
* @ todo adapt to doctrine orm
2010-07-21 12:44:01 +02:00
* @ todo untested
2010-09-22 02:29:15 +02:00
* @ return array ( 0 => timestamp , 1 => value )
2010-07-21 12:44:01 +02:00
*/
2010-07-28 00:41:19 +02:00
public function getMax () {
2010-09-28 15:46:30 +02:00
//return $this->dbh->query('SELECT value, timestamp FROM data WHERE channel_id = ' . (int) $this->id . self::buildFilterTime($this->from, $this->to) . ' ORDER BY value DESC', 1)->current();
2010-07-18 17:12:00 +02:00
}
2010-07-22 10:32:51 +02:00
2010-07-21 12:44:01 +02:00
/**
2010-07-28 00:41:19 +02:00
* @ todo adapt to doctrine orm
2010-07-21 12:44:01 +02:00
* @ todo untested
2010-07-29 00:04:33 +02:00
* @ return float
2010-07-21 12:44:01 +02:00
*/
2010-07-28 00:41:19 +02:00
public function getAverage () {
2010-09-28 15:46:30 +02:00
//return $this->dbh->query('SELECT AVG(value) AS value FROM data WHERE channel_id = ' . (int) $this->id . self::buildFilterTime($this->from, $this->to))->current();
2010-07-28 00:41:19 +02:00
}
/**
* @ todo to be implemented
2010-09-22 02:29:15 +02:00
* @ todo possible and / or required ?
2010-07-29 00:04:33 +02:00
* @ return float
2010-07-28 00:41:19 +02:00
*/
public function getConsumption () {
2010-07-18 17:12:00 +02:00
}
}
?>