Пример #1
0
 public function index()
 {
     $seconds = 2;
     $micro = $seconds * 1000000;
     $this->load->model('analog_model');
     $myFile = "/var/www/relay_framework/daemontest1.txt";
     $fh = fopen($myFile, 'a') or die("Can't open file");
     $stringData = "File updated at: " . $sResponse . "\n";
     fwrite($fh, $stringData);
     fclose($fh);
     $this->load->model('home_model');
     list($sIpAddress, $sPortNo) = $this->home_model->getSettings();
     if ($sIpAddress == '') {
         if (IP_ADDRESS) {
             $sIpAddress = IP_ADDRESS;
         }
     }
     //Check for Port Number constant
     if ($sPortNo == '') {
         if (PORT_NO) {
             $sPortNo = PORT_NO;
         }
     }
     if ($sIpAddress == '' || $sPortNo == '') {
     } else {
         $sResponse = get_rlb_status();
         $aAP = array($sResponse['AP0'], $sResponse['AP1'], $sResponse['AP2'], $sResponse['AP3']);
         $aAP = array(0, 1, 0, 1);
         $sValves = $sResponse['valves'];
         $sRelays = $sResponse['relay'];
         $sPowercenter = $sResponse['powercenter'];
         $aResult = $this->analog_model->getAllAnalogDevice();
         $iResultCnt = count($aResult);
         for ($i = 0; $i < $iResultCnt; $i++) {
             if ($aResult[$i] != '') {
                 $aDevice = explode('_', $aResult[$i]);
                 if ($aDevice[1] != '') {
                     if ($aDevice[1] == 'R') {
                         $sNewResp = replace_return($sRelays, $aAP[$i], $aDevice[0]);
                         onoff_rlb_relay($sNewResp);
                     }
                     if ($aDevice[1] == 'P') {
                         $sNewResp = replace_return($sPowercenter, $aAP[$i], $aDevice[0]);
                         onoff_rlb_powercenter($sNewResp);
                     }
                     if ($aDevice[1] == 'V') {
                         $sNewResp = replace_return($sValves, $aAP[$i], $aDevice[0]);
                         onoff_rlb_valve($sNewResp);
                     }
                 }
             }
         }
         usleep($micro);
     }
 }
Пример #2
0
 public function changeMode()
 {
     $aViewParameter['sucess'] = '0';
     $aViewParameter['err_sucess'] = '0';
     $aViewParameter['page'] = 'home';
     $this->load->model('home_model');
     if ($this->input->post('iMode') != '') {
         $iMode = $this->input->post('iMode');
         $this->home_model->updateMode($iMode);
         $sResponse = get_rlb_status();
         $sValves = $sResponse['valves'];
         $sRelays = $sResponse['relay'];
         $sPowercenter = $sResponse['powercenter'];
         if ($iMode == 3 || $iMode == 1) {
             //1-auto, 2-manual, 3-timeout
             //off all relays
             if ($sRelays != '') {
                 $sRelayNewResp = str_replace('1', '0', $sRelays);
                 onoff_rlb_relay($sRelayNewResp);
             }
             //off all valves
             if ($sValves != '') {
                 $sValveNewResp = str_replace(array('1', '2'), '0', $sValves);
                 onoff_rlb_valve($sValveNewResp);
             }
             //off all power center
             if ($sPowercenter != '') {
                 $sPowerNewResp = str_replace('1', '0', $sPowercenter);
                 onoff_rlb_powercenter($sPowerNewResp);
             }
         }
         $aViewParameter['sucess'] = '1';
     }
     $aViewParameter['iMode'] = $this->home_model->getActiveMode();
     $this->load->view("Mode", $aViewParameter);
 }
