我尝试使用pySerial构建一个简单的终端来与PC中的COM1进行交互,

我创建了2个线程,一个用于READ,另一个用于Write

然而,

def write_comport():
    global  ser,cmd, log_file
    print("enter Q to quit")
    while True:
        cmd = raw_input(">>:")
        # print(repr(var))

        if cmd=='Q':
            ser.close()
            sys.exit()
            log_file.close()
        else:
            ser.write(cmd + '\r\n')
            write_to_file("[Input]"+cmd, log_file)
            time.sleep(1)
        pass


def read_comport():
    global ser, cmd, log_file
    while True:
        element = ser.readline().strip('\n')
        if "~ #" in str(element):
            continue
        if cmd == str(element).strip():
            continue
        if "img" in str(element):
            print("got:"+element)
            beep()

        print element
        write_to_file(cmd, log_file)


    pass
def write_to_file(str,f):
    f.write(str)
    f.flush

def main():
    try:
        global read_thr,write_thr
        beep()
        port_num='COM4'
        baudrate=115200
        init_serial_port(port_num,baudrate)
        read_thr =Thread(target=read_comport)
        read_thr.start()
        write_thr =Thread(target=write_comport)
        write_thr.start()

        while True:
            pass
    except Exception as e:
        print(e)
        exit_prog()

但是我的代码的行为不如腻子或其他任何东西聪明。 因为阅读器完成后我的功能无法检测到。 有没有更好的方法可以实现这一目标?

顺便说一句,我试图将日志实时保存到txt文件中。 但是,当我在运行过程中打开文件时,似乎没有任何写入我的文本日志文件的信息吗?

  ask by newBike translate from so

本文未有回复,本站智能推荐: