Bläddra i källkod

```
feat(capture): 优化相机连接状态检测和错误消息提示

- 添加CameraKey参数到消息响应中,便于识别具体相机设备
- 修改错误消息格式,提供更明确的连接检查指引
- 修复msg_type参数传递问题,确保消息类型正确设置
- 更新相机连接成功时的消息显示,包含具体相机标识
- 在多个异常处理分支中统一错误消息格式
```

rambo 2 veckor sedan
förälder
incheckning
c20c5cea1f
2 ändrade filer med 30 tillägg och 15 borttagningar
  1. 28 13
      python/mcu/capture/smart_shooter_class.py
  2. 2 2
      python/sockets/message_handler.py

+ 28 - 13
python/mcu/capture/smart_shooter_class.py

@@ -125,7 +125,7 @@ class SmartShooter(metaclass=SingletonType):
 
     async def GetCameraInfo(self, is_send=True, msg_type="", CameraKey=None):
         await asyncio.sleep(0.001)
-        self.msg_type = msg_type
+        # self.msg_type = msg_type
         """
             实时获取相机信息,是否连接、软件是否被打开
             """
@@ -143,13 +143,14 @@ class SmartShooter(metaclass=SingletonType):
             msg_result = json_msg.get("msg_result")
             if not msg_result:
                 self.connect_status = False
-                msg_send = "相机未连接或软件未打开"
+                msg_send =  f"请检查{CameraKey},相机是否连接" if CameraKey else f"请检查相机是否连接"
                 if is_send:
                     message = {
                         "code": 1,
                         "msg": msg_send,
                         "data": msg_result,
-                        "msg_type": self.msg_type,
+                        "CameraKey":CameraKey,
+                        "msg_type": msg_type,
                         "device_status": -1,
                     }
                     await self.sendMessageSocket(message)
@@ -157,13 +158,17 @@ class SmartShooter(metaclass=SingletonType):
             cameraInfo = json_msg.get("CameraInfo")
             if cameraInfo == None or len(cameraInfo) == 0:
                 self.connect_status = False
-                msg_send = "相机未连接"
+                msg_send = (
+                    f"请检查{CameraKey},相机是否连接"
+                    if CameraKey
+                    else f"请检查相机是否连接"
+                )
                 if is_send:
                     message = {
                         "code": 1,
                         "msg": msg_send,
                         "data": msg_result,
-                        "msg_type": self.msg_type,
+                        "msg_type": msg_type,
                         "device_status": -1,
                     }
                     await self.sendMessageSocket(message)
@@ -183,19 +188,24 @@ class SmartShooter(metaclass=SingletonType):
             ]
             if not CameraStatus:
                 self.connect_status = False
-                msg_send = "相机未连接"
+                msg_send = (
+                    f"请检查{CameraKey},相机是否连接"
+                    if CameraKey
+                    else f"请检查相机是否连接"
+                )
                 if is_send:
                     message = {
                         "code": 1,
                         "msg": msg_send,
                         "data": msg_result,
-                        "msg_type": self.msg_type,
+                        "CameraKey":CameraKey,
+                        "msg_type": msg_type,
                         "device_status": -1,
                     }
                     await self.sendMessageSocket(message)
                 return False, msg_send
             self.connect_status = True
-            msg_send = "相机已连接"
+            msg_send = f"相机{CameraKey}已连接"
             # print("CameraLists", CameraLists)
             if is_send:
                 message = {
@@ -203,7 +213,7 @@ class SmartShooter(metaclass=SingletonType):
                     "msg": msg_send,
                     "data": msg_result,
                     "CameraLists":CameraLists,
-                    "msg_type": self.msg_type,
+                    "msg_type": msg_type,
                     "device_status": 2,
                 }
                 await self.sendMessageSocket(message)
@@ -212,13 +222,14 @@ class SmartShooter(metaclass=SingletonType):
             return True, "相机已连接"
         except zmq.Again:
             print("获取相机信息超时,继续监听...")
-            msg_send = "相机未连接或软件未打开"
+            msg_send =  f"请检查{CameraKey},相机是否连接" if CameraKey else f"请检查相机是否连接"
             if is_send:
                 message = {
                     "code": 1,
                     "msg": msg_send,
                     "data": None,
-                    "msg_type": self.msg_type,
+                    "CameraKey":CameraKey,
+                    "msg_type": msg_type,
                     "device_status": 2,
                 }
                 await self.sendMessageSocket(message)
@@ -228,13 +239,17 @@ class SmartShooter(metaclass=SingletonType):
             self.connect_status = False
             socket.close()
             context.term()
-            msg_send = "相机未连接或软件未打开"
+            msg_send = (
+                f"请检查{CameraKey},相机是否连接"
+                if CameraKey
+                else f"请检查相机是否连接"
+            )
             if is_send:
                 message = {
                     "code": 1,
                     "msg": msg_send,
                     "data": None,
-                    "msg_type": self.msg_type,
+                    "msg_type": msg_type,
                     "device_status": -1,
                 }
                 await self.sendMessageSocket(message)

+ 2 - 2
python/sockets/message_handler.py

@@ -524,11 +524,11 @@ async def handlerSend(
             is_af = True
             loop.create_task(
                 smart_shooter.CameraShooter(
-                    msg_type="smart_shooter_photo_take",
+                    msg_type="run_mcu",
                     id=id,
                     goods_art_no=goods_art_no,
                     is_af=is_af,
-                    CameraKey=CameraKey
+                    CameraKey=CameraKey,
                 ),
                 name="smart_shooter_photo_take",
             )