Преглед изворни кода

fix(mcu): 修复相机高度限制和多相机模式处理问题

- 将默认相机高度从350调整为400以匹配实际配置
- 添加相机高度位置的安全边界检查防止越界
- 修复多相机模式参数名称错误(isMultiCameraMode拼写修正)
- 在程序项目执行中添加异常追踪和错误信息输出
- 添加调试信息输出用于排查多相机模式状态判断逻辑
rambo пре 5 дана
родитељ
комит
1726ee38cc

+ 5 - 2
python/mcu/DeviceControl.py

@@ -36,7 +36,7 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
         super().__init__(
             websocket_manager=websocket_manager, smart_shooter=smart_shooter
         )
-        self.camera_height = 350
+        self.camera_height = 400
         self.config_manager = None
         self.msg_type = "mcu"
         self.command = {
@@ -169,7 +169,7 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
             camera_height = return_data.get('value',35)
             self.camera_height = camera_height
         else:
-            self.camera_height = 350
+            self.camera_height = 400
         self.msg_type = 'get_device_info'
         self.sendSocketMessage(
             code=0,
@@ -1514,6 +1514,9 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
                 )
                 value = value / 10  # value 单位毫米
                 max_camera_hight = self.camera_height/10
+                # print("高度位置",max_camera_hight)
+                if value > max_camera_hight:
+                    value = max_camera_hight
                 assert 0 <= value <= max_camera_hight
                 assert 0 <= max_speed <= 10000
             case "camera_steering":

+ 4 - 0
python/mcu/ProgramItem.py

@@ -1,6 +1,7 @@
 import asyncio
 import json
 import os
+import traceback
 
 from .BaseClass import BaseClass
 import settings
@@ -232,6 +233,8 @@ class ProgramItem(BaseClass):
             try:
                 await self.do_run()
             except BaseException as e:
+                traceback.print_exc()
+                print("p_item 错误 self.point_name",e,self.point_name)
                 self.sendSocketMessage(
                     msg="p_item 错误:{}".format(e), device_status=-1
                 )
@@ -406,6 +409,7 @@ class ProgramItem(BaseClass):
                     "iso_config",
                     None,
                 )
+                print(" camera_configs p_item",camera_configs)
                 CameraKey = camera_configs[self.point_name].get("CameraKey",None)
                 print("smart shooter CameraShooter", record_id, goods_art_no, CameraKey)
                 await self.smart_shooter.CameraShooter(

+ 2 - 1
python/mcu/capture/smart_shooter_class.py

@@ -367,7 +367,8 @@ class SmartShooter(metaclass=SingletonType):
                 print("相机无变动。无需自动更改配置")
                 return None
             basic_iso = temp_A_point.get("iso", {"low": 100, "high": 6400})
-            if isMultCameraMode == False:
+            print("isMultCameraMode======>>>>",isMultCameraMode)
+            if not isMultCameraMode:
                 points = {"A": {}}
                 print("相机发生变动。需要更改配置")
                 # 如果客户是单相机版本用户,需要每次同步camera信息

+ 2 - 1
python/sockets/message_handler.py

@@ -438,7 +438,8 @@ async def handlerSend(
             """
             # token
             # env
-            isMultCameraMode = data.get("isMultCameraMode",False)
+            # print("smart_shooter_getinfo",data)
+            isMultCameraMode = data.get("isMultiCameraMode",False)
             loop.create_task(
                 smart_shooter.GetCameraInfo(
                     msg_type="smart_shooter_getinfo",