Bladeren bron

no message

username@email.com 5 jaren geleden
bovenliggende
commit
7571e6a49f
2 gewijzigde bestanden met toevoegingen van 80 en 22 verwijderingen
  1. 31 22
      api/application/controllers/Lampcontrol.php
  2. 49 0
      sendCmd/idcol_online_alarm.php

+ 31 - 22
api/application/controllers/Lampcontrol.php

@@ -89,7 +89,7 @@ class Lampcontrol extends Base_Controller {
         $status = $this->input->post('status', true);
         if (!empty($status)) {
             // $filter['AI.isfaulted'] = $status;
-            $filter .= ' AND (AI.batstatus != 0 OR AI.panelstatus != 0 OR AI.lampstatus != 0 OR AI.tempstatus != 0)';
+            $filter .= ' AND (AI.batstatus != 0 OR AI.panelstatus != 0 OR AI.lampstatus != 0 OR AI.tempstatus != 0 OR AI.onlinestatus != 0) and (L.controllerstatus = 5 OR L.netstatus = 0)';
         }
         // $alarmtype = $this->input->post('alarmtype', true);
         // if (!empty($alarmtype)) $filter['AI.alarmtype'] = $alarmtype;
@@ -103,18 +103,18 @@ class Lampcontrol extends Base_Controller {
         $version = $this->session->userdata('version');
         if ($lite == 1) {
             if(empty($fields)){
-                $fields = 'L.id, L.number,L.address,RI.updatetime,RI.loadpower,RI.batvoltage as battvoltage,L.netstatus,L.lighteness,L.status,L.battstatus,L.chargestage,L.controllerstatus';
+                $fields = 'L.id, L.number,L.address,RI.updatetime,RI.loadpower,RI.batvoltage as battvoltage,L.netstatus,L.lighteness,L.status,L.battstatus,L.chargestage,L.controllerstatus,L.netstatus as netstatus2';
             }else{
-                $fields .= ",RI.updatetime,L.controllerstatus";
+                $fields .= ",RI.updatetime,L.controllerstatus,L.netstatus as netstatus2";
             }
             $join = array();
             $join[] = ['table'=>'(select t1.* from realtime_info_log t1, (select lampid, max(updatetime) as maxtime from realtime_info_log group by lampid) t2 where t1.lampid = t2.lampid and t1.updatetime = t2.maxtime) as RI', 'cond'=>'L.id = RI.lampid', 'type'=>'left'];
             $data['lamps'] = $this->Lamp_model->get_list_by_join($filter, $fields,$limit, $offset, $join, "L.number ASC", NUll, 'L');
         } else {
             if(empty($fields) || empty($field1)){
-                $fields = 'L.id, L.number, IFNULL(L.status,0) as status, L.isfaulted, L.address, L.lamppower, L.electricSOC, L.battvoltage, L.chargestage, RI.updatetime, RI.updatetime as modifytime,L.overtimes,L.boardpower,L.lighteness as light,L.projectid,L.devstatus as online,P.projectname as project_name,L.section,L.loadtype,P.timezone as timezoneid,L.controllerstatus';
+                $fields = 'L.id, L.number, IFNULL(L.status,0) as status, L.isfaulted, L.address, L.lamppower, L.electricSOC, L.battvoltage, L.chargestage, RI.updatetime, RI.updatetime as modifytime,L.overtimes,L.boardpower,L.lighteness as light,L.projectid,L.devstatus as online,P.projectname as project_name,L.section,L.loadtype,P.timezone as timezoneid,L.controllerstatus,L.netstatus as netstatus2';
             }else{
-                $fields .= ",L.id,L.projectid,L.section,L.loadtype,P.timezone as timezoneid,L.controllerstatus";
+                $fields .= ",L.id,L.projectid,L.section,L.loadtype,P.timezone as timezoneid,L.controllerstatus,L.netstatus as netstatus2";
             }
 
             $download = intval($this->input->post('download',true));
@@ -291,30 +291,39 @@ class Lampcontrol extends Base_Controller {
 
                 // 故障信息处理
                 if (array_key_exists('alarmStatus',$value)) {
-                    if ((empty($value['batstatus']) && $value['panelstatus'] && $value['lampstatus'] && $value['tempstatus']) || $value['controllerstatus'] != 5) {
+                    if ($value['netstatus2'] == 0) {
                         if (empty($version)) {
-                            $value['isfaulted'] = '';
+                            $value['isfaulted'] = '离线故障';
                         }else{
-                            $value['isfaulted'] = 'Nothing';
+                            $value['isfaulted'] = 'Offline failure';
                         }
-                        
                     }else{
-                        $batstatus = $this->config->item('batstatus');
-                        $panelstatus = $this->config->item('panelstatus');
-                        $lampstatus = $this->config->item('lampstatus');
-                        $tempstatus = $this->config->item('tempstatus');
-                        $temp2 = array();
-                        if (isset($batstatus[$value['batstatus']])) $temp2[] = $batstatus[$value['batstatus']];
-                        if (isset($panelstatus[$value['panelstatus']])) $temp2[] = $panelstatus[$value['panelstatus']];
-                        if (isset($lampstatus[$value['lampstatus']])) $temp2[] = $lampstatus[$value['lampstatus']];
-                        if (isset($tempstatus[$value['tempstatus']])) $temp2[] = $tempstatus[$value['tempstatus']];
-                        if (!empty($temp2)) {
-                            $value['isfaulted'] = implode(',', $temp2);
+                        if ((empty($value['batstatus']) && $value['panelstatus'] && $value['lampstatus'] && $value['tempstatus']) || $value['controllerstatus'] != 5) {
+                            if (empty($version)) {
+                                $value['isfaulted'] = '无';
+                            }else{
+                                $value['isfaulted'] = 'Nothing';
+                            }
+                            
                         }else{
-                            $value['isfaulted'] = 'Nothing';
+                            $batstatus = $this->config->item('batstatus');
+                            $panelstatus = $this->config->item('panelstatus');
+                            $lampstatus = $this->config->item('lampstatus');
+                            $tempstatus = $this->config->item('tempstatus');
+                            $temp2 = array();
+                            if (isset($batstatus[$value['batstatus']])) $temp2[] = $batstatus[$value['batstatus']];
+                            if (isset($panelstatus[$value['panelstatus']])) $temp2[] = $panelstatus[$value['panelstatus']];
+                            if (isset($lampstatus[$value['lampstatus']])) $temp2[] = $lampstatus[$value['lampstatus']];
+                            if (isset($tempstatus[$value['tempstatus']])) $temp2[] = $tempstatus[$value['tempstatus']];
+                            if (!empty($temp2)) {
+                                $value['isfaulted'] = implode(',', $temp2);
+                            }else{
+                                $value['isfaulted'] = 'Nothing';
+                            }
+                                
                         }
-                            
                     }
+                    
                 }
 
                 if (array_key_exists('lampstatus',$value)) {

+ 49 - 0
sendCmd/idcol_online_alarm.php

@@ -0,0 +1,49 @@
+<?php
+// 离线故障处理
+ini_set('display_errors', 1);
+require_once './DB.php';
+date_default_timezone_set('Asia/Shanghai');
+
+$config = [
+    'hostname' => 'rm-wz98r5cn33zq4ou980o.mysql.rds.aliyuncs.com',
+	'username' => 'idcol20',
+	'password' => 'idcol@1234',
+	'dbname' => 'idcol',
+];
+
+function send_cmd($cmd,$type = 0, $timeout = 30, $ms_timeout = 200) {
+	$ip = '123.57.20.89';
+    $port = '6800';
+	$client = @stream_socket_client("tcp://{$ip}:{$port}", $errno, $errstr, 30);
+	if ($client) {
+		fwrite($client, $cmd);
+		stream_set_timeout($client, $timeout, $ms_timeout);
+		$result = fread($client, 8196);
+		fclose($client);
+		return $result;
+	} else {
+        sleep(1);
+        send_cmd($cmd,$type, $timeout, $ms_timeout);
+	}
+}
+
+$begin = date('H:i',time());
+while (1) {
+	
+	$db = new Db($config);
+
+	// 生成离线故障
+	$sql = 'SELECT L.id FROM lampinfo as L left join warning_info_log AS WI on WI.lampid = L.id and WI.onlinestatus = 1 and WI.status = 0 where L.netstatus = 0 and WI.id is null';
+	$list = $db->query($sql);
+	var_dump($list);die;
+	foreach ($list as $value) {
+		
+	}
+	$db->close();
+	$end = date('H:i',time());
+	if ($end == $begin) {
+		sleep(1);
+		continue;
+	}
+	$begin = $end;
+}