1. 程式人生 > >【pySerial3.4官方文件】4、工具

【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選項。