【pySerial3.4官方文档】4、工具

工具

serial.tools.list_ports 

可以执行此模块以获取端口列表()。它还包含以下功能。python -m serial.tools.list_ports

serial.tools.list_ports.comportsinclude_links = False 

参数:include_linksbool) - /dev当它们指向串行端口时包含符号链接
返回:包含ListPortInfo对象的列表。

该函数返回一个ListPortInfo对象列表。

物品不按特定顺序退回。对项目进行排序可能是有意义的。另请注意,报告的字符串在平台和操作系统之间是不同的,即使对于同一设备也是如此。

注意

支持仅限于许多操作系统。在某些系统上,描述和硬件ID将不可用(None)。

在Linux,OSX和Windows下,扩展信息将可用于USB设备(例如,ListPortInfo.hwid字符串包含VID:PID, SER(序列号),LOCATION(层次结构),这使它们可以通过搜索grep().USB信息也可用作属性 ListPortInfo

如果include_links为true,/dev则检查并测试所有设备是否为已知串行端口设备的链接。这些条目将包含LINK在其hwid字符串中。这意味着同一设备列出两次,一次在其原始名称下,一次在链接名称下。

平台:Posix(/ dev文件)
平台:Linux(/ dev文件,sysfs)
平台:OSX(iokit)
平台:Windows(setupapi,注册表)

serial.tools.list_ports.grepregexpinclude_links = False 

参数:
  • regexp - 正则表达式(参见stdlib re
  • include_linksbool) - /dev当它们指向串行端口时包含符号链接
返回:

一个产生ListPortInfo对象的迭代,另见 comports()

使用正则表达式搜索端口。港口name, descriptionhwid进行搜索(不区分大小写)。该函数返回一个包含comports() 生成的相同数据的iterable ,但仅包含与regexp匹配的条目。

serial.tools.list_ports.ListPortInfo

该对象包含有关串行端口的信息。它支持索引访问以实现向后兼容,如。port, desc, hwid = info

device

完整的设备名称/路径,例如/dev/ttyUSB0。这也是当通过索引访问时作为第一个元素返回的信息。

name

简短的设备名称,例如ttyUSB0

description

人类可读的描述或n/a。这也是当通过索引访问时作为第二个元素返回的信息。

hwid

技术说明或n/a。这也是通过索引访问时作为第三个元素返回的信息。

USB特定数据,None如果它不是USB设备(或平台不支持扩展信息),这些都是。

vid

USB供应商ID(整数,0 ... 65535)。

pid

USB产品ID(整数,0 ... 65535)。

serial_number

USB序列号作为字符串。

location

USB设备位置字符串(“<bus> - <port> [ - <port>] ...”)

manufacturer

USB设备字符串,由设备报告。

product

USB产品字符串,由设备报告。

interface

接口特定描述,例如在复合USB设备中使用。

实现比较运算符,以便ListPortInfo可以对对象进行排序device。串被分成数字和文本的组,以使该命令是“天然的”(即com1com2com10)。

命令行用法

帮助:python -m serial.tools.list_ports

usage: list_ports.py [-h] [-v] [-q] [-n N] [-s] [regexp]

Serial port enumeration

positional arguments:
  regexp               only show ports that match this regex

optional arguments:
  -h, --help           show this help message and exit
  -v, --verbose        show more messages
  -q, --quiet          suppress all messages
  -n N                 only output the N-th entry
  -s, --include-links  include entries that are symlinks to real devices

例子:

  • 列出所有端口的详细信息:

    $ python -m serial.tools.list_ports -v
    /dev/ttyS0
        desc: ttyS0
        hwid: PNP0501
    /dev/ttyUSB0
        desc: CP2102 USB to UART Bridge Controller
        hwid: USB VID:PID=10C4:EA60 SER=0001 LOCATION=2-1.6
    2 ports found
    
  • 列出与USB VID匹配的第二个端口:PID模式:

    $ python -m serial.tools.list_ports 1234:5678 -q -n 2
    /dev/ttyUSB1
    

版本2.6中的新功能。

在3.0版中更改:返回ListPortInfo对象而不是元组

serial.tools.miniterm 

这是一个提供小型终端应用程序的控制台应用程序。

Miniterm本身不实现任何终端功能,如VT102兼容性。但是,它可以从运行的终端继承这些功能。例如,在从xterm运行的GNU / Linux上,它将支持xterm的转义序列。在Windows上,典型的控制台窗口是哑的,不支持任何转义。加载ANSI.sys时,它支持一些转义。

默认设置是过滤终端控制字符,--filter有关不同选项的信息,请参阅。

Miniterm:

--- Miniterm on /dev/ttyS0: 9600,8,N,1 ---
--- Quit: Ctrl+]  |  Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---

