| 1 | <?php
|
|---|
| 2 |
|
|---|
| 3 | include_once(dirname(__FILE__).'/../../Base/Model.php');
|
|---|
| 4 |
|
|---|
| 5 | class History extends Model
|
|---|
| 6 | {
|
|---|
| 7 | var $ServerId;
|
|---|
| 8 | var $MeasureId;
|
|---|
| 9 | var $Database;
|
|---|
| 10 | var $PeriodList;
|
|---|
| 11 | var $Resolution = 1000;
|
|---|
| 12 |
|
|---|
| 13 | function __construct($System, $ServerId, $MeasureId)
|
|---|
| 14 | {
|
|---|
| 15 | parent::__construct($System);
|
|---|
| 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 | }
|
|---|