SERIAL之 READLINE READ_UNTIL比较

READLINE

  • 阻塞型,除非设置了timeout

READ_UNTIL

  • 非阻塞型,最好设置timeout
# test serial timeout, readline and read_until
import time
import serial
import serial.tools.list_ports

def get_time_stamp():
   ct = time.time()
   local_time = time.localtime(ct)
   data_head = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
   data_secs = (ct - int(ct)) * 1000
   time_stamp = "%s.%03d" % (data_head, data_secs)
   return time_stamp


port_list = list(serial.tools.list_ports.comports())
#print(port_list)
if len(port_list) == 0:
   print('无可用串口')
else:
   for i in range(0,len(port_list)):
       #help(port_list[i])
       #print(port_list[i].__dict__)
       #print(port_list[i])
       port_name = port_list[i].device

tout = 0.1
#print(port_name)
#print(type(port_name))

###############################test readline function##########################################
try:
   serial_timeout = serial.Serial(port_name,115200,timeout=tout)
except Exception as e:
   print('rasie exception:',e)
   
try:
   serial_timeout.open()
except:
   print(port_name,' has opened! ')
   
print('start test readline.........',get_time_stamp())

#write serial
try:
   serial_timeout.write(b'II\n')
except Exception as e:
   print(e)
#read serial
try:
   serial_timeout.readline()
except Exception as e:
   print(e)
   
#serial_timeout.close()
print('stop test readline.........',get_time_stamp())


###############################test readline function##########################################

#serial_timeout = serial.Serial(port_name,115200,timeout=tout)

try:
   serial_timeout = serial.Serial(port_name,115200,timeout=tout)
except Exception as e:
   print('rasie exception:',e)
   
   
try:
   serial_timeout.open()
except:
   print(port_name,' has opened! ')
   
print('start test read_until.........',get_time_stamp())

#write serial
try:
   serial_timeout.write(b'II\n')
except Exception as e:
   print(e)
#read serial
try:
   serial_timeout.read_until(b'\n\n')
except Exception as e:
   print(e)
   
serial_timeout.close()
print('stop test read_until.........',get_time_stamp())

   
   
输出结果:

timeout = 0.1
在这里插入图片描述
timeout = 10
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值