826 lines
28 KiB
ReStructuredText
826 lines
28 KiB
ReStructuredText
========================
|
||
pySerial Release Notes
|
||
========================
|
||
|
||
Version 1.0 13 Feb 2002
|
||
---------------------------
|
||
- First public release.
|
||
- Split from the pybsl application (see http://mspgcc.sourceforge.net)
|
||
|
||
New Features:
|
||
|
||
- Added Jython support
|
||
|
||
|
||
Version 1.1 14 Feb 2002
|
||
---------------------------
|
||
Bugfixes:
|
||
|
||
- Win32, when not specifying a timeout
|
||
- Typos in the Docs
|
||
|
||
New Features:
|
||
|
||
- added ``serialutil`` which provides a base class for the ``Serial``
|
||
objects.
|
||
|
||
- ``readline``, ``readlines``, ``writelines`` and ``flush`` are now supported
|
||
see README.txt for deatils.
|
||
|
||
|
||
Version 1.11 14 Feb 2002
|
||
---------------------------
|
||
Same as 1.1 but added missing files.
|
||
|
||
|
||
Version 1.12 18 Feb 2002
|
||
---------------------------
|
||
Removed unneded constants to fix RH7.x problems.
|
||
|
||
|
||
Version 1.13 09 Apr 2002
|
||
---------------------------
|
||
Added alternate way for enabling rtscts (CNEW_RTSCTS is tried too)
|
||
If port opening fails, a ``SerialException`` is raised on all platforms
|
||
|
||
|
||
Version 1.14 29 May 2002
|
||
---------------------------
|
||
Added examples to archive
|
||
Added non-blocking mode for ``timeout=0`` (tnx Mat Martineau)
|
||
|
||
Bugfixes:
|
||
|
||
- win32 does now return the remaining characters on timeout
|
||
|
||
|
||
Version 1.15 04 Jun 2002
|
||
---------------------------
|
||
Bugfixes (win32):
|
||
|
||
- removed debug messages
|
||
- compatibility to win9x improved
|
||
|
||
|
||
Version 1.16 02 Jul 2002
|
||
---------------------------
|
||
Added implementation of RI and corrected RTS/CTS on Win32
|
||
|
||
|
||
Version 1.17 03 Jul 2002
|
||
---------------------------
|
||
Silly mix of two versions in win32 code corrected
|
||
|
||
|
||
Version 1.18 06 Dec 2002
|
||
---------------------------
|
||
Bugfixes (general):
|
||
|
||
- remove the mapping of flush to the destructive flushOutput as
|
||
this is not the expected behaviour.
|
||
- readline: EOL character for lines can be chosen idea by
|
||
John Florian.
|
||
|
||
Bugfixes (posix):
|
||
|
||
- cygwin port numbering fixed
|
||
- test each and every constant for it's existence in termios module,
|
||
use default if not existent (fix for Bug item #640214)
|
||
- wrong exception on nonexistent ports with /dev file. bug report
|
||
by Louis Cordier
|
||
|
||
Bugfixes (win32):
|
||
|
||
- RTS/CTS handling as suggested in Bug #635072
|
||
- bugfix of timeouts brought up by Markus Hoffrogge
|
||
|
||
|
||
Version 1.19 19 Mar 2003
|
||
---------------------------
|
||
Bugfixes (posix):
|
||
|
||
- removed ``dgux`` entry which actually had a wrong comment and is
|
||
probably not in use anywhere.
|
||
|
||
Bugfixes (win32):
|
||
|
||
- added ``int()`` conversion, [Bug 702120]
|
||
- remove code to set control lines in close method of win32
|
||
version. [Bug 669625]
|
||
|
||
|
||
Version 1.20 28 Aug 2003
|
||
---------------------------
|
||
- Added ``serial.device()`` for all platforms
|
||
|
||
Bugfixes (win32):
|
||
|
||
- don't recreate overlapped structures and events on each
|
||
read/write.
|
||
- don't set unneeded event masks.
|
||
- don't use DOS device names for ports > 9.
|
||
- remove send timeout (it's not used in the linux impl. anyway).
|
||
|
||
|
||
Version 1.21 30 Sep 2003
|
||
---------------------------
|
||
Bugfixes (win32):
|
||
|
||
- name for COM10 was not built correctly, found by Norm Davis.
|
||
|
||
Bugfixes (examples):
|
||
|
||
- small change in ``miniterm.py`` that should mage it run on cygwin,
|
||
[Bug 809904] submitted by Rolf Campbell.
|
||
|
||
|
||
Version 2.0b1 1 Oct 2003
|
||
---------------------------
|
||
Transition to the Python 2.0 series:
|
||
|
||
- New implementation only supports Python 2.2+, backwards compatibility
|
||
should be maintained almost everywhere.
|
||
The OS handles (like the ``hComPort`` or ``fd`` attribute) were prefixed
|
||
with an underscore. The different names stay, as anyone that uses one of
|
||
these has to write platform specific code anyway.
|
||
- Common base class ``serialutil.SerialBase`` for all implementations.
|
||
- ``PARITY_NONE``, ``PARITY_EVEN``, ``PARITY_ODD`` constants changed and all
|
||
these constants moved to ``serialutil.py`` (still available as
|
||
``serial.PARITY_NONE`` etc. and they should be used that way)
|
||
- Added ``serial.PARITY_NAMES`` (implemented in ``serialutil.PARITY_NAMES``).
|
||
This dictionary can be used to convert parity constants to meaningful
|
||
strings.
|
||
- Each Serial class and instance has a list of supported values:
|
||
``BAUDRATES``, ``BYTESIZES``, ``PARITIES``, ``STOPBITS``Ggg
|
||
(i.e. ``serial.Serial.BAUDRATES or s = serial.Serial; s.BAUDRATES``)
|
||
these values can be used to fill in value sin GUI dialogs etc.
|
||
- Creating a ``Serial()`` object without port spec returns an unconfigured,
|
||
closed port. Useful if a GUI dialog should take a port and configure
|
||
it.
|
||
- New methods for ``serial.Serial`` instances: ``open()``, ``isOpen()``
|
||
- A port can be opened and closed as many times as desired.
|
||
- Instances of ``serial.Serial`` have ``baudrate``, ``bytesize``, ``timeout``
|
||
etc. attributes implemented as properties, all can be set while the port is
|
||
opened. It will then be reconfigured.
|
||
- Improved ``__doc__``'s.
|
||
- New ``test_advanced.py`` for the property setting/getting testing.
|
||
- Small bugfix on posix with get* methods (return value should be true a
|
||
boolean).
|
||
- added a ``__repr__`` that returns a meaningful string will all the serial
|
||
setting, easy for debugging.
|
||
- The serialposix module does not throw an exception on unsupported
|
||
platforms, the message is still printed. The idea that it may still
|
||
work even if the platform itself s not known, it simply tries to do
|
||
the posix stuff anyway (It's likely that opening ports by number
|
||
fails, but by name it should work).
|
||
|
||
|
||
Version 2.0b2 4 Oct 2003
|
||
---------------------------
|
||
- Added serial port configuration dialog for wxPython to the examples.
|
||
- Added terminal application for wxPython with wxGlade design file
|
||
to the examples.
|
||
- Jython support is currently broken as Jython does not have a Python 2.2
|
||
compatible release out yet
|
||
|
||
|
||
Version 2.0 6 Nov 2003
|
||
---------------------------
|
||
- Fixes ``setup.py`` for older distutils
|
||
|
||
|
||
Version 2.1 28 Jul 2004
|
||
---------------------------
|
||
Bugfixes:
|
||
|
||
- Fix XON/XOFF values [Bug 975250]
|
||
|
||
Bugfixes (posix):
|
||
|
||
- ``fd == 0`` fix from Vsevolod Lobko
|
||
- netbsd fixes from Erik Lindgren
|
||
- Dynamically lookup baudrates and some cleanups
|
||
|
||
Bugfixes (examples):
|
||
|
||
- CRLF handling of ``miniterm.py`` should be more consistent on Win32
|
||
and others. Added LF only command line option
|
||
- Multithreading fixes to ``wxTerminal.py`` (helps with wxGTK)
|
||
- Small change for wxPython 2.5 in ``wxSerialConfigDialog.py`` [Bug 994856]
|
||
|
||
New Features:
|
||
|
||
- Implement write timeouts (``writeTimeout`` parameter)
|
||
|
||
|
||
Version 2.2 31 Jul 2005
|
||
---------------------------
|
||
Bugfixes:
|
||
|
||
- [Bug 1014227]: property <del> broken
|
||
- [Bug 1105687]: ``serial_tcp_example.py``: ``--localport`` option
|
||
- [Bug 1106313]: device (port) strings cannot be unicode
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [Patch 1043436] Fix for [Bug 1043420] (OSError: EAGAIN)
|
||
- [Patch 1102700] ``fileno()`` added
|
||
- ensure disabled PARMRK
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [Patch 983106]: keep RTS/CTS state on port setting changes
|
||
|
||
New Features:
|
||
|
||
- ``dsrdtr`` setting to enable/disable DSR/DTR flow control independently
|
||
from the ``rtscts`` setting. (Currently Win32 only, ignored on other
|
||
platforms)
|
||
|
||
|
||
Version 2.3 19 Jun 2008
|
||
---------------------------
|
||
New Features:
|
||
|
||
- iterator interface. ``for line in Serial(...): ...`` is now possible
|
||
Suggested by Bernhard Bender
|
||
- ``sendBreak()`` accepts a ``duration`` argument. Default duration increased.
|
||
- win32 handles \\.\COMx format automatically for com ports of higher number
|
||
(COM10 is internally translated to \\.\COM10 etc.)
|
||
- miniterm.py has a new feature to send a file (upload) and configurable
|
||
special characters for exit and upload. Refactored internals to class based
|
||
structure (upload and class refactoring by Colin D Bennett)
|
||
|
||
Bugfixes:
|
||
|
||
- [Bug 1451535] TCP/serial redirect example "--help"
|
||
- update VERSION variable
|
||
- update wxSerialConfigDialog.py and wxTerminal.py compatibility with
|
||
wxPython 2.8 (Peleg)
|
||
- Check for string in write function. Using unicode causes errors, this
|
||
helps catching errors early (Tom Lynn)
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [Bug 1554183] setRTS/setDTR reference to non existing local "on"
|
||
- [Bug 1513653] file descriptor not closed when exception is thrown
|
||
- FreeBSD now uses cuadX instead of cuaaX (Patrick Phalen)
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [Bug 1520357] Handle leak
|
||
- [Bug 1679013] Ignore exception raised by SetCommTimeout() in close().
|
||
- [Bug 1938118] process hang forever under XP
|
||
|
||
|
||
Version 2.4 6 Jul 2008
|
||
---------------------------
|
||
New Features:
|
||
|
||
- [Patch 1616790] pyserial: Add inter-character timeout feature
|
||
- [Patch 1924805] add a setBreak function
|
||
- Add mark/space parity
|
||
- Add .NET/Mono backend (IronPython)
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [Bug 1783159] Arbitrary baud rates (Linux/Posix)
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [Patch 1561423] Add mark/space parity, Win32
|
||
- [Bug 2000771] serial port CANNOT be specified by number on windows
|
||
- examples/scanwin32.py does no longer return \\.\ names
|
||
- fix \\.\ handling for some cases
|
||
|
||
Bugfixes (jython):
|
||
|
||
- The Jython backend tries javax.comm and gnu.io (Seo Sanghyeon)
|
||
|
||
|
||
Version 2.5-rc1 2009-07-30
|
||
---------------------------
|
||
New Features:
|
||
|
||
- Python 3.x support (through 2to3)
|
||
- compatible with Python io library (Python 2.6+)
|
||
- Support for Win32 is now written on the top of ctypes (bundled with
|
||
Python 2.5+) instead of pywin32 (patch by Giovanni Bajo).
|
||
- 1.5 stop bits (STOPBITS_ONE_POINT_FIVE, implemented on all platforms)
|
||
- miniterm application extended (CTRL+T -> menu)
|
||
- miniterm.py is now installed as "script"
|
||
- add scanlinux.py example
|
||
- add port_publisher example
|
||
- experimental RFC-2217 server support (examples/rfc2217_server.py)
|
||
- add ``getSettingsDict`` and ``applySettingsDict`` serial object methods
|
||
- use a ``poll`` based implementation on Posix, instead of a ``select`` based,
|
||
provides better error handling [removed again in later releases].
|
||
|
||
Bugfixes:
|
||
|
||
- Improve and fix tcp_serial_redirector example.
|
||
- [Bug 2603052] 5-bit mode (needs 1.5 stop bits in some cases)
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [Bug 2810169] Propagate exceptions raised in serialposix _reconfigure
|
||
- [Bug 2562610] setting non standard baud rates on Darwin (Emmanuel Blot)
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [Bug 2469098] parity PARITY_MARK, PARITY_SPACE isn't supported on win32
|
||
- [SF 2446218] outWaiting implemented
|
||
- [Bug 2392892] scanwin32.py better exception handling
|
||
- [Bug 2505422] scanwin32.py Vista 64bit compatibility
|
||
|
||
|
||
Version 2.5-rc2 2010-01-02
|
||
---------------------------
|
||
New Features:
|
||
|
||
- Documentation update, now written with Sphinx/ReST
|
||
- Updated miniterm.py example
|
||
- experimental RFC-2217 client support (serial.rfc2217.Serial, see docs)
|
||
- add ``loop://`` device for testing.
|
||
- add ``serial.serial_for_url`` factory function (support for native ports and
|
||
``rfc2217``, ``socket`` and ``loop`` URLs)
|
||
- add new example: ``rfc2217_server.py``
|
||
- tests live in their own directory now (no longer in examples)
|
||
|
||
Bugfixes:
|
||
|
||
- [Bug 2915810] Fix for suboption parsing in rfc2217
|
||
- Packaging bug (missed some files)
|
||
|
||
Bugfixes (posix):
|
||
|
||
- improve write timeout behavior
|
||
- [Bug 2836297] move Linux specific constants to not break other platforms
|
||
- ``poll`` based implementation for ``read`` is in a separate class
|
||
``PosixPollSerial``, as it is not supported well on all platforms (the
|
||
default ``Serial`` class uses select).
|
||
- changed error handling in ``read`` so that disconnected devices are
|
||
detected.
|
||
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [Bug 2886763] hComPort doesn't get initialized for Serial(port=None)
|
||
|
||
|
||
Version 2.5 2010-07-22
|
||
---------------------------
|
||
New Features:
|
||
|
||
- [Bug 2976262] dsrdtr should default to False
|
||
``dsrdtr`` parameter default value changed from ``None`` (follow ``rtscts``
|
||
setting) to ``False``. This means ``rtscts=True`` enables hardware flow
|
||
control on RTS/CTS but no longer also on DTR/DSR. This change mostly
|
||
affects Win32 as on other platforms, that setting was ignored anyway.
|
||
- Improved xreadlines, it is now a generator function that yields lines as they
|
||
are received (previously it called readlines which would only return all
|
||
lines read after a read-timeout). However xreadlines is deprecated and not
|
||
available when the io module is used. Use ``for line in Serial(...):``
|
||
instead.
|
||
|
||
Bugfixes:
|
||
|
||
- [Bug 2925854] test.py produces exception with python 3.1
|
||
- [Bug 3029812] 2.5rc2 readline(s) doesn't work
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [BUG 3006606] Nonblocking error - Unix platform
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [Bug 2998169] Memory corruption at faster transmission speeds.
|
||
(bug introduced in 2.5-rc1)
|
||
|
||
|
||
Version 2.6 2011-11-02
|
||
---------------------------
|
||
New Features:
|
||
|
||
- Moved some of the examples to serial.tools so that they can be used
|
||
with ``python -m``
|
||
- serial port enumeration now included as ``serial.tools.list_ports``
|
||
- URL handlers for ``serial_for_url`` are now imported dynamically. This allows
|
||
to add protocols w/o editing files. The list
|
||
``serial.protocol_handler_packages`` can be used to add or remove user
|
||
packages with protocol handlers (see docs for details).
|
||
- new URL type: hwgrep://<regexp> uses list_ports module to search for ports
|
||
by their description
|
||
- several internal changes to improve Python 3.x compatibility (setup.py,
|
||
use of absolute imports and more)
|
||
|
||
Bugfixes:
|
||
|
||
- [Bug 3093882] calling open() on an already open port now raises an exception
|
||
- [Bug 3245627] connection-lost let rfc2217 hangs in closed loop
|
||
- [Patch 3147043] readlines() to support multi-character eol
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [Patch 3316943] Avoid unneeded termios.tcsetattr calls in serialposix.py
|
||
- [Patch 2912349] Serial Scan as a Module with Mac Support
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [Bug 3057499] writeTimeoutError when write Timeout is 0
|
||
- [Bug 3414327] Character out of range in list_ports_windows
|
||
- [Patch 3036175] Windows 98 Support fix
|
||
- [Patch 3054352] RTS automatic toggle, for RS485 functionality.
|
||
- Fix type definitions for 64 bit Windows compatibility
|
||
|
||
|
||
Version 2.7 2013-10-17
|
||
---------------------------
|
||
- Win32: setRTS and setDTR can be called before the port is opened and it will
|
||
set the initial state on port open.
|
||
- Posix: add platform specific method: outWaiting (already present for Win32)
|
||
- Posix: rename flowControl to setXON to match name on Win32, add
|
||
flowControlOut function
|
||
- rfc2217: zero polls value (baudrate, data size, stop bits, parity) (Erik
|
||
Lundh)
|
||
- Posix: [Patch pyserial:28] Accept any speed on Linux [update]
|
||
- Posix: [Patch pyserial:29] PosixSerial.read() should "ignore" errno.EINTR
|
||
- OSX: [Patch pyserial:27] Scan by VendorID/Product ID for USB Serial devices
|
||
- Ensure working with bytes in write() calls
|
||
|
||
Bugfixes:
|
||
|
||
- [Bug 3540332] SerialException not returned
|
||
- [Bug pyserial:145] Error in socket_connection.py
|
||
- [Bug pyserial:135] reading from socket with timeout=None causes TypeError
|
||
- [Bug pyserial:130] setup.py should not append py3k to package name
|
||
- [Bug pyserial:117] no error on lost conn w/socket://
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [Patch 3462364] Fix: NameError: global name 'base' is not defined
|
||
- list_ports and device() for BSD updated (Anders Langworthy)
|
||
- [Bug 3518380] python3.2 -m serial.tools.list_ports error
|
||
- [Bug pyserial:137] Patch to add non-standard baudrates to Cygwin
|
||
- [Bug pyserial:141] open: Pass errno from IOError to SerialException
|
||
- [Bug pyserial:125] Undefined 'base' on list_ports_posix.py, function usb_lsusb
|
||
- [Bug pyserial:151] Serial.write() without a timeout uses 100% CPU on POSIX
|
||
- [Patch pyserial:30] [PATCH 1/1] serial.Serial() should not raise IOError.
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [Bug 3444941] ctypes.WinError() unicode error
|
||
- [Bug 3550043] on Windows in tools global name 'GetLastError' is not defined
|
||
- [Bug pyserial:146] flush() does nothing in windows (despite docs)
|
||
- [Bug pyserial:144] com0com ports ignored due to missing "friendly name"
|
||
- [Bug pyserial:152] Cannot configure port, some setting was wrong. Can leave
|
||
port handle open but port not accessible
|
||
|
||
|
||
Version 3.0a0 2015-09-22
|
||
--------------------------
|
||
- Starting from this release, only Python 2.7 and 3.2 (or newer) are supported.
|
||
The source code is compatible to the 2.x and 3.x series without any changes.
|
||
The support for earlier Python versions than 2.7 is removed, please refer to
|
||
the pyserial-legacy (V2.x) series if older Python versions are a
|
||
requirement).
|
||
- Development moved to github, update links in docs.
|
||
- API changes: properties for ``rts``, ``dtr``, ``cts``, ``dsr``, ``cd``, ``ri``,
|
||
``in_waiting`` (instead of get/set functions)
|
||
- remove file ``FileLike`` class, add ``read_until`` and ``iread_until`` to
|
||
``SerialBase``
|
||
- RS485 support changed (``rts_toggle`` removed, added ``serial.rs485`` module
|
||
and ``rs485_mode`` property)
|
||
- ``socket://`` and ``rfc2217://`` handlers use the IPv6 compatible
|
||
``socket.create_connection``
|
||
- New URL handler: ``spy:://``.
|
||
- URL handlers now require the proper format (``?`` and ``&``) for arguments
|
||
instead of ``/`` (e.g. ``rfc2217://localhost:7000?ign_set_control&timeout=5.5``)
|
||
- Remove obsolete examples.
|
||
- Finish update to BSD license.
|
||
- Use setuptools if available, fall back to distutils if unavailable.
|
||
- miniterm: changed command line options
|
||
- miniterm: support encodings on serial port
|
||
- miniterm: new transformations, by default escape/convert all control characters
|
||
- list_ports: improved, added USB location (Linux, Win32)
|
||
- refactored code
|
||
- [FTR pyserial:37] Support fileno() function in the socket protocol
|
||
- Posix: [Patch pyserial:31] Mark/space parity on Linux
|
||
- Linux: [Patch pyserial:32] Module list_ports for linux should include the
|
||
product information as description.
|
||
- Java: fix 2 bugs (stop bits if/else and non-integer timeouts) (Torsten
|
||
Roemer)
|
||
- Update wxSerialConfigDialog.py to use serial.tools.list_ports.
|
||
- [Patch pyserial:34] Improvements to port_publisher.py example
|
||
- [Feature pyserial:39] Support BlueTooth serial port discovery on Linux
|
||
|
||
Bugfixes:
|
||
|
||
- [Bug pyserial:157] Implement inWaiting in protocol_socket
|
||
- [Bug pyserial:166] RFC2217 connections always fail
|
||
- [Bug pyserial:172] applySettingsDict() throws an error if the settings dictionary is not complete
|
||
- [Bug pyserial:185] SocketSerial.read() never returns data when timeout==0
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [Bug pyserial:156] PosixSerial.open raises OSError rather than
|
||
SerialException when port open fails
|
||
- [Bug pyserial:163] serial.tools.list_ports.grep() fails if it encounters None type
|
||
- fix setXON
|
||
- [Patch pyserial:36 / 38] Make USB information work in python 3.4 and 2.7
|
||
- clear OCRNL/ONLCR flags (CR/LF translation settings)
|
||
- [Feature pyserial:38] RS485 Support
|
||
- [Bug pyserial:170] list_ports_posix not working properly for Cygwin
|
||
- [Bug pyserial:187] improve support for FreeBSD (list_ports_posix)
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [Bug pyserial:169] missing "import time" in serialwin32.py
|
||
|
||
Bugfixes (cli):
|
||
|
||
- [Bug pyserial:159] write() in serialcli.py not working with IronPython 2.7.4
|
||
|
||
|
||
Version 3.0b1 2015-10-19
|
||
--------------------------
|
||
- list_ports: add ``vid``, ``pid``, ``serial_number``, ``product``,
|
||
``manufacturer`` and ``location`` attribute for USB devices.
|
||
- list_ports: update OSX implementation.
|
||
- list_ports: Raspberry Pi: internal port is found.
|
||
- serial_for_url: fix import (multiple packages in list)
|
||
- threaded: added new module implementing a reader thread
|
||
- tweak examples/wx*
|
||
- posix: add experimental implementation ``VTIMESerial``
|
||
- new URL handler ``alt://`` to select alternative implementations
|
||
|
||
|
||
Version 3.0 2015-12-28
|
||
------------------------
|
||
- minor fixes to setup.py (file list), inter_byte_timeout (not stored when
|
||
passed to __init__), rfc2217 (behavior of close when open failed),
|
||
list_ports (__str__), loop://, renamed ReaderThread
|
||
- hwgrep:// added options to pick n'th port, skip busy ports
|
||
- miniterm: --ask option added
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [#26/#30] always call tcsettattr on open
|
||
- [#42] fix disregard read timeout if there is more data
|
||
- [#45] check for write timeout, even if EAGAIN was raised
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [#27] fix race condition in ``read()``, fix minimal timeout issue
|
||
- race condition in nonblocking case
|
||
- [#49] change exception type in case SetCommState fails
|
||
- [#50] fixed issue with 0 timeout on windows 10
|
||
|
||
|
||
Version 3.0.1 2016-01-11
|
||
--------------------------
|
||
- special case for FDTIBUS in list_ports on win32 (#61)
|
||
|
||
Bugfixes:
|
||
|
||
- ``Serial`` keyword arguments, more on backward compatibility, fix #55
|
||
- list_ports: return name if product is None, fix for #54
|
||
- port_publisher: restore some sorting of ports
|
||
|
||
|
||
Version 3.1.0 2016-05-27
|
||
--------------------------
|
||
Improvements:
|
||
|
||
- improve error handling in ``alt://`` handler
|
||
- ``socket://`` internally used select, improves timeout behavior
|
||
- initial state of RTS/DTR: ignore error when setting on open posix
|
||
(support connecting to pty's)
|
||
- code style updates
|
||
- posix: remove "number_to_device" which is not called anymore
|
||
- add cancel_read and cancel_write to win32 and posix implementations
|
||
|
||
Bugfixes:
|
||
|
||
- [#68] aio: catch errors and close connection
|
||
- [#87] hexlify: update codec for Python 2
|
||
- [#100] setPort not implemented
|
||
- [#101] bug in serial.threaded.Packetizer with easy fix
|
||
- [#104] rfc2217 and socket: set timeout in create_connection
|
||
- [#107] miniterm.py fails to exit on failed serial port
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [#59] fixes for RTS/DTR handling on open
|
||
- [#77] list_ports_osx: add missing import
|
||
- [#85] serialposix.py _set_rs485_mode() tries to read non-existing
|
||
rs485_settings.delay_rts_before_send
|
||
- [#96] patch: native RS485 is never enabled
|
||
|
||
Bugfixes (win32):
|
||
|
||
- fix bad super call and duplicate old-style __init__ call
|
||
- [#80] list_ports: Compatibility issue between Windows/Linux
|
||
|
||
|
||
Version 3.1.1 2016-06-12
|
||
--------------------------
|
||
Improvements:
|
||
|
||
- deprecate ``nonblocking()`` method on posix, the port is already in this
|
||
mode.
|
||
- style: use .format() in various places instead of "%" formatting
|
||
|
||
Bugfixes:
|
||
|
||
- [#122] fix bug in FramedPacket
|
||
- [#127] The Serial class in the .NET/Mono (IronPython) backend does not
|
||
implement the _reconfigure_port method
|
||
- [#123, #128] Avoid Python 3 syntax in aio module
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [#126] PATCH: Check delay_before_tx/rx for None in serialposix.py
|
||
- posix: retry if interrupted in Serial.read
|
||
|
||
Bugfixes (win32):
|
||
|
||
- win32: handle errors of GetOverlappedResult in read(), fixes #121
|
||
|
||
|
||
Version 3.2.0 2016-10-14
|
||
--------------------------
|
||
See 3.2.1, this one missed a merge request related to removing aio.
|
||
|
||
|
||
Version 3.2.1 2016-10-14
|
||
--------------------------
|
||
Improvements:
|
||
|
||
- remove ``serial.aio`` in favor of separate package, ``pyserial-asyncio``
|
||
- add client mode to example ``tcp_serial_redirect.py``
|
||
- use of monotonic clock for timeouts, when available (Python 3.3 and up)
|
||
- [#169] arbitrary baud rate support for BSD family
|
||
- improve tests, improve ``loop://``
|
||
|
||
Bugfixes:
|
||
|
||
- [#137] Exception while cancel in miniterm (python3)
|
||
- [#143] Class Serial in protocol_loop.py references variable before assigning
|
||
to it
|
||
- [#149] Python 3 fix for threaded.FramedPacket
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [#133] _update_dtr_state throws Inappropriate ioctl for virtual serial
|
||
port created by socat on OS X
|
||
- [#157] Broken handling of CMSPAR in serialposix.py
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [#144] Use Unicode API for list_ports
|
||
- [#145] list_ports_windows: support devices with only VID
|
||
- [#162] Write in non-blocking mode returns incorrect value on windows
|
||
|
||
|
||
Version 3.3 2017-03-08
|
||
------------------------
|
||
Improvements:
|
||
|
||
- [#206] Exclusive access on POSIX. ``exclusive`` flag added.
|
||
- [#172] list_ports_windows: list_ports with 'manufacturer' info property
|
||
- [#174] miniterm: change cancel impl. for console
|
||
- [#182] serialutil: add overall timeout for read_until
|
||
- socket: use non-blocking socket and new Timeout class
|
||
- socket: implement a functional a reset_input_buffer
|
||
- rfc2217: improve read timeout implementation
|
||
- win32: include error message from system in ClearCommError exception
|
||
- and a few minor changes, docs
|
||
|
||
Bugfixes:
|
||
|
||
- [#183] rfc2217: Fix broken calls to to_bytes on Python3.
|
||
- [#188] rfc2217: fix auto-open use case when port is given as parameter
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [#178] in read, count length of converted data
|
||
- [#189] fix return value of write
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [#194] spurious write fails with ERROR_SUCCESS
|
||
|
||
|
||
Version 3.4 2017-07-22
|
||
------------------------
|
||
Improvements:
|
||
|
||
- miniterm: suspend function (temporarily release port, :kbd:`Ctrl-T s`)
|
||
- [#240] context manager automatically opens port on ``__enter__``
|
||
- [#141] list_ports: add interface number to location string
|
||
- [#225] protocol_socket: Retry if ``BlockingIOError`` occurs in
|
||
``reset_input_buffer``.
|
||
|
||
Bugfixes:
|
||
|
||
- [#153] list_ports: option to include symlinked devices
|
||
- [#237] list_ports: workaround for special characters in port names
|
||
|
||
Bugfixes (posix):
|
||
|
||
- allow calling cancel functions w/o error if port is closed
|
||
- [#220] protocol_socket: sync error handling with posix version
|
||
- [#227] posix: ignore more blocking errors and EINTR, timeout only
|
||
applies to blocking I/O
|
||
- [#228] fix: port_publisher typo
|
||
|
||
|
||
Version 3.5b0 2020-09-21
|
||
------------------------
|
||
New Features:
|
||
|
||
- [#411] Add a backend for Silicon Labs CP2110/4 HID-to-UART bridge.
|
||
(depends on `hid` module)
|
||
|
||
Improvements:
|
||
|
||
- [#315] Use absolute import everywhere
|
||
- [#351] win32: miniterm Working CMD.exe terminal using Windows 10 ANSI support
|
||
- [#354] Make ListPortInfo hashable
|
||
- [#372] threaded: "write" returns byte count
|
||
- [#400] Add bytesize and stopbits argument parser to tcp_serial_redirect
|
||
- [#408] loop: add out_waiting
|
||
- [#495] list_ports_linux: Correct "interface" property on Linux hosts
|
||
- [#500] Remove Python 3.2 and 3.3 from test
|
||
- [#261, #285, #296, #320, #333, #342, #356, #358, #389, #397, #510] doc updates
|
||
- miniterm: add :kbd:`CTRL+T Q` as alternative to exit
|
||
- miniterm: suspend function key changed to :kbd:`CTRL-T Z`
|
||
- add command line tool entries ``pyserial-miniterm`` (replaces ``miniterm.py``)
|
||
and ``pyserial-ports`` (runs ``serial.tools.list_ports``).
|
||
- ``python -m serial`` opens miniterm (use w/o args and it will print port
|
||
list too) [experimental]
|
||
|
||
Bugfixes:
|
||
|
||
- [#371] Don't open port if self.port is not set while entering context manager
|
||
- [#437, #502] refactor: raise new instances for PortNotOpenError and SerialTimeoutException
|
||
- [#261, #263] list_ports: set default `name` attribute
|
||
- [#286] fix: compare only of the same type in list_ports_common.ListPortInfo
|
||
- rfc2217/close(): fix race-condition
|
||
- [#305] return b'' when connection closes on rfc2217 connection
|
||
- [#386] rfc2217/close(): fix race condition
|
||
- Fixed flush_input_buffer() for situations where the remote end has closed the socket.
|
||
- [#441] reset_input_buffer() can hang on sockets
|
||
- examples: port_publisher python 3 fixes
|
||
- [#324] miniterm: Fix miniterm constructor exit_character and menu_character
|
||
- [#326] miniterm: use exclusive access for native serial ports by default
|
||
- [#497] miniterm: fix double use of CTRL-T + s use z for suspend instead
|
||
- [#443, #444] examples: refactor wx example, use Bind to avoid deprecated
|
||
warnings, IsChecked, unichr
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [#265] posix: fix PosixPollSerial with timeout=None and add cancel support
|
||
- [#290] option for low latency mode on linux
|
||
- [#335] Add support to xr-usb-serial ports
|
||
- [#494] posix: Don't catch the SerialException we just raised
|
||
- [#519] posix: Fix custom baud rate to not temporarily set 38400 baud rates on linux
|
||
- [#509 #518] list_ports: use hardcoded path to library on osx
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [#481] win32: extend RS485 error messages
|
||
- [#303] win32: do not check for links in serial.tools.list_ports
|
||
- [#430] Add WaitCommEvent function to win32
|
||
- [#314, #433] tools/list_ports_windows: Scan both 'Ports' and 'Modem' device classes
|
||
- [#414] Serial number support for composite USB devices
|
||
- Added recursive search for device USB serial number to support composite devices
|
||
|
||
Bugfixes (MacOS):
|
||
|
||
- [#364] MacOS: rework list_ports to support unicode product descriptors.
|
||
- [#367] Mac and bsd fix _update_break_state
|
||
|
||
|
||
Version 3.5 2020-11-23
|
||
----------------------
|
||
See above (3.5b0) for what's all new in this release
|
||
|
||
Bugfixes:
|
||
|
||
- spy: ensure bytes in write()
|
||
|
||
Bugfixes (posix):
|
||
|
||
- [#540] serialposix: Fix inconsistent state after exception in open()
|
||
|
||
Bugfixes (win32):
|
||
|
||
- [#530] win32: Fix exception for composite serial number search on Windows
|
||
|
||
Bugfixes (MacOS):
|
||
|
||
- [#542] list_ports_osx: kIOMasterPortDefault no longer exported on Big Sur
|
||
- [#545, #545] list_ports_osx: getting USB info on BigSur/AppleSilicon
|