我尝试使用 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 文件中。但是当我在进程运行期间打开文件时,似乎没有写入我的文本日志文件?