rambo 1 mese fa
parent
commit
8c121eb22c

+ 6 - 1
python/mcu/DeviceControl.py

@@ -1655,6 +1655,9 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
                 },
             )
             await self.controlDevice("laser_position", 0)
+            await smart_shooter.EnableCameraPreview(
+                    enable_status=True, msg_type="smart_shooter_enable_preview"
+                )
             self.msg_type = "mcu"
             self.is_runn_action = True
             for index, action in enumerate(config_list):
@@ -1728,7 +1731,9 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
             self.msg_type = "mcu"
             await self.controlDevice("laser_position", 1)
         self.action_state = 2
-
+        await smart_shooter.EnableCameraPreview(
+                    enable_status=False, msg_type="smart_shooter_enable_preview"
+                )
     async def run_mcu_config_single(
         self,
         config_info,

+ 5 - 4
python/mcu/ProgramItem.py

@@ -293,7 +293,7 @@ class ProgramItem(BaseClass):
 
             if self.shoe_overturn:
                 self.mcu.to_deal_device(device_name="overturn_steering")
-                await asyncio.sleep(0.01)
+                await asyncio.sleep(0.001)
             if self.camera_height is not None:
                 if (current_time - self.last_move_time)>110:
                     if self.camera_height == 0:
@@ -371,7 +371,7 @@ class ProgramItem(BaseClass):
             # self.mcu.send_all_cmd()
             asyncio.create_task(self.mcu.send_all_cmd())
             if self.mode_type != "其他配置":
-                await asyncio.sleep(1.2)
+                await asyncio.sleep(0.2)
                 print("二次检查")
                 if await self.check_mcu_move_is_stop(re_check=True) is False:
                     print("MCU检测运动未停止,自动退出,   提前退出")
@@ -385,8 +385,9 @@ class ProgramItem(BaseClass):
             self.mcu.to_deal_device(device_name="buzzer", times=1)
             # 用于临时拍照计数
             if not await self.camera_check_mcu_move_is_stop(re_check=True):
-                logger.info("拍照前运动检测失败===>")
-                return
+                logger.info("拍照前运动检测失败===>,延迟0.5秒后拍摄")
+                await asyncio.sleep(0.1)
+                # return
             is_af = True if self.af_times > 0 else False
             if self.smart_shooter != None:
                 # 拍照

+ 2 - 1
python/mcu/RemoteControlV2.py

@@ -314,7 +314,8 @@ class RemoteControlV2(BaseClass):
                     ),
                     name="CameraShooter",
                 )
