工具
serial.tools.list_ports
可以执行此模块以获取端口列表()。它还包含以下功能。python -m serial.tools.list_ports
serial.tools.list_ports.
comports
(include_links = False )
参数: | include_links(bool) - /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.
grep
(regexp,include_links = False )
参数: | |
---|---|
返回: | 一个产生 |
使用正则表达式搜索端口。港口name
, description
并hwid
进行搜索(不区分大小写)。该函数返回一个包含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
。串被分成数字和文本的组,以使该命令是“天然的”(即com1
< com2
< com10
)。
命令行用法
帮助: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
选项。