|
@@ -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;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|