我尝试使用pySerial构建一个简单的终端来与我的PC中的COM1进行交互,
我创建了2个线程,一个用于READ,另一个用于写入
然而,
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文件中。但是当我在进程运行期间打开文件时,似乎没有写入我的文本日志文件?