fix(vive-tracker): 删除重复的 __del__ 方法,增加生命周期日志
This commit is contained in:
parent
15d9eae9a1
commit
68d7898603
@ -81,20 +81,25 @@ class ViveTracker(metaclass=SingletonMeta):
|
|||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
"""停止采集线程 (不释放 context, 可重新 start)"""
|
"""停止采集线程 (不释放 context, 可重新 start)"""
|
||||||
|
logger.info("Stopping Vive Tracker pose tracking...")
|
||||||
self.running = False
|
self.running = False
|
||||||
if self._collector_thread is not None:
|
if self._collector_thread is not None:
|
||||||
self._collector_thread.join(timeout=2.0)
|
self._collector_thread.join(timeout=2.0)
|
||||||
self._collector_thread = None
|
self._collector_thread = None
|
||||||
|
logger.info("Vive Tracker pose tracking stopped")
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
"""停止采集并释放 pysurvive context。"""
|
"""停止采集并释放 pysurvive context。"""
|
||||||
self.stop()
|
self.stop()
|
||||||
if self._context is not None:
|
if self._context is not None:
|
||||||
try:
|
try:
|
||||||
|
logger.info("Closing Vive Tracker pysurvive context...")
|
||||||
self._context.close()
|
self._context.close()
|
||||||
except Exception:
|
logger.info("Vive Tracker pysurvive context closed")
|
||||||
pass
|
except Exception as e:
|
||||||
|
logger.debug(f"Vive Tracker context close error: {e}")
|
||||||
self._context = None
|
self._context = None
|
||||||
|
logger.info("Vive Tracker disconnected")
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
# 只做兜底清理,吞掉所有异常避免 __del__ 抛异常导致解释器崩溃
|
# 只做兜底清理,吞掉所有异常避免 __del__ 抛异常导致解释器崩溃
|
||||||
@ -103,16 +108,6 @@ class ViveTracker(metaclass=SingletonMeta):
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def __del__(self):
|
|
||||||
logger.info("Stopping Vive Tracker pose tracking...")
|
|
||||||
self.running = False
|
|
||||||
# 等待线程结束
|
|
||||||
if self._collector_thread:
|
|
||||||
self._collector_thread.join(timeout=2.0)
|
|
||||||
# 清理资源
|
|
||||||
self._context = None
|
|
||||||
logger.info("Vive Tracker disconnected")
|
|
||||||
|
|
||||||
# def list_devices(self):
|
# def list_devices(self):
|
||||||
# import pysurvive
|
# import pysurvive
|
||||||
# for obj in self._context.Objects():
|
# for obj in self._context.Objects():
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user