Пример #3
0
 public function getCustomProgram()
 {
     // Set default HTTP response of 'ok'
     $aResponse = array();
     $aResponse['code'] = 0;
     $aResponse['status'] = 404;
     $aResponse['data'] = NULL;
     $sformat = isset($_REQUEST['format']) ? $_REQUEST['format'] : '';
     // Get response Format (json,xml,html etc.)
     $sAuth = isset($_REQUEST['auth']) ? $_REQUEST['auth'] : '';
     // Check if Authentication is required.
     $this->isAuthenticationRequired = $sAuth;
     // Optionally require connections to be made via HTTPS
     if ($this->isHTTPSRequired && $_SERVER['HTTPS'] != 'on') {
         $aResponse['code'] = 2;
         $aResponse['status'] = $aApiResponseCode[$aResponse['code']]['HTTP Response'];
         $aResponse['data'] = $aApiResponseCode[$aResponse['code']]['Message'];
         // Return Response to browser. This will exit the script.
         $this->webResponse($sformat, $aResponse);
     }
     if ($this->isAuthenticationRequired) {
         //START : Authorisation
         $sUsername = isset($_REQUEST['username']) ? $_REQUEST['username'] : '';
         // Get the username of webservice
         $sPassword = isset($_REQUEST['password']) ? $_REQUEST['password'] : '';
         // Get the password of webservice
         $this->webAuthorisation($sUsername, $sPassword, $sformat);
         // Check if username and password is valid.
         // END : Authorisation
     }
     //Input Data
     $iGID = trim($_REQUEST['id']);
     if ($iGID == '') {
         $aResponse['code'] = 5;
         $aResponse['status'] = $this->aApiResponseCode[$aResponse['code']]['HTTP Response'];
         $aResponse['data'] = 'Invalid ID!';
         // Return Response.
         $this->webResponse($sformat, $aResponse);
         exit;
     }
     $this->load->model('home_model');
     $sResult = array();
     //Get Program Details.
     $sResult['program'] = $this->home_model->getCustomProgram($iGID);
     //Get All IP Details.
     $aViewParameter['aIPDetails'] = $this->home_model->getBoardIP();
     list($sIP, $sPort, $extra) = $this->home_model->getSettings();
     foreach ($aViewParameter['aIPDetails'] as $IP) {
         $shhPort = '';
         if (IS_LOCAL == '1') {
             //Get SSH port of the RLB board using IP.
             $shhPort = $this->home_model->getSSHPortFromID($IP->id);
         }
         $sResponse = array();
         $sValves = '';
         $sRelays = '';
         $sPowercenter = '';
         $sPump = '';
         //Get the status response of devices from relay board.
         $sResponse = get_rlb_status($IP->ip, $sPort, $shhPort);
         $sValves = $sResponse['valves'];
         // Valve Device Status
         $sRelays = $sResponse['relay'];
         // Relay Device Status
         $sPowercenter = $sResponse['powercenter'];
         // Power Center Device Status
         $sPump = array($sResponse['pump_seq_0_st'], $sResponse['pump_seq_1_st'], $sResponse['pump_seq_2_st']);
         $iIPID = $IP->id;
         $iCount = strlen($sRelays);
         for ($i = 0; $i < $iCount; $i++) {
             $relay = $sRelays[$i];
             if ($relay != '.' && $relay != '') {
                 $name = $this->home_model->getDeviceName($i, 'R', $iIPID);
                 if ($name == '') {
                     $name = 'Relay ' . $i;
                 }
                 $sResult['Relay' . $IP->id][$i] = $name;
             } else {
                 $sResult['Relay' . $IP->id][$i] = '.';
             }
         }
         $iCount = strlen($sPowercenter);
         for ($i = 0; $i < $iCount; $i++) {
             $name = $this->home_model->getDeviceName($i, 'P', $iIPID);
             if ($name == '') {
                 $name = 'PowerCenter ' . $i;
             }
             $sResult['PowerCenter' . $IP->id][$i] = $name;
         }
         $iCount = strlen($sValves);
         for ($i = 0; $i < $iCount; $i++) {
             $relay = $sValves[$i];
             if ($relay != '.' && $relay != '') {
                 $name = $this->home_model->getDeviceName($i, 'V', $iIPID);
                 //START : Get Valve Position Details.
                 $aPositionName = $this->home_model->getPositionName($i, 'V', $iIPID);
                 $strPosition1 = '';
                 $strPosition2 = '';
                 if ($aPositionName[0] != '') {
                     $strPosition1 = $this->home_model->getPositionNameFromID($aPositionName[0]);
                 }
                 if ($aPositionName[1] != '') {
                     $strPosition2 = $this->home_model->getPositionNameFromID($aPositionName[1]);
                 }
                 //END : Get Valve Position Details.
                 if ($name == '') {
                     $name = 'Valve ' . $i;
                 }
                 $sResult['Valve' . $IP->id][$i] = array($name, $strPosition1, $strPosition2);
             } else {
                 $sResult['Valve' . $IP->id][$i] = '.';
             }
         }
         $iCount = count($sPump);
         for ($i = 0; $i < $iCount; $i++) {
             $name = $this->home_model->getDeviceName($i, 'PS', $iIPID);
             if ($name == '') {
                 $name = 'Pump ' . $i;
             }
             $sResult['Pump' . $IP->id][$i] = $name;
         }
         $iCount = $extra['LightNumber'];
         for ($i = 0; $i < $iCount; $i++) {
             $name = $this->home_model->getDeviceName($i, 'L', $iIPID);
             if ($name == '') {
                 $name = 'Light ' . $i;
             }
             $sResult['Light' . $IP->id][$i] = $name;
         }
         $iCount = $extra['HeaterNumber'];
         for ($i = 0; $i < $iCount; $i++) {
             $name = $this->home_model->getDeviceName($i, 'H', $iIPID);
             if ($name == '') {
                 $name = 'Heater ' . $i;
             }
             $sResult['Heater' . $IP->id][$i] = $name;
         }
         $iCount = $extra['BlowerNumber'];
         for ($i = 0; $i < $iCount; $i++) {
             $name = $this->home_model->getDeviceName($i, 'B', $iIPID);
             if ($name == '') {
                 $name = 'Blower ' . $i;
             }
             $sResult['Blower' . $IP->id][$i] = $name;
         }
         $iCount = $extra['MiscNumber'];
         for ($i = 0; $i < $iCount; $i++) {
             $name = $this->home_model->getDeviceName($i, 'M', $iIPID);
             if ($name == '') {
                 $name = 'Misc ' . $i;
             }
             $sResult['Misc' . $IP->id][$i] = $name;
         }
     }
     $aResponse['code'] = 1;
     $aResponse['status'] = $this->aApiResponseCode[$aResponse['code']]['HTTP Response'];
     $aResponse['data'] = json_encode($sResult);
     $this->webResponse($sformat, $aResponse);
 }
Пример #4
0
 public function systemStatus()
 {
     $aViewParameter['page'] = 'status';
     $this->checkSettingsSaved();
     $sResponse = get_rlb_status();
     $aViewParameter['response'] = $sResponse['response'];
     $this->load->view('Status', $aViewParameter);
 }