[69] | 1 | <?php
|
---|
| 2 |
|
---|
[78] | 3 | include_once(dirname(__FILE__).'/../../Base/Model.php');
|
---|
| 4 |
|
---|
[75] | 5 | class History extends Model
|
---|
[69] | 6 | {
|
---|
| 7 | var $ServerId;
|
---|
| 8 | var $MeasureId;
|
---|
| 9 | var $Database;
|
---|
| 10 | var $PeriodList;
|
---|
| 11 | var $Resolution = 1000;
|
---|
| 12 |
|
---|
[93] | 13 | function __construct($System, $ServerId, $MeasureId)
|
---|
[69] | 14 | {
|
---|
[93] | 15 | parent::__construct($System);
|
---|
[69] | 16 | $this->ServerId = $ServerId;
|
---|
| 17 | $this->MeasureId = $MeasureId;
|
---|
| 18 | $this->PeriodList = array(
|
---|
| 19 | array('Name' => 'Hodina', 'Period' => 60 * 60),
|
---|
| 20 | array('Name' => 'Den', 'Period' => 60 * 60 * 24),
|
---|
| 21 | array('Name' => 'Týden', 'Period' => 60 * 60 * 24 * 7),
|
---|
| 22 | array('Name' => 'Měsíc', 'Period' => 60 * 60 * 24 * 30),
|
---|
| 23 | array('Name' => 'Rok', 'Period' => 60 * 60 * 24 * 365),
|
---|
| 24 | array('Name' => 'Desetiletí', 'Period' => 60 * 60 * 24 * 3650),
|
---|
| 25 | );
|
---|
| 26 | }
|
---|
| 27 |
|
---|
| 28 | function AddValue($Value)
|
---|
| 29 | {
|
---|
| 30 | $Time = time();
|
---|
| 31 | foreach($this->PeriodList as $Index => $Period)
|
---|
| 32 | {
|
---|
| 33 | $Resolution = $this->Resolution;
|
---|
| 34 | if($Resolution > ($Period['Period'] / 60)) $Resolution = $Period['Period'] / 60;
|
---|
| 35 | $PeriodTime = floor(floor($Time * $Resolution / $Period['Period']) * $Period['Period'] / $Resolution);
|
---|
| 36 | $PeriodTimeStart = floor((floor($Time / $Period['Period'] * $Resolution) - 1) * $Period['Period'] / $Resolution);
|
---|
| 37 | //echo($PeriodTimeStart.' - '.$PeriodTime.' = '.($PeriodTime - $PeriodTimeStart).', ');
|
---|
| 38 | if($Index == 0)
|
---|
| 39 | {
|
---|
| 40 | $ValueMinimum = $Value;
|
---|
| 41 | $ValueAverage = $Value;
|
---|
| 42 | $ValueMaximum = $Value;
|
---|
| 43 | } else
|
---|
| 44 | {
|
---|
| 45 | $DbResult = $this->Database->query('SELECT MIN(`Minimum`), AVG(`Average`), MAX(`Maximum`) FROM `History` WHERE `Server`='.$this->ServerId.' AND `Measure`='.$this->MeasureId.' AND `Period`='.($Index - 1).' AND `Time` > '.$PeriodTimeStart.' AND `Time` <= '.$PeriodTime);
|
---|
| 46 | $Value = $DbResult->fetch_row();
|
---|
| 47 | $ValueMinimum = $Value[0];
|
---|
| 48 | $ValueAverage = $Value[1];
|
---|
| 49 | $ValueMaximum = $Value[2];
|
---|
| 50 | }
|
---|
| 51 | $this->Database->replace('History', array('Time' => $PeriodTime, 'Period' => $Index, 'Server' => $this->ServerId, 'Measure' => $this->MeasureId, 'Minimum' => $ValueMinimum, 'Average' => $ValueAverage, 'Maximum' => $ValueMaximum));
|
---|
| 52 | }
|
---|
| 53 | // echo("\n");
|
---|
| 54 | }
|
---|
| 55 |
|
---|
| 56 | function GetImage($Width, $Height)
|
---|
| 57 | {
|
---|
| 58 |
|
---|
| 59 | }
|
---|
| 60 | }
|
---|