[ PySerial ] 檢查 Serial設備
因為工作需求,需要使用 USB傳輸 Serial data。
之前都是用 Arduino IDE檢查 Port的位置,一直感覺手段不是很漂亮。
最近在 StackOverflow上看到有人分享一段代碼,能夠自動尋找電腦上 Serial的設備。
由於簡單給力,所以我就原封不動的 PO了。
Successfully tested on Windows 8.1 x64, Windows 10 x64, Mac OS X 10.9.x / 10.10.x / 10.11.x and Ubuntu 14.04 / 14.10 / 15.04 / 15.10 with both Python 2 and Python 3.
原出處: Listing available com ports with Python
之前都是用 Arduino IDE檢查 Port的位置,一直感覺手段不是很漂亮。
最近在 StackOverflow上看到有人分享一段代碼,能夠自動尋找電腦上 Serial的設備。
由於簡單給力,所以我就原封不動的 PO了。
Successfully tested on Windows 8.1 x64, Windows 10 x64, Mac OS X 10.9.x / 10.10.x / 10.11.x and Ubuntu 14.04 / 14.10 / 15.04 / 15.10 with both Python 2 and Python 3.
- import sys
- import glob
- import serial
- def serial_ports():
- """ Lists serial port names
- :raises EnvironmentError:
- On unsupported or unknown platforms
- :returns:
- A list of the serial ports available on the system
- """
- if sys.platform.startswith('win'):
- ports = ['COM%s' % (i + 1) for i in range(256)]
- elif sys.platform.startswith('linux') or sys.platform.startswith('cygwin'):
- # this excludes your current terminal "/dev/tty"
- ports = glob.glob('/dev/tty[A-Za-z]*')
- elif sys.platform.startswith('darwin'):
- ports = glob.glob('/dev/tty.*')
- else:
- raise EnvironmentError('Unsupported platform')
- result = []
- for port in ports:
- try:
- s = serial.Serial(port)
- s.close()
- result.append(port)
- except (OSError, serial.SerialException):
- pass
- return result
- if __name__ == '__main__':
- print(serial_ports())
原出處: Listing available com ports with Python
留言
張貼留言