添加DEBUG功能

This commit is contained in:
CHAMPION923
2025-06-04 12:55:16 +08:00
parent 200b8f45aa
commit c95424bb70
2 changed files with 31 additions and 2 deletions

View File

@@ -27,7 +27,7 @@ HOST = "0.0.0.0"
PORT = 65444 PORT = 65444
# TODO: 帧率控制配置 # TODO: 帧率控制配置
PERIOD = 0.1 PERIOD = 0.5
class VisionMode(enum.Enum): class VisionMode(enum.Enum):
@@ -40,3 +40,14 @@ class VisionMode(enum.Enum):
class CameraControl(enum.Enum): class CameraControl(enum.Enum):
DESTORY = 0 DESTORY = 0
CAPTURE = 1 CAPTURE = 1
DURATION_DEBUG = True
TRACK_DEBUG = True
OBSTACLE_DEBUG = True
FRONT_DEBUG = True
REAR_DEBUG = True

View File

@@ -1,4 +1,5 @@
from concurrent.futures import ThreadPoolExecutor, as_completed from concurrent.futures import ThreadPoolExecutor, as_completed
from os import stat_result
from lib.alg.track_detection import TrackDetector from lib.alg.track_detection import TrackDetector
from ctypes import set_errno from ctypes import set_errno
from threading import Semaphore from threading import Semaphore
@@ -28,6 +29,10 @@ from lib.cfg.cfg import (
RAIL_KEYS, RAIL_KEYS,
TITLE2D_KEY, TITLE2D_KEY,
PERIOD, PERIOD,
DURATION_DEBUG,
OBSTACLE_DEBUG,
FRONT_DEBUG,
REAR_DEBUG,
) )
@@ -120,6 +125,7 @@ class Presenter:
# TODO: 避障模式相机采集和数据处理 # TODO: 避障模式相机采集和数据处理
def obstacle_mode_data_handle(self): def obstacle_mode_data_handle(self):
"""获取所有3D避障相机的数据并处理直到所有处理完成再继续""" """获取所有3D避障相机的数据并处理直到所有处理完成再继续"""
st = time.time()
futures = [] futures = []
# 1. 发出CAPTURE命令 # 1. 发出CAPTURE命令
for key in self.process3d_info.keys(): for key in self.process3d_info.keys():
@@ -141,6 +147,7 @@ class Presenter:
if not result["ok"]: if not result["ok"]:
self.last_d[MAPPING[result["title"]]] = result["distance"] self.last_d[MAPPING[result["title"]]] = result["distance"]
# 4. 将信息放置在历史队列当中
for key in OBSTACLE_KEYS: for key in OBSTACLE_KEYS:
hist = self.hist_ok[key] hist = self.hist_ok[key]
last_dist = self.last_d[key] last_dist = self.last_d[key]
@@ -151,7 +158,7 @@ class Presenter:
self.pkt[key + "_distance"] = dist_str self.pkt[key + "_distance"] = dist_str
# 6. 总状态字段 # 5. 总状态字段
self.pkt["f_obstacle_status"] = ( self.pkt["f_obstacle_status"] = (
"OK" "OK"
if self.pkt["f_l_obstacle_distance"] == "000" if self.pkt["f_l_obstacle_distance"] == "000"
@@ -165,6 +172,10 @@ class Presenter:
else "NG" else "NG"
) )
et = time.time()
dua = (st - et) * 1000
print(f"[DEBUG]: 采图用时{dua}")
def wait_rec_tcp_data(self): def wait_rec_tcp_data(self):
pass pass
@@ -203,6 +214,7 @@ class Presenter:
try: try:
server.accept_client() server.accept_client()
while True: while True:
start_time = time.time() # 计算帧率用时
# TODO: next_time 记录时钟控制帧率 # TODO: next_time 记录时钟控制帧率
next_time = time.perf_counter() + PERIOD next_time = time.perf_counter() + PERIOD
try: try:
@@ -243,6 +255,12 @@ class Presenter:
tcp_send_buf = b"{}" tcp_send_buf = b"{}"
server.send_data(tcp_send_buf) server.send_data(tcp_send_buf)
# TODO: DEBUG
end_time = time.time()
duration_ms = (end_time - start_time) * 1000
if DURATION_DEBUG:
print(f"[DEBUG]: 用时{duration_ms}")
# TODO: 控制帧率 # TODO: 控制帧率
now = time.perf_counter() now = time.perf_counter()
wait = next_time - now wait = next_time - now