|
@@ -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)
|