-            await asyncio.sleep(1)
+            await asyncio.sleep(0.1)
+            # await asyncio.sleep(1)
             self.msg_type = "photo_take"
             self.sendSocketMessage(
                 code=0,

+ 10 - 12
python/mcu/capture/smart_shooter_class.py

@@ -372,21 +372,13 @@ class SmartShooter(metaclass=SingletonType):
             req["msg_id"] = "Autofocus"
             req["msg_seq_num"] = 0
             req["CameraSelection"] = "All"
+            start_time = time.time()  # 添加对焦开始时间记录
             json_msg = self.__send_tcp_message(socket, req)
+            end_time = time.time()  # 添加对焦结束时间记录
+            logger.info(f"对焦通信耗时: {end_time - start_time:.4f} 秒")
             print("json_msg", json_msg)
             msg_result = json_msg.get("msg_result")
             if not msg_result:
-                # msg_send = "对焦失败"
-                # message = {
-                #     "code": 1,
-                #     "msg": msg_send,
-                #     "data": None,
-                #     "msg_type": "smart_shooter_photo_take",
-                #     "device_status": -1,
-                # }
-                # await self.websocket_manager.send_personal_message(
-                #     message, self.websocket
-                # )
                 return False, "对焦失败"
             return True, "对焦成功"
         except zmq.Again:
@@ -396,12 +388,18 @@ class SmartShooter(metaclass=SingletonType):
             context.term()
             return False, "相机未连接或软件未打开"
 
-    async def CameraShooter(self, msg_type="", goods_art_no="", id=0, is_af=False,delay=1.5):
+    async def CameraShooter(self, msg_type="", goods_art_no="", id=0, is_af=False,delay=0.5):
         # 这里延迟一秒钟 等待前置命令完成
         await asyncio.sleep(delay)
         # 对焦混用
         if is_af:
+            self.EnableCameraPreview(enable_status=True, msg_type=msg_type)
+            start_time = time.time()
             await self.CameraAutofocus()
+            end_time = time.time()
+            elapsed_time = end_time - start_time
+            logger.info(f"自动对焦耗时  {elapsed_time:.4f} 秒")
+            self.EnableCameraPreview(enable_status=False, msg_type=msg_type)
         self.msg_type = msg_type
         print("camera_states", msg_type)
         """

+ 1 - 0
python/sockets/message_handler.py

@@ -287,6 +287,7 @@ async def handlerSend(
             device_ctrl = DeviceControl(
                 websocket_manager=manager, smart_shooter=smart_shooter
             )
+            print("收到单拍指令",'handler_take_picture')
             await device_ctrl.controlDevice("laser_position", 0)
             blue_tooth = BlueToothMode(
                 websocket_manager=manager, smart_shooter=smart_shooter

+ 2 - 1
python/sockets/socket_server.py

@@ -196,8 +196,9 @@ async def MsgCallback(msg):
             ):
                 # temp_photo_name = PhotoFilename
                 # 更新拍照记录
-                print("PhotoFilename", PhotoFilename, PhotoOrigin)
+                logger.info("PhotoUpdated", PhotoFilename, PhotoOrigin)
                 goods_art_no = None
+                id = None
                 try:
                     if PhotoOrigin != "" and PhotoOrigin not in ["external", "ui"]:
                         goods_art_no, id = PhotoOrigin.split(",")

+ 12 - 9
python/temp.py

@@ -1,4 +1,4 @@
-import zmq,json
+import zmq,json,time
 def __send_tcp_message(socket, msg):
     socket.send_string(json.dumps(msg, ensure_ascii=False))
     rep = socket.recv()
@@ -7,20 +7,23 @@ def __send_tcp_message(socket, msg):
     return json_msg
 LISTEN_REQ = "tcp://127.0.0.1:54543"
 SET_REQ = "tcp://127.0.0.1:54544"
+time_out = 5
 context = zmq.Context()
 req_socket = context.socket(zmq.REQ)
 # 设置发送超时为 5000 毫秒(5 秒)
-req_socket.setsockopt(zmq.RCVTIMEO, 2 * 1000)
+req_socket.setsockopt(zmq.RCVTIMEO, time_out * 1000)
 # 设置接收超时为 5000 毫秒(5 秒)
-req_socket.setsockopt(zmq.SNDTIMEO, 2 * 1000)
+req_socket.setsockopt(zmq.SNDTIMEO, time_out * 1000)
 req_socket.setsockopt(zmq.LINGER, 0)  # 设置为 0 表示不等待未完成的操作
 req_socket.connect(SET_REQ)
 req = {}
 req["msg_type"] = "Request"
-req["msg_id"] = "GetCamera"
+req["msg_id"] = "Autofocus"
 req["msg_seq_num"] = 0
-req["CameraSelection"] = "Single"
-req["CameraKey"] = "Canon Inc.|Canon EOS 650D|12"
-json_msg = __send_tcp_message(req_socket,req)
-cameraInfo = json_msg.get("CameraInfo")
-print("cameraInfo",json_msg)
+req["CameraSelection"] = "All"
+start_time = time.time()  # 添加对焦开始时间记录
+json_msg = __send_tcp_message(req_socket, req)
+end_time = time.time()  # 添加对焦结束时间记录
+print(f"对焦通信耗时: {end_time - start_time:.4f} 秒")
+msg_result = json_msg.get("msg_result")
+print("json_msg", json_msg)