可以给出命令行选项,以便包括终端转义的二进制数据被转义或输出为十六进制。

Miniterm支持 使用 URL处理程序的RFC 2217远程串行端口和原始套接字, 例如在调用时rfc2217://<host>:<port>分别socket://<host>:<port>作为 端口参数。

命令行选项:python -m serial.tools.miniterm -h

usage: miniterm.py [-h] [--parity {N,E,O,S,M}] [--rtscts] [--xonxoff]
                   [--rts RTS] [--dtr DTR] [-e] [--encoding CODEC] [-f NAME]
                   [--eol {CR,LF,CRLF}] [--raw] [--exit-char NUM]
                   [--menu-char NUM] [-q] [--develop]
                   [port] [baudrate]

Miniterm - A simple terminal program for the serial port.

positional arguments:
  port                  serial port name
  baudrate              set baud rate, default: 9600

optional arguments:
  -h, --help            show this help message and exit

port settings:
  --parity {N,E,O,S,M}  set parity, one of {N E O S M}, default: N
  --rtscts              enable RTS/CTS flow control (default off)
  --xonxoff             enable software flow control (default off)
  --rts RTS             set initial RTS line state (possible values: 0, 1)
  --dtr DTR             set initial DTR line state (possible values: 0, 1)
  --ask                 ask again for port when open fails

data handling:
  -e, --echo            enable local echo (default off)
  --encoding CODEC      set the encoding for the serial port (e.g. hexlify,
                        Latin1, UTF-8), default: UTF-8
  -f NAME, --filter NAME
                        add text transformation
  --eol {CR,LF,CRLF}    end of line mode
  --raw                 Do no apply any encodings/transformations

hotkeys:
  --exit-char NUM       Unicode of special character that is used to exit the
                        application, default: 29
  --menu-char NUM       Unicode code of special character that is used to
                        control miniterm (menu), default: 20

diagnostics:
  -q, --quiet           suppress non-error messages
  --develop             show Python traceback on error

可用过滤器(--filter选项):

  • colorize:为接收和回声应用不同的颜色
  • debug:打印发送和接收的内容
  • default:从输入中删除典型的终端控制代码
  • direct:无所事事:转发所有数据不变
  • nocontrol:删除所有控制代码,包括。 CR+LF
  • printable:显示所有非ASCII字符的十进制代码并替换大多数控制代码

Miniterm在连接时支持一些控制功能。Ctrl+T Ctrl+H在运行时键入显示帮助文本:

--- pySerial (3.0a) - miniterm - help
---
--- Ctrl+]   Exit program
--- Ctrl+T   Menu escape key, followed by:
--- Menu keys:
---    Ctrl+T  Send the menu character itself to remote
---    Ctrl+]  Send the exit character itself to remote
---    Ctrl+I  Show info
---    Ctrl+U  Upload file (prompt will be shown)
---    Ctrl+A  encoding
---    Ctrl+F  edit filters
--- Toggles:
---    Ctrl+R  RTS   Ctrl+D  DTR   Ctrl+B  BREAK
---    Ctrl+E  echo  Ctrl+L  EOL
---
--- Port settings (Ctrl+T followed by the following):
---    p          change port
---    7 8        set data bits
---    N E O S M  change parity (None, Even, Odd, Space, Mark)
---    1 2 3      set stop bits (1, 2, 1.5)
---    b          change baud rate
---    x X        disable/enable software flow control
---    r R        disable/enable hardware flow control

Ctrl+T s暂停连接(端口打开)并在按下键时重新连接。这可以用于临时访问其他应用程序的串行端口,而无需退出miniterm。如果重新连接失败,也可以退出(Ctrl+])或更改端口(p)。

版本2.5中已更改:添加了Ctrl+T菜单并添加了对打开URL的支持。

在2.6版中更改:文件从示例移到serial.tools.miniterm

在3.0版中更改:在串行端口上应用编码,转换为用于控制台的Unicode。添加了新的过滤器,默认为剥离终端控制序列。添加--ask选项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值