Changeset 50 for branches


Ignore:
Timestamp:
Feb 20, 2015, 8:54:42 AM (9 years ago)
Author:
chronos
Message:
  • Modified: Show graph, table and other controls horizontally centered.
  • Added: Check for existence of config file.
  • Added: Check if database is accessible.
Location:
branches/old
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/old/Readme.txt

    r28 r50  
    22=================
    33
    4 Je potøeba zkopírovat soubor config.sample.php jako config.php a upravit v nìm nastavení.
    5 Ve složce SQL jsou uloženy definice tabulek measure (struktura i ukázkové data) a tabulky data, kterou je potøeba vytvoøit pro jednotlivá mìøení.
    6 Ve složce measure_scripts je ukázkový soubor monitor.sample.php, který zajišuje získávání informací o rùzných velièinách v poèítaèi.
     4Je potřeba zkopírovat soubor config.sample.php jako config.php a upravit v něm nastavení.
     5Ve složce SQL jsou uloženy definice tabulek measure (struktura i ukázkové data) a tabulky data, kterou je potřeba vytvořit pro jednotlivá měření.
     6Ve složce measure_scripts je ukázkový soubor monitor.sample.php, který zajišťuje získávání informací o různých veličinách v počítači.
    77 
    88Verze 3.1 (13.2.2008)
    99
    10     * Upraveny skripty pro plnìní dat.
    11     * Pøidán odkaz pod grafem odkazující staticky na vybraný èasový úsek.
    12     * Opraveno zobrazování desetinných míst u èísel bez jednotek
     10    * Upraveny skripty pro plnění dat.
     11    * Přidán odkaz pod grafem odkazující staticky na vybraný časový úsek.
     12    * Opraveno zobrazování desetinných míst u čísel bez jednotek
    1313    * Upravena poloha zobrazování celkové informace Min, Avg, Max.
    14     * Rùzné menší opravy
     14    * Různé menší opravy
    1515
    1616Verze 3.0 (14.12.2007)
    1717
    18     * Pøepsán pøístup k databázi MySQL pøes tøídu mysqli
    19     * Data mìøení byly pro zvýšení rychlosti rozdìleny do jednotlivých tabulek avšak stále je možné mít v jedné datové tabulce více mìøení. Rozdìlení dat do více tabulek také umožnilo mít uložená data s rùznou pøesnosti pro jednolivé mìøení. Pùvodnì pouze INT, nyní všechny další èíselné typy jako TINYINT, SMALLINT, INT, BIGINT a FLOAT.
    20     * Pøidáno automatické zaokrouhlení zobrazovaných hodnot a zobrazení pøedpon jednotek.
    21     * Doplnìny další skripty pro zjišování informací o systému a plnìní databáze.
    22     * Nastavení sdruženo do souboru config.php.
    23     * Rùzné opravy
     18    * Přepsán přístup k databázi MySQL přes třídu mysqli
     19    * Data měření byly pro zvýšení rychlosti rozděleny do jednotlivých tabulek avšak stále je možné mít v jedné datové tabulce více měření. Rozdělení dat do více tabulek také umožnilo mít uložená data s různou přesnosti pro jednolivé měření. Původně pouze INT, nyní všechny další číselné typy jako TINYINT, SMALLINT, INT, BIGINT a FLOAT.
     20    * Přidáno automatické zaokrouhlení zobrazovaných hodnot a zobrazení předpon jednotek.
     21    * Doplněny další skripty pro zjišťování informací o systému a plnění databáze.
     22    * Nastavení sdruženo do souboru config.php.
     23    * Různé opravy
    2424
    2525Verze 2.2 (30.6.2007)
    2626
    27     * opraveno vykreslování grafu pøed celkovým zaèátkem a po celkovém konci mìøení
     27    * opraveno vykreslování grafu před celkovým začátkem a po celkovém konci měření
    2828    * opraveno vykreslování poslední hodnoty v grafu
    2929
    3030Verze 2.1 (24.3.2007)
    3131
    32     * rùzné opravy
     32    * různé opravy
    3333
    3434Verze 2.0 (16.3.2007)
    3535
    36     * dynamické zobrazování èasové osy, výbìr bìžných úsekù nebo pøesného intervalu dle poèáteèního a koneèného èasu
    37     * použití TrueType fontù
    38     * mìnitelné rozmìry generovaného obrázku
    39     * automatická redukce naèítaných dat pro delší èasového mìøítka
    40     * automatická redukce po sobì se opakujících stejných do jedné, redukce nulových a málo promìnných odmìrù
    41     * v úsecích, kde se nemìøilo buï režim automatická interpolace hodnot nebo nulový údaj
    42     * Záznam a zobrazení grafù minima, prùmìru a maxima
    43     * zápis nových hodnot pøes webové HTTP, kontrola podle adres poèítaèù
    44     * seznam mìøení uložen v tabulce
     36    * dynamické zobrazování časové osy, výběr běžných úseků nebo přesného intervalu dle počátečního a konečného času
     37    * použití TrueType fontů
     38    * měnitelné rozměry generovaného obrázku
     39    * automatická redukce načítaných dat pro delší časového měřítka
     40    * automatická redukce po sobě se opakujících stejných do jedné, redukce nulových a málo proměnných odměrů
     41    * v úsecích, kde se neměřilo buď režim automatická interpolace hodnot nebo nulový údaj
     42    * Záznam a zobrazení grafů minima, průměru a maxima
     43    * zápis nových hodnot přes webové HTTP, kontrola podle adres počítačů
     44    * seznam měření uložen v tabulce
    4545
    4646Verze 1.0 (25.11.2004)
    4747
    48     * statické zobrazování èasové osy v rozsahu hodina, den, týden, mìsíc, rok a více rokù
    49     * jednotná tabulka pro všechna mìøení, každé mìøení jako jeden sloupec, každou minutu nový øádek
    50     * zobrazování prùmìru a maxima
    51     * seznam mìøení uložen v poli
     48    * statické zobrazování časové osy v rozsahu hodina, den, týden, měsíc, rok a více roků
     49    * jednotná tabulka pro všechna měření, každé měření jako jeden sloupec, každou minutu nový řádek
     50    * zobrazování průměru a maxima
     51    * seznam měření uložen v poli
    5252
    5353Kontakt: robie@centrum.cz
  • branches/old/config.sample.php

    r28 r50  
    5050$FontFile = $Config['FontFileName'];
    5151$FontSize = $Config['FontSize'];
    52 
    53 ?>
  • branches/old/database.php

    r5 r50  
    77{
    88  var $Prefix = '';
    9  
     9
    1010  function select($Table, $What = '*', $Condition = 1)
    1111  {
     
    1818    $this->query("DELETE FROM `".$this->Prefix.$Table."` WHERE ".$Condition); 
    1919  }
    20  
     20
    2121  function insert($Table, $Data)
    2222  {
     
    2727      $Value = strtr($Value, '"', '\"');
    2828      $Name .= ','.$Key;
    29             if($Value == 'NOW()') $Values .= ",".$Value;
    30               else $Values .= ",'".$Value."'";
     29      if($Value == 'NOW()') $Values .= ",".$Value;
     30        else $Values .= ",'".$Value."'";
    3131    }
    3232    $Name = substr($Name, 1);
     
    3535    //echo('INSERT INTO `'.$this->Prefix.$Table.'` ('.$Name.') VALUES('.$Values.')');
    3636  }
    37  
     37
    3838  function update($Table, $Condition, $Data)
    3939  {
     
    4141    foreach($Data as $Key => $Value)
    4242    {
    43             $Value = strtr($Value, '"', '\"');
     43      $Value = strtr($Value, '"', '\"');
    4444      if($Value != 'NOW()') $Value = "'".$Value."'";
    4545      $Values .= ", ".$Key."=".$Value;
     
    4848    $this->query('UPDATE `'.$this->Prefix.$Table.'` SET '.$Values.' WHERE ('.$Condition.')');
    4949  }
    50  
     50
    5151  function replace($Table, $Data)
    5252  {
     
    6464    $this->query('REPLACE INTO `'.$this->Prefix.$Table.'` (`'.$Name.'`) VALUES('.$values.')');
    6565  }
    66  
     66
    6767  function charset($Charset)
    6868  {
     
    7171
    7272}
    73 
    74 ?>
  • branches/old/global.php

    r49 r50  
    22
    33session_start();
     4$FileName = dirname(__FILE__).'/config.php';
     5if(file_exists($FileName)) include($FileName);
     6else {
     7  die('Configuration file "'.$FileName.'" not found.');
     8}
    49include_once('config.php');
    510include_once('database.php');
     
    914include_once('stat_functions.php');
    1015$Database = new Database($Config['Database']['Host'], $Config['Database']['User'], $Config['Database']['Password'], $Config['Database']['Database']);
     16if ($Database->connect_error) {
     17  die('Connect Error (' . $Database->connect_errno . ') '.$Database->connect_error);
     18}
     19
    1120$Database->Prefix = $Config['Database']['Prefix'];
    1221$Database->charset($Config['Database']['Charset']);
  • branches/old/index.php

    r49 r50  
    1111
    1212      $TimeParts = getdate($_SESSION[$Time]);
    13       //print_r($TimeParts);
    1413
    1514      // Day selection
     
    1716      for($I = 1; $I < 32; $I++)
    1817      {
    19         if($I == $TimeParts['mday']) $Selected = ' selected="1"'; else $Selected = ''; 
     18        if($I == $TimeParts['mday']) $Selected = ' selected="1"'; else $Selected = '';
    2019        $Output .= '<option value="'.$I.'"'.$Selected.'>'.$I.'</option>';
    2120      }
     
    2524      $Output .= '<select name="Month">';
    2625      foreach($Months as $Index => $Month)
    27       { 
    28         if($Index == $TimeParts['mon']) $Selected = ' selected="1"'; else $Selected = ''; 
     26      {
     27        if($Index == $TimeParts['mon']) $Selected = ' selected="1"'; else $Selected = '';
    2928        if($Index > 0) $Output .= '<option value="'.$Index.'"'.$Selected.'>'.$Month.'</option>';
    3029      }
    3130      $Output .= '</select>. ';
    32      
     31
    3332      // Day selection
    3433      $Output .= '<select name="Year">';
    3534      for($I = 2000; $I < 2010; $I++)
    36       { 
    37         if($I == $TimeParts['year']) $Selected = ' selected="1"'; else $Selected = ''; 
     35      {
     36        if($I == $TimeParts['year']) $Selected = ' selected="1"'; else $Selected = '';
    3837        $Output .= '<option value="'.$I.'"'.$Selected.'>'.$I.'</option>';
    3938      }
    4039      $Output .= '</select> &nbsp;&nbsp; ';
    41      
    42      
     40
    4341      // Hour selection
    4442      $Output .= '<select name="Hour">';
    4543      for($I = 0; $I < 24; $I++)
    46       { 
    47         if($I == $TimeParts['hours']) $Selected = ' selected="1"'; else $Selected = ''; 
     44      {
     45        if($I == $TimeParts['hours']) $Selected = ' selected="1"'; else $Selected = '';
    4846        $Output .= '<option value="'.$I.'"'.$Selected.'>'.$I.'</option>';
    4947      }
     
    5452      for($I = 0; $I < 60; $I++)
    5553      {
    56         if($I == $TimeParts['minutes']) $Selected = ' selected="1"'; else $Selected = ''; 
     54        if($I == $TimeParts['minutes']) $Selected = ' selected="1"'; else $Selected = '';
    5755        $Output .= '<option value="'.$I.'"'.$Selected.'>'.$I.'</option>';
    5856      }
    5957      $Output .= '</select> ';
    60       $Output .= '<input type="submit" value="Nastavit">';     
     58      $Output .= '<input type="submit" value="Nastavit">';
    6159      $Output .= '</form>';
    6260
    6361      $Output .= ' <form style="display: inline;" action="?Operation=SetTimeNow&amp;Time='.$Time.'" method="post">';
    64       $Output .= '<input type="submit" value="Aktuální čas">';     
     62      $Output .= '<input type="submit" value="Aktuální čas">';
    6563      $Output .= '</form>';
    66      
     64
    6765      return($Output);
    6866}
     
    7371$GrafTimeRanges = array(
    7472  'hour' => array(
    75     'caption' => 'Hodina', 
     73    'caption' => 'Hodina',
    7674    'period' => 3600,
    7775  ),
    7876  'day' => array(
    7977    'caption' => 'Den',
    80     'period' => 3600*24,
     78    'period' => 3600 * 24,
    8179  ),
    8280  'week' => array(
    8381    'caption' => 'Týden',
    84     'period' => 3600*24*7,
     82    'period' => 3600 * 24 * 7,
    8583  ),
    8684  'month' => array(
    8785    'caption' => 'Měsíc',
    88     'period' => 3600*24*30,
     86    'period' => 3600 * 24 * 30,
    8987  ),
    9088  'year' => array(
    9189    'caption' => 'Rok',
    92     'period' => 3600*24*365,
     90    'period' => 3600 * 24 * 365,
    9391  ),
    9492  'years' => array(
    9593    'caption' => 'Desetiletí',
    96     'period' => 3600*24*365*10,
    97   ),
    98 ); 
     94    'period' => 3600 * 24 * 365 * 10,
     95  ),
     96);
    9997
    10098foreach($Config['DefaultVariables'] as $Index => $Variable)
     
    104102  if(array_key_exists($Index, $_POST)) $_SESSION[$Index] = $_POST[$Index];
    105103  //$$Index = $_SESSION[$Index];
    106 } 
     104}
    107105
    108106if($_SESSION['TimeSpecify'] == 0)
     
    112110}
    113111
    114 $Output = '<div class="Title">Statistiky</div>';
     112$Output = '<div style="text-align: center"><div class="Title">Statistiky</div>';
    115113
    116114if(!array_key_exists('Operation', $_GET)) $_GET['Operation'] = '';
     
    128126        }
    129127      }
    130     break; 
     128    break;
    131129  case 'SetTimeNow':
    132130    if(array_key_exists('Time', $_GET))
     
    138136      }
    139137    }
    140     break; 
    141  
     138    break;
     139
    142140    }
    143141    $Output .= '<strong>Časový úsek:</strong><br>';
    144     // Show graf time range menu
     142    // Show graph time range menu
    145143    if($_SESSION['TimeSpecify'] == 0)
    146144    {
     
    151149      $Output .= '<a href="?TimeSpecify=1">Přesnější nastavení...</a><br>'; 
    152150    } else {
    153       $Output .= '<table cellspacing="0" cellpadding="2" border="0">';
     151      $Output .= '<table cellspacing="0" cellpadding="2" border="0" style="margin: 0px auto;">';
    154152      $Output .= '<tr><td>Počátek:</td><td>'.EditTime('TimeStart').'</td></tr>';
    155153      $Output .= '<tr><td>Konec:</td><td>'.EditTime('TimeEnd').'</td></tr>';
     
    162160$Output .= '<img alt="Graf" src="graph.php?Measure='.$_SESSION['Measure'].'&amp;From='.$_SESSION['TimeStart'].'&amp;To='.$_SESSION['TimeEnd'].'&amp;Width=750&amp;Height=200&amp;Differential='.$_SESSION['Differential'].'" width="750" height="200"><br>';
    163161$Output .= '<a href="?Measure='.$_SESSION['Measure'].'&amp;TimeStart='.$_SESSION['TimeStart'].'&amp;TimeEnd='.$_SESSION['TimeEnd'].'&amp;TimeSpecify=1&amp;Differential='.$_SESSION['Differential'].'">Odkaz na vybraný graf</a><br>';
    164 //print_r(GetValues($Measure, $TimeStart, $TimeEnd));
    165  
     162
    166163$Output .= '<br>';
    167164
    168 $Output .= '<table border="1" cellspacing="0" cellpadding="2" style="font-size: small;">';
     165// Table with available measures
     166$Output .= '<table border="1" cellspacing="0" cellpadding="2" style="font-size: small; margin: 0px auto;">';
    169167$Output .= '<tr><th>Měřená veličina</th><th>Poslední hodnota</th><th>Čas posledního měření</th><th>Interpolace</th><th>Poznámky</th>';
    170168if(array_key_exists('Debug', $_GET)) $Output .= '<th>Počet položek</th><th>Čas vykonání</th>';
    171169$Output .= '</tr>';
    172170$Database->select_db('measure');
    173 $Result = $Database->select('measure', '*', 'Enabled=1 AND PermissionView="all" OR PermissionView="'.gethostbyaddr($_SERVER['REMOTE_ADDR']).'" ORDER BY Description');
    174 //echo($Database->error);
    175 
     171$Result = $Database->select('measure', '*', '(Enabled=1) AND ((PermissionView="all") OR (PermissionView="'.gethostbyaddr($_SERVER['REMOTE_ADDR']).'")) ORDER BY Description');
    176172while($Measure = $Result->fetch_array())
    177173{
     
    202198$Output .= '</table>';
    203199$Output .= '<br><a href="http://svn.zdechov.net/trac/statistic/">Sekce vývoje systému</a>';
    204 //echo(time());
    205 //print_r(gd_info());
    206 $Output .= '</body></html>';
    207 //print_r($_SESSION);
     200$Output .= '</div></body></html>';
    208201
    209202ShowPage($Output);
    210 
    211 //echo(AddPrefixMultipliers('-0.000000071112345', 'B'));
  • branches/old/sql/23_measure.sql

    r24 r50  
    11CREATE TABLE IF NOT EXISTS `measure` (
    22  `Id` int(11) NOT NULL auto_increment,
    3   `Name` varchar(255) collate latin2_czech_cs NOT NULL,
    4   `Description` varchar(255) collate latin2_czech_cs NOT NULL,
     3  `Name` varchar(255) collate utf8_general_ci NOT NULL,
     4  `Description` varchar(255) collate utf8_general_ci NOT NULL,
    55  `Divider` int(11) NOT NULL default '1',
    6   `Unit` varchar(16) collate latin2_czech_cs NOT NULL,
     6  `Unit` varchar(16) collate utf8_general_ci NOT NULL,
    77  `Continuity` tinyint(1) NOT NULL default '0',
    88  `Period` int(11) NOT NULL default '60',
    9   `OldName` varchar(32) collate latin2_czech_cs NOT NULL,
    10   `PermissionView` varchar(255) collate latin2_czech_cs NOT NULL default 'all',
    11   `PermissionAdd` varchar(255) collate latin2_czech_cs NOT NULL default 'localhost.localdomain',
    12   `Info` varchar(255) collate latin2_czech_cs NOT NULL,
     9  `OldName` varchar(32) collate utf8_general_ci NOT NULL,
     10  `PermissionView` varchar(255) collate utf8_general_ci NOT NULL default 'all',
     11  `PermissionAdd` varchar(255) collate utf8_general_ci NOT NULL default 'localhost.localdomain',
     12  `Info` varchar(255) collate utf8_general_ci NOT NULL,
    1313  `Enabled` int(11) NOT NULL default '1',
    1414  `Cumulative` int(11) NOT NULL default '0',
    15   `DataTable` varchar(32) collate latin2_czech_cs NOT NULL default 'data',
    16   `DataType` varchar(32) collate latin2_czech_cs NOT NULL,
     15  `DataTable` varchar(32) collate utf8_general_ci NOT NULL default 'data',
     16  `DataType` varchar(32) collate utf8_general_ci NOT NULL,
    1717  PRIMARY KEY  (`Id`)
    18 ) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COLLATE=latin2_czech_cs;
     18) ENGINE=InnoDb  DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
Note: See TracChangeset for help on using the changeset viewer.