0

我尝试使用 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()

但是我的代码的行为不如 putty 或其他任何东西那么聪明。导致我的功能在阅读器完成时无法检测到。有没有更好的方法来实现这个目标?

顺便说一句,我尝试将日志实时保存到 txt 文件中。但是当我在进程运行期间打开文件时,似乎没有写入我的文本日志文件?

4

0 回答 0