Bläddra i källkod

```
feat(smart_shooter): 添加相机预览状态消息类型并优化错误处理

- 新增 smart_shooter_enable_preview_status 消息类型用于相机预览状态反馈
- 添加相机预览启用失败时的错误消息发送和日志记录
- 统一消息类型参数传递,修复 msg_type 使用不一致问题
- 注释掉调试打印语句和自动对焦过程中的预览控制代码
- 优化异常处理流程,确保错误状态正确返回给客户端
```

rambo 2 veckor sedan
förälder
incheckning
a2dd5f4bf7
2 ändrade filer med 43 tillägg och 22 borttagningar
  1. 37 18
      python/mcu/capture/smart_shooter_class.py
  2. 6 4
      python/sockets/message_handler.py

+ 37 - 18
python/mcu/capture/smart_shooter_class.py

@@ -196,7 +196,7 @@ class SmartShooter(metaclass=SingletonType):
                 return False, msg_send
             self.connect_status = True
             msg_send = "相机已连接"
-            print("CameraLists", CameraLists)
+            # print("CameraLists", CameraLists)
             if is_send:
                 message = {
                     "code": 0,
@@ -355,6 +355,7 @@ class SmartShooter(metaclass=SingletonType):
     async def EnableCameraPreview(
         self, enable_status=True, msg_type="", CameraKey=None
     ):
+        print("收到得msg_type====>>>", msg_type)
         self.msg_type = msg_type
         await self.SetCameraFPS(5, CameraKey=CameraKey)
         """
@@ -362,6 +363,16 @@ class SmartShooter(metaclass=SingletonType):
         """
         camera_states, _ = await self.GetCameraInfo(is_send=False, CameraKey=CameraKey)
         if not camera_states:
+            msg_send = "预览启用失败"
+            message = {
+                "code": 0,
+                "msg": msg_send,
+                "data": None,
+                "msg_type": msg_type,
+                "device_status": -1,
+            }
+            logger.error(message)
+            await self.sendMessageSocket(message)
             return False, "请先连接相机"
         try:
             low_iso, high_iso = self.getConfigIso(CameraKey=CameraKey)
@@ -398,20 +409,25 @@ class SmartShooter(metaclass=SingletonType):
             if not msg_result:
                 self.perview_state = False
                 msg_send = "预览启用失败"
-                # self.sendSocketMessage(
-                #     code=0,
-                #     msg=msg_send,
-                #     device_status=2,
-                # )
+                message = {
+                    "code": 0,
+                    "msg": msg_send,
+                    "data": None,
+                    "msg_type": msg_type,
+                    "device_status": -1,
+                }
+                logger.error(message)
+                await self.sendMessageSocket(message)
                 return False, "预览启用失败"
             msg_send = "预览启用成功" if enable_status else "预览关闭成功"
             message = {
                 "code": 0,
                 "msg": msg_send,
                 "data": None,
-                "msg_type": self.msg_type,
+                "msg_type": msg_type,
                 "device_status": 2,
             }
+            logger.error(message)
             await self.sendMessageSocket(message)
             return True, "预览启用成功" if enable_status else "预览关闭成功"
         except zmq.Again:
@@ -425,9 +441,10 @@ class SmartShooter(metaclass=SingletonType):
                 "code": 1,
                 "msg": msg_send,
                 "data": None,
-                "msg_type": self.msg_type,
+                "msg_type": msg_type,
                 "device_status": -1,
             }
+            logger.error(message)
             await self.sendMessageSocket(message)
             return False, "相机未连接或软件未打开"
 
@@ -472,17 +489,19 @@ class SmartShooter(metaclass=SingletonType):
         await asyncio.sleep(delay)
         # 对焦混用
         if is_af:
-            await self.EnableCameraPreview(
-                enable_status=True, msg_type=msg_type, CameraKey=CameraKey
-            )
-            start_time = time.time()
+            # await self.EnableCameraPreview(
+            #     enable_status=True,
+            #     msg_type="smart_shooter_enable_preview_status",
+            #     CameraKey=CameraKey,
+            # )
+            # start_time = time.time()
             await self.CameraAutofocus(CameraKey=CameraKey)
-            end_time = time.time()
-            elapsed_time = end_time - start_time
-            logger.info(f"自动对焦耗时  {elapsed_time:.4f} 秒")
-            await self.EnableCameraPreview(
-                enable_status=False, msg_type=msg_type, CameraKey=CameraKey
-            )
+            # end_time = time.time()
+            # elapsed_time = end_time - start_time
+            # logger.info(f"自动对焦耗时  {elapsed_time:.4f} 秒")
+            # await self.EnableCameraPreview(
+            #     enable_status=False, msg_type="smart_shooter_enable_preview_status", CameraKey=CameraKey
+            # )
         self.msg_type = msg_type
         print("camera_states", msg_type)
         """

+ 6 - 4
python/sockets/message_handler.py

@@ -445,15 +445,17 @@ async def handlerSend(
                 "iso_config",
                 None,
             )
+            msg_type = "smart_shooter_enable_preview_status"
+            print("传入得msg_type====>>>", msg_type)
             temp_A_point = camera_configs.get(PointName, None)
             CameraKey = temp_A_point.get("CameraKey", None) if temp_A_point else None
             loop.create_task(
                 smart_shooter.EnableCameraPreview(
-                    enable_status=value, 
-                    msg_type="smart_shooter_enable_preview",
-                    CameraKey=CameraKey
+                    enable_status=value,
+                    msg_type=msg_type,
+                    CameraKey=CameraKey,
                 ),
-                name="smart_shooter_enable_preview",
+                name=msg_type,
             )
         case "smart_shooter_get_camera_property":
             """