SerialLibrary库串口通信
Posted yinjia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SerialLibrary库串口通信相关的知识,希望对你有一定的参考价值。
常用关键字介绍
- Add Port
参数:【port_locator | open=True | make_current=False | **kwargs】
说明:添加端口
Port_locator:端口号
Open:默认为True表示激活状态,False表示禁用状态
Make_current:默认为False,如果为True真值,则打开的端口设置为通用的端口使用
举例:
结果:
Starting test: Demo.Serial.Demo.Add Port
20200214 15:53:08.110 : INFO : ${ret} = Serial<id=0x31bc860, open=False>(port=u‘COM1‘, baudrate=38400, bytesize=8, parity=‘N‘, stopbits=1, timeout=1.0, xonxoff=False, rtscts=False, dsrdtr=False)
Ending test: Demo.Serial.Demo.Add Port
- Switch Port
参数:【port_locator】
说明:切换端口
切换当前指定的端口进行操作
举例:
备注:当环境存在多个串口连接DUT设备,如特殊情况需要切换到其它端口时,进行切换端口。
- List Com Port Names
参数:无
说明:返回当前环境端口名
举例:
结果:
- List Com Port
参数:无
说明:返回当前端口条目信息
举例:
结果:
- Set Encoding
参数:【encoding=None】
说明:设置编码
默认是以16进制形式输出,如需要从串口输出字符展示,则设置为utf-8
举例:
结果:
- Write Data
参数:【data | encoding=None | port_locator=None】
说明:在指定串口发送指令数据
举例:从串口获取接口的MAC保存在变量。
结果:
备注:先发送指令,然后再使用Read All Data读取所有的数据保存在缓存变量里,最后通过字符处理方式截取MAC地址。
- Write File Data
参数:【file_or_path | offset =0| length=-1 | port_locator】
说明:读取指定文件内容向串口下发数据
Length默认为-1表示则读取当前输入文件位置之后的所有内容,否则,将从输入文件中读取指定字节数。
举例:
比如文本文件内容为ifconfig eth0,读取文件内容默认从0位置开始读取
结果:
- Com Port Should Exist Regexp
参数:【regexp】
说明:查找匹配的COM端口
如果在系统上找不到与给定模式匹配的com端口,则失败。如果存在的话,则返回与模式匹配的COM端口列表。
举例:
结果:
- Port Should Be Open & Closed
参数:无
说明:检查串口开启/关闭状态
比如想要知道COM2串口当前是打开还是关闭状态,当COM2是打开状态,则返回通过,表示COM2是打开状态;否则当前COM2是关闭状态
举例:
结果:
- Read All And Log
参数:【loglevel=‘debug‘, encoding=None, port_locator=None】
说明:读取所有可用数据并将其写入日志
Loglevel可以是“info”、“debug”或“warn”(不区分大小写)。
任何其他级别都会导致错误。如果未指定“encoding”,则使用默认编码。
如果日志设置为debug级别,则正常数据不会打印出来。Warn级别会输出错误或警告信息。
举例:
结果:
- Read Data Should Be
参数:[ data | encoding=None | port_locator=None ]
说明:如果从端口读取的所有字节都不等于指定的数据,则失败
Data :读取的数据以16进制输出
【备注:此关键字不常用,一般特殊情况校验数据字节码用到】
举例:
结果:
- Read Until
参数:[ terminator= | size=None | encoding=None | port_locator=None ]
说明:读取数据,直到找到终止符、超出大小或超时。
terminator:终止符。循环读取数据时,直到找到预期的字符就停止读取,把读到的数据存入缓存
size:缓存大小。按指定的缓存大小范围内读取预期的字符。
encodig:字符编码
port_locator:端口号
举例:
结果:
- Delete Port
参数:[ port_locator=None ]
说明:删除指定的端口号
如果端口已打开,则它将关闭。默认情况下,将删除当前端口,并选择最近添加的端口作为新的当前端口。删除库实例中的最后一个端口会将当前端口设置为“无”。如果找不到指定的端口,则失败;如果将当前端口设置为“无”,则尝试删除该端口
举例:
结果:
- Delete All Ports
参数:[]
说明:删除库实例中维护的所有端口
打开的端口在删除前关闭。
举例:
结果:
- Read All Data
参数:[ encoding=None | port_locator=None ]
说明:从端口的传入缓冲区读取所有可用数据。
举例:
结果:
- Get Port Parameter
参数:[ param_name | port_locator=None ]
说明:
默认情况下,检查当前端口。可用参数是可以在库导入或添加端口关键字时设置的参数:波特率、字节大小、奇偶校验、停止位、超时、xonxoff、rtscts、写入超时、dsrdtr和内部字节超时。
在错误的参数名或端口定位器上失败。
举例:
结果:
以上是关于SerialLibrary库串口通信的主要内容,如果未能解决你的问题,请参考以下文章