Changeset 95 for trunk/Modules/Measure/Measure.php
- Timestamp:
- Dec 6, 2021, 11:33:48 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Modules/Measure/Measure.php
r92 r95 3 3 include_once(dirname(__FILE__).'/Page.php'); 4 4 5 class ModuleMeasure extends AppModule5 class ModuleMeasure extends Module 6 6 { 7 7 function __construct($System) … … 16 16 } 17 17 18 function DoStart() 19 { 20 $this->System->RegisterPage( '', 'PageMain');21 } 22 23 function DoInstall() 24 { 25 $this->Database->query('CREATE TABLE IF NOT EXISTS `Measure` (26 `Id` int(11) NOT NULL auto_increment,27 `Name` varchar(255) collate utf8_general_ci NOT NULL,28 `Description` varchar(255) collate utf8_general_ci NOT NULL,29 `Divider` int(11) NOT NULL default 1,30 `Unit` varchar(16) collate utf8_general_ci NOT NULL,31 `Continuity` tinyint(1) NOT NULL default 0,32 `Period` int(11) NOT NULL default 60,33 `PermissionView` varchar(255) collate utf8_general_ci NOT NULL default "all",34 `PermissionAdd` varchar(255) collate utf8_general_ci NOT NULL default "localhost.localdomain",35 `Info` varchar(255) collate utf8_general_ci NOT NULL,36 `Enabled` int(11) NOT NULL default 1,37 `Cumulative` int(11) NOT NULL default 0,38 `DataTable` varchar(32) collate utf8_general_ci NOT NULL default "data",39 `DataType` varchar(32) collate utf8_general_ci NOT NULL,40 PRIMARY KEY (`Id`)41 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;');42 43 44 function DoUninstall() 18 function DoStart(): void 19 { 20 $this->System->RegisterPage(array(''), 'PageMain'); 21 } 22 23 function DoInstall(): void 24 { 25 $this->Database->query('CREATE TABLE IF NOT EXISTS `Measure` ( 26 `Id` int(11) NOT NULL auto_increment, 27 `Name` varchar(255) collate utf8_general_ci NOT NULL, 28 `Description` varchar(255) collate utf8_general_ci NOT NULL, 29 `Divider` int(11) NOT NULL default 1, 30 `Unit` varchar(16) collate utf8_general_ci NOT NULL, 31 `Continuity` tinyint(1) NOT NULL default 0, 32 `Period` int(11) NOT NULL default 60, 33 `PermissionView` varchar(255) collate utf8_general_ci NOT NULL default "all", 34 `PermissionAdd` varchar(255) collate utf8_general_ci NOT NULL default "localhost.localdomain", 35 `Info` varchar(255) collate utf8_general_ci NOT NULL, 36 `Enabled` int(11) NOT NULL default 1, 37 `Cumulative` int(11) NOT NULL default 0, 38 `DataTable` varchar(32) collate utf8_general_ci NOT NULL default "data", 39 `DataType` varchar(32) collate utf8_general_ci NOT NULL, 40 PRIMARY KEY (`Id`) 41 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;'); 42 } 43 44 function DoUninstall(): void 45 45 { 46 46 $this->Database->query('DROP TABLE IF EXISTS `Measure`'); 47 }48 49 function DoUpgrade()50 {51 52 47 } 53 48 } … … 81 76 } 82 77 83 function TimeSegment( $Level)78 function TimeSegment(int $Level): int 84 79 { 85 80 return pow($this->LevelReducing, $Level) * 60; 86 81 } 87 82 88 function GetDataTable() 83 function GetDataTable(): string 89 84 { 90 85 return 'data_'.$this->Data['Name']; 91 86 } 92 87 93 function AlignTime( $Time, $TimeSegment)88 function AlignTime(int $Time, int $TimeSegment): int 94 89 { 95 90 return round(($Time - $this->ReferenceTime) / $TimeSegment) * $TimeSegment + … … 97 92 } 98 93 99 function Load( $Id)94 function Load(int $Id): void 100 95 { 101 96 $Result = $this->Database->select('Measure', '*', '`Id`='.$Id); … … 108 103 } 109 104 110 function AddValue( $Value, $Time)105 function AddValue(float $Value, int $Time): void 111 106 { 112 107 $Result = $this->Database->select($this->Data['DataTable'], '*', '(`Measure`='.$this->Data['Id'].') AND '. … … 163 158 } 164 159 165 function UpdateHigherLevels( $Time)160 function UpdateHigherLevels(int $Time): void 166 161 { 167 162 for ($Level = 1; $Level <= $this->MaxLevel; $Level++) … … 206 201 207 202 /* Compute one value for upper time level from multiple values */ 208 function ComputeOneValue( $LeftTime, $RightTime, $Values, $Level)203 function ComputeOneValue(int $LeftTime, int $RightTime, array $Values, int $Level): array 209 204 { 210 205 $NewValue = array('Min' => +1000000000000000000, 'Avg' => 0, 'Max' => -1000000000000000000); … … 294 289 } 295 290 296 function GetTimeRange( $Level)291 function GetTimeRange(int $Level): array 297 292 { 298 293 // Get first and last time … … 317 312 318 313 // Load one nearest value newer then given time 319 function LoadRightSideValue( $Level, $Time)314 function LoadRightSideValue(int $Level, int $Time): array 320 315 { 321 316 $Result = array(); … … 350 345 351 346 // Load one nearest value older then given time 352 function LoadLeftSideValue( $Level, $Time)347 function LoadLeftSideValue(int $Level, int $Time): array 353 348 { 354 349 $Result = array(); … … 382 377 } 383 378 384 function GetValues( $TimeFrom, $TimeTo, $Level)379 function GetValues(int $TimeFrom, int $TimeTo, int $Level): array 385 380 { 386 381 //$AbsoluteTime = GetTimeRange($this->DataId); … … 430 425 } 431 426 432 function RebuildMeasureCache() 427 function RebuildMeasureCache(): void 433 428 { 434 429 echo('Velicina '.$this->Data['Name']."<br>\n"); … … 508 503 } 509 504 510 function RebuildAllMeasuresCache() 505 function RebuildAllMeasuresCache(): void 511 506 { 512 507 $Result = $this->Database->select('Measure', 'Id'); 513 508 while ($Row = $Result->fetch_array()) 514 509 { 515 $Measure = new Measure( );510 $Measure = new Measure($this->Database); 516 511 $Measure->Load($Row['Id']); 517 512 $Measure->RebuildMeasureCache(); … … 520 515 } 521 516 522 function ClearData() 517 function ClearData(): void 523 518 { 524 519 $this->Database->delete($this->Data['DataTable'], '1');
Note:
See TracChangeset
for help on using the changeset viewer.