Changeset 96


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

Legend:

Unmodified
Added
Removed
  • trunk/Application/Version.php

    r95 r96  
    66// and system will need database update.
    77
    8 $Revision = 95;
     8$Revision = 96;
    99$DatabaseRevision = 79;
    10 $ReleaseTime = strtotime('2021-12-06');
     10$ReleaseTime = strtotime('2025-01-05');
  • trunk/Graph.php

    r95 r96  
    77  public Database $Database;
    88  public int $FontSize;
    9   public string $FontFileNameName;
     9  public string $FontFileName;
    1010  public float $ValueToImageHeigthCoefficient;
    1111  public int $DefaultWidth;
  • 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
  • trunk/add.php

    r95 r96  
    1010$AddedValues = 0;
    1111
     12$Time = time();
     13if (array_key_exists('Time', $_GET)) $Time = $_GET['Time'] * 1;
     14
    1215// Try to load single value
    13 $Time = time();
    14 if (array_key_exists('MeasureId', $_GET) and array_key_exists('Value', $_GET))
     16if (array_key_exists('MeasureId', $_GET))
    1517{
    16   if (array_key_exists('Time', $_GET)) $Time = $_GET['Time'] * 1;
    17   AddValue(addslashes($_GET['MeasureId']), addslashes($_GET['Value']), $Time);
    18   $AddedValues = $AddedValues + 1;
     18  $MeasureId = $_GET['MeasureId'] * 1;
     19  if (array_key_exists('Avg', $_GET)) $Avg = $_GET['Avg'] * 1;
     20  else if (array_key_exists('Value', $_GET)) $Avg = $_GET['Value'] * 1; // For back compatibility
     21  else die('Missing avg value parameter.');
     22
     23  if (array_key_exists('Min', $_GET)) $Min = $_GET['Min'] * 1; else $Min = $Avg;
     24  if (array_key_exists('Max', $_GET)) $Max = $_GET['Max'] * 1; else $Max = $Avg;
     25  AddValue($MeasureId, $Time, $Min, $Avg, $Max);
     26  $AddedValues++;
    1927}
    2028
    2129// Try to load multiple values
    22 $Time = time();
    2330$I = 1;
    2431while (array_key_exists('MeasureId'.$I, $_GET) and array_key_exists('Value'.$I, $_GET))
    2532{
    26   if (array_key_exists('Time'.$I, $_GET)) $Time = $_GET['Time'.$I] * 1;
    27   AddValue(addslashes($_GET['MeasureId'.$I]), addslashes($_GET['Value'.$I]), $Time);
    28   $AddedValues = $AddedValues + 1;
     33  $MeasureId = $_GET['MeasureId'.$I] * 1;
     34  if (array_key_exists('Avg'.$I, $_GET)) $Avg = $_GET['Avg'.$I] * 1;
     35  else if (array_key_exists('Value'.$I, $_GET)) $Avg = $_GET['Value'.$I] * 1; // For back compatibility
     36  else die('Missing avg value parameter.');
     37
     38  if (array_key_exists('Min'.$I, $_GET)) $Min = $_GET['Min'.$I] * 1; else $Min = $Avg;
     39  if (array_key_exists('Max'.$I, $_GET)) $Max = $_GET['Max'.$I] * 1; else $Max = $Avg;
     40  AddValue($MeasureId, $Time, $Min, $Avg, $Max);
     41  $AddedValues++;
    2942  $I++;
    3043}
     
    3245if ($AddedValues == 0) echo('Nebyly zadány potřebné parametry MeasureId a Value.'."\n");
    3346
    34 function AddValue(int $MeasureId, float $Value, int $Time): void
     47function AddValue(int $MeasureId, int $Time, float $Min, float $Avg, float $Max): void
    3548{
    3649  global $Core;
     
    3952  $Measure->Load($MeasureId);
    4053  $HostName = gethostbyaddr($_SERVER['REMOTE_ADDR']);
    41   if (($HostName == $Measure->Data['PermissionAdd']) or ($_SERVER['REMOTE_ADDR'] == gethostbyname($Measure->Data['PermissionAdd'])))
     54  if (($HostName == $Measure->Data['PermissionAdd']) or
     55    ($_SERVER['REMOTE_ADDR'] == gethostbyname($Measure->Data['PermissionAdd'])))
    4256  {
    43     $Measure->AddValue($Value, $Time);
    44     echo('Hodnota '.$Value.' uložena'."\n");
    45   } else echo('Nemáte oprávnění k aktualizaci zadané veličiny!<br>Vaše adresa: '.$HostName.'('.$_SERVER['REMOTE_ADDR'].')'."\n");
     57    $Measure->AddValue($Time, $Min, $Avg, $Max);
     58    echo('Hodnota avg: '.$Avg.', min: '.$Min.', max: '.$Max.' uložena'."\n");
     59  } else echo('Nemáte oprávnění k aktualizaci zadané veličiny!<br>'.
     60    'Vaše adresa: '.$HostName.'('.$_SERVER['REMOTE_ADDR'].')'."\n");
    4661}
Note: See TracChangeset for help on using the changeset viewer.