说明:本次是在windows 系统操作实现的。
使用场景,获取得力扫码枪的扫码数据,该扫码枪支持三种通讯接口设置,如下图
即插即用的是 USB-KBW功能,插上去即可获取扫码数据,第二种是通过USB虚拟串口功能实现的,即通过com 口,
使用前可以通过扫码这三种方式中的其中一种进行设置通讯方式。
首先介绍第二种方式
第二种方式打开后,本机打开记事本,扫码是获取不到扫码数据的,询问客服,客服说该扫码枪不支持该功能。
但是通过程序监控com口是可以实现获取数据的。具体是通过serial模块进行操作的,具体介绍如下:
安装 pyserial模块
pip install pyserial
#介绍一下serial的相关方法
open() #打开端口
close() #立即关闭端口
setBaudrate(波特率) #在打开的端口上更改波特率
inWaiting() #返回接收缓冲区中的字符数
read(size= 1) #读取“size”字符
write(s) #将字符串s写入端口
flushInput() #刷新输入缓冲区,丢弃所有的内容
flushOutput() #刷新输出缓冲区,中止输出
sendBreak() #发送中断条件
setRTS(level= 1) #设置RTS线路为指定的逻辑电平
setDTR(level= 1) #设置DTR行为指定的逻辑级别
getCTS() #返回CTS行的状态
getDSR() #返回DSR行的状态
getRI() #返回RI行的状态
getCD() #返回CD行的状态
实例介绍
检查是否有使用端口欧
#FileName : demo.py#Author : Adil#DateTime : 2019/9/1 7:03#SoftWare : PyCharm
importserial#这里使用的是windwos
from serial.tools.list_ports_windows import *plist=list(comports())if len(plist) <=0:print ("The Serial port can‘t find!")else:
plist_0=list(plist[0])
serialName=plist_0[0]
serialFd= serial.Serial(serialName,9600,timeout = 60)print ("check which port was really used >",serialFd.name)
实际读取端口数据
#FileName : test.py#Author : Adil#DateTime : 2019/9/1 7:25#SoftWare : PyCharm
importserial
ser= serial.Serial(‘COM6‘, 9600,timeout=0.5)#ser = serial.Serial(‘COM6‘, 9600)
print(ser.name)print(ser.port)if notser.isOpen():
ser.open()print(‘com3 is open‘, ser.isOpen())#获取一行信息
defrecv(serial):print(‘2‘)
data= ‘‘