Changeset 96 for trunk/Modules/Measure


Ignore:
Timestamp:
Jan 5, 2026, 6:38:18 PM (4 days ago)
Author:
chronos
Message:
  • Modfied: Allow to add measurements with different min, avg and max values.
Location:
trunk/Modules/Measure
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Modules/Measure/Measure.php

    r95 r96  
    6464  function __construct(Database $Database)
    6565  {
    66     $this->Id = 0;
    6766    $this->ValueTypes = array('Min', 'Avg', 'Max');
    6867    $this->Database = &$Database;
     
    103102  }
    104103
    105   function AddValue(float $Value, int $Time): void
     104  function AddValue(int $Time, float $Min, float $Avg, float $Max): void
    106105  {
    107106    $Result = $this->Database->select($this->Data['DataTable'], '*', '(`Measure`='.$this->Data['Id'].') AND '.
     
    110109      // No measure value found. Simply insert new first value.
    111110      $this->Database->insert($this->Data['DataTable'],
    112         array('Min' => $Value, 'Avg' => $Value, 'Max' => $Value, 'Level' => 0,
     111        array('Min' => $Min, 'Avg' => $Avg, 'Max' => $Max, 'Level' => 0,
    113112        'Measure' => $this->Data['Id'], 'Time' => TimeToMysqlDateTime($Time),
    114113        'Continuity' => 0));
     
    116115      // One value exists. Add second value.
    117116      $this->Database->insert($this->Data['DataTable'],
    118       array('Min' => $Value, 'Avg' => $Value, 'Max' => $Value, 'Level' => 0,
     117      array('Min' => $Min, 'Avg' => $Avg, 'Max' => $Max, 'Level' => 0,
    119118      'Measure' => $this->Data['Id'], 'Time' => TimeToMysqlDateTime($Time),
    120119      'Continuity' => 1));
     
    138137          $Continuity = 0;
    139138        }
    140         if (($LastValue['Avg'] == $NextToLastValue['Avg']) and ($LastValue['Avg'] == $Value) and
     139        if (($LastValue['Min'] == $NextToLastValue['Min']) and ($LastValue['Min'] == $Min) and
     140          ($LastValue['Avg'] == $NextToLastValue['Avg']) and ($LastValue['Avg'] == $Avg) and
     141          ($LastValue['Max'] == $NextToLastValue['Max']) and ($LastValue['Max'] == $Max) and
    141142          ($LastValue['Continuity'] == 1) and ($Continuity == 1))
    142143        {
     
    148149        {
    149150          // Last value is different or not with continuity flag. Need to add new value.
    150           $this->Database->insert($this->Data['DataTable'], array('Min' => $Value,
    151             'Avg' => $Value, 'max' => $Value, 'Level' => 0, 'Measure' => $this->Data['Id'],
     151          $this->Database->insert($this->Data['DataTable'], array('Min' => $Min,
     152            'Avg' => $Avg, 'Max' => $Max, 'Level' => 0, 'Measure' => $this->Data['Id'],
    152153            'Time' => TimeToMysqlDateTime($Time),
    153154            'Continuity' => $Continuity));
     
    561562    $this->Database->query('DROP TABLE `'.$Measure->GetDataTable().'`');
    562563  }
    563 
    564564}
  • trunk/Modules/Measure/Page.php

    r95 r96  
    33class PageMain extends Page
    44{
    5   var $Months;
    6   var $GraphTimeRanges;
     5  var int $Time;
     6  var array $Months;
     7  var array $GraphTimeRanges;
    78
    89  function __construct(System $System)
     
    6162  }
    6263
    63   function EditTime($Time): string
     64  function EditTime(int $Time): string
    6465  {
    6566    $Output = '<form style="display: inline;" action="?Operation=SetTime&amp;Time='.$Time.'" method="post">';
     
    120121  }
    121122
    122   function GetFirstMeasure($Measure): array
     123  function GetFirstMeasure(array $Measure): array
    123124  {
    124125    $Result2 = $this->Database->select($Measure['DataTable'], '`Time`, `Avg`', '(`Measure`='.$Measure['Id'].') AND (`Level`=0) ORDER BY `Time` ASC LIMIT 1');
     
    135136  }
    136137
    137   function GetLastMeasure($Measure): array
     138  function GetLastMeasure(array $Measure): array
    138139  {
    139140    $Result2 = $this->Database->select($Measure['DataTable'], '`Time`, `Avg`', '(`Measure`='.$Measure['Id'].') AND (`Level`=0) ORDER BY `Time` DESC LIMIT 1');
     
    150151  }
    151152
    152   function LoadMeasure($Id): array
     153  function LoadMeasure(int $Id): array
    153154  {
    154155    $DbResult = $this->Database->select('Measure', '*', '( `Enabled`=1) AND (`Id`='.$Id.') AND ((`PermissionView`="all") OR (`PermissionView`="'.
     
    267268    $Output .= '<br/>';
    268269    return $Output;
    269 
    270270  }
    271271
     
    360360    global $Config;
    361361
    362     $Debug = 0;
    363362    $this->HandleURL();
    364363
Note: See TracChangeset for help on using the changeset viewer.