likang 1 year ago
parent
commit
1e9b6318b0
1 changed files with 51 additions and 10 deletions
  1. 51 10
      catch/api/service/dispose.php

+ 51 - 10
catch/api/service/dispose.php

@@ -368,13 +368,31 @@ public function set_label_history($data){
     $key=$MAC."_label_history";
     $head=$data['label']."_head";
     $tail=$data["label"]."_tail";
+    $frontMaxKey=$data['label'].'_frontMax';
+    $backMaxKey=$data['label'].'_backMax';
+    $frontMax=null;
+    $backMax=null;
+   
     //保存头部
     $head_data= $this->selectHash($key,$head);
     $tail_data=$this->selectHash($key,$tail);
-    debug_log("InAndOUT","最旧信号间隔-".($data["report_time"]-$tail_data[count($tail_data)-1]["report_time"]));
-    debug_log("InAndOUT","最旧信号间隔--".json_encode($tail_data));
-    debug_log("InAndOUT","最旧信号间隔---".json_encode($tail_data[count($tail_data)-1]));
-    debug_log("InAndOUT","最旧信号间隔----".$data["report_time"]);
+    //保存朝外的信号最大值
+    $frontMax=$this->selectHash($key,$frontMaxKey);
+    //保存朝内的信号最大值
+    $backMax=$this->selectHash($key,$backMaxKey);
+    if(empty($frontMax)){
+        $frontMax=$data["rssi1"];
+    }else{
+        $frontMax=$data["rssi1"]<$frontMax?$data["rssi1"]:$frontMax;    
+    }
+    if(empty($backMax)){
+        $backMax=$data["rssi2"];
+    }else{
+        $backMax=$data["rssi2"]<$frontMax?$data["rssi2"]:$frontMax;    
+    }
+    $this->setHash($key,$frontMaxKey,$frontMax);
+    $this->setHash($key,$backMaxKey,$backMax);
+
     if(!empty($tail_data)){
         if(($data["report_time"]-$tail_data[count($tail_data)-1]["report_time"])>6){
           $head_data=[];
@@ -391,7 +409,6 @@ public function set_label_history($data){
     }
     //保存尾部标签数据
     
-   
     $tail_data=empty($tail_data)?[]: $tail_data;
     array_push($tail_data,$data);
     while(count($tail_data)>3){
@@ -412,6 +429,8 @@ public function get_label_history($type,$mac,$label){
     $key=$mac."_label_history";
     $head=$label."_head";
     $tail=$label."_tail";
+    $frontMaxKey=$label.'_frontMax';
+    $backMaxKey=$label.'_backMax';
     if($type==1){
         $head_data= $this->selectHash($key,$head);
         return $head_data;
@@ -422,9 +441,23 @@ public function get_label_history($type,$mac,$label){
     }
     if($type==3){
         debug_log("InAndOUT","清空头部和尾部历史:".$mac." ".$label);
-        $tail_data= $this->delHash($key,$head);
-        $tail_data= $this->delHash($key,$tail);
+        $this->delHash($key,$head);
+        $this->delHash($key,$tail);
+        $this->delHash($key,$frontMaxKey);
+        $this->delHash($key, $backMaxKey);
+    }
+    if($type==4){
+        $frontMax= $this->selectHash($key,$frontMaxKey);
+        return $frontMax;
     }
+    if($type==5){
+        $backMax= $this->selectHash($key,$backMaxKey);
+        return $backMax;
+    }
+
+
+
+
 }
 /**
  * 二次生成进出
@@ -475,8 +508,7 @@ public function second_create_direction($mac,$label){
             $front+=1;
         }else{
             $behind+=1;
-        }
-       
+        } 
         $time=$item['report_time'];
    }
    $tail_dir=$front>$behind?1:2;
@@ -499,7 +531,6 @@ public function second_create_direction($mac,$label){
         debug_log("second_dirt","当天早上7点之前进寝室,不做二次计算");
         return false;
     }
-  
     $befor_res= $this->get_time_results($mac,$label,2);
   
     if(!empty($befor_res)){
@@ -510,6 +541,16 @@ public function second_create_direction($mac,$label){
             debug_log("second_dirt","间隔时间第一个小时,且方向相同 不做二次计算".$interval_time);
             if($interval_time<1*60*60){
                 return false;
+            }else{
+                $frontMax= $this->get_label_history(4,$mac,$label);
+                //$backMax=$this->get_label_history(5,$mac,$label);
+                debug_log("second_dirt","标签.$label.的最朝外的最大值".$frontMax);
+                if($frontMax>65){
+                    debug_log("second_dirt","标签.$label.的最朝外的最大值大于65参与计算");
+                    return false;
+                }
+
+
             }
         }