二维码扫码器问题

二维码扫码器问题

背景,GUI程序通过二维码扫码器(霍尼韦尔)获取信息,需要单独开一个线程调用二维码扫码器,扫描仪一直在等待扫描,扫描到数据后需对数据进行处理。

代码如下:

while True:
      n = ser.inWaiting()
      if n:
         time.sleep(0.01)
         n = ser.inWaiting()        
         data = ser.read(n)
         print(data.decode('utf-8'))
        

霍尼韦尔7120二维码扫码器有个特点,如果扫描到数据堆到串口上,程序未立即读取,扫描仪会自动重启,导致程序中的二维码扫描线程结束,后续无法再继续扫描。(个人理解)

解决办法:

二维码扫描线程一直开启,一直扫描和读取。在数据处理前加一个标志位,数据处理开始时先把标志重置为假,这样即使读到数据,也不会处理,防止程序崩溃,待数据处理完毕后。

if sacn_flag:
    sacn_flag = False#二维码处理标志位   
    #查询数据库
    self.uuid = contentlist[0]
    con = sqlite3.connect("datas.db")
    cur = con.cursor()
    #查询符合条件数据库
    sql = "SELECT * FROM table WHERE uuid=(%s)" %(self.uuid)
    cur.execute(sql)
    res = cur.fetchone()
    #。。。。。数据处理
    #处理结束
    sacn_flag=True
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值