nana_sen 1 year ago
parent
commit
eb2b270308
1 changed files with 89 additions and 79 deletions
  1. 89 79
      catch/api/controller/Api.php

+ 89 - 79
catch/api/controller/Api.php

@@ -229,8 +229,8 @@ class Api extends CatchController
 
     //消息处理
     public function handleMessage($text, $mac, $time, $ues_redis){
-        $EXP_TIME = 10;
-        $EFF_SIG_NUM = 6;
+        $EXP_TIME = 20;
+        $EFF_SIG_NUM = 10;
         while(strlen($text)>=24){
     
             $da=substr($text,0,24);
@@ -262,87 +262,95 @@ class Api extends CatchController
                 $info = $ues_redis->hget("parea_rfidinfos",$field);
                 debug_log("pare_InAndOUT","数据:".json_encode($DA,true));
 
-                if(!$info){
-                    $info = [
-                        "mac" => $mac,
-                        "id" => $rfid,
-                        "firs_time" => $time,
-                        "time" => $time,
-                        "status" => 2,//2出状态,1进状态
-                        "rssi" => [
-                            [
-                                "front" => $rssi1,
-                                "behind" => $rssi2,
-                                "left" => $rssi3,
-                                "right" => $rssi4,
-                                "time" => $time
-                            ]
-                        ]
-                    ];
-                    $ues_redis->hset("parea_rfidinfos",$field, json_encode($info,true));
-                    debug_log("parea_rfidinfos_redis_set_record","redis更新记录".json_encode($info,true));
+                if($rssi1 ==255 && $rssi2 == 255 && $rssi3 == 255 && $rssi4 == 255){
+                    debug_log("pare_InAndOUT","无效数据:".json_encode($DA,true));
                 }else{
-                    $info = json_decode($info,true);
-
-                    $info["time"] = $time;
-                    $newRssi = [
-                        "front" => $rssi1,
-                        "behind" => $rssi2,
-                        "left" => $rssi3,
-                        "right" => $rssi4,
-                        "time" => $time
-                    ];
-                    $rssisArr = $info["rssi"];
-                    
-                    // var_dump("+++++++++++++++++", $time, $newRssi["time"]);
-
-                    // foreach ($rssisArr as $k => $v) {
-                    //     # code...
-                    //     if( ($time - $v["time"] ) > $EXP_TIME ){
-                    //         unset($rssisArr[$k]);
-                    //         // var_dump("+++++++++++++++++", $time, $v["time"]);
-                    //     }
-                    // }
-                    if(count($rssisArr) == $EFF_SIG_NUM){
-                        array_shift($rssisArr);
-                        array_push($rssisArr, $newRssi);
+                    if(!$info){
+                        $info = [
+                            "mac" => $mac,
+                            "id" => $rfid,
+                            "firs_time" => $time,
+                            "time" => $time,
+                            "status" => 2,//2出状态,1进状态
+                            "rssi" => [
+                                [
+                                    "front" => $rssi1,
+                                    "behind" => $rssi2,
+                                    "left" => $rssi3,
+                                    "right" => $rssi4,
+                                    "time" => $time
+                                ]
+                            ]
+                        ];
+                        $ues_redis->hset("parea_rfidinfos",$field, json_encode($info,true));
+                        debug_log("parea_rfidinfos_redis_set_record","redis更新记录".json_encode($info,true));
                     }else{
-                        array_push($rssisArr, $newRssi);
-                    }
-                    
-                    // var_dump("+++++++++++++++++",$rssisArr);
-                    $info["rssi"] = $rssisArr;
-
-                    // var_dump("------------",$info["rssi"]);
-
-                    $cacCount = count($rssisArr);
-                    // if($cacCount > $EFF_SIG_NUM){
-                    $sum1 = 0;
-                    $sum2 = 0;
-                    $sum3 = 0;
-                    $sum4 = 0;
-                    foreach ($rssisArr as $k => $v) {
-                        # code...
-                        $sum1 += ($v["front"] == 255 ? 85 : $v["front"]);
-                        $sum2 += ($v["behind"] == 255 ? 85 : $v["behind"]);
-                        $sum3 += ($v["left"] == 255 ? 85 : $v["left"]);
-                        $sum4 += ($v["right"] == 255 ? 85 : $v["right"]);
-                    }
-                    $info["avg"] = [
-                        "front" => number_format( $sum1/$cacCount, 2 ),
-                        "behind" => number_format( $sum2/$cacCount, 2 ),
-                        "left" => number_format( $sum3/$cacCount, 2 ),
-                        "right" => number_format( $sum4/$cacCount, 2 ),
-                    ];
-
-                    if ($cacCount == $EFF_SIG_NUM) {
-                        # code...
-                       $info = $this->compAndPush($info ,$ues_redis);
+                        $info = json_decode($info,true);
+    
+                        $info["time"] = $time;
+                        $newRssi = [
+                            "front" => $rssi1,
+                            "behind" => $rssi2,
+                            "left" => $rssi3,
+                            "right" => $rssi4,
+                            "time" => $time
+                        ];
+                        $rssisArr = $info["rssi"];
+                        
+                        // var_dump("+++++++++++++++++", $time, $newRssi["time"]);
+    
+                        foreach ($rssisArr as $k => $v) {
+                            # code...
+                            if( ($time - $v["time"] ) > $EXP_TIME ){
+                                unset($rssisArr[$k]);
+                                // var_dump("+++++++++++++++++", $time, $v["time"]);
+                            }
+                        }
+                        // var_dump("+++++++++++++++++",$rssisArr);
+                        if(count($rssisArr) == $EFF_SIG_NUM){
+                            array_shift($rssisArr);
+                            array_push($rssisArr, $newRssi);
+                        }else{
+                            array_push($rssisArr, $newRssi);
+                        }
+                        
+                        $rssisArr =array_values($rssisArr);
+                        // var_dump("+++++++++++++++++",$rssisArr);
+                        $info["rssi"] = $rssisArr;
+    
+                        // var_dump("------------",$info["rssi"]);
+    
+                        $cacCount = count($rssisArr);
+                        // if($cacCount > $EFF_SIG_NUM){
+                        $sum1 = 0;
+                        $sum2 = 0;
+                        $sum3 = 0;
+                        $sum4 = 0;
+                        foreach ($rssisArr as $k => $v) {
+                            # code...
+                            $sum1 += ($v["front"] == 255 ? 85 : $v["front"]);
+                            $sum2 += ($v["behind"] == 255 ? 85 : $v["behind"]);
+                            $sum3 += ($v["left"] == 255 ? 85 : $v["left"]);
+                            $sum4 += ($v["right"] == 255 ? 85 : $v["right"]);
+                        }
+                        $info["avg"] = [
+                            "front" => number_format( $sum1/$cacCount, 2 ),
+                            "behind" => number_format( $sum2/$cacCount, 2 ),
+                            "left" => number_format( $sum3/$cacCount, 2 ),
+                            "right" => number_format( $sum4/$cacCount, 2 ),
+                        ];
+    
+                        if ($cacCount == $EFF_SIG_NUM) {
+                            # code...
+                           $info = $this->compAndPush($info ,$ues_redis);
+                        }
+                        $ues_redis->hset("parea_rfidinfos",$field, json_encode($info,true));
+                        
+                        debug_log("parea_rfidinfos_redis_set_record","redis更新记录".json_encode($info,true));
                     }
-                    $ues_redis->hset("parea_rfidinfos",$field, json_encode($info,true));
-                    
-                    debug_log("parea_rfidinfos_redis_set_record","redis更新记录".json_encode($info,true));
                 }
+
+
                 $text=substr($text,24);
             }else{
                 $text=substr($text,1);
@@ -372,6 +380,8 @@ class Api extends CatchController
                 "left_out" => 82,
                 "right_out" => 70,
             ];     
+        }else{
+            $config = json_decode($config);
         }
 
         $avg = $info['avg'];