|
|
@@ -47,6 +47,8 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
|
|
|
self.state_camera_steering = 3
|
|
|
self.state_turntable_steering = 3
|
|
|
self.state_overturn_steering = 3
|
|
|
+ # 是否实时获取mcu状态信息
|
|
|
+ self.is_get_mcu_state = True
|
|
|
self.state_move_turntable_steering = 3
|
|
|
self.last_from_mcu_move_respond_data = None
|
|
|
self.camera_motor_speed = 0
|
|
|
@@ -192,6 +194,7 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
|
|
|
self.to_init_device_origin_point(device_name="mcu", is_force=is_force)
|
|
|
print("MCU 开始循环~")
|
|
|
logger.info("MCU 开始循环~")
|
|
|
+ loop = asyncio.get_event_loop()
|
|
|
while 1:
|
|
|
await asyncio.sleep(1)
|
|
|
if not self.serial_ins or not self.connect_state:
|
|
|
@@ -204,7 +207,7 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
|
|
|
# device_status=2,
|
|
|
# )
|
|
|
# print("mcu send_cmd")
|
|
|
- self.send_cmd()
|
|
|
+ loop.create_task(self.send_cmd())
|
|
|
# time.sleep(0.01)
|
|
|
if not self.get_basic_info_mcu():
|
|
|
pass
|
|
|
@@ -414,30 +417,36 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
|
|
|
await asyncio.sleep(0.001)
|
|
|
while True:
|
|
|
if self.send_data_queue:
|
|
|
- self.sendSocketMessage(msg="正在发送命令", device_status=1)
|
|
|
+ # self.sendSocketMessage(msg="正在发送命令", device_status=1)
|
|
|
data = self.send_data_queue.pop(0)
|
|
|
self.serial_ins.write_cmd(data)
|
|
|
- self.sendSocketMessage(msg="命令发送完成", device_status=2)
|
|
|
+ # self.sendSocketMessage(msg="命令发送完成", device_status=2)
|
|
|
else:
|
|
|
break
|
|
|
|
|
|
- def send_cmd(self):
|
|
|
+ async def send_cmd(self):
|
|
|
self.lock.acquire()
|
|
|
+ asyncio.sleep(0.01)
|
|
|
if self.send_data_queue:
|
|
|
- self.sendSocketMessage(msg="正在发送命令", device_status=1)
|
|
|
+ # self.sendSocketMessage(msg="正在发送命令", device_status=1)
|
|
|
data = self.send_data_queue.pop(0)
|
|
|
self.serial_ins.write_cmd(data)
|
|
|
- self.sendSocketMessage(msg="命令发送完成", device_status=2)
|
|
|
- # else:
|
|
|
- # self.t_n += 1
|
|
|
- # # 加大发送获取基础数据的时间间隔
|
|
|
- # # 默认为0.01秒一个循环,每隔1.5秒发送数据
|
|
|
- # if self.t_n > 150:
|
|
|
- # self.t_n = 0
|
|
|
- # data = [self.command["get_all_info"], 1]
|
|
|
- # self.serial_ins.write_cmd(data)
|
|
|
+ # self.sendSocketMessage(msg="命令发送完成", device_status=2)
|
|
|
+ else:
|
|
|
+ # self.t_n += 1
|
|
|
+ # 加大发送获取基础数据的时间间隔
|
|
|
+ # 默认为0.01秒一个循环,每隔1.5秒发送数据
|
|
|
+ if self.t_n == 150:
|
|
|
+ # self.t_n = 0
|
|
|
+ self.send_get_all_info_to_mcu()
|
|
|
self.lock.release()
|
|
|
|
|
|
+ def send_get_all_info_to_mcu(self):
|
|
|
+ if self.is_get_mcu_state is False:
|
|
|
+ return
|
|
|
+ data = [self.command["get_all_info"], 1]
|
|
|
+ self.serial_ins.write_cmd(data)
|
|
|
+
|
|
|
def print_mcu_error_data(self, receive_data):
|
|
|
# 扫码数据
|
|
|
try:
|
|
|
@@ -465,7 +474,7 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
|
|
|
|
|
|
# self.self_sign.emit({"type": "connect_sign", "data": connect_flag})
|
|
|
message = {"type": "connect_sign", "data": connect_flag}
|
|
|
- self.sendSocketMessage(msg="接收链接信息", data=message)
|
|
|
+ self.sendSocketMessage(msg="接收连接信息", data=message)
|
|
|
print("接收链接信息")
|
|
|
logger.info("接收链接信息")
|
|
|
return
|
|
|
@@ -539,6 +548,9 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
|
|
|
receive_data = self.serial_ins.read_cmd(out_time=1)
|
|
|
if receive_data is False:
|
|
|
print("------------------------------------------------4657564654")
|
|
|
+ print(
|
|
|
+ "------------------------------------------------get_basic_info_mcu------------------"
|
|
|
+ )
|
|
|
logger.info("------------------------------------------------4657564654")
|
|
|
self.connect_state = False
|
|
|
return False
|
|
|
@@ -1224,35 +1236,41 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
|
|
|
self.init_state = False
|
|
|
print("关闭MCU")
|
|
|
logger.info("关闭MCU")
|
|
|
+
|
|
|
def close_lineConnect(self):
|
|
|
- ''''关闭有线遥控器连接'''
|
|
|
+ """'关闭有线遥控器连接"""
|
|
|
self.line_control.port_name = ""
|
|
|
self.line_control.close_connect()
|
|
|
print("关闭有线遥控器")
|
|
|
logger.info("关闭有线遥控器")
|
|
|
+
|
|
|
@property
|
|
|
def mcu_move_state(self):
|
|
|
- if self.m_t == 1:
|
|
|
- if (
|
|
|
- self.state_camera_motor == 2
|
|
|
- and self.state_camera_steering == 2
|
|
|
- and self.state_turntable_steering == 2
|
|
|
- and self.state_overturn_steering == 2
|
|
|
- ):
|
|
|
- self._mcu_move_state = 2
|
|
|
- else:
|
|
|
- self._mcu_move_state = 1
|
|
|
+ if self.is_get_mcu_state is False:
|
|
|
+ self._mcu_move_state = 2
|
|
|
+ # self.action_state = 2
|
|
|
else:
|
|
|
- if (
|
|
|
- self.state_camera_motor == 2
|
|
|
- and self.state_camera_steering == 2
|
|
|
- and self.state_turntable_steering == 2
|
|
|
- and self.state_overturn_steering == 2
|
|
|
- and self.state_move_turntable_steering == 2
|
|
|
- ):
|
|
|
- self._mcu_move_state = 2
|
|
|
+ if self.m_t == 1:
|
|
|
+ if (
|
|
|
+ self.state_camera_motor == 2
|
|
|
+ and self.state_camera_steering == 2
|
|
|
+ and self.state_turntable_steering == 2
|
|
|
+ and self.state_overturn_steering == 2
|
|
|
+ ):
|
|
|
+ self._mcu_move_state = 2
|
|
|
+ else:
|
|
|
+ self._mcu_move_state = 1
|
|
|
else:
|
|
|
- self._mcu_move_state = 1
|
|
|
+ if (
|
|
|
+ self.state_camera_motor == 2
|
|
|
+ and self.state_camera_steering == 2
|
|
|
+ and self.state_turntable_steering == 2
|
|
|
+ and self.state_overturn_steering == 2
|
|
|
+ and self.state_move_turntable_steering == 2
|
|
|
+ ):
|
|
|
+ self._mcu_move_state = 2
|
|
|
+ else:
|
|
|
+ self._mcu_move_state = 1
|
|
|
|
|
|
# self._mcu_move_state = 2
|
|
|
return self._mcu_move_state
|
|
|
@@ -1397,7 +1415,7 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
|
|
|
if self.connect_state:
|
|
|
self.lock.acquire()
|
|
|
# print('==========================>1111')
|
|
|
- # print("-------------------to_get_mcu_base_info--------------------------")
|
|
|
+ print("-------------------to_get_mcu_base_info--------------------------")
|
|
|
data = [self.command["get_all_info"], 1]
|
|
|
f = True
|
|
|
try:
|
|
|
@@ -1653,6 +1671,7 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
|
|
|
)
|
|
|
self.msg_type = "mcu"
|
|
|
await self.controlDevice("laser_position", 1)
|
|
|
+ self.action_state = 2
|
|
|
|
|
|
async def run_mcu_config_single(
|
|
|
self,
|
|
|
@@ -1690,7 +1709,10 @@ class DeviceControl(BaseClass, metaclass=SingletonType):
|
|
|
program_item.smart_shooter = smart_shooter
|
|
|
await program_item.run(3)
|
|
|
self.msg_type = "mcu"
|
|
|
- print("发送 run_mcu_signle消息","{} 执行完成~".format(program_item.action_name))
|
|
|
+ print(
|
|
|
+ "发送 run_mcu_signle消息",
|
|
|
+ "{} 执行完成~".format(program_item.action_name),
|
|
|
+ )
|
|
|
self.sendSocketMessage(
|
|
|
code=0,
|
|
|
msg="{} 执行完成~".format(program_item.action_name),
|