| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- import time
- from mcu.SerialIns import SerialIns
- class DeviceHandler:
- def __init__(self, windows=None):
- super().__init__()
- self.windows = windows
- self.serial_ins = None
- self.port_name = ""
- self.connect_state = False
- self.is_running = False
- def to_connect_com(self, port_name, is_test=False):
- self.close_connect()
- time.sleep(0.5)
- try:
- # 原值为9600
- self.serial_ins = SerialIns(port_name=port_name, baud=115200)
- # self.serial_ins = SerialIns(port_name=port_name, baud=9600)
- if self.serial_ins.serial_handle:
- self.sign_data.emit(
- {
- "_type": "show_info",
- "plugins_mode": "remote_control",
- "data": "遥控设备 打开串口成功",
- }
- )
- self.connect_state = True
- self.sign_data.emit(
- {
- "_type": "remote_control_connect",
- "plugins_mode": "remote_control",
- "data": port_name,
- }
- )
- self.port_name = port_name
- if is_test is False:
- self.start()
- return True
- else:
- self.sign_data.emit(
- {
- "_type": "show_info",
- "plugins_mode": "remote_control",
- "data": "遥控设备 打开串口失败",
- }
- )
- self.serial_ins = None
- self.connect_state = False
- except:
- self.sign_data.emit(
- {
- "_type": "show_info",
- "plugins_mode": "remote_control",
- "data": "遥控设备 打开串口失败",
- }
- )
- self.serial_ins = None
- self.connect_state = False
- return False
- def close_connect(self):
- self.port_name = ""
- if self.connect_state:
- self.serial_ins.close_serial_port()
- self.connect_state = False
- def __del__(self):
- self.close_connect()
- def analysis_received_data(self):
- if not self.connect_state:
- return
- receive_data = self.serial_ins.read_cmd(out_time=1, check=None)
- if receive_data is False:
- self.connect_state = False
- return False
- if not receive_data:
- return
- else:
- print(
- "read receive_data {}".format(
- self.serial_ins.change_hex_to_int(receive_data)
- )
- )
- pass
- # 数据 结构 command,按命令解析
- if receive_data[0] == 1:
- # 扫码数据
- bar_code = receive_data[1:].decode()
- bar_code = bar_code.replace("\r", "")
- bar_code = bar_code.replace("\n", "")
- self.sign_data.emit(
- {"_type": 0, "plugins_mode": "remote_control", "data": bar_code}
- )
- return
- if receive_data[0] == 9:
- button_value = receive_data[1]
- data = {"button_value": button_value}
- self.sign_data.emit(
- {"_type": 9, "plugins_mode": "remote_control", "data": data}
- )
- return
- pass
- def run(self):
- # self.show_info.emit("未连接")
- # self.data_command_sign.emit(data)
- self.is_running = True
- while 1:
- time.sleep(0.05)
- if not self.connect_state:
- self.sign_data.emit(
- {
- "_type": "show_info",
- "plugins_mode": "remote_control",
- "data": "遥控设备 未连接",
- }
- )
- break
- self.analysis_received_data()
- self.is_running = False
- if not self.connect_state:
- self.sign_data.emit(
- {
- "_type": "show_info",
- "plugins_mode": "remote_control",
- "data": "遥控设备 未连接",
- }
- )
|