Selaa lähdekoodia

修复bug,检测停留事件失败

nifangxu 1 kuukausi sitten
vanhempi
commit
65ab453ecd
1 muutettua tiedostoa jossa 10 lisäystä ja 14 poistoa
  1. 10 14
      core/alarm_plan.py

+ 10 - 14
core/alarm_plan.py

@@ -318,7 +318,7 @@ class AlarmPlan:
         return bRet
 
     # 查找最近 t 秒内,最后一个落在 rect 内的 target_point 的 rtd_unit
-    def find_latest_rtd_in_region(self, device: Device, rect: list, now: int=None, t: int=1):
+    def find_latest_rtd_in_region(self, device: Device, rect: list, now: int=None, t: int=5):
         now_s = now if now else get_utc_time_s()
         rtd_que_copy = device.get_rtd_que_copy()
         with self.lock_:
@@ -336,22 +336,18 @@ class AlarmPlan:
 
 
     # 检查关键时间点, 获取停留时间
-    def get_stay_time(self, device: Device, t: int=1):
+    def get_stay_time(self, device: Device, t: int=5):
         now = get_utc_time_s()
         rtd_unit = self.find_latest_rtd_in_region(device, self.rect_, now, t)
-        if not rtd_unit:
-            return -1
 
         with self.lock_:
-            timestamp = rtd_unit["timestamp"]
-            pose = rtd_unit["pose"]
-            target_point = rtd_unit["target_point"]
-
-            if self.event_attr_.enter_ts_ == -1:
-                self.event_attr_.enter_ts_ = timestamp
-                LOGINFO(f"detected target enter, plan_uuid: {self.plan_uuid_}")
-            else:
-                self.event_attr_.leave_ts_ = timestamp
+            if rtd_unit:
+                timestamp = rtd_unit["timestamp"]
+                if self.event_attr_.enter_ts_ == -1:
+                    self.event_attr_.enter_ts_ = timestamp
+                    LOGINFO(f"detected target enter, plan_uuid: {self.plan_uuid_}")
+                else:
+                    self.event_attr_.leave_ts_ = timestamp
 
             if self.event_attr_.enter_ts_ == -1 or self.event_attr_.leave_ts_ == -1:
                 return -1
@@ -377,7 +373,7 @@ class AlarmPlan:
 
 
     # 检查关键时间点, 获取消失时间
-    def get_absence_time(self, device: Device, t: int=1):
+    def get_absence_time(self, device: Device, t: int=5):
         now = get_utc_time_s()
         # 查找最新的落在检测区域的目标
         rtd_unit = self.find_latest_rtd_in_region(device, self.rect_, now, 3)