Location: PHPKode > projects > PHPMyServer > server/modules/ups/index.php4.php
// PHPMyServer - A PHP System Information Script - Old project name was PHPMyStats
// http://www.phpmyserver.com/
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
// $Id: index.php/index.php4.php/index.php5.php/etc ,v 2.6 13-08-2005 16:30 precision Exp $
// Date in $Id is as DD-MM-YY

//PHPMyServer - XML Server v2.6
//Build version:
//  split version at the DOT, before the DOT is the CORE version, AFTER the DOT is de RELEASE
//Every new release will get an higher number, so when i released version 2 of the script for the 126523st time, its version v2.126523

//Copyright 2004-2005 by KingOfDos Intra/Extra/Internet WebServices

class pmsmod_ups {

	var $module;

	function pmsmod_ups() {
		if (function_exists('pmsFuncStatic'))
			$this->func=& pmsFuncStatic();

		$this->module = array();

		//Compatible versions of PHPMyServer for this module
		$this->module['compatible_version'] = array(


		include 'info_data.php';
		$this->module['information'] = $val;
		$this->module['return_data'] = array();
		//XML Server - IP / Name of this connection (external)
		if (
			$data_status = explode("\n",$this->func->shell_mexec('.\\ups\\reg.exe query HKLM\\System\\CurrentControlSet\\Services\\UPS\\Start')) AND //Execute REG command
			!eregi('unable to find the specified registry key',$data_status[0]) AND //NOT unable to find
			preg_match("!REG_DWORD	Start	([0-4])!",$data_status[0],$data_status_ret) AND //Get the status from dword
			is_numeric($data_status_ret[1]) AND //Is numeric
			$data_status_ret[1]==2 //Service starts automaticly
		) {

			$data = explode("\n",$this->func->shell_mexec('.\\ups\\reg.exe query HKLM\\System\\CurrentControlSet\\Services\\UPS\\Status'));
			//print_r($data); exit;
			if (!eregi('unable to find the specified registry key',$data[0])) {
				for($data_cnt=0;$data_cnt<=count($data)-1;$data_cnt++) {
					//if (preg_match("!SerialNumber	(.*)!",$data[$data_cnt],$data_ret))
					//	$this->module['return_data']['serial_number'] = $data_ret[1];
					//if (preg_match("!FirmwareRev	(.*)!",$data[$data_cnt],$data_ret))
					//	$this->module['return_data']['firmware_rev'] = $data_ret[1];
					if (preg_match("!UtilityPowerStatus	(.*)!",$data[$data_cnt],$data_ret))
						$this->module['return_data']['utility_power_status'] = (is_numeric($data_ret[1]) AND $data_ret[1]==1)?'Power':((is_numeric($data_ret[1]) AND $data_ret[1]==2)?'Battery':'Unknown');

					if (preg_match("!TotalUPSRuntime	(.*)!",$data[$data_cnt],$data_ret))
						$this->module['return_data']['total_ups_runtime'] = (is_numeric($data_ret[1]))?$data_ret[1].' minutes':'Unknown';
					if (preg_match("!BatteryStatus	(.*)!",$data[$data_cnt],$data_ret))
						$this->module['return_data']['battery_helth'] = (is_numeric($data_ret[1]) AND $data_ret[1]==0)?'Unknown':((is_numeric($data_ret[1]) AND $data_ret[1]==1)?'Good':'Replace');
					if (preg_match("!BatteryCapacity	(.*)!",$data[$data_cnt],$data_ret))
						$this->module['return_data']['battery_capicity'] = (is_numeric($data_ret[1]) AND $data_ret[1]<=100 AND $data_ret[1]>=0)?$data_ret[1].'%':'Unknown';
					if (preg_match("!CommStatus	(.*)!",$data[$data_cnt],$data_ret))
						$this->module['return_data']['comm_status'] = (is_numeric($data_ret[1]) AND $data_ret[1]==1)?'Connected':'Failed';
				$this->module['return_data']['comm_port'] = 'COM1';
		//For every OS, when there is no data, return this.		
		if (count($this->module['return_data'])==0) {
			$this->module['return_data']['battery_helth'] = 'Unknown';
			$this->module['return_data']['battery_capicity'] = 'Unknown';
			$this->module['return_data']['comm_status'] = 'Unknown';
			//$this->module['return_data']['firmware_rev'] = 0;
			//$this->module['return_data']['serial_number'] = 'Unknown';
			$this->module['return_data']['total_ups_runtime'] = 'Unknown';
			$this->module['return_data']['utility_power_status'] = 'Unknown';
			$this->module['return_data']['comm_port'] = 'Unknown';

	function pmsmod_return() {
		return $this->module;

Return current item: PHPMyServer